服务体系结构

本部分介绍一些数据库对象,它们指定使用 Service Broker 的应用程序的基本设计。

在设计时,Service Broker 应用程序指定以下对象:

  • 消息类型 —** 定义应用程序间交换的消息的名称。 还可以选择是否验证消息。
  • 约定** — **指定给定会话中的消息方向和消息类型。
  • 队列** — **存储消息。 这种存储机制使服务之间可以进行异步通信。Service Broker 队列还有其他优点,比如自动锁定同一个会话组中的消息。
  • “服务” 是可寻址的会话端点。Service Broker 消息从一个服务发送到另一个服务。 服务指定一个队列来保存消息,还指定一些约定,约定指明该服务可作为“目标**”。 约定向服务提供一组定义完善的消息类型。

Service Broker 应用程序使用上述列表中的 SQL Server 对象进行会话。 SQL Server 中任何可运行 Transact-SQL 语句的程序均可使用 Service Broker。 应用程序可以是以 Transact-SQL 编写的或以符合 CLR 的语言编写的存储过程,也可以是连接到 SQL Server 实例的外部程序。

以下关系图说明 Service Broker 服务:

Service Broker 对象的关系

如图所示,ProcessExpenses 约定指定三种消息类型:SubmitExpenseAcceptDenyExpenseReimbursementIssued。 该约定列出执行退款任务的会话所需的消息类型。 ProcessExpenses 约定控制 ProcessExpense 服务和发起与 ProcessExpense 服务间会话的任何服务之间的所有会话。 ProcessExpense 服务将传入消息和传出消息存储在 ExpenseQueue 队列中。 ExpenseProcessing 存储过程从此队列接收消息并处理消息,在需要答复的情况下再将消息发回队列以路由到相应的 Broker。

请参阅

概念

消息类型
约定
队列
生成使用 Service Broker 的应用程序
服务

其他资源

Service Broker 教程

帮助和信息

获取 SQL Server 2005 帮助