由于我对 CouchDB 的了解较少,我有点困惑。让我用简单的话解释一下。我正在开发一个 iphone 应用程序,我的客户可能会要求提供 android 版本。我使用 CouchDB 作为该应用程序的数据存储。
我们设计了一个后端,管理员可以在其中设置/更新信息。所有更新的信息都应复制到所有 iphone 设备。当我说从服务器复制到设备时,我并不是指从一个 iphone 设备复制到另一个设备。意味着更新的来源始终是服务器。
我的客户还希望如果可能的话,大部分功能都应该离线工作。为了使某些功能离线,客户端要求我使用 CouchDB 和 TouchDB(在 iphone 上),它们会自动同步。
根据我的说法,CouchDB 的设计目的不是为了达到这个目的,而是设计用于复制,这是分布式计算所需的,其中数据源不是一台服务器而是多台服务器。
使用 CouchDB/TouchDB 我面临很多问题。一个大问题是我的逻辑和 UI 实现是一起构建在我的 xcode 上的。如果明天我想开发 Android 应用程序,那么我必须在 android 语法中实现相同的逻辑。逻辑变化需要更新两个版本。如果客户明天要开发windows和BB版本,那就更令人沮丧了。
为了避免这种情况,我可以建议我的客户使用 3 层架构,我们将在其中构建一个中间件,并将我们的逻辑保留在那里。我们需要在应用程序级别开发的唯一工作是通过 WebService 从中间件获取数据并呈现 UI。
但在向我的客户提出建议之前,我想从专业知识中确认我的想法。我可能错了,因为我对 CouchDB 不太了解,也许 CouchDb 仅用于离线/在线设置。
请等待从专业知识到这里。