我正在使用VisualWorks Smalltalk,Seaside和Gemstone/S编写一个web应用程序。
目前,只有当客户端始终返回到同一映像时,才能维护客户端的会话状态(不过,如果会话过期,则客户端可以使用任何映像重新启动)。
我想知道使用Gemstone/S数据库共享会话状态是否可行。这意味着可以使用简单的http负载均衡,并且我不需要担心大量用户的图像亲和力。
我可以看到,所有这些都是使用Seaside的Gemstone实现“免费”完成的,但我更喜欢使用Visualworks,因为它有一个功能更强大的IDE,而且我已经熟悉它了。我在Google上找到的所有参考资料都假定使用了Gemstone smalltalk和Seaside的Gemstone实现。
有人这么做过吗?如果是这样的话,有没有什么我可以遵循的发现或教程?如果我在搜索中错过了一个明显的链接,我非常抱歉,但我真的看不到它。
发布于 2013-03-26 17:20:44
据我所知,没有简单的方法可以做到这一点。Seaside session非常简单,并且忽略了Seaside所做的许多优化,它是等待恢复的执行堆栈的快照。将冻结的执行堆栈迁移到另一个映像并在那里重新启动它并不是一件容易的事情。
发布于 2013-03-26 19:52:40
我们的应用程序使用相同的堆栈( Seaside,VW,GS),但我们没有使用VW和GS之间的完整GBS接口,该接口允许一个VW映像为多个Seaside会话提供服务。然而,即使在这种混合中,也需要与每个大众映像建立会话亲和性。
你在大众中开发Seaside应用程序的原因是有道理的。它确实是一个更好的开发环境,但您可以考虑将开发和部署分开:在VW中编写代码,然后在玻璃中进行部署。这是使用玻璃的传统方式,尽管使用Pharo进行开发。
https://stackoverflow.com/questions/15618134
复制相似问题