具有复制功能的移动本地数据库,如 Couchbase lite、Parse.com 或 Claudant 可以替代 Web 服务层吗?

Mobile local databases with replication like Couchbase lite, Parse.com or Claudant can replace the Web services layer?

似乎具有同步功能的移动本地数据库在移动场景中获得了一些动力。这种方法可以毫不费力地将数据从后端复制到应用程序(反之亦然)。您不必在应用程序和后端中编写所有代码来交换信息。听起来很棒,对吧?

但是,我想知道在哪些情况下复制效率不高。这种方法的优缺点是什么?我特别担心移动端的数据消耗过多以及搜索本地数据库中没有的信息。

我认为 CouchDB、Couchbase Mobile、PouchDB 中可用的复制方法实际上节省了数据消耗,因为在复制的每一端都有一个本地数据库。 Sync 方法不是将数据存储在可能会及时失效的缓存中,而是查找每一侧的差异并计算出丢失的内容和应该发送的内容。

但是,同步方法并不适合所有用例。如果我们想象一个基于位置的移动应用程序的例子。可能有一个功能可以搜索用户所在位置周围的内容。将整个服务器端数据库复制到设备以进行该查询是没有意义的。您可以对这些类型的查询使用 REST API 调用。一旦用户拥有 "bookmarked" 个位置,使用同步方法让所有登录设备都可以访问它们。

对于 Couchbase Mobile,过滤后的同步由 Sync Function and the REST API 处理,可用于服务器端数据库的查询。