多様化する組み込みJava実行環境

 組み込み向けのJava実行環境ですが,サン・マイクロシステムズ社が提唱するJ2MEベースのKVMなどのJava実行環境,サン・マイクロシステムズ社からライセンスを受けずにクリーンルームで開発されているChaiVMなどのJava実行環境,フリーソフトウェアとして配布されているKaffeVMなどのJava実行環境,ハードウェアでJava実行環境を提供するJavaChipなど,かなり多様化しています.

(1) J2MEベースのJava実行環境
 J2MEベースのJava実行環境の実装は,大きく2種類に分類されます.一つはオリジナルのサン・マイクロシステムズ社のKVMです.もう一つがJava実行環境の中核となるVM(Virtual Machine)は独自に自社で開発し,互換性を保持するために,クラスライブラリのみをサン・マイクロシステムズ社からライセンスを受けているJava実行環境です.このタイプには,インシグニア社のJeodeやアクセス社のJV-Lite2などがあります.JavaVMが異なるので性能や実行サイズなど差異がありますが,互換性は保持されています.

(2) Javaのクローン
 サン・マイクロシステムズ社からライセンスを受けずに,クリーンルームで開発されているJava実行環境もけっこうあります.ヒューレット・パッカード社のChaiVMがもっとも有名です.

 これらのVMは,サン・マイクロシステムズ社のJavaとの互換性に若干の不安もありますが,サン・マイクロシステムズ社からの制約を受けずに機能拡張を行えるというメリットもあります.ChaiVMなどは,とくに組み込み向けに,バイトコードをさらに小さくするフリーズドライ機能なども盛り込んでいます.

(3) フリーソフトウェアとして配布されているJava実行環境
 フリーソフトウェアコミュニティでも,Java実行環境の実装が盛んに行われています.

 いちばん有名なのは,KaffeVMです.Javaが登場した当初から,このプロジェクトはスタートしており,サン・マイクロシステムズ社のJavaとかなり高い互換性を維持しています.フリーソフトウェアなので,ライセンスフィーがいらないという魅力もあります.

(4) バイトコードを直接実行するJavaChip
 Javaが発表された当初から構想されていたJavaChipですが,紆余曲折を経て,やっと完成し,製品がリリースされてきました.現状のJavaChipの実行性能は,極端に高速というわけではありませんが,組み込み機器で重要な低消費電力を実現し,発熱量がおさえられています.したがって,筐体を完全に密閉しても安定動作が可能で,粉塵などが舞う工場などでの利用にも問題ありません.

● モバイル機器向けJava実行環境“Waba”
 組み込みシステム分野においては,Javaの目標の一つである「Write Once Run Anywhere」(図7)が,崩れてきています.組み込み機器は用途によって制約要件などが異なるため,これは仕方がありません(図8).しかし,Javaにはこの「Write Once Run Anywhere」だけでなく,次世代の組み込みシステムにとって有益な特徴を多く備えています.

〔図7〕Write Once Run Anywhere

〔図8〕組み込みでWriteOnce
Run Anywhereの実現は難しい

 小規模デバイス向けにKVMが提案されていますが,KVMでも,それなりのリソースを必要とします.残念ながら1万円程度のコンシューマ向けのデバイスなどでは,KVMはとうてい実装できそうにありません.

 このような背景から,Javaのいくつかの機能を削り,小さなリソースの環境でも動作するJavaの極小セットである“Waba”が登場してきました.

 Wabaには,大まかに以下の制限事項があります.
1)long(64ビット符号つき整数)が扱えない
2)double(64ビット浮動小数点)が扱えない
3)例外を扱えない
4)スレッドの機能が使えない
5)クラスがオブジェクトではない(エージェントなどの実装が難しい)
6)ダイナミックロードができない
7)クラスライブラリが貧弱またはシンプルで軽い

 上記のような仕様の制限を設けることにより,Wabaは非常に小さなリソースで,快適に動作するようになっています.しかもWabaはフリーソフトウェアコミュニティで開発が進められているために,ライセンスフィーが発生しません.Wabaは,安価なコンシューマ向けデバイスには,うってつけの実行環境といえます.

● 一変するネットワーク環境
 Javaが搭載された組み込み機器は,バックエンドシステムとの連携によって,その機能が飛躍的に高まります.Javaを搭載した機器においては,ネットワークから必要に応じてアプリケーションをダウンロードしたり,デバイス間でエージェントが渡り歩いたりといったことが,自在にできるようになります.

 今後,BluetoothやIMT-2000などが登場し,Javaを取り巻くネットワーク環境が一変することが予想されます.これらの新たにもたらされるネットワーク環境によって,Javaが搭載された組み込み機器が多数登場し,人々の生活を大きく変えてしまうことでしょう.

◆ 組み込みJavaの現状と動向
◆ 組み込みシステムでのJavaの利用
◆ 多様化する組み込みJava実行環境
◆    コラム

12月号特集トップページへ戻る

 


Copyright 2000 眞壁 幸一