本文へジャンプ

データベース/データ管理  >  DB2 Developer Domain  >  ライブラリー  >  技術白書-DB2ファミリー関連  >  
   
 

DB2 EveryplaceによるPalmデバイス用モバイル・アプリケーションの作成

Naveen Balani
テクニカル・アナリスト、Syntel India Ltd.
2002年9月

 
 
コンテンツ
はじめに
DB2 Everyplaceの概要
環境の構成
サンプルPalmアプリケーションの作成、展開、およびテスト
まとめ

一括ダウンロード

筆者について
 筆者
Naveen Balani
テクニカル・アナリスト、Syntel India Ltd
 

はじめに
この記事では、Mobile Application Builder(MAB)を使用してワイヤレス・アプリケーションを作成し、IBM® DB2® Everyplaceと併せて使用して、企業データをワイヤレス・デバイスに配信する方法について説明します。このアプリケーションを使用してデータにアクセスし、更新を行うこともできます。

この記事は、以下の事柄に関する情報を提供することを目的としています。

  • DB2 Everyplaceの機能の理解と使用
  • DB2 Everyplaceの構成とインストール
  • サンプルPalmアプリケーションの作成、展開、およびテスト

DB2 Everyplaceの概要
DB2 Everyplaceは、携帯情報端末(PDA)、ハンドヘルド・パーソナル・コンピューター、携帯電話、組み込み機器用のリレーショナル・データベースです。DB2 Everyplaceは、IBMのモバイル・コンピューティング・ソリューションの一環をなすもので、営業担当者などの移動が多いプロフェッショナルが外出先からでも必要なデータにアクセスできるようにします。

DB2 Everyplaceソリューションは、以下のコンポーネントで構成されています。

データベース: 小型デバイス用として、小さなフットプリントで設計されたリレーショナル・データベース・システム
       
  同期サーバー:   DB2 Everyplaceデータベースとエンタープライズ・データベースの間でデータを移動する両方向同期サーバー
       
  Mobile Application Builder:   モバイル・デバイス上で実行可能なDB2 Everyplaceアプリケーションを開発するためのRAD(rapid application development)ツール

データベース・エンジン
このリレーショナル・データベース・エンジンは、レコード・セットを永続的に保管するもので、SQLを使用してレコードの変更や検索を行うことができます。DB2 Everyplaceデータベース内のデータには、さまざまな方法でアクセスできます。

  • コマンド行プロセッサー(CLP)を使用してSQLステートメントを発行する
  • コール・レベル・インターフェースとしてODBCまたはJDBCを利用するアプリケーションを使用する

同期サーバー
同期サーバーは、DB2 Everyplaceデータベースからソース・データベースへのデータ同期プロセスを管理するクライアント/サーバー・プログラムです。同期サーバーによって、モバイル・データベースからソース・データベース、ソース・データベースからモバイル・データベースへの両方向のデータ同期が可能となります。ソース・データベースには、任意のリレーショナル・データベースを利用できます。

Mobile Application Builder
Mobile Application Builder (MAB)は、モバイル・デバイス上で動作するDB2 Everyplaceアプリケーションを開発するための統合ツールキットです。MABを使用すれば、モバイル・デバイスに展開するための堅固なアプリケーションを、より強力な開発プラットフォーム(MABはWindows NT® SP4以上、Windows 2000®、およびWindows XP Professional®に対応)で容易に作成することができます。作成したアプリケーションは、Palm OSベースのデバイスで実行することも(C言語アプリケーションを生成した場合)、JavaTM仮想マシン対応デバイスで実行することもできます(Java言語アプリケーションを生成した場合)。

この記事では、MABを使用してビルドとテストを行ってPalm用C言語アプリケーションを開発する方法について説明します。このアプリケーションの開発にはDB2 Everyplace V8.1を使用します。アプリケーションとリレーショナル・データ・ストアとの同期については、次回以降の記事で取り上げます。

V8.1はJavaにも対応しています。次回以降の記事「Building Wireless Java Applications Using DB2 Everyplace」(英文), では、Javaアプリケーションを作成し、それをJava仮想マシン対応のモバイル・デバイスに展開する方法についても取り上げたいと思います。

環境の構成
このセクションでは、MABおよび関連ツールのインストール方法を説明します。必要なものはすべて、http://www14.software.ibm.com/webapp/download/search.jsp?go=y&rs=gnutoolsからダウンロードできます。

ステップ1: Mobile Application Builderのインストール
MABをインストールするには、AppBuilderENU.exeを実行し、デフォルトを使用します。そうすると、<指定ディレクトリー>\DB2Everyplace\ApplicationBuilderにMABがインストールされます。

ステップ2: MABのビルド環境のセットアップ
以下のツールはMABによって使用されるものですので、すべてインストールする必要があります。ただし、特定のワークステーションに一度インストールするだけでかまいません。

Cygwinのインストール
Windowsエクスプローラで.exeファイルをダブルクリックして、cygwin-b20.1-full.exeを実行します。デフォルトのインストール・ディレクトリーはc:\cygnusです。

GNU PRCツールのインストール
以下の手順に従ってPRCツールをインストールします。PRCツールにはクロスコンパイラーの他、各種ユーティリティーが含まれています。

  1. prc-tools2.0.exeをダブルクリックします。

  2. インストール・ウィザードのSelect Componentsページで、PRCツールのC Tool ChainおよびC++ Tool Chainコンポーネントを選択します。オプションとして、ツールのドキュメンテーションとサンプル・プログラムもインストールします。

  3. Choose Destination Location: PRC Toolsページで、インストール先フォルダーを指定するか、あるいはデフォルトのディレクトリー(c:\Program Files\PRC-Tools)を選択します。

  4. Choose PalmDev Locationページで、ツール・チェーンのドキュメンテーションとサンプル・プログラムのインストール先フォルダーを指定するか、あるいはデフォルトのディレクトリー(c:\PalmDev)を選択します。なお、これらのファイルのインストールを選択したかどうかに関係なく、インストール先を選択するプロンプトが表示されます。

Palm OS SDKのインストール
以下の手順に従ってPalm OS SDKをインストールします。Palm OS SDKには、Palm OS用のCライブラリーとヘッダー・ファイルが含まれています。

  1. Palm OS SDK Version 4.0のホーム・ページ(http://www.palmos.com/dev/tools/_sdk40license.html)にアクセスし、I Agreeをクリックしてライセンス情報に同意します。Palm 4.0 SDKページが表示されます。

  2. Palm OS SDK for CodeWarrior and/or PRC-ToolsセクションのWindowsをクリックして、sdk40.zipをダウンロードします。

  3. sdk40.zipを任意のディレクトリーに解凍し、Palm OS SDK 4.0実行可能ファイルを実行します。

  4. Select Installation TypeページでPRC Tools 2.0を選択します。インストール・パスは、先ほどPRC-Tools 2.0をインストールする際にChoose PalmDev Locationページで指定したのと同じパス(デフォルトはc:\PalmDev)に設定されます。その下にsdk-4という新しいディレクトリーが作成されます。

PilRCリソース・コンパイラーのインストール
PilRCリソース・コンパイラーは、Palmプログラム・リソース(アプリケーション内で使用されるテキスト・ストリングなど)の作成に使用されます。PilRCをインストールするには、pilrc.zipを<PRCツールのインストール・ディレクトリー>\h-i586-cygwin32\binに解凍します(例: C:\Program Files\PRC-Tools\H-i586-cygwin32\bin)。

Palm EmulatorとROMイメージのセットアップ
以下の手順に従って、Palm EmulatorとPalm Emulator用ROMイメージをインストールします。

  1. http://www.palmos.com/dev/tech/tools/emulator/からPalm Emulatorをダウンロードします。なお、アプリケーションの登録対象デバイスで使用するPalmOSのレベルに合わせてROMイメージの登録を行う必要があります。

  2. zipファイルをMABのインストール・ディレクトリー(例: c:\DB2 Everyplace\ApplicationBuilder\bin)に保存し、このディレクトリー内に解凍します。emulator.exeファイルは、MABのインストール・ディレクトリー内に置く必要があります。これは、TestツールバーまたはTestメニュー項目を使用してアプリケーションをテストする際に、ユーザー・インターフェースがemulator.exeファイルを見つけられるようにするためです。

ステップ4: テストのためのPalm Emulatorのセットアップ

  1. c:\DB2 Everyplace\ApplicationBuilder\binからemulator.exeをダブルクリックして、Emulatorを起動します。

  2. ポップアップ・ウィンドウでNewを選択して、新規Emulatorセッションを開始します。New Sessionウィンドウ(図1)で、http://www.palmos.com/dev/tech/tools/emulator/からダウンロードしたROMファイルの場所を選択します。OKをクリックするとPalm Emulatorが表示されます。

    図1. 新規Emulatorセッション


  3. Emulator画面内を右クリックし、Install Application/Databaseをクリックします。

  4. Install Otherを選択し、データベース・エンジンをインストールします。

  5. 以下のファイルを選択します。

     
        C:\DB2EveryPlace\DB2e\Clients\PalmOS\DB2eCAT.prc 
        C:\DB2EveryPlace\DB2e\Clients\PalmOS\DB2eCLI.prc 
        C:\DB2EveryPlace\DB2e\Clients\PalmOS\DB2eComp.prc 
        C:\DB2EveryPlace\DB2e\Clients\PalmOS\DB2eRunTime.prc 
        C:\DB2EveryPlace\DB2e\Clients\PalmOS\Samples\SampleCLP\DB2eCLP.prc
    

環境プロパティーの設定
デフォルトでは、MABは自動的にPalmの前提ツールとリンクされます。開発ツールは、それぞれのインストール・プログラムを使用してデフォルトの推奨ファイル・システム・パスにインストール済みですので、ここでMABにツールのインストール場所を教える必要があります。それには、File -> Preferences -> Palm Toolsを選択し、Browseをクリックし、ツールのインストール場所を見つけます(図2)。

図2. MABに対するツールのインストール場所の指定

<クリックして拡大>

これで、MAB開発環境のセットアップは終わりです。

サンプルPalmアプリケーションの作成、展開、およびテスト
それでは、サンプル・アドレス帳アプリケーションを作成し、Palm Emulatorで展開してみましょう。

  1. スタート -> プログラム -> IBM DB2 Everyplace -> Mobile をクリックして、MAB環境を起動します。

  2. Create a New Projectを選択します。

  3. このプロジェクトにSampleAddressBookという名前を付けます。

  4. アプリケーション名としてSABと入力します。

  5. ターゲット・デバイスとしてPalm OSを選択します。

  6. デフォルトのアプリケーションIDとしてDBA1を選択します。このIDは、アプリケーションIDデータベースに登録され、テスト目的で使用することができます。アプリケーションIDは、アプリケーションを展開する準備ができたらいつでも変更できます。

  7. Finishをクリックします。

図3. サンプル・アドレス帳アプリケーションのプロジェクトの作成

<クリックして拡大>

SampleAddressBookの表定義のロード
プロジェクトを定義したら、アプリケーションで使用する表の定義に取りかかることができます。DB2 Everyplace MABには、プロジェクト・ファイルに表定義をインポートするオプションが用意されています。これらの定義は、フォームを作成するときやフォーム上の他の表の列を参照するときに使用することができます。(sample.zipから)address.ddlファイルをロードするには、以下の手順に従います。

  1. Tablesを右クリックし、Import Tableを選択します(図4)。

    図4. 表定義のロード


  2. Import table definitionウィンドウで、address.ddlを選択し、Openをクリックします。ロードされた表は、project treeウィンドウのtableセクションに表示されます。

ユーザー・インターフェースの作成
表定義をprojectペインにロードしたら、アプリケーション用のフォーム作成に取りかかる準備は整いました。MABでのフォームの作成には、基本的に以下の2つの方法があります。

  • 手動でフォームを作成する
  • Form Creation Wizardを使用して自動的に表のフォームを生成する

ここではウィザードを使用します。以下の手順に従ってください。

  1. Address表を右クリックし、Launch Form Creation Wizardを選択します。

  2. フォームに含めるデータベース列をすべて選択します(図5)。

    図5. Form Creation Wizard

    <クリックして拡大>


  3. Nextをクリックします。そうすると、フォームと関連づけるデータベース操作を選択できます。

  4. 使用可能なアクションをすべて選択し(図6)、Finishをクリックします。

    図6. 使用可能なデータベース操作の設定

    <クリックして拡大>


  5. そうすると、FormsセクションにAddressフォームが表示されます。Form1は、デフォルトのブランク・フォームですので削除してください。

Addressフォームのイベントの作成

  1. Addressフォームを選択し、Newをクリックします(図7)

    図7. Addressフォームの使用


  2. Eventsタブ(図8)を選択すると、タップ・イベントと、それに関連づけられているAddress create recordがわかります。タップ・イベントとは、マウスのクリックによって何らかのアクションを生成することにたとえられます。たとえば、上記のアプリケーションでNewボタンをクリックすると、Newボタンと関連づけられた機能が実行されます。これは、ユーザーがNewボタンをクリックすると新しい行が作成されるということを意味します。

    図8. タップ・イベントの作成


  3. Address create recordをクリックすると、Event Action and Targetフォームが表示されます。

  4. Create Recordをクリックし、Set Messageを選択し、以下の通知イベント(図9)を選択します。

    図9. 通知イベントの選択



  5. レコードの削除および更新のための同様のイベントを作成します。

アプリケーションのビルド
アプリケーションをビルドするには、メニューからBuild -> Buildを選択します。ビルドが成功すると、その旨を通知するメッセージが表示されます。エラーが発生した場合は、ツールをインストールし、Preferencesに環境プロパティーの設定で説明したとおりにパスを設定することによって、構成を正しくセットアップしたかどうかを確認してください。

アプリケーションのビルド時には、最終的なPalm実行可能ファイル(*.prc)を作成するためにさまざまな中間ファイルが作成されます。これらのファイルは、Mobile Application Builderによって使用されるものであり、変更するとプロジェクトでエラーが発生する原因となる可能性があります。作成されるファイルは以下のとおりです。

  • *.prc - Palmアプリケーション実行可能ファイル。これは、プロジェクトが正常にビルドされると作成される最終的な出力ファイルです。
  • *.bin - アプリケーション内の実行可能なPalmリソース
  • *.c - アプリケーションのソース・コード
  • sql*.h - アプリケーションからDB2 Everyplaceエンジン機能にアクセスするのに必要なヘッダー・ファイル
  • *.h - アプリケーションの生成に使用されるヘッダー・ファイル
  • *.makefile - Palm用の実行可能アプリケーションのビルドに使用
  • *.rcp - アプリケーション内のPalmリソースの定義
  • ibm_pab-sections.* - 複数のコード・セグメントのサポート関連

アプリケーションのテスト
アプリケーションをテストする前に、まずサンプルのアドレス帳を作成します。

  1. Palm EmulatorからApplicationを選択し、DB2e CLPを選択します。DB2e CLPは、DB2 Everyplaceに含まれています。

  2. Queryフィールドに以下のSQLステートメントを入力し(図10)、Executeをクリックします。

     
    CREATE TABLE Address (FirstName Char(30), LastName Char(30) not null primary  key , 
    Address char(30), 
    Country char(30),
    PhoneNumber char(15)) 
    


    図10. サンプル・アドレス帳の作成

    <クリックして拡大>

このサンプル・アドレス帳では、主キーとしてLastNameを使用しました。これは、次回以降の記事でデータ同期について説明する際の必要性からそうしただけで、皆さんの環境では別の主キーを使用した方がよいかもしれません。ただし、新しい名前を挿入する場合は、既存の名前とは別のラストネームを使用する必要があり、そうしないとエラーが発生するということを覚えておいてください。

Palm Emulatorへのサンプル・アドレス帳アプリケーションのロード

  1. Emulator画面内を右クリックし、Install Application.Databaseをクリックします。

  2. Install Otherを選択して、DB2 Everyplaceエンジンのパスを選択し、プロジェクトのディレクトリーから、サンプル・アドレス帳アプリケーション・ファイルPersonalAddressBook.prcを選択します。

  3. Emulator画面内を右クリックし、Reset -> Soft Resetをクリックして変更を受け入れます。

  4. Palm EmulatorのApplicationsをクリックし、SAB(プロジェクトの作成時にアプリケーションに付けた名前)を選択します。図11のようにアプリケーションが表示されたら、Newをクリックします。

    図11. 新規アドレスの追加

    <クリックして拡大>


  5. Newをクリックすると、図12に示す通知メッセージが表示されます。

    図12. 確認の要求

    <クリックして拡大>


  6. OKをクリックすると、作成が正常に終了したことを通知するメッセージが表示されます。

各種コントロール・ボタン(タップ・イベント)を使用してアプリケーション全体をナビゲートすることで、アプリケーション・フローを確認することができます。たとえば、Firstボタンをクリックすると最初のレコードに移動できます。さらに、NextボタンとPreviousボタンを使用してレコード全体をナビゲートすることができます。また、レコードの削除や更新も同様の方法で行うことができます。


まとめ

以上、DB2 Everyplaceを使用してサンプル・アプリケーションの作成、展開、およびテストを無事に行うことができました。このアプリケーション・ビルドは、Palmデバイスに直ちに転送できます。

一括ダウンロード
ここで、FYに次のように3行を挿入したいとします。

Address表用DDL ファイル・タイプ ファイル・サイズ ダウンロード方法
sample.zip zip 1KB HTTPHTTP download      or     FTPFTP download

ダウンロード方法について不明な点がありましたらDownload FAQsをご覧ください。

 

筆者について

Naveen Balani
は、Syntel India Ltd.のテクニカル・アナリストとして、J2EEベースの製品の設計、開発、実装などに携わってきました。彼の連絡先はnaveenbalani@rediffmail.comです。


IBM、DB2、およびDB2 Everyplace は、IBM Corp.の米国およびその他の国における商標または登録商標です。
Microsoft、Windows、Windows NT、Windows 2000および Windows XP はMicrosoft Corporationの米国およびその他の国における登録商標です。
JavaはSun Microsystemsの米国およびその他の国における登録商標です。
他社の会社名、製品名、およびサービス名は、それぞれ他社の商標またはサービス・マークです。

原文はこちら