SHOEISHA iD

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

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

SQL Anywhereの魅力を探る

省リソースで軽快に動作する組込向けデータベース「Ultra Light」

SQL Anywhereの魅力を探る 6


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

3.1.2. Ultra Lightのアーキテクチャ

 Ultra Lightはin-processで動作すると説明したが、その他の形態も可能だ。アプリケーションとUltra Lightデータベースとの関係を3通りみよう。

  • アプリケーションとUltra Lightデータベースとが1:1対応
  • 1つのアプリケーションが1つのUltra Lightデータベースを使用する。アプリケーションは同時に1つまたは複数のコネクション(マルチスレッドアプリケーション)を利用可能(注4)。
     
  • アプリケーションとUltra Lightデータベースとが1:N対応
  • 1つのアプリケーションは、最大4つのUltra Lightデータベースを利用可能。
     
  • アプリケーションとUltra LightデータベースとがN:1対応
  • Ultra Light Engineを利用すれば、1つのUltra Lightデータベースに対して複数のアプリケーションが接続できる。
注4
 ただし、Ultra Light for M-Business Anywhere、Palm OS上のUltra Lightでは、言語・開発環境の制限によりマルチスレッドで利用できないものもある。

 1つのアプリケーションが1つのUltra Lightデータベースを使用するのがUltra Lightの典型的な利用方法なので、本稿ではこの場合のみを扱い、Ultra Light Engineには言及しない。

 アプリケーションはUltra Light SDKを通してUltra Lightデータベースのデータにアクセスする。このときのアーキテクチャは図3.2. 「Ultra Light のアーキテクチャ」のようになる。モジュールを一つ一つみていこう。

図3.2. Ultra Lightのアーキテクチャ
図3.2. Ultra Lightのアーキテクチャ
  • アプリケーションとUltra Light SDK
  • Ultra Light SDKが提供するAPIを利用して、データベースを操作する。アプリケーションの開発環境(開発言語やプラットフォーム)ごとにSDKが提供されている。言語が異なっても開発手順は同じで、APIも似ている。
     
  • ランタイムライブラリ
  • 言語やプラットフォームごとに実行時に必要なライブラリ(DLL)が用意されている。なお、静的ライブラリが提供されていれば、そちらを利用してもよい。デプロイ時には、アプリケーションと、動的リンクするライブラリとをデプロイする。
     
  • Ultra Light データベースファイル
  • データやインデックスなどデータベースに関する情報はすべてデータベースファイルに記録される。
     
  • テンポラリファイル
  • アプリケーション実行時にテンポラリファイルが利用されることもある。
注意:スキーマファイル
 Ultra Light 9までは、スキーマ情報はスキーマファイルに記録し、そこからデータベースファイルを生成していた。一方、Ultra Light 10からは、Ultra Lightデータベース内にスキーマ情報が記録され、それを参照するシステムテーブルも導入された。そのため、データベースの作成手順はSQL Anywhereと同様になり、Sybase Centralから操作できる。
注意:Ultra Lightにはトランザクションログファイルがない
 Ultra Lightには、SQL Anywhereで言うところのトランザクションログファイルはない。そもそもないのだから、増え続けるトランザクションログをどのように切り捨てるか管理に悩む必要はない。Ultra Lightでは、データベースの各行にトランザクションに関する情報などを記録する1バイト分の領域があり、そこでステータスが管理される。そのため、トランザクションログファイルがなくても、Ultra Lightはシステム障害からのリカバリ機能や同期クライアントとしての機能をもつ。

3.1.3. Ultra Light SDKの種類

 各SDKが対応する動作プラットフォームは、表の通りである。なお、開発プラットフォームとしては、Windows x86にのみ対応する。

表3.3. Ultra Lightの動作プラットフォームの概要。バージョンなどの詳細については、製品マニュアルおよびWebサイトを参照
Ultra Light SDK Windows XP (注5) Windows CE Symbian OS Palm
Ultra Light Embedded SQL
Ultra Light C++ component
Ultra Light for AppForge
Ultra Light for M-Business Anywhere  
Ultra Light .NET    
TCP/IPでの同期
HTTPでの同期
ActiveSyncでの同期      
HotSyncでの同期      
同期通信の暗号化  
注5
 Windows環境ではTablet PCでの使用を想定しているので、Windows XPのみのサポートとなる。
注意:静的インターフェイスと動的SQL
 Ultra Light 9までのAPIは、大きく2種類に分けられた。静的インターフェイスと動的SQLである。Ultra Light 10からは動的SQLに一本化されたのだが、Ultra Lightの経緯を知るために簡単に説明する。
  • 静的インターフェイス
  •  
    SQL Anywhere Studio 9以前のバージョンの古い仕様。Ultra Lightで使用するテーブル定義やSQL文をあらかじめSQL Anywhereに登録しておく(リファレンスデータベースと呼ぶ)。Ultra Lightのツールを利用すると、リファレンスデータベースからコードが生成される。この生成されたコードを利用して、アプリケーションはデータベース操作を行う。このように、静的インターフェイスではアプリケーションのコーディングとSQL文のコーディングとが分断されてしまい、開発の手間が多い。
     
    しかし、静的インターフェイスにも長所がある。あらかじめSQL文が定義されるため、コードを生成した時点でSQL文の構文解析は済んでおり、一般にアプリケーションは高速だ。さらに、生成されたコードは定義されたデータ操作に必要十分な機能だけを含むので、アプリケーションのサイズも小さくできる。このような特徴は、現在の感覚と比べてさらにリソースが制限されていた過去のデバイス上でUltra Lightを動作させるのに必要であった。
     
  • 動的SQL
  •  
    SQL Anywhere Studio 8.0.2から導入され9.0.1で強化された新しい仕様。アプリケーションのコード内にSQL文を記述でき、開発が容易になった。利用可能なSQL構文は静的インターフェイスよりも豊富である。この仕様はコンポーネントAPIとも呼ばれていた。

 このようにさまざまな種類のSDKがあるので、利用したい言語や動作プラットフォームに合ったものを選択する。

次のページ
3.2. Ultra Light アプリケーションの開発例

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング