2.8. オフライン機能¶
2.8.1. オフライン機能の概要¶
オフライン機能は、サーバ上のデータをクライアントのローカルストレージ(ローカルDB)にキャッシュし、ネットワークに接続していないオフライン環境でも必要なデータにアクセスできる機能を提供します。
ローカルDBにキャッシュしたデータは、サーバとの間で手動で同期することができます。
注意
オフライン機能は、現在 Android および .NET のみのサポートとなります。
2.8.3. 同期処理¶
同期処理では、クライアント端末のローカルDBとサーバ側のDBとの間でデータを同期します。 データ同期では前回同期から更新のあった差分データを同期しています。(通信量を削減)
同期は、ユーザによる同期要求をトリガとして同期処理を実行します。
また、クエリ条件を指定することで、同期するデータの範囲を指定できます。同期範囲は、同期処理の前に指定しておく必要があります。
同期処理では、下記 1, 2 の処理を行っています。前述の同期範囲の指定は、下記の1.の処理が対象となります。 オフライン時にクライアント側で更新したデータを、オンライン時にサーバへ送信する手段が必要となるため、 下記2.では、同期範囲の指定に関係なく、クライアント側で更新のあったデータは全てサーバに送信されます。
- サーバ側で更新のあったデータを受信
- クライアント側で更新したデータをサーバへ送信
2.8.4. データ衝突の解決¶
クライアントとサーバ間で同期を行う際、同じデータに対してサーバ側とクライアント側で更新があると データ衝突が発生します。このデータ衝突の解決のため、事前にサーバ側とクライアント側のどちらのデータを優先して使用するか衝突解決ポリシーで指定することができます。
衝突解決ポリシーとしては、以下が設定できます。
- サーバ優先 (デフォルト)
- データ衝突時に、サーバ側のデータを使用してローカルDBのデータを更新します。常にサーバ側のデータを優先して取り込みたい場合に本設定を使用します。
- クライアント優先
- データ衝突時に、クライアント側のデータを使用してサーバ側の該当データを更新します。常にクライアント側のデータを優先してサーバに反映させたい場合に本設定を使用します。
- マニュアル
- 衝突したデータをユーザに通知し、ユーザが選択したデータ(サーバ/クライアント)で該当データを更新します。