モバイルDBとサーバーを同期させる(後編)

2010年5月28日(金)
アイエニウェア・ソリューションズ株式会社

同期環境を作ってみよう

実際に、同期環境を作成してみます。第3回で紹介した管理ツール、Sybase Centralを使います。

Mobile Linkタスクの[同期モデル作成]を使用すると、簡単に同期アプリケーションを作成できます。このウィザードによって、複雑な同期システムに伴う多くの難解な実装作業を処理します。

Sybase Centralのモデル・モードを使うと、同期モデルをオフラインで表示しながら、簡単なインタフェースで変更を反映できます。こうして作成したモデルを、配備オプションを使うことによって統合データベースに配備できます。

前回でも紹介しましたが、SQL Anywhere、Ultra Light、Mobile Linkは、アプリケーションを開発するだけであれば無償で利用できます。暗号化やインメモリーなどのオプション機能を除けば、製品版と同じ機能を使えます。こちらからDeveloper Editionをダウンロードして試してみてください。

同期環境を作成する全体の流れは、「同期環境の設定」(図4左フロー)→「同期モデルの展開」(図4右フロー)→「同期実行」の順になります。 一連の操作は、文字の説明だけでは分かりづらいと思うので、こちらのビデオも参考にしてください。

まずは、Mobile Linkを設定します。同期の設定には対話形式のウィザードが用意されており、図4のように進めて行くと、SQLベースの同期スクリプトが生成されます。他社製データベースでも利用できます。

図4: 同期環境の設定

次に、同期モデルを作成し、サーバー側の統合データベースに必要なシステム環境を構築します。その後、同期対象となるテーブルの詳細や、どういった形の同期手法を行うのか、などを指定していきます。

次に設定モデルを展開します。生成した内容をもとにMobile Linkサーバーが起動されるので、モバイル機器側の同期を実行し、同期が完了する、というのが一連の流れになります。

図5: 同期の詳細設定(ダウンロード・タイプ)

図6: 同期の詳細設定(競合設定)

実際に、標準でインストールされるデモ・データベースを使って、同期環境を設定します。第3回で紹介した管理ツール、Sybase Centralを使います(図4の左側同期環境の設定開始)。

Mobile Linkの同期設定というボタンを押すと、同期ウィザードが開始します。その中で、同期モデルの名称を指定します。同期に必要な要件、注意事項が書いてあるので、この内容をチェックして次へと進み、統合側のデータベースを選択して接続します。これで、同期に必要なシステム環境がインストールされます。

次に、モバイル機器上のリモート・データベースを作成するかしないか、既にあるものがあるかないかを選択します。次へと進んで、リモート・データベースを定義するのに使う統合テーブルを選択します。

データを同期させるための詳細な設定は、以下の通りです。

まずは、タイム・スタンプ・ベース、差分同期、全体同期、カラム単位など、カスタムのダウンロード・ロジックを使うかどうかを設定します(図5)。例えば、差分で同期する場合は、差分に対するタイム・スタンプのカラムを設定するほか、削除時のダウンロード抽出をどうやるか、といった設定をします。

続いて、競合の検出をどうするかを設定します(図6)。パブリケーションの名前を指定し、スクリプト・バージョンを指定し、完了ボタンを押します。これにより、モバイル機器側のデータベースへの同期ロジックが作成されます。これで同期モデルの作成は完了なので、保存します。

次に、同期モデルを展開します。Sybase Centralの画面には、Mobile Linkで使うシステム・テーブルとしてサンプル・データベースのml_xxxがありますが、これにはデータが入っていません。設定モデルを展開するウィザードを実行し、次へと進んで、統合データベースの作成モデル、作成スクリプトを抽出します。

リモート・データベースを抽出し、Mobile Linkのサーバーを設定します。

最後に、モバイル機器側の同期クライアントの設定をします。

以上で同期モデルの展開が完了します。

著者
アイエニウェア・ソリューションズ株式会社

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています