2016 年 5 月

第 31 卷,第 5 期

本文章是由機器翻譯。

Microsoft Azure - 使用 Azure Logic Apps 的企業應用程式整合

Srikantan Sankaran | 5 月 2016

商務程序管理是很多企業重要的焦點區域,並與異質系統整合形成程序自動化的核心。在此情況下,擷取,與相關的重要使用案例,並未產生轉換和路由資料的跨企業和 Microsoft Azure 雲端。使用傳統的方法來實作這類企業應用程式整合 (EAI) 案例需要花費大量時間和成本 — 找出並投入在工具中,若要建置技術專業知識和佈建運算基礎結構來支援案例端對端。以雲端為基礎受管理服務,例如 Azure 邏輯應用程式解決這些問題區域。

Azure 應用程式服務的邏輯應用程式功能提供視覺化編輯體驗,開發人員可以撰寫使用一組標準和企業整合連接器的多個系統或資料來源之間的複雜資料交換。案例,例如處理暫時性失敗,是以雲端為基礎的架構和其他類似條件為基礎的路由程序流程和長時間執行交易的唯一的很容易實作,透過此服務。

邏輯應用程式功能會示範在本文中透過企業整合的案例賣方組織已部署訂單擷取系統會利用邏輯應用程式所提供的功能的 Azure 上的位置。此邏輯應用程式程序會拾取安全購買者組織,然後傳遞組成資料擷取,資料轉換和路由之前取得後端系統中登錄的許多步驟所公開的公用端點的訂單。產生並傳送至每個已註冊的訂單與買方組織通知識別碼。

EAI 程序流程

[圖 1 說明簡單的 EAI 實例使用邏輯應用程式實作。

企業應用程式整合程序流程
[圖 1 企業應用程式整合程序流程

觸發程序整合的訂單資料會安全地透過網際網路使用 SSH 檔案傳輸通訊協定 (SFTP) 端點公開的一般檔案格式與買方組織從上傳。端點的存取權會受到與賣方組織共用的驗證認證。拖放到訂單資料,並接收通知訊息時,會建立個別的資料夾。執行 CentOS Linux 的 Azure 虛擬機器做裝載檔案收取和卸除端點的 SFTP 伺服器。

Azure SFTP 連接器用來連接到 SFTP 端點從訂單資料會挑選其中依時間觸發的頻率。此連接器的執行個體是在 Azure 入口網站中,從 Azure Marketplace 中建立並部署為 API 應用程式。上傳回到 SFTP 端點的順序認可資料時,也會使用相同的 API 應用程式執行個體。

以下是設定在 SFTP 連接器執行個體組態中,新增至邏輯應用程式流程的索引鍵參數 ︰

  • 觸發程序的頻率 ︰ 在案例的實作中使用的 2 分鐘
  • 收取位置 ︰ 新增先前; 設定 SFTP 連接器執行個體中的路徑相對於根路徑 (例如,/home/ < sftpusername >)在此情況下 ︰ b2b/orders
  • 選取 [刪除的檔案讀取選項之後

BizTalk FlatFile 編碼器可用來讀取 SFTP 連接器 API 應用程式的一般檔案,並將其轉換為結構描述繫結的 XML 文件。FlatFile 編碼器是可用的企業整合連接器,邏輯應用程式的一部分。此連接器的執行個體是從 Azure Marketplace 建立並部署為 API 應用程式之前在邏輯應用程式流程中的耗用量。而 FlatFile 編碼器支援基本的 XSD 結構描述產生從一般檔案和 JSON 文件,包含多個子記錄,例如,在此案例中,用於更複雜的需求會產生結構描述,使用 Visual Studio 2012 和 BizTalk 服務 SDK。XSD 結構描述文件上傳至 BizTalk FlatFile 編碼器連接器 API 應用程式。

BizTalk 轉換服務連接器將轉換 XML 文件包含訂單資料插入順序擷取資料庫的 XML 裝載。它會使用轉換對應,使用 Visual Studio 2012 和 BizTalk 服務 SDK 所撰寫。此連接器會部署為 API 應用程式的執行個體上, 傳對應檔案,順序註冊並認可流程。上傳到此 API 應用程式沒有在對應中使用的結構描述檔案。

SQL 資料庫連接器 API 應用程式執行個體取用 XML 文件裝載在先前步驟中的,並將訂單資料插入至 Azure SQL Database。在 Visual Studio 2012 使用 BizTalk 服務,根據 XML 文件執行個體,或使用 BizTalk WCF LOB 配接器的 SQL Server,可以產生結構描述用來產生插入作業的 XML 裝載。不過,Azure SQL 資料庫連接器 API 應用程式本身現在會支援結構描述產生的資料庫,直接從 Azure 入口網站中的 API 應用程式組態上的所有作業。這不像 BizTalk WCF LOB 配接器或其他協力廠商解決方案,這也會在內部部署所需的其他工具的需求。

[圖 2 示範一些在 Azure SQL 資料庫連接器中設定的金鑰參數。

Azure SQL 資料庫的連接器設定
[圖 2 Azure SQL 資料庫的連接器設定

在插入的訂單資料成功時,Oracle 資料庫的回應會轉換使用 「 BizTalk 轉換服務連接器 API 應用程式設定在先前步驟中,從陣列的訂單 ID 數字,以逗號分隔的清單。

Azure 儲存體 Blob 連接器 API 應用程式執行個體的邏輯應用程式流程中用於儲存上一個步驟中的資料庫插入失敗時的錯誤訊息。

在回應中產生的訂單 Id 會上傳使用 SFTP 連接器與買方組織的 SFTP 端點先前的設定。

邏輯應用程式的作業流程中,完成時,就會出現如所示 [圖 3

完成邏輯應用程式流程
[圖 3 完成邏輯應用程式流程

在此階段中,預設結構描述版本是 2015年-08-01-預覽,建立新的邏輯應用程式時所使用的尚未提供新增企業連接器的能力。因此,若要實作目前的 EAI 案例中,這個結構描述版本應該取代為 2014年-12-01-預覽。這可以藉由直接編輯 JSON 程式碼完成邏輯應用程式的程式碼檢視中。

請記住,儲存變更,關閉 [邏輯應用程式並重新載入以讓變更生效。

等將資源加入至邏輯應用程式流程,如所有連接器,Azure SQL Database、 儲存體連接,就很好的作法全部都在單一資源群組以方便處理和簡化部署群組。建議您最好也,資源會部署在相同的區域 (Azure 資料中心) 以減少延遲流程執行期間。

暫時性錯誤處理流程中

Azure 邏輯應用程式提供了可將重試邏輯來處理暫時性錯誤對雲端式架構都是唯一。此涉及新增 JSON 程式碼片段,您可以看到反白顯示的程式碼所 [圖 4

[圖 4 處理暫時性失敗

"b2bmicrosoftsqlconnector": {
  "type": "ApiApp",
  "inputs": {
    "apiVersion": "2015-01-14",
    "host": {
      },
    "operation": "XMLInsertOnordersax",
    "parameters": {
      "requestMessage": {
        "InputXml": "@{body('transformservice').OutputXml}"
      }
    },
    "retryPolicy" : {
      "type": "fixed",
      "interval": "PT30S",
      "count": 2
    },
  },

當有斷斷續續地發生失敗或連線例外狀況,在執行順序的 Azure SQL 資料庫中插入作業時,連接器 API 應用程式將重試要求兩次直到傳回錯誤。

邏輯應用程式也支援新增功能,例如重複呼叫執行,直到符合預先決定的條件、 實作等動作,請叫用其他工作流程等的功能。

條件式邏輯應用程式流程的執行

邏輯應用程式的流程,就可以定義根據先前的作業結果的動作。在設計工具中,或在邏輯應用程式的程式碼檢視中的 [組態] 窗格中,可以設定的選項來定義的條件。

例如,在目前的流程中,如果訂單插入至 Azure SQL Database 的結果成功,然後回應訊息轉換之前上傳至 SFTP 上的端點與買方組織。

若發生失敗,錯誤訊息會上傳到 Azure 儲存體使用 Azure Blob 儲存體連接器。邏輯應用程式 UI 以視覺化方式描述因此設定的替代流程。請參閱 [圖 6 ,說明如何定義條件的動作,以及如何在邏輯應用程式以視覺化方式描述,它牽涉到它們的流程。

條件式動作的視覺表示法
[圖 6 的條件動作的視覺表示法

使用 XSD 結構描述文件

開發人員已經用來建置其成品的 BizTalk Server 為基礎的企業整合解決方案的開發工具可以擴充使用邏輯應用程式,以及。BizTalk 服務 SDK,搭配 Visual Studio 2012 中提供的額外專案範本,讓開發人員產生或撰寫 XSD 結構描述和轉換的對應。有內建的精靈可以用來產生這些從一般檔案以及從 XML 文件執行個體。Visual Studio 2012 中產生之輸出 XSD 結構描述文件無法直接傳到 FlatFile 編碼器執行個體在邏輯應用程式。

範例 XML 檔案用於產生的 XSD 結構描述的 Azure SQL Database 訂單資料插入,在 Visual Studio 2012 中,使用結構描述產生精靈] 所示 [圖 5

[圖 5 用於 Azure SQL 資料庫訂單資料插入產生 XSD 結構描述的 XML 檔案

<Insert xmlns="https://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/ordersax ">
  <Rows>
  <ordersax xmlns="https://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo">
    <orderidsap>sap0101</orderidsap>
    <orderdate>2016-02-03</orderdate>
    <supplierid>sail001</supplierid>
    <orderamount>25000</orderamount>
    <currency>INR</currency>
    <discount>12</discount>
    <delvydate>2016-06-03</delvydate>
    <contract>C001</contract>
    <contact>Mr</contact>
  </ordersax>
  <ordersax xmlns="https://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo">
    <...>
  </ordersax>
... and more records ...
  </Rows>
</Insert>

用於在內部部署的 EAI 解決方案使用 BizTalk Server 等成品的重複使用性的價值企業擴充其投資來探索 Azure 上部署解決方案的選項。以及有額外的好處,例如快速部署、 容易的基礎結構佈建、 容易管理和監視解決方案的時間。

使用對應

Azure BizTalk 轉換服務連接器會使用 BizTalk 轉換對應來轉換 XML 文件。不過,若要建立這些對應,就需要 Visual Studio 2012 與 BizTalk 服務 SDK。如同的 XSD 結構描述中,一次產生對應轉換檔案可匯入 Azure 邏輯應用程式直接。

被視為在這裡,將對應的連入的程序流程順序 XML 資料庫插入 XML 結構描述,並用來逐一查看每個內送文件中的記錄,MapEach 迴圈運算質,如上圖中 [圖 7

對應的訂單插入通知
[圖 7 的順序插入認可的對應

若要對應至傳出訊息的順序建立回應訊息,從 SQL Server 資料庫產生的訂單編號的陣列必須轉換成逗號分隔值的單一項目內。為了達到此目的,請使用 「 累計串連 」 運算質。

執行案例

若要試用此處所述的案例,放置在檔案 orderssap.csv /home/ < sftpusername >/b2b/訂單資料夾使用 WinSCP/對等工具。

監視邏輯應用程式連接器觸發程序記錄檔,以確保已確實引發觸發程序的狀態。

如果有任何錯誤、 檔案、 分別XML 中,會存放在 /home/ < sftpusername >/b2b/回應資料夾中,其中將包含在 Azure 中的 「 訂單處理系統從產生以逗號分隔順序識別碼值。

現在,放入 orderssap.csv 檔案一次相同的資料夾,不進行任何變更。Oracle 資料庫將會因為唯一條件約束違規錯誤例外狀況從資料庫中。錯誤訊息將上傳到 Azure Blob 儲存體,在容器的 「 訂單 」。

邏輯應用程式執行,追蹤和監視

監視執行中的邏輯應用程式流程中使用 [作業] 磚。另外還有個別記錄檔的邏輯應用程式上的觸發程序事件。深入了解每一種,然後檢視執行的每個連接器的細目流程、 執行和持續時間的結果。

針對跨單位整合擴充案例

雖然在此案例中使用的 SQL 資料庫部署在 Azure 中,會整合與公司網路內部執行的 SQL server 資料庫一樣簡單。Azure 應用程式服務的基礎結構,其中邏輯應用程式也就是,提供功能,稱為 「 混合式連線。這項功能的實作包括安裝的混合式連線管理員在公司網路時,透過此邏輯應用程式整合與這個資料庫中的防火牆背後的伺服器上。除了 SQL Server,可以使用混合式連線來存取其他資料庫是 Oracle、 DB2 和 Informix。

使用混合式連線,可以像 SAP 和 SharePoint 部署在公司網路內的特定業務 (LOB) 系統來擴充 BizTalk 企業連接器使用。它們也可以擴充至 REST 服務和內部部署的 Web 服務。

若要實作此案例的軟體必要條件

除了所需的 Azure 訂閱來實作所述的案例,下列的開發工具和其他軟體也是需要 ︰

  • 需要 visual Studio 2012,以及在 10/8/8.1 Windows 或 Windows Server 2012 R2 上執行的 BizTalk 服務 SDK。
  • SQL Management Studio for SQL Server 2014 或更新版本來建立並連接到 Azure SQL Database。或者,使用 Visual Studio 2012 / 或更高版本的工具,適用於 SQL Server。
  • WinSCP 或對等的工具來連接到 SFTP 伺服器、 建立 「 傳送 」 和 「 接收 」 資料夾,以及為卸除和接收訊息。

成品可供下載

用來實作此案例中的下列成品可供下載,從 GitHub 儲存機制在 bit.ly/1poJPgs:

  • Azure SQL 資料庫建立 script–ordersax.sql
  • 範例訂單資料 file–orderssap.csv
  • XSD 結構描述 ︰
    • dbinsert_sampledata.xsd: SQL 插入結構描述
    • dbinsert_sampledata1.xsd ︰ 的部分,並在上面的結構描述參考
    • orderssap.xsd ︰ 內送訂單文件的結構描述
    • orderresponse.xsd: SQL 插入回應
    • orderresponse1.xsd:,部分,並在 SQL 插入回應結構描述參考
    • ordersaxresp.xsd ︰ 連出的 XML 回應訊息的結構描述
  • 對應 ︰
    • orders.trfm: 將內送訊息對應至 SQL 插入結構描述
    • ordersaxtosap.trfm: SQL 插入回應結構描述對應到外寄訊息結構描述

實作解決方案涵蓋在此案例時,下列的參考就很有用 ︰

  • 開發結構描述和對應的解決方案中所使用的軟體必要元件 ︰ bit.ly/1R3RzvH
  • 若要產生從一般檔案結構描述使用 Visual Studio 2012: bit.ly/1nP6qBy
  • 在 Azure 中設定 SFTP 連接器 ︰ bit.ly/254QfC2

總結

Azure 邏輯應用程式提供的平台,以實作端對端 EAI 案例。一組完整的標準連接器和企業連接器可以與許多企業 LOB 系統和雲端的軟體做為服務應用程式整合。它可以順暢地取用產生使用 BizTalk Server 2013,如結構描述和對應的內部部署 EAI 方案部署的成品。這會將企業提供選項來重新調整其目前的投資和解除鎖定他們可能實作案例,在雲端上的高可用性、 可靠性和容易度組的優點運用 Azure 提供的基礎結構。與邏輯應用程式中的混合式連線支援,其他的值可以從目前投資在 LoB 系統部署在內部,藉由開啟機會,讓它們參與雲端中執行的整合案例。

秘訣!

快速開始著手開發方案中的成品是在 Azure 管理入口網站中執行 BizTalk Server 2013 Standard Edition 中使用映像庫 VM 映像。在 VM 中安裝 Visual Studio 2012 和 BizTalk 服務 SDK 花了我不能超過 30 分鐘的時間。


Srikantan Sankaran是印度班加羅爾以外 DX 小組的技術推廣者。他會使用許多 Isv 在印度,並且可幫助他們設計和部署他們在 Microsoft Azure 上的解決方案。與他連絡 sansri@microsoft.com

感謝以下的微軟技術專家對本文的審閱: Sandeep Alur
Sandeep Alur – 是導致推廣 DX 印度的以 Bangalore 為基礎。