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 はオフライン/オンライン セットアップ用にのみ設計されているため、間違っている可能性があります。
エキスパートからここまでお待ちください。