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

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

今回は、モバイル機器上で動く軽量なRDB(リレーショナル・データベース)「SQL Anywhere」、さらに軽量な「Ultra Light」、および、サーバーとモバイル機器上のDBを連携/同期する「Mobile Link」について解説します。

SQL Anywhereの概要

SQL Anywhereは、標準SQLに準拠しつつ、RDBMSに必要な機能を網羅した、正統派のRDBMSです。機能としては、例えば、トランザクション処理、リカバリ処理、オンライン・バックアップ、参照整合性のサポート、ストアド・プロシージャ、トリガー、行ロック、スケジュールとイベントなどを備えています。

このフル機能のRDBMSが、UNIX、Linux、Windowsのサーバーはもちろん、モバイル機器用のWindows MobileやWindows CEでも動きます。このため、このデータベースを習得するだけで、社内システムからモバイル・システムまで対応できます。また、対応OS間でバイナリ互換なため、PCで開発したデータベース・ファイルとトランザクション・ログ・ファイルをモバイル機器へコピーして利用できます。非常に扱いが楽なデータベースです。

モバイル・システムのデータベース選定においては、社内システム以上に運用管理まで考慮することが重要です。この点、SQL Anywhereは、突然の電源断の自動リカバリ、自己チューニング機能、データベース・ファイル・サイズやキャッシュ・サイズの自動拡張など、運用管理コストを削減する機能に優れています。専任のデータベース管理者を置けないモバイル機器に適したデータベースと言えます。

また、ウィザード形式で[次へ]ボタンをクリックしていくだけで、15分程度でインストールが完了します。アプリケーションに組み込む際にも、EXEファイル(実行形式ファイル)やDLLファイル(ライブラリのファイル)単位で配備できるため、大量配備に向いているデータベースです。

Ultra Lightの概要

この、サーバーからモバイル機器まで対応しているSQL Anywhereとは別に、Ultra Lightと呼ぶ、モバイル機器(Windows CE搭載機、Windows Mobile搭載機、それらよりも容量の小さい機器)向けの、より軽量なデータベースもあります。

Ultra Lightの機能は、SQL Anywhereのサブセットとなります。より複雑な処理をするのであればSQL Anywhereを使う必要がありますが、モバイルの用途では、Ultra Lightで十分と考えられます。また、Ultra Lightが必要とするライブラリは数個だけなので、アプリケーションの配布がより容易です。

しかし、Ultra Lightはデータベース・エンジンとアプリケーションが一体化されているので、アプリケーションがマルチプラットフォームを意識して作られていない限り、別のプラットフォーム上では動作しません。また、データベース・ファイルはSQL Anywhereとの互換性がなく、データを抽出/反映するためには、いったんXMLに変換する処理などが必要になります。

モバイル機器のローカル・データベースとしてUltra LightとSQL Anywhereのどちらを選ぶかは、要件に合わせて選択する必要があります。

図1: Ultra LightとSQL Anywhereの違い

モバイル機器上ではデータベースを保持せずに、ファイル・システム(とテキスト・データベース)を利用する方法もとれますが、システムの異常終了時のファイル破損の可能性やアプリケーション変更の際の工数増、セキュリティなどの問題があるため、重要な企業データのモバイル化にはお勧めできません。

Mobile Linkの概要

Mobile Linkとは、先に説明したSQL AnywhereやUltra Lightなどのモバイル機器上のデータベースと、サーバー側のデータベースを連携・同期するためのミドルウエアです。

データベースの同期と言うと、クラスタリングによって可用性を高める用途を思い浮かべる方もいらっしゃるかもしれませんが、Mobile Linkの同期は、分散したデータを、整合性を保ちながら共有するためのものです。

スマートフォン上で完結するゲームなどのアプリと異なり、企業のモバイル・データ活用において最も重要なポイントが、社内システムとのデータ連携です。ここでMobile Linkが大きな力を発揮します。

Mobile Linkは、数万台レベルのシステムにおけるデータ連携の実績があり、サーバーとのデータ連携を1から手作りするよりも、開発期間の削減や運用コストの削減につながります。

Mobile Linkでは、モバイル機器のデータベースと、サーバー側のOracle、SQL Server、DB2、My SQLなどのデータベースとを同期させることが可能です。モバイルDBとのデータ同期に関しては、各DBベンダーはあまり力を入れていないので、他社製DBとの同期であっても、Mobile Linkの実績は抜きんでています。

複数の同期クライアントを同時に処理できる上、テーブル内の行と列の両方を指定して同期の対象とすることができます。個々の営業担当者が使うモバイルDBのデータは、サーバーのデータベースの完全なコピーである必要はなく、個々の担当顧客データだけを持つように設定できます。リソースが限られているモバイル機器を有効利用できます。

また、同期させたいデータに優先度を設定できます。優先度が違うデータを1つのグループとして別々のタイミングで同期させられるため、例えば、売り上げ・注文データは1日に数回同期させ、変更が少ない商品マスターは1カ月に1回だけ同期させるといった使い分けが可能です。システム運用の効率化が図れます。

モバイル環境では絶対に起こりうる、通信回線が切断されたり同期途中でエラーが起こったりという事故があっても、更新データはロールバックされて同期前の状態に戻ります。また、更新されたデータだけを同期するようになっているため、冗長なデータ転送を抑制できます。これにより、モバイル環境での不安定な通信における同期処理を短時間で実行できます。

データを同期させるために用いる同期スクリプトは、自動的に生成できます。

もちろん、手作りでも、このような仕組みを作ることは可能です。しかし、手作りの場合、複数の端末からのデータの整合性や競合解決に苦労したという声をよく聞きます。

次ページからは、実際にデータベース管理ツールを使ってSQL Anywhereを操作してみます。SQL Anywhere、Ultra Light、Mobile Linkは、アプリケーションの開発までは無償で利用できるので、こちらからDeveloper Editionをダウンロードして試してみてください。

Developer Editionは、暗号化やインメモリーなどのオプション機能を除けば、製品版と同じ機能を使えます。また、アプリケーションの開発期間の使用においてはライセンス料は必要なく、無料で無期限に使えます。

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

連載バックナンバー

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

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

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

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