携帯Javaファーストインプレッション

携帯Java最新事情
ドコモ仕様とMIDPはどう違う?


NTTドコモのiモードJava仕様

 NTTドコモのiモードJava仕様は、以下のライブラリから構成されている。

  • CLDC に含まれる、標準J2SE ライブラリのサブセットクラス
  • CLDC 独自のクラス(機能的にはJ2SE にマッピング可能)
  • iモードJava 拡張固有のクラス
  • メーカー拡張固有のクラス

 iモードJava仕様とMIDPとは、CLDCライブラリレベルでの互換性しかない。そのため、MIDPアプリケーションを移植する場合はCLDCライブラリ以外の部分をすべて書き直す必要がある。

 iモード対応Javaには、CLDCの機能に加え、以下の機能が提供されている。

  • HTTPやHTTPSによるネットワーク接続
  • ユーザーインタフェースを定義するコンポーネント
  • 低レベルのグラフィックス制御
  • アプリケーションデータの保存に使用するScratchPad

 HTTP以外にもHTTPSが使えることによって、サーバと携帯電話端末間の通信をSSLを使用して暗号化できるため、iモードでC-HTMLコンテンツを利用する場面よりもセキュリティが強化されている。ただし、ネットワークセキュリティによって、ダウンロード元のサーバとしか通信ができないという制限がある。

 ユーザーインタフェイスに関しては、Dialog、ButtonクラスなどのMIDPでは提供されていないコンポーネントが提供されており、MIDPよりもJ2SEに近い仕様も持っているといえる。さらには、キーイベントなどのイベントモデルもJ2SEに近い。

 その他の特徴としては、

  • iメロディ形式(MIDI)フォーマットをサポート
  • アニメーションGIFを含むGIFフォーマット(GIF87/87a/89a)をサポート
  • iモードコンテンツでサポートされている絵文字(iモード用外字セット)の利用が可能
  • ハードウェアの制御も一部可能で、バックライトのON/OFFを制御できる

といったマルチメディア機能などが提供されている。また、仕様におさまらないメーカー独自拡張APIが提供されるので、互換性の問題を考慮する必要がある。

 上記のように提供されている機能は多いが、アプリケーション容量の制限は厳しく、以下のように制限されている。

  • アプリケーションサイズはJARファイルで10KBまで
  • ScratchPad(Javaアプリケーションが利用する記憶領域)は5KBまで
    (注:ScratchPadは端末によって5KBより大きい場合がある)

 また、端末にはJavaアプリケーションを管理するJava Application Manager(JAM)という機能があり、以下のことができる。

  • 携帯電話に格納されているJavaアプリケーションをリスト表示する
  • Javaアプリケーションの実行管理(起動や強制終了など)を行う
  • Javaアプリケーションをインストールまたは更新する
  • 既存のJava アプリケーションをユーザーの操作により削除する
    (注:アプリケーションからは削除ができない)

 なお、実際にiモード携帯端末でJavaアプリケーションが実行されるフローは以下のとおりだ。

  1. i モードブラウザでアプリケーションのダウンロードページを閲覧する
  2. アプリケーション・ディスクリプタ・ファイル(ADF、拡張子:jam)のリンクをクリック
  3. インストールプロセスを開始
  4. ADFの内容を検査し、アプリケーションのインストール可否を確認
  5. アプリケーションのダウンロード開始

 端末内にはいくつかのアプリケーションを保存しておくことができ、ADF(実はMIDPでいうJADファイルと同じような役割を果たすわけだ)に記載してある日付を新しくすると、JAMの機能により保存してあるアプリケーションを更新させることが可能となる。この更新機能によりバージョンアップなどによる再配布時の手間が省けると考えられる。

iモードJavaの開発環境

 iモードJavaの開発環境は、NTTドコモからサン・マイクロシステムズのJava2 Micro Edition Wireless Toolkitをドコモ仕様に改良した「Java2 Micro Edition Wireless SDK for The DoJa APIs」が提供されている。現在このツールはコンテンツプロバイダなどに配布されている。今後の配布方法については確認できていない。ここで「DoJa」とは、NTTドコモが拡張したJava仕様を指す。

 サードパーティの開発ツールとしては、ゼンテック・テクノロジーの「i-JADE」がある。これはIDEを持たないが、携帯電話メーカーごとのエミュレータとメーカーの機種差を意識することなく透過的に利用できるAPIで構成されている。既存のRADツールのIDEにプラグインして利用することが可能だ。i-JADEは、現在iモードJavaに必要なクラスライブラリとエミュレータ(現在は富士通と松下の携帯電話用)で構成されるi-JADE Liteが無償ダウンロード可能になっている。今後はi-JADE Liteの機能に「バンキング」、「株式取引」、「eコマース」、「ゲーム」といった本格的なiモードアプリケーション開発を支援するモジュールがセットになった「i-JADE Pro」が有償で提供される予定だ。

 i-JADEは多くのコンテンツプロバイダが使用しており、事実上iモードJavaの開発では標準的な開発環境になる可能性をもっている。

i-JADEのエミュレータを使って「マインスイーパー」を実行したところ。機種は富士通のF503i(クリックすると拡大します)

開発のためのリンク集

 NTTドコモが、iモード対応Java仕様を説明したホームページを開設している。

NTTドコモ公式ページ
NTTドコモのiモード対応Javaのサイト。iモード対応Javaの仕様書をダウンロードできるほか、FAQを読むことができる。

ゼンテック・テクノロジー
i-JADEの紹介ページ。i-JADE Liteを無償でダウンロードすることができる。

今後の動向はどうなる?

 NTTドコモだけでなく、国内のその他のキャリアもJava搭載携帯電話の年内出荷を予定している。J-フォンはMIDPを採用すると公式に発表しているが、KDDIは公式発表をしていない。だが、各方面からの情報によるとMIDPに対応したものではないという。

 また、サン・マイクロシステムズが2001年中にPalm OS用のMIDPを提供するという公式の発表を行っている。Palmでも、MIDP準拠のアプリケーションが多く開発されることになると予想される。

 今後国内では、大きくNTTドコモのi モード対応Java仕様とJ-フォンのMIDPの2つの仕様が存在することになる。これによって、開発者は「Write Once,Run Anywhere」のJavaのメリットを享受できないことになってしまう。さらには、キャリアの違いどころか、端末間の互換性に悩まされる可能性もあり、開発には予想以上の工数が必要となる場面もあるだろう。

 しかし、現在のMIDP仕様は携帯電話からPalmまでをの広い範囲を包括する仕様のため、音色数やカラオケ機能といったさまざまな機能をもった携帯電話の実情に合わない。今後MIDPの仕様は拡張されるだろうが、各キャリアやメーカーはMIDPに準拠したJava搭載携帯電話であっても独自拡張のAPIを用意していく可能性が十分にある。

 また、携帯電話のハードウェアの性能が上がってくれば、CLDCでなくCDCをベースにすることも考えられ、よりJ2SEに近い世界でアプリケーションを書けるようになるかもしれない。

 

Index
  携帯Javaの最新事情
  NTTドコモのJava仕様はサンの標準とは異なる
  MIDPとは何か
  MIDPの特徴
  MIDPの開発の現状
  MIDPの開発環境
  MIDP開発のためのリンク集
NTTドコモのiモードJava仕様
  iモードJavaの開発環境
  開発のためのリンク集
  今後の動向はどうなる? 

 



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

注目のテーマ

Java Agile 記事ランキング

本日 月間