このページの本文へ

ユニバーサルキャンパス

インサイドMicrosoft.NET(その3)

2000年10月27日 14時39分更新

文● Tetsuya Hara and Peter Hamilton

  • この記事をはてなブックマークに追加
  • 本文印刷
 

 今までの技術的な流れを見ると、OLE、AcitveX、そしてCOM+になって、次はCOM+ランタイムといったように、順番にオブジェクト技術は進歩してきた。ところが、ベース技術というのは、これまでCOMを基盤にし、その上でアプリケーションを動かしていた。では「.NET」ではどうなっているかというと、この一部としてXMLの機能を使うようになった。

Figure 12 「.NET」とCORBA/EJBとのアーキテクチャの違い

Figure 12 「.NET」とCORBA/EJBとのアーキテクチャの違い
  1. 「.NET」は、メタデータ/XMLがあって、その上にCOM(+)が載っている。
  2. 現在のCORBAやEJBなどは、今までのCOMと同様のCOMを基盤としている方法を採っている。 2は、IDLを前面に出している。ところが1になると、IDLでは技術的には限界に来てしまい、実現が難しくなっている。

 つまり、インターフェイス定義を考えた場合、引数やメソッドといった定義だけでは済まなくなり、ランタイム実行環境のさまざまなパラメータの設定も必要になってくる。そして、トランザクションやセキュリティといった技術も流れ込んできた。これらを記述するには、「IDL」だけでは不可能であり、メタデータでないと扱えなくなってきた。Figure 12を見れば分かるように、下にメタデータがあって、上にオブジェクトシステムがあるわけだ。つまり、オブジェクトシステムは、メタデータとの関係からして時代が終わってしまったと言えるのである。Microsoftは、「オブジェクト指向からメタデータランタイム指向への移行」を目指している。メッセージやファイル、ページの区別なく、プロパティでの検索が可能となるといった例は分かりやすいが、それを実現するためには何が必要になるかを考えた場合、Microsoftは「.NET」に行き着いたのである。

 1つの例として、「RDF」であれば、オブジェクトシステム非依存の技術で、CORBAもCOM(+)も同時に呼び出すことが可能となる。クライアントから、何かリクエストがあった場合、サーバが受け取り、同じリクエストに対して、このサービスはCORBA、このサービスはCOM+といったように、1つの要求に対して並列処理で複数のオブジェクトを呼び出すことが可能となる。つまり、「オブジェクトシステムを区別するようなメタデータ」を作ることが可能になる。これは、RDFの可能性のなかのごくわずかな部分である。今まで言語非依存と言っていたが、将来は「オブジェクトシステム非依存の巨大なランタイム」になると考えてよい。

 今までは、COMが下にあって上にXMLがあった。この時、COMが足を引っ張っていた。それが今度は主従関係が逆になった。しかし、CORBAとEJBは相変わらず以前の構造(2)で進んでいる。Microsoftは「.NET」で1に移行しているわけである。Sunも、1への方向性を当然模索しているだろう。しかし、Javaという言語に固執し、単一に使っている以上は難しい。メタデータモデルは言語に依存したものではないからだ。CORBAの場合は、COMと同じように多重言語が可能なので、Javaに比べて可能性はある。しかし、大きな問題を2つ抱えている。1つは、OMGという大きい団体をまとめあげて、短期間で仕様を作るのが難しい。もう1つは、今あるCORBAのレガシーが、オブジェクトをどうマイグレートするかという問題である。その両方に対する問題を解決するのが課題であろう。

 どのように技術が発展しても、1のようにならざるを得ない。こうならない限りは技術的な限界がいろいろなところに出てくる。データベースアクセステクノロジーや検索技術、開発環境の整備というレポジトリー、データ統合やアプリケーション統合、もちろんWeb連携にしても、すべて1のモデルが必要となる。このモデルにならないと、部分的なソリューションはできても、全体のアーキテクチャの統合はできない。これはものすごく重要なポイントで、OracleやSun、あるいはIBMがどんなにXMLをサポートしても、2のオブジェクトシステムの上に、XMLを載せている以上限界がある。Microsoftの逆転が始まったのである。オブジェクト技術の時代はこれで終わったのである。

 

カテゴリートップへ

アスキー・ビジネスセレクション

ASCII.jp ビジネスヘッドライン

ピックアップ