匯出 (0) 列印
全部展開

教學課程:使用 BizTalk 服務橋接器從服務匯流排轉送服務來傳送和接收訊息

更新日期: 2014年9月

本教學課程說明如何將包含不同結構描述的 XML 訊息,傳送至使用 Microsoft Azure BizTalk 服務 所部署的單一橋接器端點。橋接器會根據定義為解決方案一部分的商務邏輯來處理訊息,並將訊息路由至多個轉送服務。使用此案例時,本教學課程也會展示 BizTalk 服務 的其他功能,例如:

  • 路由篩選:橋接器可讓您根據篩選條件將訊息路由給所要的收件者。會在特定值上設定篩選條件,將其作為訊息的一部分傳遞。例如,若將 XML 訊息中的 <Recipient> 元素值設為 Finance,則會將訊息傳送給服務 A。否則將訊息傳送給服務 B。如需詳細資訊,請參閱The Routing Condition

  • 路由動作:路由動作可協助您協調通訊協定不符情況。例如,請考量兩個應用程式,即應用程式 A應用程式 B應用程式 A使用 REST 通訊協定傳送訊息,應用程式 B 則僅接收 SOAP 訊息。如果應用程式 A 改成將訊息傳送給橋接器,橋接器將在訊息上包含 SOAP 標頭以作為路由動作的一部分。橋接器接著會將訊息傳給應用程式 B。如需詳細資訊,請參閱The Routing Action

  • 回覆動作:當回覆動作將回應傳回用戶端時,其功能與路由動作將訊息傳送給收件者是相同的。因此,如果應用程式 B 將回應傳給應用程式 A,橋接器會使用回覆動作功能,以用戶端要求的標頭來標示回應戳記。如需詳細資訊,請參閱 Reply Action

本教學課程除了示範其他功能外,還使用商務案例示範橋接器的這些功能。

Northwind Traders 是一家汽車保險公司。Northwind Traders 收到新保單報價申請,其具備符合標準 ACORD 結構描述的 XML 格式,它是保險訊息的業界標準。傳入訊息可能具有符合 ACORD 標準的任何格式。因此,Northwind Traders 必須設定解決方案來處理符合多個 XML 結構描述的 XML 訊息。當 Northwind Traders 收到訊息後,就會根據提供的 ACORD 訊息結構描述來驗證訊息,並將訊息轉換為 Northwind 的內部結構描述。Northwind 接著會將訊息傳送至後端服務以進一步處理訊息。但在將訊息傳送至服務前存在某些路由狀況。

  • 如果訊息中的報價金額少於 10000 美元,則必須將其傳送給名為 RelayReceiverServiceA 的轉送服務。將訊息傳送給轉送服務之前,必須將稱為 QuoteType 的 SOAP 標頭新增至訊息標頭。此標頭的值必須設定為 SmallAmounts

  • 如果訊息中的報價金額大於 10000 美元,則會將其視為高風險賠償金,並傳送給名為 RelayReceiverServiceB 的另一個轉送服務。將訊息傳送給服務之前,必須將稱為 QuoteType 的 SOAP 標頭新增至訊息標頭。標頭的值必須設定為 LargeAmounts

收到訊息後,服務會產生回應、新增標頭,並將回應傳回橋接器。服務會新增下列標頭:

 

來自服務的回應 新增的標頭

RelayServiceA

 

標頭名稱 標頭值

MsgStatus

成功

資格

ApprovedForSmallAmounts

RelayServiceB

 

標頭名稱 標頭值

MsgStatus

成功

資格

ApprovedForLargeAmounts

來自服務的回應格式與 Northwind 的內部要求格式相同。當 橋接器 收到回應後,會將回應轉換成符合 ACORD 標準的回應訊息結構描述。橋接器也會從 MsgStatus 標頭擷取值,並將它指派給回應結構描述中的元素。最後,將訊息傳回用戶端前,橋接器會新增另一個名為 ProcessingStatus 的標頭,並將其值設為 Complete。下圖顯示這個案例。

使用具有轉送服務的橋接器

Northwind Traders 在 上使用 BizTalk 服務 來設定此案例。以下說明 Northwind Traders 如何讓此案例在端對端運作:

  • Northwind 建立兩個轉送服務,即 RelayReceiverServiceARelayReceiverServiceBRelayReceiverServiceA 負責接收報價金額低於 10000 美元的訊息。RelayServiceB 負責接收報價金額高於 10000 美元的訊息。接收訊息後,兩個服務都會產生回應訊息,並將訊息加上標頭戳記,如商務案例所示。

  • Northwind 建立 BizTalk 服務專案 並新增 XML 要求-回覆橋接器,以處理傳入 XML 訊息和傳送回應。Northwind 也會新增雙向轉送服務元件,分別適用於 RelayReceiverServiceARelayReceiverServiceB

  • Northwind 會將所有必要的成品 (結構描述和轉換) 新增至 BizTalk 服務專案。

  • Northwind 會設定 XML 要求-回覆橋接器 的要求路徑以執行下列工作:

    • 設定驗證階段,針對 ACORD 結構描述驗證 XML 訊息。

    • 設定擴充階段,根據路由至後端服務的訊息升級屬性。

    • 設定轉換階段,將訊息從 ACORD 結構描述轉換至 Northwind 的內部結構描述。

  • Northwind 會設定 XML 要求-回覆橋接器 的回應路徑以執行下列工作:

    • 設定擴充階段來擷取轉送服務新增至回應訊息的 MsgStatus 標頭。

    • 設定轉換階段,將回應從轉送服務轉換為符合 ACORD 標準的訊息結構描述。在此階段,橋接器也會將值從 MsgStatus 標頭指派至回應結構描述中的元素。

    • 設定回覆動作,在傳送至用戶端的回應訊息內加入 ProcessingStatus 標頭。

  • Northwind 會將兩個外部轉送端點新增至代表兩個轉送服務的 BizTalk 服務專案,並將它們連接至 XML 要求-回覆橋接器 橋接器。作為這些路徑接點的組件,Northwind 執行下列動作:

    • 連接 橋接器組態 設計介面上的所有元件,並根據報價金額設定篩選條件。

    • 在訊息上製作 QuoteType 標頭戳記,並根據正在將訊息路由到的服務,將其值設定為 SmallAmountsLargeAmounts

  • 最後,Northwind 會將 服務匯流排 和 BizTalk 服務專案 上的兩個轉送服務部署到 BizTalk 服務,並將訊息傳送至橋接器端點。

此教學課程是根據 Bridges_RelayServices.zip 範例撰寫的,您可以從 MSDN Code Gallery 下載此範例。您可以使用範例進行此教學課程以瞭解範例的建置方式。或者,您也可以使用本教學課程來建立您自己的應用程式。此教學課程的目標傾向第二種方法,讓您能夠了解如何建置這個應用程式。此外,此教學課程盡可能與範例一致,並且使用與範例中相同的成品名稱 (例如,結構描述、轉換)。

雖然 Microsoft 建議您依照教學課程進行,以充分了解各項概念和程序,但是如果您真正想要使用此範例,請執行下列動作:

  • 下載 Bridges_RelayServices 範例並進行相關的變更,如提供您的 服務匯流排 命名空間、簽發者名稱、簽發者金鑰。執行必要的變更後,建置和部署應用程式。

  • 建置和裝載兩個轉送服務來接受經由橋接器所接收的要求訊息。

  • 使用套件提供的 MessageSender 工具,將要求訊息傳送至橋接器。查看服務的命令提示字元以及 MessageSender 工具,瞭解是否已成功處理訊息。如果成功處理訊息,會在專案的 \bin\Debug 資料夾下儲存要求和回應結構描述。也會在相應的命令提示字元上顯示訊息檔案的位置和名稱。

從 BizTalk 服務 下載位置 (http://go.microsoft.com/fwlink/?LinkId=235057) 下載和安裝 BizTalk 服務 SDK。如需相關指示,請參閱<安裝 Azure BizTalk 服務 SDK>。安裝 SDK 會在 Visual Studio 中安裝 BizTalk 服務專案 範本。此專案範本可用來建立橋接器,它會驗證和轉換訊息,並將訊息路由至不同的端點,如商務案例所示。

另請參閱

顯示:
© 2015 Microsoft