COM 【Component Object Model】 コンポーネントオブジェクトモデル
概要
COM(Component Object Model)とは、米マイクロソフト(Microsoft)社が策定した、ソフトウェアの機能を部品化して外部から呼び出して利用する仕組みを定めた技術仕様の一つ。主に同社のWindowsシリーズのオペレーティングシステム(OS)製品やその上で動作するソフトウェアで用いられる。プログラムの機能を外部から呼び出して利用するための手順やデータ形式などの標準を定めており、COMの仕様に則って開発されたソフトウェア間は容易に連携して動作させることができる。特定のOSやプログラミング言語に依存しない仕様になっており、異なる言語やOSで開発されたプログラムを連携させることができる。
COMコンポーネント
特定の機能を持つ、部品化された(単体では動作しない)ソフトウェアを「COMコンポーネント」という。アプリケーションソフトに組み込んでその機能を呼び出して利用することができる。COMコンポーネントを「COMサーバ」(機能の提供者の意)、組み込んだアプリケーションを「COMクライアント」(機能の利用者の意)と呼ぶこともある。
GUI(グラフィカルユーザインターフェース)や通信、ファイル操作など様々な汎用的な機能がCOMコンポーネントとして公開あるいは販売され、アプリケーション開発者はこれら既存のコンポーネントを組み合わせることで個別の機能をゼロから開発しなくても迅速かつ容易に機能を実装できる。
DCOM (Distributed COM)
当初のCOM仕様は同じコンピュータ上で動作しているプログラムを連携させる方式を定義していたが、通信ネットワークを通じて他のコンピュータ上のプログラムと通信してその機能を利用する拡張仕様「DCOM」(Distributed COM)が定義された。
遠隔手続き呼び出し(RPC:Remote Procedure Call)の仕様の一つである「DCE/RPC」を同社が独自に拡張した「MSRPC」によりプログラム間の連携を行う。他のコンピュータの提供する機能をあたかも自らの機能のように組み込んで利用するアプリケーションを実装することができるようになった。
歴史
COMは前身は「OLE」(Object Linking and Embedding)および「ActiveX」で、COMはこれらを発展・統合した仕様として1997年に発表された。標準で動作環境が組み込まれたのは同社のWindowsだけだったため、主にWindows環境で利用された。1999年にはメモリ管理方法などを改良した「COM+」がWindows 2000に組み込まれた。
2000年代に入ると、ソフトウェアの動作基盤および部品化や連携の共通仕様として同社は新たに設計された「.NET」(ドットネット)を推進し始め、Windowsにもその動作環境「.NET Framework」が提供された。その後もWindows上では引き続きCOM技術を利用可能だが、.NET環境への移行が進んでいる。