允许在服务器和用户PC上存储用户数据的技术?

时间:2011-01-25 17:21:22

标签: web-applications java-web-start data-storage

首先让我更好地解释一下背景。该应用程序应具有以下特征:

  • 只能在Internet上的数据库服务器上找到只读共享数据。 (相当多的共享数据。)
  • 应用程序应以类似Java-Web-Start的方式分发,或者是Web应用程序。 (目标是简化主程序包和更新的分发。首选解决方案,降低服务器负载并为最终用户提供更好的响应能力。)
  • 必须可以仅在用户的PC上或两者上存储用户特定数据。 (原因是大多数用户不愿意冒险将他们的信息从他们的PC中取出,但他们中的一些人希望分享部分信息或进行备份。)

我对网络应用程序编程知之甚少。我所知道的唯一可以做到这一切的技术是Java Web Start。它消除了服务器的负载,因为大多数计算是在用户端完成的,允许在用户的PC上进行读/写(给定访问),访问集中式数据库不是问题。

我想知道是否有其他技术可以开发这样的应用程序,而且不需要传统的本地安装。

非常感谢,

MJ

1 个答案:

答案 0 :(得分:0)

这取决于:

  • 数据/数据模型的数量,大小,复杂性,
  • 频率,更新的紧迫性,
  • 可用连接(在线24/7与偶然连接与夜间同步会话在线),带宽,
  • 现有的数据存储机制,
  • 您可能/可能/想要在客户端部署的软件数量,
  • 可用预算,
  • 可接受的开发时间
  • 可用于操作系统的资源和组织
  • 系统的生命周期计划(预期生命周期),
  • 任务重要性(可以杀死生命的关键任务系统,而不仅仅是“经理信息系统”)

是您应该提及或至少评估的所有因素。根据这些方面,解决方案可以从“廉价”的Web服务和由普通java代码同步到平面分布式数据库的平面文件不等。

多年前,如果需要“真正的”SQL DBMS,或者已经存在于服务器后端,我发现Sybase的SQL Anywhere是中小型要求和预算的良好解决方案。它在SQL级别提供了一个功能强大但透明(如果使用得很明智)的发布 - 订阅方法,如果您无法确定所有客户端是否全天候在线,则该方法很有效。

对于在线(或几乎在线)成熟的解决方案,Oracle提供了非常昂贵的在线数据库复制选项。

对于小型解决方案,访问远程数据库链接(Oracle功能)的自定义Java代码通常可以正常工作,但定位性能瓶颈可能是一场噩梦。 (并且您需要一个稳定的网络链接,以及所有节点上的“真正的”Oracle数据库。)