COM サーバーは,1 つ以上のオブジェクト・クラスの実装で構成されています。オブジェクト・クラスは,オブジェクトの完全公開呼び出しインタフェース ("signature") を記述する形式です。これは,オブジェクトのユーザーに対して利用可能にしたい機能を記述しています。COM サーバーは,クライアントが要求した時点でのオブジェクトと呼ばれるクラスのインスタンスを作成します。
COM サーバーとして Fortran コードを実装する利点には,以下のものがあります。
COM サーバーは,複数のアプリケーションがサーバーを使用することができるようにする再利用可能な構成要素です。サーバーが指定するクラスは,サーバーとクライアント間の契約 ("contract") を定義します。サーバーは,接続を切ることなく機能の特定の実装を変更することができます。つまり,クライアントに変更や再ビルドを要求する必要はありません。
COM サーバーは,プログラミング言語に独立しています。Visual Basic,Visual C++,Visual Fortran などの複数の開発ツールをサーバーの機能を参照する為に使用することができます。
COM サーバーは,自己記述型です。サーバーは,クラスとインタフェースを記述するタイプ・ライブラリーを提供しています。多くのツールは,この情報の利点を利用することができ,呼び出し規約のような下位レベルの呼び出しの詳細を理解する必要からクライアント・プログラマを開放します。これは,クライアント・プログラマがデータ型と呼び出し規約の詳細を理解しなければならなかった DLL で複数言語のプログラミングで大きな改良をもたらしました。
COM サーバーは,自己登録型です。クライアントは,サーバーがどのシステムにあるかを気にする必要がありません。それは,COM がシステム・レジストリでこの情報を検索するためです。
COM サーバーは,プロセス内サーバーとして実装することができます。DLL のように,クライアント・プロセス内にロードすることができます。COM サーバーはまた,別のアプリケーションとして実装することもでき,別のマシン上に置くこともできます。
Visual Fortran は,Fortran COM Server Wizard を提供しています。ウィザードは,COM サーバーを実装するために必要な Fortran コードを生成し,サーバーがクライアントに提供する機能のみにプログラマが集中してコーディングができるようにします。
「COM およびオートメーション・オブジェクトの概要」で説明しているように,COM は 2 つのサーバー・タイプをサポートしています。COM サーバーとオートメーション・サーバーです。Fortran COM Server Wizard は,COM サーバーまたはデュアル・インタフェースをサポートするサーバーのみを作成することができます。ウィザードは,オートメーションのみのインタフェースを作成することはできません。
Visual Fortran を使って COM サーバーを作成する方法の詳細は,「Fortran COM Server Wizard に提供すべき内容と Fortran COM Server Wizard が行う内容」を参照してください。