アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 @IT > Master of IP Network > Mobile Connection > PDA上のデータベースをSQLで操作する
  Palmで利用するエンタープライズシステムの開発(2)
PDA上のデータベースをSQL文で操作する

株式会社テクノアート
大田黒和臣
2001/12/6


今回のおもな内容
DB2 Everyplaceの概要
DB2 Everyplaceのインストール
QBEでEveryplaceを理解する

 前回(「PDA対応の企業システムを開発するポイント」)は、PDAを企業内システムの一部として利用する際の概要を紹介した。今回からは、ミドルウェアとPDA上のRDBを利用した具体的なシステムの構築とプログラミング方法を紹介していく。

 ミドルウェアとしては、前回も少し触れたがIBMの「DB2 Everyplace」を取り上げる。

§ DB2 Everyplaceの概要

 DB2 Everyplaceは、ミドルウェアとPDA上で動作するデータベースを総称したものとして述べてきたが、厳密にはミドルウェア部分を「同期サーバ(SyncServer)」、PDA上のデータベースを「Everyplace」と定義している。

 同期サーバは、上位(ソース)データベース(以降、ソースデータベースと略)とEveryplaceのレプリケーション(複製)を行うもので、稼働条件として「DB2 UDB」が必須である。DB2 UDBは、差分交換やデータの重複、セキュリティなどを管理するために利用されている。

 同期サーバのコアモジュールはServletであり、Servlet Engine上で動作する。推奨はWebSphereであるが、ほかのServlet Engineでも動作するハズである。

 ソースデータベースは、前バージョンまでDB2 UDBが基本であったが、現行のバージョンではJDBCが利用できるデータベースをすべてカバーするものとなっている。ソースデータベースがDB2UDBの場合、同期サーバをソースデータベース上に構築することも可能だ。

図1 DB2 Everyplaceの構成
図2 同期サーバの仕組み

■DB2 Everyplaceはマルチプラットフォーム対応

 DB2 Everyplaceは、以下のプラットフォームを用意しており、環境と用途に合わせて選定できるようになっている。現状は、Windows 2000/NT版の同期サーバが一番安定しているようである。

■同期サーバ
  Solaris
  Windows 2000/NT
  AIX
  Linux
■Everyplaceデバイス
  Epoc
  Linux
  Neutrino
  Palm OS
  Solaris
  Windows CE
  Windows 2000/95/98/Me/NT

■DB2 Everyplaceには2つのエディションがある

 DB2 Everyplaceには、PDAデバイスで動作するデータベースのEveryplaceのみの「データベース・エディション」と、同期サーバを含んだ「エンタープライズ・エディション」の2つのエディションが用意されている。ビジネス向けには、エンタープライズ・エディションを使用することになる(個人ユースのスタンドアロン環境では、データベース・エディションを使用してもよいが、前回の説明で述べたとおり効果が薄い)。

 Everyplaceのアプリケーションを容易に開発できるIDE(統合開発環境)「モバイル・アプリケーション・ビルダー(MAB)」も用意されている。これについては、現在フリーでダウンロード可能であり、本連載では触れないので各自触ってもらいたい(DB2 Everyplace最新バージョン評価版ダウンロードサイトから入手可能)。

§ DB2 Everyplaceのインストール

 DB2 Everyplaceがどのようなものか、実際にインストールを行ってみることにする。実務で使う場合はライセンスを購入するべきだが、製品版と変わらない「DB2 Everyplace最新バージョン評価版」がWebから入手できるので、こちらを利用するのも良いだろう。ライセンスは十分読んでほしい。

 ●DB2 Everyplace最新バージョン評価版ダウンロード(英語サイト)

 〈構築する環境〉
  
・OS:Windows 2000 Server
  ・DB2 UDBワークグループ・エディション V7.2
  ・DB2 Eveyplace エンタープライズ・エディション V7.2

■DB2 UDBエンタープライズ・エディションのインストール手順

 エンタープライズ・エディションのインストール手順を順に説明する。

(1)DB2 UDBのインストール
 DB2 UDBも評価版が用意されている。ワークグループ・エディション以上であれば問題ない。

 ●DB2 UDB 最新バージョン評価版ダウンロード(英語サイト)

(2)DB2 Everyplaceのインストール
 これはクライアントの環境を構築するインストールであり、同期サーバの動きに必要はないのだが、なぜか必須となっている。

(3)同期サーバのインストール
 同期サーバのインストールを行うと、必要な管理データがDB2 UDBに登録され、また動作させるためのServlet Engine(WebSphereのサブセット)およびHTTP Server(IBM HTTP Server)も同時にインストール、自動設定されるようになっている。

大規模利用などで利用する場合は、WebSphereなどをフルセットでインストールすることをお勧めするが、数十ユーザーまでであればこれで十分である。

 サンプルアプリケーションもインストールされるが、これについては本連載では説明しない。基本を理解していただいた後に解析してみると面白いと思う。インストールそのものについては、画面の指示で間違えたり、迷うような部分はないと思う。

■Palmデバイスへのインストール

 まず、同期サーバのインストールを行ったマシンに、HotSyncができる環境を構築する必要がある。

 次に、スタートメニューのプログラムの中から「DB2 Everyplace」を選び、「モバイルデバイスへのインストール」を行うことで、EveryplaceのコアモジュールとなるPRCファイルが用意される。HotSyncを行って、デバイスにアプリケーションがインストールされたことを確認しよう。

DB2 Everyplaceには、アプリケーションの自動配布機能が存在するが、まずはこのコアモジュールが入っていないと動作しない。具体的な配布方法は、次回以降で具体的に説明を行う予定。

図3 同期サーバを利用したアプリケーションの自動配布

■Palmデバイスへインストールされたモジュール

 Palmデバイスの「db2e」カテゴリには、以下のアプリケーションアイコンが確認できる。

  • DB2eImport
  • IBM Sync
  • QBE
  • (そのほかのサンプルアプリケーション)

 「DB2eImport」は、PC上で用意されているツールを使い、DB2 UDBのDDLファイルとCSVファイルからPDBファイルを作成し、そのPDBファイルをEveryplaceのデータベースにインポートするツールだ。機能的には便利ではあるが、筆者が試した範囲では出来があまり良くなく、テスト程度でしか使用できないのが残念である。

 「IBM Sync」は、同期サーバとレプリケーションを取る際に使用するアプリケーションであり、同期サーバと接続するためのユーザー・パスワードおよびサーバの設定などが行える。また、データのグループ単位(管理者にてグルーピング)でレプリケーション動作の指定も行える。

 レプリケーション動作には次の種類があり、レプリケーション中の障害による中断などを十分考慮した作りになっていることがうかがえる。

  • スキップ
    指定グループのレプリケーションを行わない
  • 同期
    通常の差分交換によるレプリケーション
  • 最新表示
    全データをサーバから取得し直す
  • 再開
    障害などで中断された状態からレプリケーションを再開

 レプリケーションの開始・終了および設定などはAPIが用意されているので、開発を行うアプリケーションから制御することも可能である。

図4 中央のボタンで同期開始 図5 サーバなどの設定 図6 レプリケーションの動作指定

 「QBE」は、「Query By Example」の略で、言葉からすると検索テストを行うだけのアプリケーションに思われるが、実は優れものである。Everyplaceデータベースのテーブル/レコードの確認ができ、データの修正も可能である。さらにCLP(SQLステートメント・コマンドライン)からSQLステートメントを直接実行できる。

§ QBEでEveryplaceを理解する

 QBEの基本構成は、テーブルを選択してレコード一覧、レコード内容の確認修正が行える部分と、CLPによるSQLステートメント実行部分の2つとなっている。

図7 テーブルの選択 図8 レコード一覧 図9 レコード詳細

 図7図8では、テーブルを選択し該当するレコードの一覧が表示され、さらに図9では選択したレコードの詳細が表示されることが確認できる。レコードの詳細では、値を変更することも可能である。また、データのフィルタリングを行い、その確認も容易だ(図10)。

図10 フィルタの設定

 それでは、実際にCLPにてSQLステートメントを入力してみよう。

図11 CLPへのSQLステートメント入力

 図11は、M_WAREというテーブルに対して、SELECT文を実行し、結果を表示した画面である。ここでは、SELECTだけではなく、INSERT/UPDATE/DELETEなどのすべてのSQLステートメントが利用可能だ。

 また、ここで使用可能なSQLステートメントは、開発するアプリケーションからも使用することができるため、開発前の簡単な確認には十分といえる。

 Everyplaceは、結合照会であるカルテシアン積が利用可能であり、リレーションを張ることも容易だ。例えば、次のような構文が成り立つのである。

select M_CHARGE.CHARGENAME,M_WARE.WARENAME from M_CHARGE,M_WARE WHERE (M_CHARGE.WARECODE = M_WARE.WARECODE)

 さらに、プリペアドステートメントとパラメータマーカーが使用できるため、効率よいデータアクセスが可能となっている(ただし、QBEではパラメータマーカーに値をセットすることはできない)。

>INSERT INTO T_MOVE (CODE,NAME) VALUES ('12345',?)
>(プリペアドステートメントの実行)
>(BindParamatorの実行)//パラメータマーカーへの動的値のセット
>(Executeの実行)

 「CREATE TABLE」なども使用できるので、

  • CREATE TABLE
  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • DROP TABLE

といったステートメントの操作を実行して、理解を深めていただきたい。

 今回は、DB2 Eeveryplaceの概要とQBEによる簡単なデータベース操作ついて説明した。次回は、実際にアプリケーションを作ってみる予定だ。


「連載 Palmで利用するエンタープライズシステムの開発」


 


 
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

   
@ITトップMobile Connectionフォーラム トップ会議室利用規約プライバシーポリシーサイトマップ