0

CouchDB についてあまり理解していないため、少し混乱しています。簡単な言葉で説明しましょう。クライアントが Android バージョンを要求する可能性がある iPhone アプリを開発しています。このアプリケーションのデータ ストレージとして CouchDB を使用しています。

管理者が情報を設定/更新できるバックエンドを設計しました。更新されたすべての情報は、すべての iphone デバイスに複製される必要があります。サーバーからデバイスへの複製と言うとき、ある iPhone デバイスから別の iPhone デバイスへの複製を意味するのではありません。更新のソースが常にサーバーになることを意味します。

私のクライアントは、可能であればほとんどの機能がオフラインで動作することも望んでいます。一部の機能をオフラインにするために、クライアントは、自動的に同期される CouchDB と TouchDB (iPhone の場合) を使用するように求められました。

私によると、CouchDB はこの目的を果たすようには設計されていませんが、データのソースが 1 つのサーバーではなく複数のサーバーである分散コンピューティングに必要なレプリケーション用に設計されています。

CouchDB/TouchDB を使用すると、多くの問題に直面しています。大きな問題の 1 つは、ロジックと UI の実装が一緒に xcode に組み込まれていることです。明日 Android アプリケーションを開発したい場合は、同じロジックを Android 構文で実装する必要があります。ロジックを変更すると、両方のバージョンを更新する必要があります。クライアントが明日 Windows と BB バージョンを開発したい場合は、さらにイライラします。

これを避けるために、1 つのミドルウェアを構築し、そこにロジックを保持する 3 層アーキテクチャを使用する必要があることをクライアントに提案できます。アプリ レベルで開発する必要がある作業は、WebService を介してミドルウェアからデータを取得し、UI を表示することだけです。

しかし、クライアントに提案する前に、専門知識から自分のアイデアを確認したいと思います. 私は CouchDB について十分な知識がなく、おそらく CouchDB はオフライン/オンライン セットアップ用にのみ設計されているため、間違っている可能性があります。

エキスパートからここまでお待ちください。

4

1 に答える 1

3

私は今、似たようなことに取り組んでいるので、見つけたものを共有することができます。

BigCouch(Cloudantによって管理されるCouchDBのフォークでCouchマシンのクラスターを提供)を使用してデータを保存し、TouchDBforiOSを使用してデータをモバイルデバイスに複製しています。

TouchDBをBigCouchで動作させることはできましたが、いくつかの問題がないわけではありません。TouchDBは、CouchDBに組み込まれている既存のレプリケーション機能を利用して、それを適切に処理します。

私の経験から、TouchDBはオフラインモードでも非常にうまく機能します。レプリケーションは、デバイスがオフラインになったときに中断したところから再開されます。プッシュ、プル、またはその両方を実行するようにTouchを構成することもできるので、それは素晴らしいことです。

本当の問題は、Androidに移行したいときです。TouchDBJavaポートは現在申し訳ありません。存在しますが、本番の準備ができていません。実際、私は今週Twitterで、彼らがプロジェクトを引き継ぐために誰かを雇おうとしているのを見ました。

TouchDBのJavaポートが本番環境で使用できるようになったとしても、その通りです。Android用のコードを書き直す必要があります。使用するテクノロジーに関係なく、これも当てはまります。

于 2013-03-09T01:29:09.943 に答える