Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

モバイル環境に分散したデータを同期する「Mobile Link」

SQL Anywhereの魅力を探る 7

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/10/18 09:50

SQL Anywhereは、組込み・中小規模ビジネス・モバイル分野などで特に普及している、省リソースで高速な処理を実現するリレーショナルデータベースです。この連載では、その魅力を紹介していきます。第7回は、データベース同期のためのミドルウェア「Mobile Link」について紹介します。

目次

7.1 Mobile Linkとは

 Mobile Linkとは、データベース同期のためのミドルウェアで、複数のSQL Anywhereと1つのセンターデータベースとを双方向に同期させる仕組みだ。Mobile Linkを使えば、センターデータベースを中心として多数のSQL Anywhere同士でデータを共有することができる。このような同期テクノロジは、データベースが分散してしまうモバイルシステムには欠かすことができない(注1)。

 Mobile Linkの用語では、センターデータベースの役割を「統合データベース」と呼び、分散しているSQL Anywhereの役割を「リモートデータベース」と呼ぶ。「統合データベース」はリモートデータベースのデータを「統合」し、一方、統合データベースからみて「離れた」場所に「リモートデータベース」は位置するので、この役割名で呼ばれる(注2)。

注1
 「データベースの同期」と言うとクラスタリングの用途を思い浮かべる読者もあるかと思うが、Mobile Linkの同期はそのような目的ではなく、分散したデータを整合性を保ちながら共有するためのものである。
注2
 統合データベースとリモートデータベースとが同一マシンにあったり、近接したマシンにあったりすることもあるので、名前に惑わされないようにしてほしい。

 Mobile Linkの適用例を2つ挙げてみよう。1つ目の例は、営業スタッフが携帯する顧客情報管理システムだ。ノートパソコンやスマートフォン(PDA)などのモバイルデバイスを用いて、営業スタッフが外出先で顧客データを活用する状況を想定しよう(図7.1)。ネットワーク環境が常に利用できるとは限らず、レスポンスも重視されるため、デバイス単独で業務処理ができるとよい。そこで、モバイルデバイスにアプリケーションとSQL Anywhereとをインストールして顧客情報をデータベース化すれば、デバイス上で検索可能となる。また、更新された情報があれば、逐次デバイス上のSQL Anywhereに記録していく。一方、本社には統合データベースがあり、顧客や営業結果に関する全情報を把握する。営業スタッフ全員分となればデータサイズもかなりの量になるだろう。

図7.1 : 営業スタッフのためのモバイルシステムの例
図7.1 : 営業スタッフのためのモバイルシステムの例

 ここで技術的課題となるのが、本社の統合データベースと営業スタッフが携帯するデバイスのリモートデータベースとの情報をどのようにして共有するか、すなわちデータベースの同期方法である(注3)。統合データベースのコピーを持ち歩ければよいが、物理的にそれは不可能であるし、そうする必要もない。営業スタッフは担当する顧客情報さえ手元にあれば済むので、必要なデータが同期できればよい。このような場面で要求されるデータベースの同期機能には次のようなものがある(図7.2)。

  1. 統合データベースの一部分を切り出して同期できること
  2. データを切り出す際には、行やカラム単位、またはその両方で、任意の部分を指定できるとよい。
     
  3. データを双方向に同期できること
  4. 外出先ではデータの検索だけでなく更新もできないと不便なので、リモートデータベースで発生した更新を統合データベースに伝える必要もある。また、同期完了時点で統合データベースのデータとデバイス上のデータとが一致するのが好ましい(注4)。
     
  5. 競合したデータを同期時に解決できること
  6. 営業スタッフ同士が情報を共有した場合、同一であるはずのデータに対して別々に更新してしまうことが起こりうる。単純にデータをやり取りしたのではデータの不整合が起きてしまうので、同期時にデータの競合を検出し、解決できなければならない。
     
  7. 低速で不安定な回線であっても確実に同期できること
  8. 外出先で同期する場合、無線通信(無線LANや携帯電話・PHSによるデータ通信)を利用するだろうから、回線が不安定であっても確実な同期が行われなければならない。
     
  9. パフォーマンスがよいこと
  10. モバイルデバイスや無線通信の環境では、その性質上、デスクトップマシンや有線LANの環境よりも処理能力が落ちる。にもかかわらず、ユーザが操作するシステムになるので、パフォーマンスは重要である。
    同期のパフォーマンスに影響する要素で本質的なものはトラフィック量だ。やり取りされるデータが少なければパフォーマンス(レスポンスタイム)がよくなる。よって、(1)や(2)で挙げた機能は、パフォーマンスの向上にもつながる。
注3
 ここで「デバイス」とは、リモートデータベースのあるマシンを総称したものである。PDAやノートパソコンを念頭におくが、技術的にはデスクトップPCでもよい。
注4
 たとえば、SQL Remoteは「ゆるやかな同期」であるため、データの伝達にタイムラグが発生する。
図7.2 : 同期の概念図。センターサーバのデータを地区担当の3つのリモートデータベースで同期している
図7.2 : 同期の概念図。センターサーバのデータを地区担当の3つのリモートデータベースで同期している

 2つ目の例は、本社と多数の支店を持つ流通業界などで利用される業務システムの例だ(図7.3)。各支店にリモートデータベースを配備し、支店のトランザクションは自身のリモートデータベースに対して行う。本社には統合データベースを置いて全支店のデータを管理し、データウェアハウスとして業務分析する。リモートデータベースの情報は夜間などにバッチ処理として、定期的に本社に伝える。

図7.3 : 本社と支店からなる分散データベースの例
図7.3 : 本社と支店からなる分散データベースの例

 このような同期を用いたアーキテクチャは、支店のアプリケーションが直接統合データベースにアクセスする場合に比べ、個々のトランザクションがWAN経由でなされることがなく処理が分散するので、統合データベース側と支店側の双方にとってパフォーマンスに優れている。また、本社・支店間で通信できなくとも支店でのトランザクションが完了するので、障害にも強い。同期に対する課題は1つ目の例と共通する。

 このように、データベースの同期にはさまざまな技術的課題があるが、それに応えるのがMobile Linkという同期技術だ。Mobile Linkは、統合データベースと複数のリモートデータベースとが同期する「インフラ」を提供する。テーブル内の行と列の両方を指定して同期の対象とすることができ、トランザクションは双方向に伝わり、競合解決ロジックも柔軟に実装できる。同期途中で不意に回線が切断されてもデータの整合性が失われることはない。また、更新されたデータだけ同期するなど、冗長なデータの転送を抑制できる。本章では、Mobile Linkのさまざまな機能を紹介し、実践的な同期システムの構築方法を見ていく。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 森脇 大悟(モリワキ ダイゴ)

    1974年生まれ。神奈川県川崎市出身。京都大学理学部物理学科卒業。同大学院 修士課程中退後、有限会社グルージェント(現・株式会社グルージェント)入社。 SIとして金融や物流システムを手がける。2003年アイエニウェア・ソリューションズ株式会社入社。エンジニアとして製品の導入支援やコンサルティング業...

バックナンバー

連載:SQL Anywhereの魅力を探る

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5