7

作成したいアプリがあります。しかし、どうすればいいのかわかりません。私はnode.jsを使用しており、couchdbを使用したいと考えていますが、mongodbやriakのようなものがより良い選択である場合は、喜んでアイデアを聞いてください. しかし、私はサイトを持っています

クールドットコム

そして、couchdb インスタンスと、ストアを管理するためのサイトがあります。ショッピングカートと言います。データベースには、ストアのすべてのアイテムとデータが格納されます。アプリ自体には、そのデータを管理するための管理者バックエンドがあり、アイテムを変更できます。私ができるようにしたいのは、ユーザーがインターネットから切断されても、管理者のバックエンドが機能することです。これが機能するには、モデル/ルート/コントローラーなどでクライアント側のフレームワークを使用する必要があることに気付きました。しかし、よくわからないのは、オフライン時にサイトを機能させる方法です。ローカルにインストールされたcouchdbは、オンラインに戻ったときにローカルからリモートにデータを同期できます。管理者ユーザーがコンピューターを使用している場合は、couchをインストールしてもらうことができます。しかし、それは面倒かもしれません。

また、管理者ユーザーがタブレットまたは電話を使用している場合はどうなりますか? これを行うには、実際のモバイル アプリとデスクトップ アプリが必要ですか? これをセットアップして、エンド ユーザーがシームレスになるようにする方法はありますか。また、これをエンド ユーザーに対してもオフラインにしたいと考えていますが、より多くの聴衆は管理者です。

別のユースケース、インストア POS システム。そして力が抜けます。しかし、POS システムは Web からタブレットに読み込むことができ、アプリはオフラインで利用できるため、Wi-Fi が切れていてもカードベースの販売を行うことができます。

これを行う方法がわかりません。データとバックエンドを処理できるクライアントフレームワークが必要だと仮定しましょう。残り火、または角度のようなもの。meteor や derby js のようなオールインワン スタックもありますが、これらは完全にオフラインではなく、リアルタイムで表示するためのものです。meteor には mini mongo があるので、調べる価値があるかもしれません。

できればソファを使用して、このセットアップを機能させる方法を誰かが理解するのを手伝ってくれることを望んでいましたが、データを同期する方法があれば、他のnosqlも機能します。

4

3 に答える 3

6

それがあなたにとってうまくいくかどうかはわかりませんが、私はかなり長い間そのようなアプリケーションを考えていて、何が可能かについていくつかの研究を行ってきました. 私が思いつく最善の解決策は、couchdb を備えたサーバーを使用し、アプリケーションをクライアントサイド ベースで作成することです。次に、データストレージにpouchdbを使用、アプリがオンラインの場合はpouchdbをサーバー側のcouchdbと定期的に同期します。ポーチが初期段階にあり、生産の準備が整っていないことは承知していますが、何らかの作業を行う気があれば、実行可能だと思います.

于 2012-08-29T12:24:49.383 に答える
5

オフラインになってオンラインになったときにシームレスに動作するクライアントが必要な場合 (電源が切れた POS のように) 、アプリを主にローカル ストレージで動作させ、バックグラウンドで公開するか、クラウドに同期することをお勧めします。

ローカル ストレージ オプションは、sqlite、sqlexpress、firebird などの軽いものから、mongo、couchdb などの sql オプションのないものまであります。

ただし、クライアントまたはデバイスについては、構成の容易さとオプションの重みを考慮してください。また、クライアントのタイプも考慮する必要があります。デバイスから PC までさまざまなプラットフォームが多数ありますか? 構成と実行時のフットプリントが重いものは必要ありません。それはサービス側で問題ありません。

サービス側では、データの性質と、トランザクション/リレーショナル システム (銀行など) または最終的に一貫性のある/非トランザクション (no-sql) ドキュメントに適しているかどうかを検討してください。オプションとしてハイブリッドを忘れないでください。また、サービス プラットフォームも考慮してください。

デバイスとサービスのストレージ オプションは、サービス インターフェイス (soap、rest/http、ソケットなど) ごとに異なる可能性があります (そうあるべきです)。

1 つのサイズですべてのソリューションに適合することは困難ですが、多くの場合、デバイスまたはクライアントの sqlite のような軽量のものはインストール/構成を容易にし、sqlserver/mysql やcouchdb/mongodb などのサービス側のスケーラビリティは理にかなっています。

読むべきいくつかのリンク:

あなたの質問はかなり広く開かれており、万能のソリューションはありません。うまくいけば、私は考えるためのいくつかのオプションを提供しました.

于 2012-08-29T01:25:15.833 に答える
4

デスクトップ環境としてNode.JSとChrominiumをパッケージ化するAppJs( http://appjs.com/ )と呼ばれる興味深いプロジェクトがあります。現在は非常に新鮮です(ドキュメントはほとんどありません)が、十分に単純なようです(オンラインアプリケーションの場合と同じツールを使用します)。

オフライン環境とオンライン環境の同期について。私はあなたがあなたが想像する方法でCouchDBに頼ることができるとは思えません。CouchDBモバイルサポートは、一部のドキュメントが示唆するほど包括的ではありません。したがって、この意味では、SQL / Mongo/Punchcardsを使用するのと同じです。

XMLまたはJSON(またはプレーンテキスト)に基づいて適切なシリアル化スキームを設計し、オンラインインストールとオフラインインストールの間でファイルを渡すことで、より多くの運が得られる可能性があります。

編集-これを書いているので、Node Webkit --http://nwjs.io/-は明らかにApp.jsの最も明白な代替品です。非常にシンプルなAPIといくつかの優れた機能を備えています。

于 2012-08-29T12:05:26.840 に答える