II-26-5. 組み込みJavaの様々な実行環境

組み込みJavaアプリケーションを動作させるVirtual Machine (VM)の様々な実装について説明する。その例として、KVM、Wabaといった現在組み込み環境で利用できるVMのいくつかを紹介する。

【学習の要点】

* 組み込みJavaアプリケーションを動作させる仮想マシン(Virtual Machine: VM)にはコンフィギュレーション毎に何通りかの実装がある。

* 携帯電話向けのJava VMにはKVMの他、オープンソースのWaba、Kaffeなどが利用される。

* MSA (Mobile Service Architecture)はJava MEのAPIの集合であり、携帯電話によって実装するAPIのばらつきを抑える目的がある。

図II-26-5. JSR248, MSA (Mobile Service Architecture)の構成

【解説】

1) 組み込みJava の実行環境

* 代表的な組み込みJava VMとしてKVMが挙げられる。また、オープンソースJava VMの代表例としてWaba、Kaffeが挙げられる。

* 選択のポイントとしては、性能とサイズ(フットプリント)である。

* リアルタイム要求の高まりから、JIT (Just-In-Time)コンパイラの利用が主流になっている。

2) KVM

* KVMはCLDCのコンフィギュレーションで定義されるJava VMの一つであり、Sun Microsystemsにより提供される。KVMは数十“K”(キロバイト)単位のメモリで実行可能なJava VMという意味からKVMと呼ばれている。VM実行時のメモリ消費を抑え、ポータビリティとカスタマイズ性を持たせ、一定のパフォーマンスを得るように設計されている。

3) オープンソースVM

* Waba VMはWabasoftにより提供される携帯電話などの小型デバイス用途のJava VMである。携帯性、機能性、信頼性、移植性の向上を念頭に設計されている。

* Kaffeもまた組み込み用途に利用できるオープンソースJava VMであり、様々なプラットフォームに対してJITコンパイラを提供している。

4) MSA (Mobile Service Architecture)

MSAは次世代携帯電話プロファイルといえるJCP (Java Community Process)が定義したJava MEのAPIの集合であり、携帯電話によって実装するAPIのばらつきを抑える目的がある。

* MSAは携帯電話間の互換性を重視しているため、広範なプロファイルとなっている。

* JSR (Java Specification Requests)がコンポーネントとして含まれている。MSA自体もJSR 248, 249として策定されている。

* MSA 2は、MSA 2.0、MSA 2.0 Subset、MSA 2.0 Limitedの3段階に規模に応じて分かれている。

- MSA2.0 Limited: JTWI 1.0との後方互換を持ち、CLDC/CDC、MIDP、Mobile Media APIなどのJSRから構成される。

- MSA2.0 Subset: MSA 1.1との後方互換を持ち、MSA2.0 Limitedに加えて、Mobile 3D Graphics API、Location APIなどのJSRから構成される。

- MSA2.0: Limited, Subsetに加えて、J2ME Web Services Specification、Security and Trust Services API、SIP API for J2MEなどのJSRから構成される。

* CLDC/CDC、MIDP、グラフィックス、通信、国際化、セキュリティ、位置情報、XML、Webサービスなどのコンポーネントがそれぞれの段階に合わせて組み合わされる。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。