Mobile 跨平台、开源、数据同步策略

Mobile 跨平台、开源、数据同步策略,mobile,synchronization,cross-platform,desktop-application,Mobile,Synchronization,Cross Platform,Desktop Application,目标是让偶尔连接的客户机属于运行在一系列不同平台上的一个用户,能够共享一个公共数据集。服务器将是GNU/Linux。最初的目标平台和设备包括:x86_64、i686、ARMv7、ARMv8上的GNU/Linux、Android和Windows。可能考虑OSX和iOS设备。UI工具包可能是Qt5。非接口逻辑将在C++中。我的代码将根据GPL或AGPL获得许可 例如,许多像谷歌地图这样的应用程序需要可靠的连接才能有效工作。我的设计决策是,假设用户没有使用不同的设备/平台来更改数据,则每个客户端都应该

目标是让偶尔连接的客户机属于运行在一系列不同平台上的一个用户,能够共享一个公共数据集。服务器将是GNU/Linux。最初的目标平台和设备包括:x86_64、i686、ARMv7、ARMv8上的GNU/Linux、Android和Windows。可能考虑OSX和iOS设备。UI工具包可能是Qt5。非接口逻辑将在C++中。我的代码将根据GPL或AGPL获得许可

例如,许多像谷歌地图这样的应用程序需要可靠的连接才能有效工作。我的设计决策是,假设用户没有使用不同的设备/平台来更改数据,则每个客户端都应该在没有网络连接的情况下完全正常工作。在这种情况下,只需要与网络访问同步

有些应用程序使用为每个平台或平台子集定制的手动数据持久性和同步层编写。虽然这是相当有效的,但它超出了可用的技能和人力(只有我:)

此外,尽管我有点习惯于从关系数据库的角度考虑问题,但我期望的数据可能更适合JSON/NoSQL数据库。尽管有UNQLite,但它的同步功能并不比SQLite多。据我所知,MongoDB、CouchDB等目前只针对数据中心或云。实际上,SQL解决方案似乎也是如此。是否存在真正具有本机同步/复制功能的跨平台数据库

在过去的几周里,我研究了各种各样的选择,但没有发现什么真正有用的。我见过的最有用的东西是沙发床;然而,它似乎相当不稳定(从API的角度来看,与崩溃无关),有大量的依赖项,在移动平台上似乎只是一个SQLite包装器,目前开发人员文档有限

如果有适用的库或工具包,请指出。如果不是,或者如果这过于“以讨论为导向”,请在结束此问题之前,向我指出适当的资源以寻求帮助。

注:

  • 讨论手动滚动解决方案。如果这是唯一的方法,我将感谢特别适用于SQLite3的参考资料,因为我知道它是稳定的,除了厨房水槽之外,几乎任何东西都可以使用

  • 没有真正解决任何重要问题。我所关心的主要问题之一是在最小化网络带宽需求的同时有效地同步数据。即使在美国,也有许多地区根本无法获得高速数据。对我来说,在最广泛的环境中可用性是很重要的

  • 这篇文章有点帮助,但我是一个完全的、绝对的新手,不擅长为服务器和工作站开发*NIX。同样,如果有必要对这组需求进行基于SQL的持久化,那么更多的指南将是有帮助的