次の方法で共有


サービスのアーキテクチャ

このセクションでは、Service Broker を使用するアプリケーションの基本デザインを指定するデータベース オブジェクトについて説明します。

Service Broker アプリケーションでは、デザイン時に次のオブジェクトを指定します。

  • メッセージ タイプ — アプリケーション間で交換するメッセージの名前を定義します。必要に応じてメッセージの検証を指定します。
  • コントラクト— 指定したメッセージ交換におけるメッセージの方向と型を指定します。
  • キュー— メッセージを保存します。この保存メカニズムにより、サービス間での非同期通信が可能になります。Service Broker キューには他にも、同一のメッセージ交換グループにおけるメッセージの自動ロックなどの利点があります。
  • サービス— メッセージ交換のアクセス可能なエンドポイントです。Service Broker のメッセージは、あるサービスから別のサービスに送信されます。サービスは、メッセージを保持するキュー、およびこのサービスが対象となるコントラクトを指定します。コントラクトは適切に定義されたメッセージ型のセットをサービスに提供します。

Service Broker アプリケーションは、前述の一覧の SQL Server オブジェクトを使用してメッセージ交換を実行します。Service Broker は、SQL Server で Transact-SQL ステートメントを実行できる任意のプログラムから使用できます。アプリケーションは、Transact-SQL または CLR 準拠の言語で記述したストアド プロシージャ、または SQL Server のインスタンスに接続する外部プログラムとなります。

次の図で、Service Broker のサービスを示します。

Service Broker オブジェクトの関係

図に示すように、ProcessExpenses コントラクトは、SubmitExpenseAcceptDenyExpense、および ReimbursementIssued の 3 つのメッセージ型を指定します。このコントラクトは、費用を返済するタスクを実行するメッセージ交換に必要なメッセージ型を一覧表示します。すべての ProcessExpense サービスとその他の任意のサービスとの間で行われるメッセージ交換は、ProcessExpenses コントラクトによって制御されます。ProcessExpense サービスは、着信メッセージおよび送信メッセージを ExpenseQueue キューに保存します。ExpenseProcessing ストアド プロシージャは、このキューから受信したメッセージを処理し、返信が必要な場合は適切なブローカ宛てにルーティングするようメッセージをキューに戻します。

参照

概念

メッセージ型
コントラクト
キュー
Service Broker を使用したアプリケーションのビルド
サービス

その他の技術情報

Service Broker のチュートリアル

ヘルプおよび情報

SQL Server 2005 の参考資料の入手