最近のアクセス:
データ同期の問題

オフライン ネイティブ モバイルアプリケーションのアーキテクチャで説明しているように、オフラインアプリケーションはサーバーと通信します。この通信では、デバイスとサーバーの同期を保つために情報を送受信します。データを送受信するこのメカニズムを次のように呼びます: 同期

同期が必要な理由

理由は次のとおりです:
  • アプリケーションが、より大きなシステムのサブセットである場合、このシステムとの通信が必要です。
  • システム全体のデータベースをデバイスに格納する必要がない場合があります。ほとんどの場合、タスクを実行するためにデバイス上に必要なのはテーブルとレジスタの一部だけです。
  • サーバーは、デバイスで実行できないタスクやリソース使用量が多いタスクなど、負荷の高い処理を実行する能力がある場合があります。
  • 一部のビジネスロジックは、メインアプリケーションでのみ実行できます。インベントリ管理がその一例です。
  • デバイスに最新のデータが必要なので、サーバーからデバイスにデータを送信する必要がある場合があります。

同期の方法

Web サービスを利用します。デバイスは、Web サービスを利用、実行して、サーバーとデータをやり取りできます。
: すべてのサービスを同じサーバーでホストできない場合もあります。

戦略

最初に、次の情報を定義します:
  • オフライン時にアプリケーションで実行する処理
  • オフラインで使用するテーブル
  • オフラインで必要なテーブル内のレコード

同期の開始元 

同期は、必ずデバイスによる情報の要求または送信から始まります。これは、いつインターネットに接続されたか、また接続が十分に良好であるかどうかを認識できるのが、デバイスだからです。情報の要求または送信は、デバイスから行われます。
この関係を考慮して、同期処理の名前を定義します。処理には、デバイスの立場から見た名前をつけます:
  • 受信: サーバーからデータを取得する処理
  • 送信: ローカルでの変更をサーバーにアップロードする処理

同期のタイミング

最適な同期のタイミングは、アプリケーションによって異なります。従うべきルールはありません。要件は場合によって異なります。できるだけ同期を維持する必要がある場合もありますし、それほど頻繁な同期が必要ではない場合もあります。
ルールはなくても、この点に関する検討事項はあります:
  • 同期するには、デバイスをネットワークに接続する必要があります。
  • 情報の送信: デバイスは送信するデータ量を認識しています。送信するデータの量が多い場合は、インターネット接続の状態が良好である必要があります。
  • 情報の受信: デバイスは受信するデータ量を認識できません。デバイスが、同期を実行できるかどうかを判断できるように、中間のステップが推奨される場合があります。ネットワーク接続の状態と、送信する必要があるデータ量を考慮します。
  • 移動しながらデバイスを使用すると接続が切断され、同期の完了前に処理を中断する必要がある場合があります。このため、処理中に接続が失われた場合には、同期を再開できなければなりません。

その他の問題

受信するデータ

データ受信に関しては、次の 2 つの選択肢があります:
  • すべての必要な情報を常に受信し、既存のデータと置換する
  • 変更点だけを受信し、既存のデータに適用する
最初の選択肢では送受信されるデータが多くなり、2 番目の選択肢ではサーバーの処理量が多くなります。

通信のセキュリティ

サーバーとデバイスの間でデータを送受信するときに、LAN やインターネットが使われる場合があります。そのため、セキュリティが非常に重要です。

同期の競合

アプリケーションで同期の競合が発生する場合があります。このような問題と解決方法については、次のドキュメントを参照してください:

処理の順序

オフラインで実行された処理は、デバイスで実行された順序と同じ順序でサーバーで再現する必要があります。この方法で、処理の一貫性が維持されます。オフラインで登録された処理が原因で、その後のイベントが無効になる場合があります。たとえば、デバイスで発注書を挿入した後に製品の在庫が切れた場合、その後のイベントは失敗する必要があります。

エラーのフィードバック

同期後は、デバイスにフィードバックが必要です。サーバーの検証が原因でイベントが失敗した場合は、エラーが発生したことをデバイスに通知する必要があります。これにより、ユーザーが問題に対応できるようになりますし、少なくとも、同期エラーの発生をユーザーに知らせることができます。

画像の同期

マルチメディア (画像、ビデオ、オーディオ) が原因で、同期時の問題が発生する場合があります。
マルチメディアファイルは大きくなりがちで、画像やビデオの数によっては、同期に必要な容量と時間が膨大になる可能性があります。

参考情報

オフラインアプリケーションの生成に関する問題の解決については、「オフライン ネイティブ モバイルアプリケーションの生成」を参照してください。
同期の問題の解決については、「データ同期」を参照してください。






サブページ
Created: 15/01/07 22:47 by Admin Last update: 21/08/23 20:00 by Admin
カテゴリ
Powered by GXwiki 3.0