当与应用程序服务器的internet连接丢失时,维护服务的机制



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

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

当站点和集中式web应用程序之间的(外部)连接断开时,我们希望站点继续运行—存储和呈现数据,然后当连接返回时将数据推回中央服务器以保持数据库完整性。

考虑到我们愿意改变我们的应用服务器或数据库,如果它是值得的,这是如何最好地处理,是否有任何开箱即用的解决方案?

在各个位置安装服务器,"常规地"复制您想要在它们之间共享的内容,并将所有其他集中的但不重要的任务(例如,报告)留在中央系统上。

没有"开箱即用"的解决方案。你的系统是中心化的不管什么原因,它是中心化的。你要求它去中心化。通过这样做,您需要重新考虑为什么它首先是集中的,以及由于这种集中而产生的依赖关系(例如每个站点都可以立即访问所有其他站点的数据)。

解决这些问题,你可以做什么,多长时间,以及如何分享它,然后你可以建立自治站点。此过程的大小和复杂性取决于您的应用程序及其向远程用户提供的服务。

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

但是这要花很多钱:

  • 硬件(服务器)
  • 正确保护服务器
  • (大量)调优/重写以避免新的瓶颈

如果你选择在你所有的办公室使用冗余的互联网接入,也许会更容易/更便宜。

如果你愿意走在最前面,那么看看HTML 5与本地存储。注意,HTML 5中的本地存储规范仍处于过渡阶段。我所包含的第二个链接在HTML 5本地存储不可用时提供了一个很好的回退选项。使用Store.js的备用选项,您甚至不需要要求您的客户端使用现代浏览器,尽管它肯定有帮助。

另一个选择,如果你愿意朝这个方向发展,就是使用Adobe Flex 3作为你的UI,通过LiveCycle与你在Glassfish上托管的应用程序对话。虽然会有更多的活动部分和更陡峭的学习曲线。

最新更新