共用方式為


服務架構

此章節描述指定使用 Service Broker 的應用程式之基本設計的資料庫物件。

在設計階段,Service Broker 應用程式會指定下列物件:

  • 訊息類型 - 定義在應用程式間交換之訊息的名稱。選擇性提供訊息的驗證。

  • 合約- 指定給定交談中之訊息的方向和類型。

  • 佇列- 儲存訊息。此儲存機制允許服務之間的非同步通訊。Service Broker 佇列還提供了其他優點,如自動鎖定同一交談群組中的訊息。

  • 「服務」(Service) - 是交談的可定址端點。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 服務是特定商務工作或商務工作集合的名稱。