最近,我的客户问我,他们是否可以远程使用他们的应用程序,断开与本地网络和公司服务器的连接。
一种解决方案是将数据库放在云中,但要连接到数据库,并且云和互联网连接必须始终可用。情况并不总是如此。
所以我的问题是--有没有数据库同步系统,或者同步库,这样我就可以与本地数据库断开连接,当我连接时,同步我所做的更改并接收其他人所做的更改?
更新:
该应用程序在Windows (7/xp)下(目前)
它在Delphi2007 win32中
所有客户端都需要具有读/写访问权限
所有客户端都有互联网连接,但并不总是在线
安全性并不重要,但同步服务应对通信进行加密
当存在公司网络时,系统应同步并使用服务器数据库,而不是本地数据库。
发布于 2012-05-27 22:43:25
在考虑这样的解决方案时,您会遇到很多问题。首先,有很多可能的解决方案,例如:
在数据库中使用数据库复制的
使用复制服务时,连接不必总是处于活动状态。在连接不可用时记录对数据库的更改,然后在可以发送这些更改时应用这些更改。
然而,当你离开公司网络时,还有很多其他的问题。数据和访问权限的安全性如何?您是否有其他选择,例如使从网络中访问数据库变得更容易?用户是否只需要数据库的读访问权限或读写访问权限?是否需要同时访问这两个版本。这两个版本会同时更新吗?
您可能有其他更安全的选择,而不仅仅是将数据库迁移到云。
发布于 2012-05-28 22:28:24
我相信RemObjects DataAbstract通过使用他们所谓的Briefcases来实现离线模式和同步。您的所有其他要求(安全性、加密连接等)也包括在内。
我认为,这不是一个简单的替代方案,可能需要对您的应用程序进行大量的重写/重构。有很多好处,思想;业务规则可以/应该在服务器上执行(真正的安全性),脚本化的业务规则,多平台架构,等等。
发布于 2013-07-12 08:58:53
在Java世界中有一些可用的产品(SymmetricDS lgpl许可证)-除了是一个实际的工作系统之外,它还记录了它是如何实现同步的。连接到任何支持jdbc的数据库。。虽然有一个pro版本,但用户指南(可下载的pdf)提供了db模式以及推拉同步的规则。如果您想构建自己的应用程序,则非常有用。
顺便说一句,有一个数据复制所以标签,这将是有帮助的。
https://stackoverflow.com/questions/10773197
复制相似问题