Seaside without HTTP

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Seaside without HTTP

Steve Wart
Hi,

I just listened to James Robertson's interview with Julian Fitzell today and I thought it was great.

I'd like to set up an server for an iPhone app that might have an HTTP component for some features but for the most part it won't be web-based (I'll probably be using Objective-C and some WebKit views with Javascript).

It seems that Seaside is the right choice but I'm wondering if anyone has any suggestions about how I might approach the problem.

In general, I am thinking about a game server type of environment that supports the following sorts of interactions:

* secure user authentication
* create or join an existing game (basic app logic)
* navigate around with a WebView using a Google JavaScript API
  (probably with custom controls overlayed either as divs or native iPhone components calling Javascript from Obj-C)
* maintain a shared domain model for the connected users within a game, distinct from other sessions that may be running
* keep track of various attributes associated with the user sessions (e.g. current IP address, GIS coordinates)

Is this an appropriate use of Seaside or would I be better of just starting from scratch with GemStone or Magma?

I definitely want the "brains" of my app in Smalltalk

Cheers,
Steve

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside without HTTP

jgfoster
Hi Steve,

On Mar 5, 2009, at 6:14 PM, Steve Wart wrote:

> Hi,
>
> I just listened to James Robertson's interview with Julian Fitzell  
> today and I thought it was great.
>
> I'd like to set up an server for an iPhone app that might have an  
> HTTP component for some features but for the most part it won't be  
> web-based (I'll probably be using Objective-C and some WebKit views  
> with Javascript).
>
> It seems that Seaside is the right choice but I'm wondering if  
> anyone has any suggestions about how I might approach the problem.
>
> In general, I am thinking about a game server type of environment  
> that supports the following sorts of interactions:
>
> * secure user authentication
> * create or join an existing game (basic app logic)
> * navigate around with a WebView using a Google JavaScript API
>  (probably with custom controls overlayed either as divs or native  
> iPhone components calling Javascript from Obj-C)
> * maintain a shared domain model for the connected users within a  
> game, distinct from other sessions that may be running
> * keep track of various attributes associated with the user sessions  
> (e.g. current IP address, GIS coordinates)
>
> Is this an appropriate use of Seaside or would I be better of just  
> starting from scratch with GemStone or Magma?
>
> I definitely want the "brains" of my app in Smalltalk

As I understand it you are looking at writing an iPhone application  
that will be a client (written in Objective-C) and are considering  
what to use for the server (written in Smalltalk). While Seaside can  
serve documents in other than HTML (XML, RSS, etc.), I tend to view  
those as adjuncts to a web application framework (though I could be  
wrong).

I assume that you will be using TCP/IP to communicate between your  
client and server. Do you have a particular protocol in mind? Is there  
any reason to try to use SOAP (for example)? I guess I'd be inclined  
to start simple. If Objective-C has some decent HTTP client class,  
then it could make sense to use HTTP as the protocol, and then using  
Seaside to generate HTML might make sense (and would have the added  
advantage that you could test the server with a web browser).

I've not used Magma, and have an obvious bias for GemStone. How much  
persistent data do you anticipate needing?

James

> Cheers,
> Steve
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside without HTTP

Julian Fitzell-2
In reply to this post by Steve Wart
Hi Steve,

As long as it "makes sense" to use HTTP for what you're doing, Seaside
may be a good fit. If you're not doing HTML, some pieces will be of
less use to you but you can generate documents in any format you like
and even leverage the Session logic if desired. You're walking off the
well-trodden path, though, so you'll have to be prepared to dig in a
bit and ask questions if you can't figure out where to plug in.
Hopefully 2.9, with its clarified architecture, will help make this
clearer.

I can't say from what you posted whether Seaside is right for your use
case or not but you can always just start writing something in
Smalltalk and see if and when you want HTTP. Or as James says, you can
start writing it in  HTTP and see whether you need something else. :)

Julian

On Fri, Mar 6, 2009 at 3:14 AM, Steve Wart <[hidden email]> wrote:

> Hi,
>
> I just listened to James Robertson's interview with Julian Fitzell today and
> I thought it was great.
>
> I'd like to set up an server for an iPhone app that might have an HTTP
> component for some features but for the most part it won't be web-based
> (I'll probably be using Objective-C and some WebKit views with Javascript).
>
> It seems that Seaside is the right choice but I'm wondering if anyone has
> any suggestions about how I might approach the problem.
>
> In general, I am thinking about a game server type of environment that
> supports the following sorts of interactions:
>
> * secure user authentication
> * create or join an existing game (basic app logic)
> * navigate around with a WebView using a Google JavaScript API
>   (probably with custom controls overlayed either as divs or native iPhone
> components calling Javascript from Obj-C)
> * maintain a shared domain model for the connected users within a game,
> distinct from other sessions that may be running
> * keep track of various attributes associated with the user sessions (e.g.
> current IP address, GIS coordinates)
>
> Is this an appropriate use of Seaside or would I be better of just starting
> from scratch with GemStone or Magma?
>
> I definitely want the "brains" of my app in Smalltalk
>
> Cheers,
> Steve
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside without HTTP

Steve Wart
James and Julian,

Thanks very much for the responses. I'll have a look at 2.9 and see if there are are any opportunities for reuse. I am interested in using Magritte for my domain model and I'll be checking out some of the patterns for session management etc.

I'm tempted to use GemStone because it's familiar to me, but I think my persistence requirements are fairly basic (famous last words). I'll be starting with the simplest thing that will work, and HTTP is well-supported. I'll be avoiding the Dark Forest of XML but other that I'm keeping an open mind.

I'll let you know if Seaside presents any interesting synergies. It seems there should be some benefits as this is fundamentally no different than a web app with different transport and presentation components (and, er, synchronized state among all clients).

I'm thinking I need signed and validated requests, but I'll dig more into that before I raise any specific questions.

Steve

On Thu, Mar 5, 2009 at 10:36 PM, Julian Fitzell <[hidden email]> wrote:
Hi Steve,

As long as it "makes sense" to use HTTP for what you're doing, Seaside
may be a good fit. If you're not doing HTML, some pieces will be of
less use to you but you can generate documents in any format you like
and even leverage the Session logic if desired. You're walking off the
well-trodden path, though, so you'll have to be prepared to dig in a
bit and ask questions if you can't figure out where to plug in.
Hopefully 2.9, with its clarified architecture, will help make this
clearer.

I can't say from what you posted whether Seaside is right for your use
case or not but you can always just start writing something in
Smalltalk and see if and when you want HTTP. Or as James says, you can
start writing it in  HTTP and see whether you need something else. :)

Julian

On Fri, Mar 6, 2009 at 3:14 AM, Steve Wart <[hidden email]> wrote:
> Hi,
>
> I just listened to James Robertson's interview with Julian Fitzell today and
> I thought it was great.
>
> I'd like to set up an server for an iPhone app that might have an HTTP
> component for some features but for the most part it won't be web-based
> (I'll probably be using Objective-C and some WebKit views with Javascript).
>
> It seems that Seaside is the right choice but I'm wondering if anyone has
> any suggestions about how I might approach the problem.
>
> In general, I am thinking about a game server type of environment that
> supports the following sorts of interactions:
>
> * secure user authentication
> * create or join an existing game (basic app logic)
> * navigate around with a WebView using a Google JavaScript API
>   (probably with custom controls overlayed either as divs or native iPhone
> components calling Javascript from Obj-C)
> * maintain a shared domain model for the connected users within a game,
> distinct from other sessions that may be running
> * keep track of various attributes associated with the user sessions (e.g.
> current IP address, GIS coordinates)
>
> Is this an appropriate use of Seaside or would I be better of just starting
> from scratch with GemStone or Magma?
>
> I definitely want the "brains" of my app in Smalltalk
>
> Cheers,
> Steve
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside