- 第1回:いつでもどこでも使えるデータベース 「SQL Anywhere Studio」
- 第2回:SQL Anywhereのインストールと概要
- 第3回:SQL Anywhereのデータベース管理の基礎
- 第4回:SQL Anywhereでの主キー/スケジュール処理/暗号化
- 第5回:SQL Anywhereのデータベース再構築/アップデート
- 第6回:省リソースで軽快に動作する組込向けデータベース「Ultra Light」
7.1 Mobile Linkとは
Mobile Linkとは、データベース同期のためのミドルウェアで、複数のSQL Anywhereと1つのセンターデータベースとを双方向に同期させる仕組みだ。Mobile Linkを使えば、センターデータベースを中心として多数のSQL Anywhere同士でデータを共有することができる。このような同期テクノロジは、データベースが分散してしまうモバイルシステムには欠かすことができない(注1)。
Mobile Linkの用語では、センターデータベースの役割を「統合データベース」と呼び、分散しているSQL Anywhereの役割を「リモートデータベース」と呼ぶ。「統合データベース」はリモートデータベースのデータを「統合」し、一方、統合データベースからみて「離れた」場所に「リモートデータベース」は位置するので、この役割名で呼ばれる(注2)。
Mobile Linkの適用例を2つ挙げてみよう。1つ目の例は、営業スタッフが携帯する顧客情報管理システムだ。ノートパソコンやスマートフォン(PDA)などのモバイルデバイスを用いて、営業スタッフが外出先で顧客データを活用する状況を想定しよう(図7.1)。ネットワーク環境が常に利用できるとは限らず、レスポンスも重視されるため、デバイス単独で業務処理ができるとよい。そこで、モバイルデバイスにアプリケーションとSQL Anywhereとをインストールして顧客情報をデータベース化すれば、デバイス上で検索可能となる。また、更新された情報があれば、逐次デバイス上のSQL Anywhereに記録していく。一方、本社には統合データベースがあり、顧客や営業結果に関する全情報を把握する。営業スタッフ全員分となればデータサイズもかなりの量になるだろう。
ここで技術的課題となるのが、本社の統合データベースと営業スタッフが携帯するデバイスのリモートデータベースとの情報をどのようにして共有するか、すなわちデータベースの同期方法である(注3)。統合データベースのコピーを持ち歩ければよいが、物理的にそれは不可能であるし、そうする必要もない。営業スタッフは担当する顧客情報さえ手元にあれば済むので、必要なデータが同期できればよい。このような場面で要求されるデータベースの同期機能には次のようなものがある(図7.2)。
- 統合データベースの一部分を切り出して同期できること
- データを双方向に同期できること
- 競合したデータを同期時に解決できること
- 低速で不安定な回線であっても確実に同期できること
- パフォーマンスがよいこと
2つ目の例は、本社と多数の支店を持つ流通業界などで利用される業務システムの例だ(図7.3)。各支店にリモートデータベースを配備し、支店のトランザクションは自身のリモートデータベースに対して行う。本社には統合データベースを置いて全支店のデータを管理し、データウェアハウスとして業務分析する。リモートデータベースの情報は夜間などにバッチ処理として、定期的に本社に伝える。
このような同期を用いたアーキテクチャは、支店のアプリケーションが直接統合データベースにアクセスする場合に比べ、個々のトランザクションがWAN経由でなされることがなく処理が分散するので、統合データベース側と支店側の双方にとってパフォーマンスに優れている。また、本社・支店間で通信できなくとも支店でのトランザクションが完了するので、障害にも強い。同期に対する課題は1つ目の例と共通する。
このように、データベースの同期にはさまざまな技術的課題があるが、それに応えるのがMobile Linkという同期技術だ。Mobile Linkは、統合データベースと複数のリモートデータベースとが同期する「インフラ」を提供する。テーブル内の行と列の両方を指定して同期の対象とすることができ、トランザクションは双方向に伝わり、競合解決ロジックも柔軟に実装できる。同期途中で不意に回線が切断されてもデータの整合性が失われることはない。また、更新されたデータだけ同期するなど、冗長なデータの転送を抑制できる。本章では、Mobile Linkのさまざまな機能を紹介し、実践的な同期システムの構築方法を見ていく。