モバイルDBとサーバーを同期させる(後編)
データ同期で何ができる?
第3回でも説明しましたが、Mobile Linkは、モバイル機器上で動作するSQL AnywhereやUltra Lightなどの軽量データベースとサーバー側データベースを同期させるミドルウエアです。
モバイル機器の上でデータベースを使える最大のメリットは、「通信圏外でも業務システムを利用できること」です。全国各地の配達員、メンテナンス要員や調査員、顧客先で対面して商談する営業マン、保険のセールス・レディーなどが、スマートフォンやハンディ・ターミナル、ノートPCなどを使ってデータベースを利用しています。
モバイルDBにとって重要な機能の1つが、データ同期です。データ同期とは、外出先で発生したトランザクションを本部システムのデータベースへ伝える仕組みであり、また同時に、本部システムで発生したトランザクションをモバイル上のデータベースへ伝える仕組みです。
Mobile Linkの事例としては、第1回でも紹介しましたが、米国の国勢調査員が利用するモバイル端末約15万台規模に、同期の仕組みで採用されています。日本国内でも、最大規模の物流会社(郵政)で利用されています。
モバイル以外の応用例としては、POS(販売時点情報管理)システム、地方の支店・部門のサーバー系システム、デパート出店店舗の対面販売用顧客情報システム、無線LANの設置が難しい倉庫の在庫管理システムなどがあります。こうした、通常は独立した形態で運用しつつも、あるタイミングで本部とデータをやりとりする必要があるケースにおいて、Mobile Linkが利用されています。
|
図1: Mobile Linkの適用事例 |
|
図2: Mobile Linkによるデータ同期の仕組み |
|
図3: Mobile Linkの動作環境 |
同期環境を作ってみよう
Mobile Linkは、基幹のデータベース・サーバーにODBC経由で接続し、モバイル機器上のデータベース(SQL AnywhereやUltra Light)と同期します。
同期する対象となるデータベース・サーバーは、SQL Anywhere以外でも構いません。他社製データベースとも同期できます。また、非RDB(テキスト、スプレッド・シート、APサーバー、Webサービスなど)とも同期は可能です。
Mobile Linkによるデータ同期の流れは、以下の通りです。
Mobile Linkは、同期を要求する時に、統合データベースとセッションを張ります。同期が終了すると、サーバー側の統合データベースとモバイル機器側のリモート・データベースは、一貫性を保った同じ値になります。
同期が開始されると最初に、モバイル機器のデータをサーバーに反映します。前回同期してからモバイル機器のデータベースに対して加えられた変更を抽出し、変更内容をサーバー側の統合データベースにアップロードします。
次に、サーバーのデータをモバイル機器に反映します。前回同期してからサーバー側の統合データベースに加えられた変更を抽出し、変更内容をモバイル機器上のリモート・データベースにダウンロードします。
アップロードとダウンロードはワン・サイクルです。アップロードとダウンロードのそれぞれがトランザクションであり、もし同期途中で通信処理などのトラブルがあった場合は、同期処理の前の内容にロール・バックします。同期の開始は、モバイル機器上のMobile Linkクライアントから実行します。
Mobile Linkの環境と実際の流れについて、もう少し内部の動きを説明します。
例として、「実績」テーブルを同期します。サーバー側の統合データベース・サーバーには「実績」テーブルが、中間層にはMobile Linkサーバーがあります。モバイル機器側には、同期クライアントと、クライアント・データベースに「実績テーブル」があります。
同期に必要な環境を管理するテーブル類は、Mobile Linkの統合データベース・サーバー側に用意されています。
Mobile Linkサーバーを起動する際には、引数によって機能のオン・オフやスレッド数などを指定できます。この時に指定したデータ同期用のスレッドを経由して、統合側のデータベースと会話します。
クライアント側の設定は、Mobile Linkサーバー名などの基本情報を指定するだけで構いません。
モバイル機器側では、入力した実績結果を実績テーブルに格納します。
まずは、業務アプリケーション側で用意した同期開始ボタンなどを押すことにより、セッションが張られてMobile Linkとつながります。このコネクションを使って、データベースの内部情報を抽出し、Mobile Linkサーバーにアップロードします。アップロード結果は、サーバー側の統合データベースに通知され、その内容が実績テーブルに書き込まれます。
次に、ダウンロードのフェーズになります。前回同期した以降のデータを実績テーブルから抽出してダウンロード・データを抽出し、モバイル機器側に渡し、その結果がモバイル側の実績テーブルに格納される、という流れになります。統合データベース側で必要な同期関係のプログラムは、統合データベース・サーバーの管理情報の中に格納されます。
Mobile Linkサーバーは、同期サーバーの引数(パラメータ)の指定などによって、いろいろな動きをします。モバイル機器側は、設定程度なので、既存システムに対して、柔軟にモバイル機器を追加することができます。