COM+ イベントおよびイベント サブスクライバ オブジェクト
COM の基礎:インデックス への移動
COM+ イベントシステムは,イベントを生成するアプリケーション(つまりパブリッシャ)を,イベントに応答するアプリケーション(つまりサブスクライバ)から切り離す中間層のソフトウェアを導入します。パブリッシャとサブスクライバは,相互に密接に結合しているのではなく,独立して開発,配布,および起動することができます。
COM+ イベントモデルでは,まず COM+ イベントオブジェクトウィザードを使ってイベントインターフェースが作成されます。イベントインターフェースは実装を持たず,パブリッシャが生成してサブスクライバが応答するイベントメソッドを定義するだけです。そして COM+ イベントオブジェクトが COM+ アプリケーションの COM+ カタログ内にインストールされます。それには,TComAdminCatalog オブジェクトを使ってプログラムで行うか,システム管理者がコンポーネントサービスを使って行います。
イベントサブスクライバは,イベントインターフェースの実装を提供します。イベントサブスクライバコンポーネントを作成するには,COM+ Event Subscription ウィザードを使用します。このウィザードを使用すると,実装したいイベントオブジェクトを選択でき,IDE はインターフェースの各メソッドについてスタブを作成します。イベントオブジェクトがまだ COM+ カタログにインストールされていない場合は,タイプライブラリを選択することもできます。
最後に,実装が済んだサブスクライバコンポーネントも COM+ カタログもインストールしなければなりません。この場合も,TComAdminCatalog オブジェクトを使用するか,コンポーネントサービス管理ツールを使用します。
パブリッシャがイベントを生成する必要がある場合は,単に(サブスクライバコンポーネントではなく)イベントオブジェクトのインスタンスを作成し,イベントインターフェース上で適切なメソッドを呼び出します。そして COM+ が間に入り,そのイベントオブジェクトにサブスクライブしたすべてのアプリケーションを一度に 1 つずつ同時に呼び出して通知します。したがって,パブリッシャは,イベントにサブスクライブするアプリケーションのことを知る必要がありません。サブスクライバは,イベントインターフェースの実装のことさえ知っていればすみ,サブスクライブしたいパブリッシャを選択する以外は何もする必要がありません。その他のことは COM+ が処理します。
COM+ イベントシステムの詳細は,「COM+ でのイベントの生成」を参照してください。