組み込み開発を支えるJava技術
ここ数年、携帯電話だけでなく、あらゆる組み込みシステムにおいて、Javaの採用が進んでいます。例えば、すべてのBlu-ray Discプレーヤには、標準で組み込みJavaが搭載されています。米GoogleのAndroid OSも、Javaの技術を取り入れています。
本連載では、組み込みシステムからみたJavaのメリットと仕組みについて、現在注目されているJava技術であるOSGiを絡めて説明します。
Javaを組み込み開発に採用するメリット
Javaというと、「動作が遅く、メモリーをたくさん使うため、組み込みでは使えない」という声を、今でもよく聞きます。ある意味においては、この説は間違ってはいません。例えば、リソースが乏しくてリアルタイム性が重視される用途には、向いていません。
しかし、NTTドコモがJava搭載の携帯電話を出荷したのは、2001年のことです。それから10年が経過しています。CPU性能は大きく向上し、メモリー搭載量も大幅に増えています。今では、情報家電、車載機器、OA(Office Automation)機器、産業機器など、各種の分野において、当時の携帯電話をしのぐ性能を持った機器が、当たり前のように使われています。
組み込みJava自体も、ガベージ・コレクションの改善やJIT(Just In Time)コンパイラの導入などにより、性能が確実に向上しています。そうです、Java VM(Java仮想マシン)に関する性能面での問題は、すでに過去のものになりつつあるのです。
しかし、性能の問題が解消されたといっても、それだけでJavaの採用が進むわけではありません。大前提として、Javaそのものに、組み込みシステムに採用されるだけの大きな魅力があるのです。魅力とは、Javaが仮想マシン(VM)上でアプリケーションを動作させるために備えている、以下の2つの特長です。
- アプリケーションが任意のメモリー空間に自由にアクセスできないため、システムとして高いセキュリティを保つことができる
- ハードウエア構成やOSが異なる複数の機器の上で、1つのアプリケーションをそのまま動作させることができる
図1: Javaの特長 |
Javaが備える2つの特長は、第三者が開発したアプリケーションを製品出荷後に追加することを前提とした機器にとって、特に有益です。そうです、まさに携帯電話のような機器にとって有益です。米GoogleのAndroid OSにも、Dalvik VMと呼ぶ、Java技術を基にしたVMが採用されていますが、これも、Javaが備える2つの特長を考慮に入れた上での選択です。
これ以外のケースでも、例えば、複雑なアプリケーションを動作させる機器において、Javaは有益です。もともとJavaは、ガベージ・コレクションに代表されるように、生産性を考慮して設計された言語です。また、プラットフォームに依存しないという特長は、作成したアプリケーションの再利用性を高めます。エンタープライズ(企業情報システム)分野でJavaがよく利用されているのは、この生産性の高さが理由です。