SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

SQL Anywhereの魅力を探る

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

SQL Anywhereの魅力を探る 7


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

7.1.1 Mobile Linkのアーキテクチャ

 Mobile Linkのアーキテクチャは図7.4のようになる。統合データベースサーバとリモートデータベースサーバとが直接に接続することはなく、Mobile Linkサーバが両者の通信を仲介して同期を制御する。

図7.4 : Mobile Linkのアーキテクチャ
図7.4 : Mobile Linkのアーキテクチャ

 まず、この3つのサーバの役割について説明する(以後、読みやすさを優先して、誤解の恐れのない限り、データベースサーバのこともデータベースと書く)。

統合データベース

 統合データベースは、リモートデータベース上の同期対象となるデータすべてを保持する。同期されないデータが統合データベースやリモートデータベースにあってもかまわない。

 Mobile Linkが対応する統合データベースとして、以下のものがある(注5)。このようにiAnywhere社以外のデータベースにも対応している。

  • SQL Anywhere / Ultra Light
  • Sybase Adaptive Server Enterprise
  • Oracle
  • Microsoft SQL Server
  • IBM DB2

 統合データベースは、同期されるデータだけでなく、Mobile Link同期を実行するために必要なシステム情報(同期ユーザ情報や同期スクリプト、競合解決のスクリプト、同期ステータスなど)も保持する。Mobile Linkサーバはこれらを参照して、同期を制御する。

注5
 Mobile Link同期を行うには、Mobile Link同期用のシステムテーブルやストアドプロシージャが統合DBになければならない。
それらを作成するスクリプトが、SQL Anywhereをインストールしたディレクトリの「MobiLink\setup」ディレクトリに、DB種別ごとに用意されているので、実行しておく。SQL Anywhere 10や他社製DBを統合DBとして利用する際にこの作業が必要となる。
なお、SQL Anywhere 9ではデフォルトで設定されているのでこの作業は不要だ。

Mobile Linkサーバ

 Mobile Linkサーバは、統合データベースとリモートデータベース間の通信を仲介し、同期プロセスを制御する。統合データベースとMobile Link間のやり取りは、ODBCで行われる。Mobile Linkサーバは同期開始時にMobile Link同期に関するシステム情報を統合データベースから読み出し、その情報に従って同期を処理する。

 一方、リモートデータベースとMobile Linkサーバ間は、以下の2つの接続方法がある。

  • TCP/IP
  • TCP/IP上で、Mobile Link固有のプロトコルで通信する。SSLによる暗号化も可能である。
  • HTTP/S
  • HTTPに従ってMobile Linkのデータをやり取りする。HTTPSによる暗号化も可能である。
Active Syncを使った同期
 Windows CE上のSQL Anywhereから同期する場合、Active Sync経由でも同期できる。この場合、クレードルのActive Syncを通してホストPCとやり取りし、ホストPCとMobile Linkサーバ間はTCP/IPやHTTP/Sによる接続になる。もちろん、Windows CEデバイスにネットワークカードを装着し、TCP/IPやHTTP/Sで直接Mobile Linkサーバに接続することも可能だ。

 Mobile Linkサーバは、複数の同期クライアントを同時に処理できる。デフォルトでは5つの同期処理用スレッドが待機していて、同期クライアントからのリクエストを受信すると同期を開始する。同期終了後、スレッドは待機状態に戻る。1つのスレッドは一度に1つの同期セッションのみを担当する。

 同期スレッド数以上のリクエストがMobile Linkサーバに一度に到達すると、いったんMobile Linkサーバでキューイングされ、その間リクエストは待たされる。同期スレッドが同期セッションを終えるとキュー内からリクエストが選ばれ、新たな同期セッションが開始される(図7.5)。

図7.5 : 同期スレッドと待ちキュー。なお、Mobile Linkサーバが制御用として統合データベースに接続するセッションもあるので、統合データベース上のODBCセッション数は同期スレッド数以上ある
図7.5 : 同期スレッドと待ちキュー。なお、Mobile Linkサーバが制御用として統合データベースに接続するセッションもあるので、統合データベース上のODBCセッション数は同期スレッド数以上ある
Webサーバ経由の同期
 同期クライアントからのHTTPリクエストをMobile Linkサーバが直接受け取るのではなく、別のWebサーバを経由させることもできる。Mobile Link Redirectorというモジュールがあるので、これをWebサーバに組み込めばよい。同期クライアントからのHTTPリクエストを受け取ったWebサーバ(Mobile Link Redirector)は、指定されたMobile Linkサーバにリクエストを転送する。このため、Webサーバはリバースプロキシの役割を担っている(図7.6)。
Webサーバをファイアウォールとして機能させたいときや、複数のMobile Linkサーバに処理を分散させるためのロードバランサとして機能させたいときにMobile Link Redirectorを利用するとよい。Mobile Link Redirectorには、Mobile Linkサーバの状態をチェックして転送を制御する機能もある。
Mobile Link Redirectorは次の4つのWebサーバをサポートする(角括弧内はMobile Link Redirector名)。
  • Sun One(Netscape iPlanet Enterprise Edition)[NSAPI Redirector]
  • Microsoft IIS[ISAPI Redirector]
  • Apache TomcatなどJava Servlet API 2.3をサポートするもの[Servlet Redirector]
  • Apache Webサーバ(1.3.x / 2.0.x)[Native Apache Redirector]
  • M-Business Anywhere Webサーバ [M-Business Anywhere Redirector]
図7.6 : Mobile Link Redirector
図7.6 : Mobile Link Redirector
なお、上記のようにソフトウェアで処理するのではなく、ハードウェアのロードバランサを利用してもよい。

リモートデータベース

 リモートデータベースは、iAnywhere社のデータベースだけに対応し、以下の2つがある。

  • SQL Anywhere
  • Ultra Light

 リモートデータベースとMobile Linkサーバとが通信すると今まで書いてきたが、より詳細に記述すると、同期クライアントが存在し、同期クライアントがMobile Linkサーバとの通信を担っている。詳しくは次のセクションで説明する。

次のページ
7.1.2 同期プロセス

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
SQL Anywhereの魅力を探る連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1749 2008/09/04 13:01

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング