使用应用程序服务器丢失Internet连接时维护服务的机制

时间:2011-07-20 22:06:49

标签: java oracle web-applications glassfish distributed

我们目前拥有一个集中的网络应用程序和数据库(在glassfish和oracle上运行),可以从遍布全国的多个站点访问。

在车站,有数据输入系统并从系统读取(通过浏览器)。

当站点和集中式Web应用程序之间的(外部)连接断开时,我们希望站点继续运行 - 存储和显示数据,然后当连接返回时,数据被推回到中央服务器维护数据库完整性

鉴于我们愿意更改我们的应用服务器或数据库是否值得,如何最好地处理,是否有任何开箱即用的解决方案?

3 个答案:

答案 0 :(得分:2)

在各个位置安装服务器,“定期”复制您希望在其中共享的内容,并在中央系统上保留所有其他集中但非重要的任务(例如,报告)。

没有“开箱即用”的解决方案。无论出于什么原因,您的系统都是集中的。你要求它是分散的。通过这样做,您需要重新考虑为什么它首先集中在一起,以及由于集中化(例如每个站点都可以即时访问所有其他站点的数据)而存在哪些依赖关系。

解决那些你可以做什么没有,多长时间以及如何分享它的问题,然后你可以设置自治站点。此过程的规模和复杂程度取决于您的应用程序及其为远程用户提供的服务。

答案 1 :(得分:1)

如果您可以容忍丢失当前会话,我会指出您寻找分布式数据库(复制)。 Oracle可能会支持它。在每个办公室,你将有一个glassfish服务器

但这会花费很多:

  • 许可证
  • 硬件(服务器)
  • 正确保护服务器
  • (很多)调整/重写以避免新的瓶颈

如果您选择仅为所有办公室使用冗余互联网访问,这可能会更容易/更便宜。

答案 2 :(得分:1)

如果您愿意前进,请使用HTML 5查看Local Storage。请注意,HTML 5中的本地存储规范仍处于转换状态。我包含的第二个链接具有良好的后备选项,用于HTML 5本地存储不可用时。使用Store.js的后备选项,您甚至不需要要求您的客户使用现代浏览器,尽管它肯定有帮助。

另一个选择,如果您愿意朝着这个方向前进,那就是将Adobe Flex 3用于您的UI,通过LiveCycle与您在Glassfish上托管的应用程序进行通信。但是会有更多的活动部分和更陡峭的学习曲线。