2.8. オフライン機能

2.8.1. オフライン機能の概要

オフライン機能は、サーバ上のデータをクライアントのローカルストレージ(ローカルDB)にキャッシュし、ネットワークに接続していないオフライン環境でも必要なデータにアクセスできる機能を提供します。

ローカルDBにキャッシュしたデータは、サーバとの間で手動で同期することができます。

注意

オフライン機能は、現在 Android および .NET のみのサポートとなります。

2.8.2. 暗号化

ローカルDBにキャッシュしたデータは暗号化されます。

暗号化のためのパスワードは、クライアント側の初期化時に設定します。

2.8.3. 同期処理

同期処理では、クライアント端末のローカルDBとサーバ側のDBとの間でデータを同期します。 データ同期では前回同期から更新のあった差分データを同期しています。(通信量を削減)

同期は、ユーザによる同期要求をトリガとして同期処理を実行します。

また、クエリ条件を指定することで、同期するデータの範囲を指定できます。同期範囲は、同期処理の前に指定しておく必要があります。

同期処理では、下記 1, 2 の処理を行っています。前述の同期範囲の指定は、下記の1.の処理が対象となります。 オフライン時にクライアント側で更新したデータを、オンライン時にサーバへ送信する手段が必要となるため、 下記2.では、同期範囲の指定に関係なく、クライアント側で更新のあったデータは全てサーバに送信されます。

  1. サーバ側で更新のあったデータを受信
  2. クライアント側で更新したデータをサーバへ送信

2.8.4. データ衝突の解決

クライアントとサーバ間で同期を行う際、同じデータに対してサーバ側とクライアント側で更新があると データ衝突が発生します。このデータ衝突の解決のため、事前にサーバ側とクライアント側のどちらのデータを優先して使用するか衝突解決ポリシーで指定することができます。

衝突解決ポリシーとしては、以下が設定できます。

  • サーバ優先 (デフォルト)
    • データ衝突時に、サーバ側のデータを使用してローカルDBのデータを更新します。常にサーバ側のデータを優先して取り込みたい場合に本設定を使用します。
  • クライアント優先
    • データ衝突時に、クライアント側のデータを使用してサーバ側の該当データを更新します。常にクライアント側のデータを優先してサーバに反映させたい場合に本設定を使用します。
  • マニュアル
    • 衝突したデータをユーザに通知し、ユーザが選択したデータ(サーバ/クライアント)で該当データを更新します。