本件開発成果物(本システム)で提供されるソフトウェアの全体構成を、図1.1に示す。
┌───────────────────────────────────┐ │ │ │ 組込み機器の制御アプリケーション │ │ │ ├───────────────┬───────────┬───────┤ │ │ │ │ │ JTRON │ │ │ │ プラットフォーム機能★ │ CORBA関連機能★ │ │ │ │ │ │ │ ┌───────────┼───────┐ │ │ │ │ / │ │ GUI │ │ │ / TCP/IP │ │ ミドルウェア│ │ │ Java Virtual / プロトコル │ │ 機能★ │ │ │ Machine (JVM) △ / スタック △ │ │ │ │ │ / │ │ │ │ │ / │ │ │ ├───┴────────┴──────────┴───┴───────┤ │ │ │ µITRON仕様OS △ │ │ (リアルタイムカーネル) │ │ │ ├───────────────────────────────────┤ │ │ │ DOS/V PC (x86 ハードウェア) △ │ │ │ └───────────────────────────────────┘ ★: 本件における開発項目 △: 既存品を利用 図1.1 本システムで提供されるソフトウェア
以下、項目別に説明を行う。
ソフトウェアのポータビリティ及びネットワーク接続という観点から最も強力なソリューションとなるのが、Javaの実行環境である。しかしながら、Javaのみではハードウェアの細かい制御やリアルタイム処理に不 向きである。そこで、Java 実行環境とリアルタイムカーネルを融合させたプラットフォームを提供し、リアルタイム性が必要なアプリケーションはリアルタイムカーネル上に、 Java の利点が有効なアプリケーションは Java 実行環境上に実装すれば、双方の利点を組み合わせて利用できる。これを目指したものが、TRONプロジェクトで仕様を標準化したJTRON仕様である。
JTRON仕様には、1997年末に仕様が公開され、 既に商品化まで行われているJTRON 1.0仕様と、μITRON〜Java間の連携機能を強化したJTRON 2.0仕様がある。本件では、JTRON 2.0仕様OSの開発を行う。
Java 実行環境上のプログラムとμITRON仕様カーネル上のタスクとの間の通信機構については、JTRON 2.0仕様において次の3つのタイプ定義しており、これらの機能をそれぞれ実装する。
具体的な開発方針としては、 Java環境のスレッドをμITRONのタスクにマッピングし、Java スレッド間の各同期機構をμITRONの同期機構を用いて実現する。なお、 JTRON仕様OSの実現のために利用するJavaバイトコード処理系(いわゆる JVM - Java Virtual Machine) については、HP社のChaiVMを使用しているが、 JVMの実装に依存する部分は極力減らす方針であり、他のJVMへの移植も可能である。
情報家電や自動車内のネットワークにおいて相互接続性を確保するためには、低レベルのネットワークプロトコルの標準化に加えて、より抽象度の高いレベルでの通信をサポートすることが必要になる。高レベルの 通信プロトコルとしては、情報家電の機能をオブジェクトとしてとらえ、情報家電の連携動作をオブジェクト間通信により実現する方法が有力視されており、 それを具体化した仕様としてCORBA(The Common Object Request Broker: Architecture and Specification)がある。本件においては、 オブジェクト指向の分散プラットフォームであるCORBAをベースに、情報家電の連携動作のための高レベル通信プロトコルの処理系のソフトウェア開発を行う。ところで、家電や自動車内の制御システムのネットワーク化に際しては、無線や電源ラインを用いたネットワークなど回線容量の小さい場合にも対応しなければならない。また、コスト削減が厳しく求められ、リアルタイム性が必要といった要求も厳しい。既存のインターネットプロトコル及びCORBAでは、 こういった観点からの問題が多いため、本件では特にこれらの問題点を解決することを目標とし、開発機能の名称も「組込みCORBA」としている。具体的には、CORBA を情報家電に適用するにあたっての様々な問題点の解決、すなわち、ソフトウェアのコンパクト化、運用の容易性、家電向けオブジェクトサービスインタフェースなどに重点をおいて開発を行う。
μITRON上に実装可能な、 コンパクトでスケーラビリティの高いGUI(Graphical User Interface)の構築支援ミドルウェアのソフトウェア開発を行う。
組込み機器や家電に求められるGUI機能は、 かなり限定されたものであるのが一般的である。これに対して、パソコンやワークステーションをメインターゲットとして開発された既存のウィンドウシステムはオーバースペックであるために、プロセッサの処理能力の面でもメモリ使用量の面でも無駄が大きい。 また、一口に情報家電に求められるGUIと言っても、必要な機能は応用機器の性質、すなわちユーザインタフェースの機能、ディスプレイの解像、入力デバイスなどによって大きく異なる。一方、要求毎に別々のソフトウェアを開発する方法を採った場合、ソフトウェアの保守コストの面からは不利となる。
これに対して、本件で開発を行うμITRON用のGUIミドルウェアは、そのスケーラビリティないしは適応性を特長とする。具体的には、個々の機能のモジュール化や適応化を進め、広範囲な用途への実装が可能なミドルウェアを目指す。GUIミドルウェアの内部構成は、 ディスプレイへの描画モジュール、 スイッチなどのGUIパーツ管理モジュール、画面やパネルを管理するモジュール、入力デバイスからの情報(イベント)を管理モジュールなどに分けられるが、これらの中から必要なモジュールのみを利用できることに加えて、個々のモジュールの機能も用途に応じて最適化できるように工夫する。
なお、Javaにもawtと呼ばれるGUI向けのモジュールが用意されているため、この機能はある意味でそれと重複する。しかし、コンパクト性やスケーラビリティといった観点から見ると、 Java上で動く標準のGUIモジュールは利用できないケースも多い。 一方、本件で開発するGUIミドルウェアは、 既存のウィンドウシステムやJava上のGUI環境の実装が困難な小さめの組込み機器に対しても、 GUI機能を提供できる点にメリットがある。
本システムの動作環境及び開発環境は図1.2の通りである。
ターゲットマシン ホストマシン(開発環境) ┌─────────────┐ ┌─────────────┐ ┌ │ ☆ │ │開発用コンソール │ │ │ 評価実験用プログラム │ │ 評価実験用プログラムの │ │ │ │ │ 管理、コンパイル │ │ ├─────────────┤ │ RS232Cの通信端末 │ ソ │ │実験で利用する開発対象機能│ │ │ フ │ │ ★│ │コンパイラ │ ト │ │ JTRONプラットフォーム機能│ │ GCC (Ver 2.7.2.1 以降) │ ウ ┤ │ CORBA関連機能 │ │ │ ェ │ │ GUIミドルウェア機能 │ │ │ ア │ ├────┬─────┬──┤ ├─────────────┤ │ │Java △│TCP/IP △│ │ │ │ │ │Virtual │プロトコル│ │ │ │ │ │Machine │スタック │ │ │ │ │ │ (JVM) │ │ │ │ OS: Solaris (Ver 2.5以降)│ │ ├────┴─────┘ │ │ │ │ │ µITRON 3.0仕様 │ │ │ └ │ リアルタイムカーネル△ │ │ │ ├─────────────┤ ├─────────────┤ ハ ┌ │ │ │ │ │ │ │ DOS/V PC │ │ │ ド ┤ │ │ │ SUN Ultra 1 または相当品 │ ウ │ ├─────────────┤ │ │ ェ │ │Intel EtherExpress PRO/10+│ │ │ ア └ │ (LANボード) │ │ │ └─────────────┘ └────┬───┬────┘ ↑ ↑ │ │ │ │RS-232C │ │ │ └───────────┘ │ │ │ │ │ ←───┴───────────────────────┴────────→ LAN(Ethernet 10Base-T, 10Mbps) ★: 本システムで提供されるソフトウェア ☆: ユーザの開発するアプリケーションプログラム △: 既存品を利用 図1.2 本システムの動作環境及び開発環境
上記のうち、ホストマシン(開発環境)のハードウェア及びソフトウェア構成は次の通りである。
ハードウェア | SUN Ultra 1 または相当品、メモリ: 64MB以上、HDD: 2GB 以上 |
---|---|
ソフトウェア | OS: Solaris (Ver 2.5以降) |
開発言語 | GCC (Ver 2.7.2.1以降) |
ネットワーク | Ethernet (TCP/IP) |
ホストマシン上で作成したアプリケーションプログラムは、 LAN経由でターゲットマシンに転送し、その上で実行する。また、ホストマシン上で動く通信端末プログラム(UNIXのtipなど)を、RS-232Cの回線経由でターゲットマシンのシリアルポートに接続し、ターゲットマシン上で動くCLIユーティリティを用いて、 OSの起動やアプリケーションプログラムの実行を指示する。 CLIユーティリティの詳細については、結合試験報告書の付録4.を参照のこと。
ターゲットマシンのハードウェア構成及びソフトウェア構成については、以下に説明する。
動作環境のうち、ターゲットマシンのハードウェア構成は図1.3の通りである。
┌───────────────────────────┐ │ DOS/V PC │ │ │ │ ※ IBM-PC/AT互換機、いわゆるWindows 95/98用マシン │ └─┬─────────────────────────┘ │ │ ┌───────────────────┐ ├─┤ CPU (Pentium 以上) │ │ └───────────────────┘ │ │ ┌───────────────────┐ ├─┤ 64Mバイト以上のメインメモリ │ │ └───────────────────┘ │ │ ┌───────────────────┐ ├─┤ IDEタイプのHDD │ │ └───────────────────┘ │ │ ┌───────────────────┐ ├─┤ 106/109日本語キーボード │ │ │ │ │ │ または101/104英語キーボード │ │ └───────────────────┘ │ │ ┌───────────────────┐ ├─┤ シリアルポート ├─── RS-232C │ └───────────────────┘ │ │ ┌───────────────────┐ ├─┤ PS/2互換マウス │ │ └───────────────────┘ │ │ ┌───────────────────┐ ├─┤ 640×480ドット16色VGA仕様、 │ │ │ │ │ │ VESA BIOS 2.0以上のグラフィック機能 │ │ └───────────────────┘ │ │ ┌───────────────────┐ └─┤Intel EtherExpress PRO/10+ (LANボード)├─── Ethernet(10Base-T,10Mbps) └───────────────────┘ 図1.3 ターゲットマシンのハードウェア構成
本件で開発するソフトウェアは、μITRON 3. 0仕様のリアルタイムカーネルの上で動作する。すなわち、JTRONプラットフォーム機能、CORBA関連機能、GUIミドルウェア機能のいずれの部分も、μITRON 3.0仕様のリアルタイムカーネルの機能を使って実装されており、必要に応じてリアルタイムカーネルの機能を呼び出す。 μITRON 3.0仕様のリアルタイムカーネルとしては、既存品を利用する。
また、Java Virtual Machine(JVM)、 TCP/IPプロトコルスタックの部分についても、 既存品を利用する。JTRONプラットフォーム機能の実装にはJVMの機能も使うが、さらに、JVMは必要に応じてリアルタイムカーネルやTCP/IPプロトコルスタックの機能を呼び出す。また、 CORBA関連機能の実装のためにもTCP/IPプロトコルスタックの機能を利用するが、さらに、TCP/IPプロトコルスタックはLANドライバを、LANドライバはリアルタイムカーネルの機能を呼び出す。
上記の既存品として、具体的に使用するソフトウェアは次の通りである。
JVM: HP社のChai VM (Ver 2.1以降) μITRON 3.0仕様リアルタイムカーネル: パーソナルメディア社の超漢字(B-right/V R2) ※ BTRON仕様OSであるが、 その中心核として ITRON(I-right/V)を含んでおり、 ITRONの実 行環境としても利用できる。 TCP/IPプロトコルスタック: B-right/Vに含まれている当該機能を利用
また、ターゲットマシン側において、アプリケーションプログラムの実行を指示したり、ターゲットマシン内部の状態を参照したりするために、B-right/V に含まれる「CLI」というユーティリティを使用する。CLIユーティリティの詳細については、結合試験報告書の付録4.を参照のこと。
「JTRONプラットフォーム機能」及び「CORBA関連機能」の一部は、クライアントマシンとサーバマシンをLANで接続した環境で動作する。 この様子を図1.4に示す。クライアントマシンとサーバマシンを接続するために、10Mbps の Ethernet (TCP/IP) を使用する。
ターゲットマシン1 ターゲットマシン2 (クライアントマシン) (サーバマシン) ┌─────────────┐ ┌─────────────┐ ┌ │ ☆│ │ ☆│ │ │アプリケーションプログラム│ │アプリケーションプログラム│ │ │ │ │ │ │ ├─────────────┤ ├─────────────┤ ソ │ │ ★│ │ ★│ フ │ │JTRONプラットフォーム機能 │ │JTRONプラットフォーム機能 │ ト │ │ の一部 │ │ の一部 │ ウ ┤ │ │ │ │ ェ │ │CORBA関連機能の一部 │ │CORBA関連機能の一部 │ ア │ ├────┬─────┬──┤ ├────┬─────┬──┤ │ │Java △│TCP/IP △│ │ │Java △│TCP/IP △│ │ │ │Virtual │プロトコル│ │ │Virtual │プロトコル│ │ │ │Machine │スタック │ │ │Machine │スタック │ │ │ │ (JVM) │ │ │ │ (JVM) │ │ │ │ ├────┴─────┘ │ ├────┴─────┘ │ │ │ µITRON 3.0仕様 │ │ µITRON 3.0仕様 │ └ │ リアルタイムカーネル△ │ │ リアルタイムカーネル△ │ ├─────────────┤ ├─────────────┤ ハ ┌ │ │ │ │ │ │ │ DOS/V PC │ │ DOS/V PC │ ド ┤ │ │ │ │ ウ │ ├─────────────┤ ├─────────────┤ ェ │ │Intel EtherExpress PRO/10+│ │Intel EtherExpress PRO/10+│ ア └ │ (LANボード) │ │ (LANボード) │ └─────────────┘ └─────────────┘ ↑ ↑ ↑ ↑ │ │ │ │ │ │RS-232C RS-232C│ │ │ ┌─┴───────────┴─┐ │ │ │ 開発環境(SUN Ultra 1 相当品) │ │ │ └───────┬───────┘ │ │ │ │ │ │ │ ←───┴──────────┴─────────┴────────→ Ethernet(10Base-T, 10Mbps) ★: 本システムで提供されるソフトウェア ☆: ユーザの開発するアプリケーションプログラム △: 既存品を利用 図1.4 ネットワーク環境