Service Broker に関する開発者の役割
アプリケーション開発者は、Service Broker アプリケーションを設計し、プログラミングを必要とする構成要素を作成します。システム管理者は、Service Broker の構成と管理を担当します。開発者とシステム管理者は、システムの計画時に協力して、特定の環境やビジネス目的に適したシステムを開発および管理する必要があります。
各アプリケーションを作成する際に発生する作業は、アプリケーションの要件によって異なります。次に、Service Broker アプリケーション開発の一般的な一連の作業を示します。
アプリケーションを計画します。アプリケーションで実行する必要があるタスクの概要を作成します。各タスクで実行するメッセージ交換を定義します。各エンドポイントで提供する情報とその順序を定義します。実行する必要がある処理を定義します。メッセージ交換に割り当てる優先度を指定します。これ以降の情報は、この概要に基づいています。
メッセージ交換ごとに、各メッセージの形式と構造を決定します。メッセージの交換シーケンスを計画します。メッセージ交換の参加者が、エラーまたは予期しない順序で送信されたメッセージにどのように対処するかを計画します。
メッセージ交換で XML メッセージを使用する場合は、各 XML メッセージのスキーマを作成します。スキーマは開発、テスト、およびトラブルシューティングで使用します。サービスを実稼働環境に移行した後、メッセージ型からスキーマ検証を削除して、パフォーマンスを向上させることができます。
メッセージ交換ごとに、各メッセージのメッセージ型を作成します。
メッセージ交換ごとに、コントラクトを作成します。コントラクトでは、メッセージ交換の各エンドポイントで使用できるメッセージ型を定義します。
アプリケーションで受信するメッセージを格納するキューを作成します。
コントラクトで定義し、作成したストアド プロシージャで実装する機能を公開するサービスを作成します。サービスの作成時には、サービスを上記の手順で作成したキューと関連付けます。サービスとキューを関連付けると、Service Broker では、そのサービス宛てに届いたすべてのメッセージが関連付けられているキューに配置されることが認識されます。
手順 1. で作成した優先度プランを確認します。既定以外の優先度を使用するように設計されたすべてのメッセージ交換エンドポイントに適用するための、メッセージ交換の優先度を作成します。メッセージがデータベースから転送されるときに優先度を使用する必要がある場合は、そのデータベースの HONOR_BROKER_PRIORITY オプションが ON に設定されていることを確認します。
期待するメッセージ交換のパターンと手順 1. で特定した処理要件を実装したアプリケーションを作成します。アプリケーションで内部アクティブ化を使用する場合、アプリケーションはストアド プロシージャになります。
アプリケーションで内部アクティブ化を使用する場合は、キューを変更して、アクティブ化を有効にします。手順 8. で作成したストアド プロシージャをアクティブ化ストアド プロシージャとして指定します。
上記の手順で作成したサービスを使用するサービスを特定します。ローカルの SQL Server インスタンスの外部にあるサービスについては、ルートを作成します。
上記の手順で特定したリモート サービスを確認し、それらのサービスとの通信に関するセキュリティ要件を判断します。必要な場合は、これらの要件を満たすための証明書を作成し、これらの証明書のデータベース ユーザーを作成します。証明書とデータベース ユーザーのログインを関連付けます。他のサービスの管理者または開発者は、リモート サービス バインドを作成して、このサービスへのトラフィックでダイアログ セキュリティを有効にする必要があります。
開発およびテスト段階では、実稼働環境でアプリケーションが使用するユーザー名を使用すると便利ですが、これらのユーザー名を開発環境とテスト環境でのみ使用する証明書と関連付けることをお勧めします。アプリケーションを実稼働環境に移行したときには、実稼働環境用に作成した証明書を使用します。このように別の証明書を使用すると、開発環境と実稼働環境の間でセキュリティを維持できるだけでなく、アプリケーションを配置するときに必要な作業を減らすことができます。