組み込みシステムでのJavaの利用 |
エンタープライズシステム分野で開花しはじめたJavaですが,当初から期待されていた組み込みシステム分野における利用も,本格的に始まりました.
サン・マイクロシステムズ社の副社長であるビル・ジョイは,Javaが発表された当時,シェーバー(電気髭剃り機)をよく例に出し,Javaの話をしていました.
「今ではシェーバーでさえ,C言語で7,000ステップ以上のプログラムが組み込まれています.今後もMPUの高性能化,メモリの大容量化がさらに進み,ソフトウェアの規模は,ますます大規模化するでしょう.しかも,これらの組み込み機器は,プログラムをROMに焼き付けなければなりません.いったん,ROMに焼き付けたプログラムを変更することは不可能です.大規模化している組み込み向けのプログラムからエラーを取り除くことは,どんどん困難になってきています.これからの組み込み環境には,まったく新しい実行環境が必要で,Javaこそが,この組み込み環境のソフトウェア危機を打破する唯一のソリューションです.」
というように,組み込みシステム分野でのJavaの有効性を訴えていました.
Javaが組み込みシステムに有効な機能としては,次のようなものがあげられます.
(1) 言語仕様にポインタがない
これは,先のシェーバーの話の解となる特徴です.一般的にいわれていることですが,C言語でプログラムを組んだ場合,バグの多くがポインタによるものとされています.UNIXなどのきっちりとしたOSの制御下であれば,メモリ保護機能が施されているので,アプリケーションが暴走しても,システム全体を停止させてしまうことはありません.しかし,組み込みシステムで使われるリアルタイムOSの場合,一般的にメモリ保護機能がないので,ポインタ操作に基づくバグの場合,往々にして致命的なエラーを引き起こします.Javaの場合,ポインタが言語仕様上ないので,このようなバグを防ぐことができます.
この機能は,プログラマからメモリ操作の面倒を開放し,開発生産性を向上させるメリットをもたらしています.
(2) コンパクトなバイトコード
Javaで書かれたプログラムは,バイトコードと呼ばれる仮想マシンであるJavaVM向けの実行コードにコンパイルされます.バイトコードは,Javaの設計当初からネットワーク経由によるプログラムの配信を考慮し,その名のとおりコンパクトに設計されています.
通常,C言語のプログラムをターゲットのMPU向けのネイティブコードにコンパイルすると,かなりサイズが大きくなってしまいますが,それに比べてバイトコードは非常にコンパクトで,メモリに制限のある組み込みシステムには非常に適しています.
(3) プログラムのネット配信
従来の組み込み機器では,プログラムがROMに焼き込まれているので,少しプログラムを変更する場合でもROMを交換する必要がありました.しかし,Javaの場合,ネットワーク経由でプログラムを配信する機能があるので,ちょっとしたプログラムの変更など,ネットワーク経由で簡単に実現できます.
● 組み込みシステムとは
ここで,組み込みシステムという用語を定義しておきます.
組み込みシステムとは,「ROMにプログラムが組み込まれ,CPUによって動作するシステムのこと」としましょう.この定義にしたがえば,ガスメーターなどの地味な組み込みシステムから湯沸しポット,冷蔵庫など家電の制御に使われる比較的小規模な組み込みシステムや3Com社のパームパイロットのようないわゆるPDA,そして日本でおなじみの日本語ワープロ専用機まで,千差万別です.
最近のワープロ専用機は,ブラウザやメールなどのインターネットアクセス機能などもサポートされており,ほとんどパソコンと見劣りしない性能と,機能を誇っています.しかし,プログラムの大部分はROMに焼かれて機器に組み込まれており,組み込みシステムの特徴をもっています.ワープロはパソコンの変種ではなく,立派な組み込み機器といえます(図5).
〔図5〕組み込みシステム
|
![]() |
● 制御機器でのJavaの利用
工場で利用されているFA機器は,現状ではスタンドアローンで利用されることが多いのですが,これらのFA機器をネットワーク化する動きが盛んになってきています.
たとえば,機器の温度などを計測する計測機器にJavaが搭載されている装置を接続すれば,オフィスに居ながらにして,工場のようすが手に取るようにわかるようになります.さらに,もしモニタプログラムを変更したい場合でも,Javaならば簡単にプログラムを変更できます.
Javaをこのような形態で使用するのであれば,Javaの苦手なGUIを活用したリッチな表示機器も必要としないので,これらはJavaに適した分野といえます(図6).
〔図6〕計測機器などの一般的な システム構造図
|
![]() |
● 携帯電話などのモバイル機器におけるJavaの利用
本年12月より,NTTドコモがiモードでJavaのサービスを開始します.世界中が注目するなか,世界で最初の本格的なJavaサービスが,まもなく開始されようとしています.
iモードのJavaサービスは,Javaが携帯電話などのモバイル機器で本当に価値があるのか,その実力が試される試金石となるでしょう.
● iモード向けJava実行環境“DoJa”
1999年の6月に行われたJavaOneで,J2ME(Java 2 Micro Edition)が発表されました.そして,NTTドコモ向けのJava,通称“DoJa”は,このJ2MEに基づいています.
これまで,組み込みシステム向けJavaは,Personal JavaとEmbedded Javaに分かれていました.この二つのJavaの仕様は,標準のJavaのサブセットとしての位置付けでしたが,J2MEは携帯電話などのメモリにかなりの制限がある環境におけるJavaの使用を前提としており,JavaVMもKVMという標準のJavaとは異なる実装がなされています.DoJaは,このKVMがベースになっています.
DoJaでダウンロードできるアプリケーションは,JARファイルで10Kバイト,データとして5Kバイトとなっています.かなりサイズが小さいのは,通信時間からの制約のようなので,今後,通信速度が向上すれば,大きなアプリケーションの配布も解禁されるようになるでしょう.また,携帯電話本体の機能を保護するために,Javaのメモリ空間は切り離されています.
◆ 組み込みJavaの現状と動向 ◆ 組み込みシステムでのJavaの利用 ◆ 多様化する組み込みJava実行環境 ◆ コラム |
Copyright 2000 眞壁 幸一