1

Web サービスとクライアント サーバー アーキテクチャについて、やや理論的な質問をします。

約 50 のテーブルを持つデータベースを備えたサーバーがあります。このサーバーは、クライアントに関連付けられたユーザーに関する情報を含むテーブルを 1 つでも保持します。各クライアントには、db 内のすべてのデータのサブセットとの関連付けがあります。

定義されたアーキテクチャは、(Android アプリで実行されている) 各クライアントが、定義済みの頻度で特定の数の Web サービスを呼び出し、ローカル データベースを満たし、サーバー sb に存在するすべてのテーブルのコピーを作成し、関連する情報のみを含むことを意味します。要求しているクライアント。

さらに、db サーバー側のデータは変更される可能性があるため、頻繁な同期が必要です。

クライアント アプリケーションはショップ オンライン アプリケーションとして想像できるため、プロバイダー、記事の閲覧、注文の作成、注文の削除などを行うことができるはずです。

つまり、ローカル データベースのフィルについて話すときは、ストア プロバイダー、記事、つまり、要求しているクライアントに関連するすべての情報を意味します。

ローカルデータベースにこの情報を入力するのは理にかなっていますか?

情報が必要な場合にのみWebサービスを呼び出し、ローカルデータベースに情報を保存しない方が合理的だと思います。したがって、同期はもう必要ありません。

あなたの考えを教えてください。ありがとうございました。

4

2 に答える 2

3

私は Android 開発について何も知りませんが、Web サービスと SOA の使用経験は豊富です。

私の経験では、特にクライアント デバイスのストレージと処理能力が限られている場合は、すべてのビジネス ロジックとデータ ロジックを Web サービスに配置し、クライアント アプリはそれらのサービスの表示と呼び出しのみに使用する必要があります。それをどのように実装するかは、私たちがあなたに代わって答えることができないものです. プロジェクトごとに異なります。

唯一の例外は、接続していないときにアプリを実行する必要がある場合です。その場合は、特定の要件を理解していることを確認し、絶対に必要なデータのみをクライアントに保持し、切断されている間は絶対に必要なビジネス ロジックのみを提供するように十分に注意してください。

(これは、セキュリティをよりシンプルに保つのにも役立ちます。デバイスの紛失または盗難は、データ侵害の最大の原因の 1 つであるため、デバイス上の機密データの可能性が低いほど良いのです。)

参考になるかわかりませんが、捨てようと思いました。

于 2012-09-12T20:24:15.953 に答える
0

アプリケーションがオンラインでのみ動作する場合は、YES. データをデータベースに保存し、後で取得することを心配する必要はありません。オンラインとオフラインの両方をサポートする必要がある場合は、データベースを使用する必要があります。

サービスまたは非同期タスクまたはハンドラーを実行して、Android アプリケーションから Web サービスを呼び出すことができます。これにより、UI スレッドがブロックされなくなります。

応答が大きすぎる場合は、おそらく中間層について考える必要があります。そうすることで、デバイスが応答を処理しやすくなり、ネットワーク伝送が高速になる JSON に SOAP 応答を変換できます。

あなたの要件に基づいて、オンラインモードのみをサポートするのに十分であると信じています...ユーザーがアプリを2日間使用せずにログインし直して、無関係なオフラインデータを表示すると、データが異なる可能性があるためです

于 2012-12-18T22:57:20.597 に答える