合資会社もなみソフトウェア
October 13, 2000
技術白書
オブジェクトバスとは何か?
超分散環境を迎えるためのソフトウェア戦略
新しいテクノロジーの必要性
ユビキタス ,パーベイシブ,センティエント ,ウェアラブルネットワークコンピューティング…IT革命の掛け声のもとに、新しいコンピューティングの形が見えてきました。
コンピュータの誕生がプログラミング言語を、コンピュータの大衆化がOSを生み出したように、新しい時代は、新しいテクノロジーを必要としています。
新しいコンピューティングの時代を前に、OS研究者はこう主張します。「分散環境時代の新しいOSが必要だ」と。現場(特に、家庭用消費財の生産に携わる)技術者の反論は、概ね「OSは必要だが重い。結局、製品コストを上昇させるだけだ」というものでしょう。どちらの主張も正しいように見えます。実際、どちらかが他方を完全に論破したという話は、聞いたことがありません。
しかし、この議論の前に、ひとつの疑問を持つべきではないでしょうか?
それは、「すべての機器にOSは必要か?」ということです。
コンピュータ技術の発展において、ハードウェアとソフトウェアは表裏一体の技術です。ソフトウェアの発展が、ハードウェアの設計手法に大きな影響を与えました。しかし、ハードウェアの低価格化に対し、ソフトウェアの開発コストは相変わらず増加しています。ソフトウェアは、ハードウェアから学ぶ所はないのでしょうか?
ハードウェアの部品化、低価格化をもたらした要因の一つに、バスの標準化が挙げられます。これに倣ったソフトウェアの設計手法、オブジェクトバスを基礎とする超分散環境の実現が、上限を知らない開発コストへの楔となります。オブジェクトバスに触れる前に、ハードウェアバスとは何かを知る必要があるでしょう。
通常、ハードウェアは、ある程度以上の規模になると、複数のボードに分割して実装します。このとき、可汎性を高めるために、ハードウェアバスを規定します。計測制御系ではVMEやCompactPCIが、パーソナルコンピュータ上ではISAやPCIが、モーバイル環境ではCardBusなどが有名です。
同一のハードウェアバスに対応する機器は、(少なくとも建前上は、ですが)互いに電気的に接続することができます。このとき、バスドライバと呼ばれるハードウェアが重要な働きをします。そして、バスにとって、バスドライバ以外のハードウェアについては、関与しません。あるボードはCPUを持つ高価で汎用性のある構成かもしれません。別のボードは、温度を測るための、数百円のチップしか載っていないこともあります。
ハードウェアシステムの設計では、すべてのボードに高価なCPUを載せる、という提案は(一部の科学技術計算分野は別ですが)通りません。それが無意味であることを誰もが知っているからです。なぜ、ソフトウェアの世界では、すべての機器にOSが必要だと主張するのでしょうか?
超分散環境においては、短い周期で使い捨てるような機器にまで、漏れなくネットワーク環境に参加させることが重要です。分散環境OSが遍在するソリューションでは、コスト面で著しく非効率的であることは自明です。
なお、現在のPDAや通信機器など、すでにOSが組み込まれている分野においては、分散環境OSに載せかえる価値があります。その場合にも、OSを基礎とする考え方は適切ではありません。詳細は後述します。
オブジェクトバスという考え方
オブジェクト指向の一形態として、コンポーネント指向という設計思想が見られるようになりました。コンポーネント指向の基礎となる概念が、インタフェースです。インタフェースは、オブジェクトに対する手続きの種類だけを定義します。インタフェースと実装を区別することで、動的な入れ替えが可能なシステムを構築することが可能となります。LinuxやBeOSでは、インタフェースを導入することで、OS本体の動的拡張の手段を提供しています。
インタフェースの、動的拡張性に着目し、発展させたのが、オブジェクトバスという考え方です。オブジェクトバスとは、インタフェースに、通信のためのプロトコルを追加した概念です。ハードウェアバスがそうであるように、異なる環境にある部品を相互に接続することができます。
DCOM, OpenDoc, CORBA, JavaBeansなどが、すでに市場に存在するオブジェクトバスです。
オブジェクトバスに、コンテンツを追加すると、複合文書になります。ActiveX Documents, OpenDocなどが複合文書の例です。具体的には、Microsoft Word文書にMicrosoft
Excelのシートを貼り付けたファイルが挙げられます。
複合文書については、ここでは詳細を述べません。しかしながら、複合文書は、オブジェクトバスが基本になる、ということだけは指摘しておきます。
真のオブジェクトバスに向けて
今までの解説で、オブジェクトバスの可能性について解説しました。残念なことに、現存するオブジェクトバスの全てが、以下に示す条件のいくつかを満たすことができません。
そこで、現存するオブジェクトバスの採用を諦め、新たなバスを開発する必要があります。
現在のオブジェクトバスは、残念ながら、OSの存在が前提となっています。そのため、必ずOSが介在することによる、コスト上昇が存在します。
軽量であることは、そのまま製品の製造コストに反映されます。また、現在のオブジェクトバスは、組み込み向けのサブセットが存在するとはいえ、多量のリソースを必要とします。パーソナルコンピュータを前提とした仕様を基礎としていることが、仇となっています。
バスである以上、仕様がオープンでなければなりません。また、バスである以上、インタフェースさえ明らかにすれば、内部仕様を非公開にしても、ユーザが使えることを期待させる仕様でなければいけません。このことは、自社技術を必要以上にオープンにしたくない企業にとっての魅力ともなり、バスの普及にいっそうの弾みをつけます。
ソフトウェア技術は日々進歩しています。開発者にかかる学習コストは無視できないものになっています。開発者にとって既知の技術と類似していることは、開発コストの削減のために重要です。
また、単純であることは、機器が必要とするリソースの削減となり、製造コストの削減につながります。
必要リソースの増大について、ハードウェア価格の低下を理由にする意見があります。しかしながら、ハードウェア価格の低下と同時に、分散環境へ対応が期待される機器の範囲も、広がっています。これらの、機器類の単価は、非常に安価なものも含むことを忘れてはいけません。
最後に、あたりまえのことですが、超分散環境では、接続されるハードウェアを予測できません。オブジェクトバスに流れる情報はハードウェア中立であることが必要です。
オブジェクトバスを基礎とするOS
かつて、ISAハードウェアバスはIntel社製CPUのアーキテクチャにより決定されました。現在、いくつかの組み込み向けCPUは、独自のバスに加えて、ISAバスの直接ドライブを考慮してあります。つまり、ハードウェアバスにCPUが合わせる、という、発想の逆転が起こっています。
現在のオブジェクトバスは、OS上のミドルウェアとして存在しますが、ここに発想を転換する余地があります。
超分散環境においては、最低限必要なものは、OSではなく、オブジェクトバスです。つまり、超分散環境向けのOSは、軽量オブジェクトバスを基礎とするものでなければなりません。
もなみソフトウェアの取り組み
もなみソフトウェアは、超分散環境に対応し、小規模組み込み機器をターゲットにした、Nekoオブジェクトバスの仕様を作成中です。本仕様は、BTRON2仕様をベースに機能を整理し、実身・仮身モデルを基礎とするオブジェクトバスを提供するものです。本仕様は、平成13年4月の公開を目指します。
Nekoオブジェクトバスの軽量さを活かした組み込み機器向けチップの設計を予定しています。この研究はまだ基礎段階のもので、完成時期等は未定です。
もなみソフトウェアは、Nekoオブジェクトバスをベースとする、超分散対応OS(Altissimo)を開発いたします。本OSは、ホームコンピューティング・ウェラブルコンピューティングの中核となることを想定し、PDAや通信機器における事実上の標準を目指します。