最近のアクセス:
オフライン アプリケーション アーキテクチャの概念の詳細

スマートデバイス用オフラインアプリケーションは、デバイスにまったく新しい流れのシナリオを提供します。このため、オフライン アプリケーション アーキテクチャは、GeneXus が提供するオンライン アプリケーション アーキテクチャよりも複雑になります。また、GeneXus はクライアント側 (デバイス) またはサーバー側で補助テーブル、ファイル、およびオブジェクトを作成して同期プロセスを実行します。
このドキュメントはネイティブ モバイル オフライン アプリケーションのアーキテクチャを補足するものであり、このようなタイプのアプリケーションを GeneXus で生成する方法の概念の詳細について説明します。

クライアント側のアーキテクチャ

データ送信のための補助構造

ネイティブ モバイル オフライン アプリケーションのアーキテクチャ」で説明したように、デバイスでオフライン作業を行うには、ローカルデータベースが必要です。これは、サーバーに接続されているかどうかに関係なく、デバイスでいつでもデータの挿入、更新、削除ができるということを意味します。ほとんどのシナリオでは、デバイスのデータを最新の状態に維持したり、デバイスで行われたすべての変更をサーバーに送信したりするため、このようなアプリケーションを中央のサーバーと同期する必要があります。このプロセスは、「データ同期」と呼ばれます。
しかし、デバイスは変更された内容をどうやって認識するのでしょうか。
デバイスで行われたすべての変更を、デバイスが接続されたときにアプリケーションサーバーに送信できるようにするためには、変更された内容を格納しておく必要があります。
このために、オフライン データベース オブジェクトで定義されたテーブルとともに、GxPendingEvents というテーブルがローカルデータベースに作成されます。このテーブルには、ローカルデータベースで行われたすべての変更 (挿入、更新、削除) が格納されます。これらの変更は「同期イベント」として補助テーブルに格納されます。
重要な注記: GxPendingEvents テーブルに格納されるのは、ビジネスコンポーネントが行った変更 (挿入、更新、削除) だけです。
デバイスが BC を実行するたびに、そのイベントの関連情報がすべて GxPendingEvents テーブルに格納されます。デバイスが Synchronization.Send メソッドを実行するたびに、状態が「保留中」のイベントがすべて GxPendingEvents テーブルから送信されます。
SynchronizationEvents 外部オブジェクトを使用すると、このテーブルのデータにアクセスできます。

データ受信のための補助構造

オフラインアプリケーションのもう 1 つの重要なコンポーネントは、データ受信プロセスです。このプロセスでは、両方のシステムの同期状態を維持するために、サーバーからデバイスにデータを転送します。
しかし、デバイスとサーバーは、同期されていないかどうかをどのようにして認識するのでしょうか。
デバイスが同期を初めて試行する場合、サーバーは、オフライン データベース オブジェクトで定義された必要なデータをすべて送信します。また、サーバーは、デバイス内の JSON ファイルに格納される一連のテーブルのハッシュを送信します。
以降の同期では、デバイスはテーブルのハッシュをサーバーに送信します。
これらのハッシュは、最後の同期以降に変更が行われたかどうかを判断するために使われます。次回の同期では、サーバーは変更されたデータのみ送信します。データ変更のサーバーでの処理方法は、オフライン データベース オブジェクト[ Data Receive Granularity ] プロパティによって決定されます。

サーバー側のアーキテクチャ

ネイティブ モバイル オフライン アプリケーションのアーキテクチャに加えて、GeneXus の開発者がオフライン データベース オブジェクト[ Data Receive Granularity ] プロパティの値を By Row に設定した場合、サーバーアーキテクチャが変更されます。
GeneXus には、サーバーのデータをデバイスで受信するための代替方法が 2 つ用意されています。この 2 つの実装オプションは [ Data Receive Granularity ] プロパティによって提供されます。開発者は、同期の単位として By Table (シンプルな実装) または By Row (少し複雑な実装) を選択できます。
同期の単位として By Row ([ Data Receive Granularity ] プロパティの既定値) を使用することを選択した場合、データベーステーブルの作成プロセスにおいて、特定のテーブルがサーバーデータベースに新しく作成されます。
作成されるテーブルは、次のとおりです: GXPARAMETERS、GXDEVICERESULT、および GXRESULTROW
イメージ:33761.png
: 各テーブルを作成するための文とともに、gxrowlevelcache_ReorganizationScript.txt という名前のファイルが生成されます。プログラムを実行するユーザーがデータベースの権限を持っていない場合、対応するチームがデプロイ時にそれらの文を実行する必要があります。

これらのテーブルには、行単位の同期を実行するために必要な情報がすべて格納されます。
テーブルのサイズが過度に増加しないようにするため、 [ Minimum Time Between Table Purges ] プロパティを使用してテーブルを定期的にパージできます。

参考情報







サブページ
Created: 15/01/07 22:50 by Admin Last update: 21/05/21 03:34 by Admin
カテゴリ
Powered by GXwiki 3.0