3

我正在使用 VisualWorks Smalltalk、Seaside 和 Gemstone/S 编写一个 Web 应用程序。

目前,只有当客户端始终返回相同的图像时,才能维持客户端的会话状态(尽管如果会话到期,客户端可以使用任何图像重新启动)。

我想了解使用 Gemstone/S 数据库共享会话状态是否可行。这意味着可以使用直接的 http 负载平衡,并且我不需要担心大量用户的图像亲和力。

我可以看到这一切都是通过 Seaside 的 Gemstone 实现“免费”完成的,但我想使用 Visualworks,因为它有一个更强大的 IDE,而且我已经熟悉它了。我可以在 Google 上找到的所有参考资料都假设使用 Gemstone smalltalk 和 Seaside 的 Gemstone 实现。

有人做过吗?如果是这样,是否有任何我可以遵循的发现或教程的记录?如果我在搜索中错过了一个明显的链接,但我真的看不到它,我深表歉意。

4

2 回答 2

2

据我所知,没有简单的方法可以做到这一点。非常简化,忽略了 Seaside 进行的许多优化,Seaside 会话是等待恢复的执行堆栈的快照。将冻结的执行堆栈迁移到另一个映像并在那里重新启动它并非易事。

于 2013-03-26T09:20:44.027 回答
1

我们的应用程序使用相同的堆栈(Seaside、VW、GS),但我们没有使用 VW 和 GS 之间的完整 GBS 接口,它允许一个 VW 图像服务多个 Seaside 会话。然而,即使在这种组合中,也需要对每个大众图像的会话亲和性。

您在大众中开发 Seaside 应用程序的原因是有道理的。它确实是一个更好的开发环境,但是您可以考虑将开发和部署分开:在 VW 中编写代码并在 GLASS 中部署。这是使用 GLASS 的传统方式,尽管使用 Pharo 进行开发。

于 2013-03-26T11:52:39.940 回答