アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 @IT > Master of IP Network > Mobile Connection > iアプリからデータベースへの接続を検証する(前編)
 

 

iアプリからデータベースへの接続を
検証する(前編)

―iアプリ開発環境の準備と開発手順―

古賀一平
ゼンテック・テクノロジー・ジャパン
2001/4/28

今回の内容
iアプリの開発環境の構築
アプリケーションの開発手順
簡単なプログラミング

 NTTドコモのiモードJava対応携帯電話が発売されて、はや3カ月が経過しようとしています。そして、携帯電話上でのJavaアプリケーションの活用用途は、ゲームなどのコンテンツだけでなく企業の情報システムとしても大きな注目を集めています。

 ただ、NTTドコモの503iシリーズでは、ダウンロードできるアプリケーションのサイズがわずか10Kbytesという制限があり、従来のPCとサーバで構築するクライアント/サーバの世界と同様にシステムを考えるわけにはいきません。それに、いま企業システムはWebの時代に突入しています。クライアントにはWebブラウザだけがあり、ビジネスロジックはすべてサーバサイドに置くかたちが主流となってきました。Javaが最近のように注目を集めたのはサーブレットやEJBといったサーバサイド技術の発達があるからであり、携帯電話というクライアントサイドにJavaアプリケーションを置くというのは、実は時代に逆行しているのだともとれます。

 しかし、非常に携帯性が高く、操作がノートPCやPDAよりも簡単、なによりもだれもが常に持ち歩く習慣のある携帯電話上でアプリケーションが動くという状況は、ウェアラブルコンピュータの到来を予感させます。

 本稿では、企業におけるiアプリの活用として、社内に構築された既存の顧客管理データベースに携帯電話から接続することを試みます。「データベースとの接続」「狭い画面での顧客情報の表示」「10Kのサイズにアプリケーションを収める」など、さまざまな試みを行います。本稿の目的は、実際に実用に堪えうるアプリケーションを紹介することではありません。本稿を通してこれまでクライアント/サーバの世界でシステムを構築してきたSEやプログラマーの皆さまに、携帯Javaで実現できる企業システムの可能性を考える機会をご提供できればと考えています。

 なお、本連載では開発環境の構築に、ゼンテック・テクノロジー・ジャパンの「i-JADE」を用います。今回はエミュレータではなく実機のP503iを使って実験を行うため、NTTドコモの公式ツールよりも実機をターゲットとした開発がしやすいi-JADEを選択しました。



  iアプリの開発環境の構築

1.ダウンロードとインストール

 はじめに、以下のサイトから、i-JADE Lite、Java2 SDK Standard Edition、J2ME CLDCをダウンロードし、インストールを行います(ここでは、インストール先はすべてデフォルトのフォルダとします)。

i-JADE Lite (約1.4Mbytes)
Java2 SDK Standard Edition 1.3 (約30Mbytes)
J2ME CLDC (約4.77Mbytes)

 インストールが完了後、「C:\jdk1.3\bin」「C:\j2me_cldc\bin」にPATHを設定します。i-JADE Liteは503iシリーズをイメージしたエミュレータと、DoCoMo UIと同様の機能を実現するクラスライブラリから構成されています。DoCoMo UIとはNTTドコモが策定したiモード対応Java用の基本クラスライブラリのことです。詳細は「iモード対応Javaコンテンツ開発ガイド(APIリファレンス編)」に記載されています。

2.コンパイル環境の構築

 C:\i-JADE\i-JADE-p.jar(もしくはi-JADE-f.jar、i-JADE-n.jar)を解凍し、任意のフォルダに格納します(ここでは、C:\i-JADE\classに置くことにします)。

 コマンドプロンプトから以下のコマンドを実行することにより、JARファイルは解凍できます。

>cd c:\i-JADE
>mkdir class
>jar xvf i-JADE-p.jar -d . class

 次に、「C:\j2me_cldc\bin\api\classes\java」フォルダをC:\i-JADE\classの下にコピーします。これは、後で説明するpreverifyコマンドによって行うクラス検証のためです。

 以上で、iアプリを作成する環境は整いました。

3.i-JADE Liteの動作確認

 i-JADE Liteはインストール時に、簡単なサンプルプログラムを提供しています。iアプリ作成前に、サンプルプログラムを起動し、i-JADE Liteの動作確認を行うことにしましょう。

 c:\i-JADE\i-JADE-p.jarをダブルクリックすると、エミュレータ画面とコントロールパネルが起動し、画面に表示されます(図1)。コントロールパネルのメニューから[ファイル]→[iアプリのオープン]を選択するとファイルの選択画面が表示されるので、[samples]→[jvmine]→[JVMine.jam]を選択し、[開く]ボタンを押下します。最後にコントロールパネルの[実行]ボタンを押下すると、エミュレータ画面にてマインスイーパが実行、表示されます(図2)。

図1 i-JADE Liteの起動画面

図2 サンプル「マインスイーパー」を読み込み、実行したところ 

  アプリケーションの開発手順

 開発環境の構築の準備ができたところで、今度はiアプリ作成の流れを紹介します。

1.コーディング

 エディタを使って、iアプリのコーディングを行います。コーディングルールについては、次のセクションで詳しく紹介します。

2.コンパイル

 iアプリをコーディング後、コンパイルを行います。作成したjavaファイル(Test.javaとします)を任意のフォルダに格納します(ここでは、c:\i-JADE\Testとします)。コンパイル環境はすでに構築済みなので、コマンドプロンプトから以下のコマンドを実行します。

>cd c:\i-JADE\Test
>mkdir unverified
>javac -g:none -bootclasspath c:\i-JADE\i-JADE-p.jar;c:\j2me_cldc\bin\api\classes -d unverified Test.java

 ここでは、javacコマンドでコンパイルを行っています。-g:noneは、デバッグ情報を生成させないためのオプションです。iアプリは10Kbytesまでと制約があるので、余計な情報は作成しないことが重要です。

 -bootclasspathでは、bootclasspathを設定しています。ここでのbootclasspathは、jarファイルを指定していますが、jarを展開した「c:\i-JADE\class」を指定しても問題ありません。

 -dでは、クラスファイルの出力先を指定しています。-dオプションを付けなければ、クラスファイルはc:\i-JADE\Testに作成されます。

3.preverify

 コンパイルが完了したら、preverifyを実行する必要があります。preverifyとは、CLDCのようなリソースの限られる環境で実行時の負荷を軽減するため、事前にクラスの検証を行うコマンドのことです。検証をパスしないものに関しては、おそらく端末上ではほとんど動作しないと考えてください。

>cd c:\i-JADE\Test
>mkdir preverified
>preverify -classpath c:\i-JADE\class; -d preverified unverified

 preverifyを実行することにより、 unverifiedフォルダに作成されたクラスが検証され、検証済みクラスがpreverifiedフォルダに生成されます。

4.JARファイル作成

 作成したiアプリを携帯電話端末にダウンロードするために、JARファイルを作成する必要があります。それには、preverifiedフォルダに移動し、以下のコマンドを実行します。

>cd c:\i-JADE\Test\preverified
>jar cvfM Test.jar *.class

5.JAMファイル作成

 実際に携帯電話端末(今回の場合はエミュレータ)にダウンロードしてテストを行うには、JAMファイルが必要となります。JAMファイルには、ダウンロード時のURL、ダウンロードするJARファイルのサイズなどが記述されています。以下に簡単なサンプルを紹介します。

AppName = テスト (アプリケーション名)
AppVer = 1.0    (バージョン)
PackageURL = http://www.zentek.com/test/Test.jar (jarファイルのURL)
AppSize = 2000   (jarファイルのサイズ)
KvmVer = 1.0    (KVMのバージョン)
AppClass =Test   (アプリケーションの起動におけるメインクラス名)
LastModified = Fri, 02 Feb 2001 01:50:00 (アプリケーションの最終更新日時)

6.HTMLファイル作成
 最後にダウンロードする際のHTMLを作成します。以下に簡単なサンプルを紹介します。

<HTML>
<HEAD>
<TITLE>テスト</TITLE>
</HEAD>
<BODY>
<OBJECT declare id="Test" data="http://www.zentek.com/test/Test.jam"
  type="application/x-jam"></OBJECT>
click <A ijam="#Test" HREF="./index.html">here</A>
</BODY>
</HTML>

 後は、JARファイル、JAMファイル、HTMLファイルをWebホスト上に置き、実際にダウンロードし、実機にて検証を行ってください。以上がiアプリ開発の一連の流れとなります。

  簡単なプログラミング

 環境の構築が終わり、iアプリ作成に必要な一連の手順が理解できたところで、簡単なプログラムを作成して実行してみましょう。ここでは、携帯電話のディスプレイに「HelloWorld!!」を表示してみます(Hello.java)。

import com.nttdocomo.ui.*;
import com.nttdocomo.util.*;

public class Hello extends IApplication {

/*** (1) iアプリ開始場所 ***/

  public void start() {
    Display.setCurrent(new HelloPanel(this));
  }
}

class HelloPanel extends Panel implements SoftKeyListener {

  IApplication _app;

  HelloPanel(IApplication app) {
    _app = app;

    /*** (2) コンポーネント定義及び貼り付け ***/
    setTitle("SAMPLE");
    Label l1 = new Label("Hello World!!");

    add(l1);

    setSoftLabel(Frame.SOFT_KEY_1,"Exit");
    setSoftKeyListener(this);
  }

  public void softKeyPressed(int no) {
    if (Frame.SOFT_KEY_1 == no)
      _app.terminate(); /** (3)iアプリの終了 **/
  }

  public void softKeyReleased(int no) {}
}
リスト1 Hallo.java

1.iアプリのスタート

 iアプリプログラミングには、幾つかのiアプリ特有のルールが存在します。その中の1つがプログラムの開始メソッドです(リスト1中の(1)参照)。

 見てお分かりのように、iアプリが動作するときに最初に呼び出されるメソッドは、

public void start()

になります。これは、どのiアプリを作成するうえでも必要なメソッドであり、このメソッドを最初に呼び出すことにより、次に呼び出すインスタンス生成などを行い、プログラムを動作させることができます。また、このメソッドが含むクラスは、必ずIApplicationクラスを継承させなければならないことは覚えてください。

2.画面表示

 実際にディスプレイに表示しているクラスは、HelloPanelクラスになります。このクラスはPanelクラスを継承しています。Panelクラスは、高レベルAPIのための画面表示を定義するオブジェクトであり、容易にコンポーネントを張り付けることが可能です。

 実際にこのクラスでは、以下のAPIを使用してディスプレイにコンポーネントを定義して、張り付けを行っています(リスト1中の(2)参照)。

setTitle("SAMPLE"); /** タイトルの定義 **/
Label l1 = new Label("Hello World!!"); /** ラベルの定義 **/

add(l1); /** ラベルの張り付け **/

3.アプリケーションの終了

 どのiアプリにおいても、アプリケーションを終了させることが必要になります。MIDPにおいては「Destroy」を使用してアプリケーションを終了させますが、iアプリではIApplicationクラスのterminate()メソッドを使用します(リスト1中の(3)参照)。そのために、どのクラスを呼び出すにしても、IApplicationのインスタンスはパラメータとして渡す必要があり、どのiアプリでも同様の処理であることを認識してください。

 いよいよ、次回は、実機を使ったデータベースへの接続を行ってみます。お楽しみに。

「iアプリからデータベースへの接続を検証する 後編」

 



 


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

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