【问题标题】:Is CocuchDB/TouchDB designed to serve offline/online setup for ios apps?CocuchDB/TouchDB 是否旨在为 ios 应用程序提供离线/在线设置服务?
【发布时间】:2013-02-23 21:58:29
【问题描述】:

由于我对 CouchDB 的了解较少,我有点困惑。让我用简单的话解释一下。我正在开发一个 iphone 应用程序,我的客户可能会要求提供 android 版本。我使用 CouchDB 作为该应用程序的数据存储。

我们设计了一个后端,管理员可以在其中设置/更新信息。所有更新的信息都应复制到所有 iphone 设备。当我说从服务器复制到设备时,我并不是指从一个 iphone 设备复制到另一个设备。意味着更新源始终是服务器。

我的客户还希望尽可能让大部分功能脱机工作。为了使某些功能离线,客户端要求我使用 CouchDB 和 TouchDB(在 iphone 上),它们会自动同步。

在我看来,CouchDB 的设计目的不是为了达到这个目的,而是设计用于复制,这是分布式计算所需的,其中数据源不是一台服务器而是多台服务器。

使用 CouchDB/TouchDB 我遇到了很多问题。一个大问题是我的逻辑和 UI 实现是一起构建在我的 xcode 上的。如果明天我想开发 Android 应用程序,那么我必须在 android 语法中实现相同的逻辑。逻辑变化需要更新两个版本。如果客户明天要开发windows和BB版本,那就更令人沮丧了。

为了避免这种情况,我建议我的客户应该使用 3 层架构,我们将在其中构建一个中间件,并将我们的逻辑保留在那里。我们需要在应用级别开发的唯一工作是通过 WebService 从中间件获取数据并呈现 UI。

但在向我的客户提出建议之前,我想从专业知识中确认我的想法。我可能是错的,因为我对 CouchDB 不太了解,而且 CouchDb 可能只是为离线/在线设置而设计的。

请等待这里的专家。

【问题讨论】:

  • 我建议做适合您的技能和客户要求的事情。您可以将同步逻辑移至第三层,但很难判断这是否会使客户端逻辑更容易。您似乎只是在转移问题并增加故障点的数量。
  • "您似乎只是在转移问题并增加故障点的数量。"怎么样?
  • 将逻辑保存在一个适用于所有人(iphone/android/windows/BB)的地方并不是一个好主意。 3 层是世界公认的方法。不是吗?
  • 您有 2 层(电话、数据库)。现在3?这将增加故障点的数量。您是否尝试过 TouchDB 以查看它是否满足您的需求?它适用于 Android 和 iOS。你真的需要为 4 部手机开发吗?
  • 现在让我们举个例子。适用于 iPhone 和 Db 的 2 层。 Android 和 DB 2 层,BB 和 DB 2 层……现在你怎么看?您将在这里面临多少失败点?这不仅仅是关于故障点,只是考虑逻辑的变化(不是设计的变化,设计的变化会导致应用程序修改)。逻辑上的一次改变会导致每一种语言的修改,不是吗?

标签: iphone couchdb 3-tier offlineapps touchdb


【解决方案1】:

我现在正在做类似的事情,所以我可以分享我的发现。

我们使用 BigCouch(CouchDB 的一个分支,由 Cloudant 管理,提供 Couch 机器集群)来存储我们的数据,然后使用 iOS 版 TouchDB 将数据复制到移动设备。

我们已经能够让 TouchDB 与 BigCouch 一起使用,但在此过程中并非一帆风顺。 TouchDB 利用了 CouchDB 中内置的现有复制功能并很好地处理了它。

根据我的经验,TouchDB 在离线模式下也能很好地工作。复制将在设备离线时从中断处继续。您还可以将 Touch 配置为执行推、拉或两者兼而有之,这很好。

真正的问题是您何时想要迁移到 Android。 TouchDB Java 端口现在处于抱歉状态。它存在,但尚未准备好投入生产。事实上,我本周在 Twitter 上看到他们正试图聘请某人来接管该项目。

即使 TouchDB 的 Java 端口已准备好投入生产,您是对的,您也必须为 Android 重新编写代码。不管你使用什么技术,情况都会如此。

【讨论】:

  • 所以使用 3 层架构在这里不是很有用吗?它还将使我的维护成本保持在较低水平,并且逻辑的更改会导致中间件而不是应用程序级别的更改,对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
相关资源
最近更新 更多