この特集のトップページへ
Chapter 2:COMアーキテクチャの概要

見出し 2.2 COMアーキテクチャによるサンプルの実装

 前節ではC++で英和辞書を検索するサンプルアプリケーションを作成した。本節では,COMアーキテクチャを理解するため,COMコンポーネントに搭載されている機能をmain関数で始まるC++アプリケーションとして実装してみる。

見出し 2.2.1 COMコンポーネントの特徴
 COMコンポーネント(COM+コンポーネントを含む)には,下記に示すようにいくつかの特徴がある。COMについて理解するためには,このような特徴を正確に把握しておくことが必要となる。

○プログラミング言語に依存しない
 COMには,特定のプログラミング言語でなければ開発できないとか,特定のプログラミング言語からでないと利用できないといった制約はない。COMアーキテクチャに対応したプログラミング言語であれば,どのようなプログラミング言語でも,COMコンポーネントを開発および利用することができる。本稿の執筆時点では,Visual C++,Visual Basic,Visual J++,Delphi,C++ Builderなどの処理系がCOMコンポーネントを開発したり利用したりするのに便利である。

○バイナリ形式のプログラムとして実装される
 COMコンポーネントは,Viusal C++やVisual Basicなどのプログラミング言語でDLLファイルやEXEファイルといったバイナリ形式のプログラムとして実装される。

○バージョン管理が容易である
 Windowsは,DLL形式でAPI(Application Programming Interface)を提供しているが,DLLのバージョン管理はWindowsプラットフォームにおける問題点の1つであった。実際,名前や機能が類似した別のコンポーネントを導入したり,APIの一部を拡張または変更したコンポーネントを導入したりすると,アプリケーションが動作しなくなる場合があった。  COMコンポーネントの場合,過去,そして現在使用しているコンポーネントのバージョンを気にすることなく,運用することができる。

○位置透過性が保証されている
 ひとたび開発されたコンポーネントは,再開発することなく,ローカル環境はもちろんのこと,境界を越えたリモート環境でも利用できることが望ましい。COMコンポーネントの場合,ローカル環境で動作するものであれば,異なるコンピュータ上に分散されていても,LANやインターネットを通じて起動することができる。この特徴をDCOM(Distributed COM)と呼ぶ。

prev Chapter 2 4/9 next