イベント コレクション アーキテクチャ
イベント コレクションは、XML ファイル、アプリケーション、データベースなどの 1 つ以上のソースからイベント データを収集し、この情報を通知アプリケーションに送信するプロセスです。これは、イベント プロバイダの仕事です。
各アプリケーションはイベントを収集するために 1 つ以上のイベント プロバイダを使用します。各イベント プロバイダは、イベント オブジェクト API、XML API、または SQL Server API という 3 つのイベント API のいずれかを使用してデータをアプリケーションに送信します。次の図は、これらの API がどのように機能するかについて概要を示しています。
- イベント オブジェクト API は、Event オブジェクトおよび EventCollector オブジェクトを使用して個々のイベントを送信します。アプリケーションは、イベント テーブルのフィールド名を使って Event オブジェクトをイベント コレクタに送信し、イベント コレクタがそのデータをイベント テーブルに書き込みます。
- XML API は、XML データの一括読み込みを行う手段を提供します。XML イベント プロバイダは、イベント ソースから XML ドキュメントまたはストリームを収集し、データを XML EventLoader に送信します。EventLoader がイベントをイベント テーブルに書き込みます。
- SQL Server API は、ストアド プロシージャを使用してデータベース オブジェクトからイベント データを読み込みます。SQL Server イベント プロバイダを使用する 2 つの代表的な方法は、ストアド プロシージャを使用してプロバイダを呼び出す方法と、スケジュールに従ってクエリを実行する方法です。イベント プロバイダは結果セットを受け取り、その結果セットを API ストアド プロシージャを使ってイベント テーブルに書き込みます。
イベント クラス ビュー
Notification Services インスタンスを作成すると、イベント クラスと同じ名前を持つビューが Notification Services によって追加されます。このビューは、通知生成クエリのためのイベント ソースです。
SQL Server 2005 Notification Services は、このビューへのイベントの挿入もサポートしています。このビューにイベントを挿入すると、Notification Services は各 INSERT ステートメントに対してイベント バッチを作成して閉じます。
標準イベント プロバイダとカスタム イベント プロバイダ
Notification Services アプリケーションの開発者は、上記のいずれかの API を使用して独自のカスタム イベント プロバイダを作成することも、Notification Services により提供される標準イベント プロバイダを使用することもできます。標準イベント プロバイダは、監視しているフォルダからの XML データを取得し、SQL Server データベースに対してクエリを実行し、Analysis Services キューブに対してクエリを実行することができます。詳細については、「標準イベント プロバイダ」を参照してください。
カスタム イベント プロバイダは、標準イベント プロバイダでは利用できない機能を提供します。たとえば、株価表示器からのコンマ区切りファイルからデータを収集する場合があります。開発者は、Notification Services API を使用してこの機能を持つイベント プロバイダを作成できます。カスタム イベント プロバイダの詳細については、「カスタム イベント プロバイダの開発」を参照してください。
ホストされるイベント プロバイダとホストされないイベント プロバイダ
イベント プロバイダには、ホストされるものと、ホストされないものがあります。
ホストされるイベント プロバイダは、Notification Services 内で実行されます。ホストされるイベント プロバイダは、連続的に実行することも、アプリケーション定義で指定したスケジュールに従って実行することもできます。このようなイベント プロバイダは、イベント プロバイダ ホストという Notification Services コンポーネントによって実行されます。イベント プロバイダ ホストは、ジェネレータ コンポーネントと同じスケジュールを使用して実行されます。このスケジュールはアプリケーション定義で指定します。
ホストされないイベント プロバイダは、外部アプリケーションとして実行され、独自のスケジュールでイベントを送信します。たとえば、イベントを送信するための Web メソッドを公開するインターネット インフォメーション サービス (IIS) によってホストされるイベント プロバイダは、ホストされないイベント プロバイダです。開発者が作成したプロセス内でホストされるイベント プロバイダも、ホストされないイベント プロバイダです。
イベントのバッチ化
イベント プロバイダはイベントをバッチに書き込みます。イベントをバッチに書き込むことにより、ジェネレータは現在のサブスクリプション セットと、イベント バッチに入れたすべてのイベントを一度に照合することができます。このバッチ指向の処理により、アプリケーションのパフォーマンスが改善されます。
参照
概念
サブスクリプション管理アーキテクチャ
サブスクリプション処理アーキテクチャ
通知の書式設定と配信アーキテクチャ
その他の技術情報
Notification Services のビュー
イベント クラスの定義
イベント プロバイダの定義