smalltalkseasidevisualworksgemstone

Sharing seaside sessions using Gemstone/S


I am writing a web application using VisualWorks Smalltalk, Seaside and Gemstone/S.

At the moment the session state for the client can be maintained only if the client always returns to the same image (though if the session expires the client can restart with any image).

I would like to understand whether it's feasible to share session state using the Gemstone/S database. This means straightforward http load balancing could be used and I wouldn't need to worry about image affinity for a large population of users.

I can see that all this is done "for free" with the Gemstone implementation of Seaside, but I would like to use Visualworks because it has a much more powerful IDE and I am already familiar with it. All references I can find on Google to this assume use of Gemstone smalltalk and the Gemstone implementation of Seaside.

Has anybody done this? If so are there any write ups of findings or tutorials I can follow? Many apologies if I have missed an obvious link on a search but I really couldn't see it.


Solution

  • As far as I know there is no easy way to do it. Very simplified, and ignoring many optimizations taken by Seaside, Seaside session is snapshot of execution stack waiting to be resumed. Migrating that frozen execution stack to another image and restarting it there is non trivial.