Share via


使用 SOA 控管擴充 BizTalk ESB Toolkit 功能

Microsoft BizTalk ESB 工具組隨附于 BizTalk Server,而且是一組工具和程式庫,可擴充支援鬆散結合和動態傳訊架構的BizTalk Server功能。 它可作為中介軟體,提供服務與其取用者之間快速流量分配的工具。 在執行時間啟用最大的彈性,BizTalk ESB 工具組可簡化服務端點的鬆散結合組合,以及服務互動的管理。

Sentinet BizTalk Server Extensions 藉由整合 BizTalk ESB Toolkit 與 Sentinet,這是 Microsoft 平臺的 SOA 治理和 API 管理解決方案,來增強 BizTalk ESB 工具組的功能。 Sentinet BizTalk Server Extensions 的第一個版本提供與 BizTalk Server 2013、BizTalk ESB 工具組和 Visual Studio 2012 整合的 BizTalk ESB 工具組 SOA 存放庫解析程式。

本白皮書討論 Sentinet SOA 解析程式如何擴充 BizTalk ESB 工具組功能、如何設定 Sentinet SOA 解析程式,最後說明如何使用 Sentinet SOA 解析程式的範例。

ESB 工具組和 Sentinet SOA 解析程式

此外,ESB 工具組解析程式必須提供下列專案:

  • 服務端點及其組態的執行時間解析

  • BizTalk ESB 解決方案與鬆散結合的傳訊。

    Sentinet 提供健全且完整的 SOA 存放庫,可提供 SOA 整合解決方案,以及進階 SOA 治理和運行時間管理功能。 與 Sentinet SOA 存放庫結合,Sentinet SOA 解析程式提供BizTalk Server ESB 架構,具有進階且便於使用的 ESB 設定、動態訊息路由和訊息安全性實作功能。

    下圖顯示 Sentinet SOA 解析程式如何配合 BizTalk ESB 工具組架構。

    Sentinet 與 BizTalk ESB 工具組

    在執行時間,上圖中的端點解析和路由元件 (屬於 ESB 工具組解析程式架構) 使用在 Visual Studio 路線Designer) 中建立的路線 (檔,以具現化特定的解析程式,並要求解析程式提供服務端點及其設定。 路線本身必須設定為服務端點的參考,讓解析程式可以使用此參考在登錄或存放庫中尋找要求的端點。 在設計階段 (建立路線) 時,不知道服務端點的實際實體位址,而且服務所需的安全性原則都不是。 在稍後的階段,ESB Toolkit 執行時間會使用已解析的服務端點來設定 Off-Ramp 動態傳送埠,以將訊息傳送到具有必要服務安全性設定的實際實體服務位址。 如果服務端點位址、通訊協定或安全性需求變更,則只需要更新登錄/存放庫組態。 ESB 或BizTalk Server成品的執行時間組態不需要更新。

Sentinet 解析程式如何將值新增至 ESB 工具組應用程式?

使用 Sentinet 解析程式以及 SOA 存放庫的兩個主要優點如下:

  • 將用戶端身分識別指派給已解析的外部服務端點 – 大部分情況下,已解析的 ESB 端點都需要特定的用戶端身分識別,才能呼叫外部服務 (例如使用者名稱/密碼、特定 Windows 帳號憑證或特定 X.509 憑證) 。 這是非常常見的安全性需求,其他 ESB 解析程式/登錄未適當地處理。

  • 限制安全性資訊的存取 – 若要解決先前的限制,其他解析程式可能會使用手動設定 tModel 來包含具有必要安全性身分識別的複雜 XML。 不過,將安全性資訊儲存為登錄/存放庫的一部分不是正確的方法。 這可讓服務取用者輕鬆存取安全性詳細資料,例如使用者名稱、密碼等,以存取服務。

    Sentinet 解析程式和 Sentinet SOA 存放庫提供功能,以彈性且安全地透過標準或自訂 WCF 端點行為,將任何特定的用戶端身分識別指派給已解析的 ESB 端點。 Sentinet 藉由設定 Sentinet 解析程式來達成此目的,而不是使用安全性資訊設定 Sentinet SOA 存放庫。 使用 Sentinet 解析程式設定的所有用戶端認證都會以加密形式儲存。

    以上以上,以下是使用 Sentinet 解析程式和 Sentinet SOA 存放庫的一些其他優點。

  • 提供完整的 SOA 存放庫。 存放庫可讓您存取服務中繼資料內容、服務身分識別和原則、服務版本支援等。

  • 上傳服務 WSDL,輕鬆地在 Sentinet 登錄中註冊實體服務。

  • 完整且便於使用的 Sentinet 管理主控台。 主控台提供所有服務中繼資料和相關聯成品的管理存取權,以及簡單的使用者介面,以存取服務作業及其資料架構、服務端點、安全性原則等。

  • 已解析端點的自訂行為管理和設定。 Sentinet 解析程式可為解析的端點提供完全可自訂且容易設定的端點行為。

  • 使用各種搜尋準則設定 Sentinet 解析程式的選項。 路線可以定義指派給服務端點的任何關鍵字,或使用指向存放庫服務階層中服務的服務路徑。

  • 進階解析程式測試功能。 Sentinet 解析程式設定可以直接從 Visual Studio 路線Designer進行測試。 雖然其他解析程式只能提供端點基本屬性的相關資訊,但 Sentinet 解析程式會提供已解析端點的擴充資訊。 除了端點基本屬性之外,Sentinet 解析程式還會顯示可識別 Sentinet 存放庫中已解析之服務和端點位置的屬性。 路線設計工具可以在執行時間使用路線本身之前,測試 Sentinet Resolver 及其不同搜尋準則如何影響解析結果。

安裝 Sentinet BizTalk Server 延伸模組

您可以 從這裡下載並安裝 Sentinet BizTalk 延伸模組。 安裝擴充功能會安裝 Sentinet Resolver for ESB Toolkit、檔和如何使用擴充功能的範例。

詳細說明如何安裝和設定 Sentinet BizTalk Server擴充功能的檔,可做為產品下載的一部分使用。

使用 Sentinet BizTalk Server 擴充功能

在本節中,我們將探討如何使用 Sentinet BizTalk Server延伸模組,並展示上述功能。

必要條件

本白皮書中的指示假設您已安裝並設定下列專案:

註冊 Web 服務

Sentinet 基礎結構所管理的 Web 服務必須在存放庫中註冊。 本白皮書使用 Sentinet 安裝套件隨附的 WCF 客戶搜尋範例服務。

  1. 啟動 Sentinet 安裝套件所安裝 的客戶搜尋 範例服務。 以系統管理員身分啟動客戶搜尋範例,選取原則系結 (例如 wsHttpBinding) ,然後按一下 [ 啟動]。

  2. 執行服務之後,按一下 [ 檢視 Wsdl ] 連結,以使用服務中繼資料 URL 和服務 WSDL 開啟瀏覽器。 從瀏覽器網址列複製中繼資料 URL。

  3. 開啟瀏覽器並輸入 URL (https://[computer-name]/sentinet) 以啟動 Sentinet 管理主控台。 登入並選取 [存放檢視] 面板中的 [存放庫] 根項目。 以滑鼠右鍵按一下存放 根項目,然後按一下 [ 新增 > 服務 > SOAP ] 功能表選項。

  4. 在 [ 新增服務 ] 對話方塊中,針對 [ 來自 URL 的 WSDL ] 選項,貼上您稍早複製的服務中繼資料 URL,然後按 [ 下一步]。

    新增服務 URL

  5. 精靈會開始下載服務中繼資料。 下載完成後,精靈會顯示 Web 服務樹狀結構。 提供服務的名稱,然後按一下 [ 完成 ] 將服務中繼資料上傳至 Sentinet 存放庫。

    Web 服務結構

  6. 服務會以第 1 版的形式匯入至存放庫。 選取版本,然後選取端點。 在底部的 [ 端點詳細資料] 窗格中,按一下 [附件] 索引卷 ,然後按一下 [ 修改]。

    修改服務端點

  7. 在 [端點詳細資料] 索引標籤中,按一下 [ + () 對 關鍵字進行簽署],輸入要與端點建立關聯的關鍵字 (,例如 TestKeyword) ,然後按一下 [ 儲存]。 關鍵字會作為 SOA 存放庫中端點標籤 (或識別碼) 。

    指定關鍵字

    重複上述步驟以新增新版本 的 CustomerSearch 服務,但使用不同的系結,例如 basicHttpBinding。 稍後在本白皮書中,我們將示範 Sentinet 解析程式如何解析為不同的服務, (或相同服務的不同版本) ,只要將搜尋關鍵字與服務端點產生關聯即可。

設定 Sentinet 解析程式

本節說明如何在簡單的 BizTalk ESB 路線Designer專案中設定 Sentinet Resolver,並特別說明如何使用關鍵字來唯一解析至服務端點。 本節也會示範如何從 Visual Studio 本身測試解析程式,而不傳送任何 ESB 訊息。

  1. 啟動 Visual Studio 並建立BizTalk ESB 路線Designer專案。

  2. 在方案總管中,按兩下路線,在 [路線] Designer中開啟。

  3. 從 [工具箱] 中,將 [路線服務 ] 圖形拖放到設計工具介面上。

  4. 選取 [路線服務 ] 圖形,並從下拉式清單中將 [路線服務擴充項 ] 屬性變更為 [傳訊擴充器 ]。

    設定訊息擴充項屬性

  5. 以滑鼠右鍵按一下[路線服務] 圖形中的[解析程式] 元素,然後按一下 [新增解析程式]。

    新增解析程式

  6. 選取新的解析程式元素,將它重新命名 (例如 MyResolver) ,然後針對 Resolver 實 作屬性選取 Sentinet Resolver Extension

    設定解析程式實

  7. 指定 Sentinet 解析程式延伸模組的 ActionKeywords 屬性。 我們將使用這些屬性,以唯一方式解析我們稍早新增至 Sentinet 存放庫的服務。 您也可以指定 Sentinet 解析程式延伸模組的其他屬性。 若要深入瞭解這些屬性,請參閱 Sentinet BizTalk 延伸模組使用者指南。

    屬性 描述
    動作 可唯一識別所呼叫之服務作業的訊息動作標頭。 此動作標頭是服務 WSDL 的一部分,可以在服務 WSDL 中找到,或從 Sentinet 管理主控台使用者介面 (作業的要求訊息屬性下找到。
    關鍵字 提供關鍵字 (例如 ,TestKeyword) 您在 Sentinet 管理主控台中指派給服務。

    下列螢幕擷取畫面顯示針對 MyResolver 組態指定的 Action 和 Keywords 屬性。

    Sentinet Resolvery 組態

  8. 將變更儲存至組態。

進階解析程式設定

Sentinet BizTalk Extensions 組態應用程式會修改位於套件安裝資料夾根目錄中 Sentinet.BizTalk.config 檔案, (預設位置為 <installation drive>:\Program Files\Nevatech\Sentinet BizTalk Extensions\Sentinet.BizTalk.config) 。 檔案可以在 Sentinet BizTalk 延伸模組組態 應用程式之外修改,以提供進階組態選項。 例如,在許多實際 ESB 案例中,解析的端點不僅必須透過服務端點位址和系結來提供,還必須提供特定用戶端身分識別, (使用者名稱/密碼、特定 Windows 帳號憑證,或用戶端 X.509 憑證) 。 如果沒有適當的用戶端身分識別,ESB Off-Ramp 傳送埠無法呼叫外部服務。 Sentinet 解析程式可讓路線開發人員指派提供適當用戶端端點身分識別的特定端點行為。 多個端點行為可以在 Sentinet.BizTalk.config 檔案中預先設定為標準 WCF 端點行為,然後藉由指定 已解析端點行為 屬性的行為名稱,在 Sentinet 解析程式組態的行程中參考特定端點行為。

測試解析程式組態

藉由指定相關的屬性值來設定 Sentinet Resolver 之後,您可以從 Visual Studio 本身測試 Resolver。

  1. 從設計介面中,以滑鼠右鍵按一下您新增至 路線服務 圖形的 Sentinet 解析程式,然後按一下 [ 測試解析程式組態]。

    輸出窗格會顯示測試結果,其摘錄類似如下:

    ***** Resolved Service Endpoint *****  
    
    Service Path and Name          : /CustomerSearch  
    Service Id                     : 2b6d686a-cae1-4b7b-93da-99affef98478  
    Service Version                : 1  
    Endpoint Name                  : WSHttpBinding_ICustomerSearch  
    Endpoint Address               : http://btscloudcar/CustomerSearch/1  
    

    請注意,解析程式會傳回 CustomerSearch 服務 第 1 版 的端點,其搜尋準則 (TestKeyword) 附加。

  2. 移除與CustomerSearch服務第 1 版相關聯的TestKeyword,並將它與服務第二版的端點產生關聯。

    1. 開啟 Sentinet 管理主控台,按一下CustomerSearch服務下的第 1版,按一下 wsHttpBinding 端點,然後按一下 [附件] 索引標籤,然後按一下 [修改]。

      從 CustomerSearch 服務

    2. 針對您之前輸入的關鍵字按一下按鈕以刪除關鍵字,按一下訊息方塊中的 [ ],然後按一下 [ 儲存]。

      從 CustomerSearch Service SentinetWP_RemoveKeyword_2移除關鍵字

    3. 現在,將相同的關鍵字 (TestKeyword) 指派至相同服務第 2 版底下的basicHttpBinding端點。

  3. 返回 Visual Studio,然後再次測試解析程式組態。 以滑鼠右鍵按一下您新增至 路線服務 圖形的 Sentinet 解析程式,然後按一下 [ 測試解析程式組態]。

    輸出窗格會顯示測試結果,其摘錄類似如下:

    ***** Resolved Service Endpoint *****  
    
    Service Path and Name          : /CustomerSearch  
    Service Id                     : 5b9e5878-7016-44ab-9f0e-5282a8c3e508  
    Service Version                : 2  
    Endpoint Name                  : BasicHttpBinding_ICustomerSearch  
    Endpoint Address               : http://btscloudcar/CustomerSearch/2  
    
  4. 請注意解析程式現在如何傳回服務 第 2 版的詳細資料,即使您未變更 ESB 路線應用程式中的任何專案也一樣。

    使用WSHttpBinding端點) ,將關鍵字 (TestKeyword) 指派回 (服務第 1 版。

使用 Sentinet BizTalk Server Extensions

在本節中,我們將探討 Sentinet BizTalk 延伸模組與 ESB 解析程式如何搭配 ESB 解析程式,以唯一識別服務並將訊息路由傳送至該服務,而對服務或傳送訊息的用戶端進行最少或無變更。 我們將測試兩個案例:

  • 將範例訊息傳送至 Sentinet 存放庫中註冊的服務, (附加關鍵字) 。 然後,使用 Sentinet 管理主控台變更服務的原則系結,並傳送另一個範例訊息。 此案例示範如何變更服務的安全性原則,不會影響用戶端應用程式或 ESB 路線。

  • 使用附加關鍵字) ,將範例訊息傳送至 Sentinet 存放庫中註冊的服務端點 (。 然後,將相同的關鍵字附加至另一個版本的相同服務,然後再次傳送訊息。 此案例示範如何將關鍵字附加至不同的服務版本,自動將訊息路由至新的服務版本。

    若要測試這些案例,我們將使用下列範例:

  • 提供給 Sentinet 安裝程式的客戶搜尋服務。 您可以從 [開始] 功能表啟動此服務。

  • Nevatech.Vsb.BizTalk.Samples 解決方案隨附 Sentinet 安裝程式。 此範例位於 <installation drive>:\Program Files\Nevatech\Sentinet BizTalk Extensions\Samples

  • Esb。行程.測試範例隨附于 Microsoft BizTalk ESB 工具組。 這位於 <install drive>:\Program Files (x86)\Microsoft BizTalk ESB Toolkit\ESBSource.zip\Source\Samples\Itinerary\Source\ESB.Itinerary.Test ,可用來測試客戶搜尋服務的範例訊息。

變更服務原則系結來測試 Sentinet 解析程式

  1. 請確定您使用 wsHttpBinding 部署的 CustomerSearch 服務正在執行。

  2. Nevatech.Vsb.BizTalk.Samples範例中,開啟CustomerSearch.Search.routey,選取 [路由訊息] 圖形內 [訊息擴充器] 底下的 [解析服務端點],然後針對[關鍵字] 屬性指定關鍵字,例如TestKeyword

    指派關鍵字

  3. 儲存路線的變更,並匯出模型。 以滑鼠右鍵按一下路線設計工具介面上的任何位置,並按滑鼠右鍵 匯出模型

  4. 在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下Microsoft.Practices.ESB應用程式,按一下 [匯入],然後按一下 [系結]。 流覽至 位於 <installation drive>:\Program Files\Nevatech\Sentinet BizTalk Extensions\Samples\ESB Resolver 的 ESB 解析程式範例位置,然後開啟 BizTalk.Bindings.xml 檔案。 這會建立範例路線所需的 Sentinet Solicit-ResponseSentinet 單向 傳送埠。

    此外,請確定 Microsoft.Practices.ESB BizTalk 應用程式的所有傳送埠和接收位置都已登記並啟動。

  5. 開啟 ESB。Itinerary.Test 應用程式、建置並加以執行。 在啟動的路線測試用戶端中,執行下列步驟:

    1. 在 [路線測試用戶端] 的 [Web 服務選項] 底下,清除 [使用 WCF 服務],然後選取 [ 雙向服務]。

    2. 從 [ 服務類型 ] 下拉式清單中,選取 [ 傳訊]。

    3. 按一下[載入路線],然後流覽至位於 範例專案的ExportedItineraries資料夾中 <installation drive>:\Program Files\Nevatech\Sentinet BizTalk Extensions\Samples\ESB Resolver\ExportedItinerariesCustomerSearch.Search.Itinerary.xml檔案。

    4. 按一下省略號按鈕 (..) [載入訊息] 群組底下,流覽至位於專案SampleMessages資料夾中 <installation drive>:\Program Files\Nevatech\Sentinet BizTalk Extensions\Samples\ESB Resolver\SampleMessagesCustomerSearch.Search.Request.xml

    5. 按一下 [提交要求 ],並確認收到的回應。

  6. 在 [ CustomerSearch ] 對話方塊中,請注意計數器會增加一個。

  7. 在 Sentinet 管理主控台中,更新端點詳細資料以使用 basicHttpBinding,而不是 wsHttpBinding。

    1. 選取服務端點,按一下 [ 詳細資料 ] 索引標籤,然後按一下 [ 修改]。

    2. 在 [詳細資料] 索引標籤中,按一下 [原則]區段中的省略號 (...) ,以啟動[修改原則精靈]。

      啟動修改原則精靈

    3. 在第一頁上,保留原則類型為 [私人 ],然後按 [ 下一步]。

    4. 在第二個頁面上,將 wsHttpBinding XML 元素變更為 basicHttpBinding (區分大小寫) ,然後按一下 [ 完成]。

      更新原則系結

    5. 按一下 [ 儲存 ] 以將變更儲存至端點詳細資料。

  8. 停止 CustomerSearch 服務,將系結從 wsHttpBinding 變更為 basicHttpBinding,然後再次啟動服務。

    使用不同的系結重新開機服務

  9. 測試路線用戶端,再次將測試訊息傳送給客戶搜尋服務。 請注意,[客戶搜尋服務] 對話方塊中的計數器會再次遞增 1。

    成功收到訊息之後,請從 Sentinet 管理主控台將原則詳細資料變更回 wsHttpBinding。 同樣地,停止 客戶搜尋 服務,將原則變更回 wsHttpBinding 並啟動服務。

    這示範如何即時更新 Sentinet 存放庫中的服務詳細資料,以目標為已更新的服務端點,而不需變更路線或用戶端。

變更關鍵字指派來測試 Sentinet 解析程式

  1. 請確定您使用 wsHttpBinding 和 basicHttpBinding 部署的 CustomerSearch 服務的兩個實例正在執行。

  2. Nevatech.Vsb.BizTalk.Samples範例中,開啟CustomerSearch.Search.routey,選取 [路由訊息] 圖形內 [訊息擴充器] 底下的 [解析服務端點],然後針對[關鍵字] 屬性指定關鍵字,例如TestKeyword

    指派關鍵字

  3. 儲存路線的變更,並匯出模型。 以滑鼠右鍵按一下路線設計工具介面上的任何位置,並按滑鼠右鍵 匯出模型

  4. 在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下Microsoft.Practices.ESB應用程式,按一下 [匯入],然後按一下 [系結]。 流覽至 位於 <installation drive>:\Program Files\Nevatech\Sentinet BizTalk Extensions\Samples\ESB Resolver 的 ESB 解析程式範例位置,然後開啟 BizTalk.Bindings.xml 檔案。 這會建立範例路線所需的 Sentinet Solicit-ResponseSentinet 單向 傳送埠。

    此外,請確定 Microsoft.Practices.ESB BizTalk 應用程式的所有傳送埠和接收位置都已登記並啟動。

  5. 開啟 ESB。Itinerary.Test 應用程式、建置並加以執行。 在啟動的路線測試用戶端中,執行下列步驟:

    1. 在 [路線測試用戶端] 的 [Web 服務選項] 底下,清除 [使用 WCF 服務],然後選取 [ 雙向服務]。

    2. 從 [ 服務類型 ] 下拉式清單中,選取 [ 傳訊]。

    3. 按一下[載入路線],並流覽至位於 範例專案ExportedItineraries資料夾中 <installation drive>:\Program Files\Nevatech\Sentinet BizTalk Extensions\Samples\ESB Resolver\ExportedItinerariesCustomerSearch.Search.Itinerary.xml檔案。

    4. 按一下省略號按鈕 (..) [載入訊息] 群組底下流覽至位於專案SampleMessages資料夾中 <installation drive>:\Program Files\Nevatech\Sentinet BizTalk Extensions\Samples\ESB Resolver\SampleMessages的CustomerSearch.Search.Request.xml

    5. 按一下 [提交要求 ],並確認收到的回應。

  6. 請注意,在 [ CustomerSearch ] 對話方塊中,計數器增加一個。

  7. 從 Sentinet 管理主控台中移除與CustomerSearch服務第 1 版相關聯的TestKeyword,並將它與第2版服務產生關聯。

    1. 開啟 Sentinet 管理主控台,按一下CustomerSearch服務底下的第 1 版,按一下 wsHttpBinding 端點,然後按一下 [附件] 索引卷,然後按一下 [修改]。

      從 CustomerSearch 服務SentinetWP_RemoveKeyword移除關鍵字

    2. 針對您之前輸入的關鍵字按一下按鈕來刪除關鍵字,按一下訊息方塊中的 [ ],然後按一下 [ 儲存]。

      從 CustomerSearch Service SentinetWP_RemoveKeyword_2移除關鍵字

    3. 現在,將相同關鍵字 (TestKeyword) 指派給相同服務第 2 版底下的basicHttpBinding端點。

  8. 再次從 測試路線用戶端 傳送測試訊息,並注意到這次,計數器會在代表第 2 版服務且以 basicHttpBinding 部署的對話方塊中遞增。