新しい Service Broker

Microsoft SQL Server 2005 に導入された Service Broker は、セキュリティと信頼性とスケーラビリティの高いデータベース集約型の分散アプリケーションを作成するための新しいテクノロジです。

Service Broker の説明

Service Broker は、データベース エンジン の一部です。Service Broker には、以下の機能があります。

  • SQL Server データベースにメッセージ キューを格納する機能。
  • メッセージを送信および受信するためにアプリケーションで使用できる新しい Transact-SQL ステートメント。それぞれのメッセージはダイアログの一部であり、参加する両方の側にとって信頼性と持続性のある通信チャネルです。

Service Broker は、SQL Server の 1 つのインスタンス内のアプリケーションにとっても、複数の SQL Server インスタンスに分散した処理を行うアプリケーションにとっても、特別な機能を提供します。

Service Broker は、SQL Server インスタンス内で、強力な非同期プログラミング モデルを提供します。非同期プログラミングでは、リソースが使用可能になったときにリソースの消費の多いタスクが実行されるので、データベース アプリケーションの応答時間とスループットが向上します。

また、Service Broker では SQL Server インスタンス間での信頼できるメッセージ処理も行われます。Service Broker は、アプリケーションをサービスとして構築するというビジョンをサポートしています。このアーキテクチャでは、ビジネス システム内のロジックがネットワーク ベースのサービスとして実装されます。これらのサービスで公開されている機能を必要とするアプリケーションは、メッセージを使用してサービスと対話します。Service Broker では、TCP/IP を使用してインスタンス間でのメッセージ交換が行われます。Service Broker には、ネットワークからの不正アクセスを防ぐために役立つ機能や、ネットワーク上で送信されるメッセージを暗号化する機能が用意されています。

Service Broker のプログラミング モデルは、SQL Server インスタンス内のメッセージや、SQL Server インスタンス間のメッセージの場合と同じです。一貫したプログラミング モデルが提供されているため、Service Broker を使用するアプリケーションでは、アプリケーション コードの変更を行わなくても、スケールアップやスケールアウトが可能です。複数のアプリケーションで Service Broker を使用すると、それらのアプリケーションが同時に実行されていなくても、あるいは同時にネットワークに接続されていなくても、信頼性の高いメッセージ交換が行われます。

SQL Server でのメッセージ処理を実装することにより、Service Broker が提供する以下のような利点を得られます。

  • 高度なスケーラビリティ。メッセージ キューは SQL Server データベースの一部であり、SQL Server データベース エンジン のパフォーマンス機能の利点を活用することができます。さらに、複数のサービス インスタンスを実行してキュー内のメッセージを処理することができるので、中間層アプリケーションのスケーラビリティが向上します。Service Broker では統合されたプログラムのアクティブ化が行われるので、アプリケーションはシステム リソースを効率的に使用できます。Service Broker アプリケーションは、サービスの負荷に応じて動的にスケール変換できます。
  • メッセージの調整、順序付け、およびロック。Service Broker は、メッセージ アプリケーションの作成に必要となる難しいタスクの多くを、自動的に処理します。Service Broker を使用するアプリケーションは常に、対話内での各メッセージを 1 回だけ受信します。対話内のメッセージは、送信された順序で着信します。関連する対話のメッセージは自動的にグループ化されるので、アプリケーションでは異なるサービスに対するメッセージの調整を容易に行えます。Service Broker では、対話グループ内で同時にメッセージを読むことができるのは 1 人のユーザーに限られます。アプリケーションでは、この組み込みのロックを使用して、同時実行処理を安全かつ効率的に実行できます。
  • データベース データとの統合。SQL Server データベース内に格納されているメッセージのキューは、データベースの一部です。メッセージ キューはデータベースのバックアップの重要な部分であり、データベースがバックアップから復元されるときには、データと共にそれらのメッセージ キューも復元されます。メッセージ操作はデータベース データを含むトランザクションの重要な部分です。分散トランザクションを管理する必要はありません。メッセージ キューがデータベース サーバーとは別個のサービスによって管理される場合と同様です。
  • データベース セキュリティとの統合。Service Broker は、SQL Server 2005 のセキュリティ機能を使用して、アプリケーションのセキュリティを確保します。

Service Broker の詳細については、「Service Broker の概要」を参照してください。

参照

概念

SQL Server 2005 の新機能

その他の技術情報

Service Broker のプログラミングの概要

ヘルプおよび情報

SQL Server 2005 の参考資料の入手