BizTalk 2010 EDI 報文傳輸

2021-08-26 07:46:51 字數 2959 閱讀 2761

edi報文可以通過任何協議傳送給我們的**合作夥伴,例如:smtp、file、ftp、http以及其他的許多協議,在這裡就不一一枚舉了。但是,edi標準僅支援van和as2。van可以確保報文是有效的、將報文路由到合適的收件人以及會有交易的記錄,而as2是一種技術,可以讓**合作夥伴允許使用s/mime over http/https安全地相互傳輸報文。biztalk的強大功能可以將各種便準納入同乙個解決方案當中,讓**合作夥伴無論是要使用as2還是van,都可以通過biztalk在單一的平台上來構建edi解決方案。

在biztalk中檢視ftp和van與edi的通訊時,你會發現van提供的優秀功能,如報文驗證、報文跟蹤和報文傳送等,如今也可以在biztalk中找到了,在as2解決方案中,biztalk是一種「增值網路」。

as2允許**合作夥伴直接通過安全的http相互交流,當edi中使用了as2時,就會在埠處設定as2標準的http介面卡來作為互動,或者是其他的相關介面卡,不管採用那種方式,核心的概念都是相同的,實現安全的報文傳輸和對報文的驗證。安全傳輸通過證書來進行處理,報文驗證通過as2、合作物件和biztalk中的架構配置進行處理。

下圖顯示的是乙個已經配置為允許通過標準的biztalk http介面卡進行as2傳輸的合作物件,合作物件已經設定as2屬性,並將用作http介面卡的乙個擴充套件,當報文通過http送達時,biztalk會先將報文的資訊和as2的設定對比較,然後再開啟edi報文,接著會路由該報文,就像通過其他任一方法傳送一樣,as2只是提供一種安全的方式,來傳輸資料以及任何相關的信封資訊。

透過防火牆傳送報文

在這裡需要說明乙個重要的概念,即如何將報文傳送到位於防火牆後面的biztalk server伺服器,也就是說biztalk無法在網路上公開訪問。當soap或http接受埠新增到biztalk時,該埠就會在本機iis上工作,並且所有已發布資料都需要傳送到該本機web伺服器,例如,在使用biztalk web service 發布嚮導時,只能在安裝了biztalk 的本機iis上建立該web service。

在無法從網路外部訪問此iis伺服器的環境中,必須建立某種解決方案來路由通訊,有多種解決方案可以解決這個問題,例如將biztalk伺服器置於網路的公共部分,或建立乙個反向**來通過防火牆的路由要求,從而讓biztalk位於private network中。

透過防火牆的通訊可以通過編寫**的方式實現,因為將biztalk伺服器放在網路中的公共訪問部分通常都不可接受,此時安全性的風險太高了。

在公用網路的公用iis伺服器上開發web service時,可以採用多種方法,其中一種是建立閘道器web service,另一種是建立**web service。閘道器web service服務的建立,需要使用自定義編碼,還需要進行複雜的格式轉換,以符合biztalk的預期格式,閘道器會接受來自公共網路的請求,並將其對應到向防火牆後面的web service發出的請求。另一方面,** web 服務的建立,需要修改使用 biztalk web services 發布嚮導生成的內容,然後將其副本置於公共 web 伺服器上。從其簡單性來看,修改** web 服務似乎是最理想的選擇。

要建立** web 服務,需要啟動 biztalk web services 發布嚮導。單擊該嚮導中相應的選項,然後定義 web 服務的發布位置(請注意,虛擬目錄建立位置的唯一選項就是在本地 iis 伺服器上)。當嚮導建立 web 服務時,實際上是建立了乙個**,該**可以將來自 iis 的傳入呼叫重定向至 biztalk messagebox 中,以便將其路由到相應的業務流程。此** web 服務會自動編碼,並且已經進行了預配置,只要傳入發布直接進入此 web 伺服器即可正常執行,無需使用者進行任何更改。

要使發布進入網路的公共部分並路由到此 web 服務中,需要執行三個基本步驟。第一步,建立**到** web 服務。當 web 服務通過嚮導匯出後,biztalk 會將其稱為** web 服務。若要從外部客戶端呼叫此 web 服務,就必須在可將請求路由到的公共伺服器上建立** web 服務。此操作通過在公共 iis 伺服器上建立虛擬目錄即可實現,其中的名稱和介面要與生成的**完全相同。建立虛擬目錄後,將原始 biztalk iis 目錄下所有生成的檔案複製到公用伺服器上的虛擬目錄中。

可以使用下圖中顯示的**來修改原始的** web 服務**。此**首先覆蓋原始 web 服務中的 web 方法,接著並不是將其發布到 messagebox 中,而是載入 web.config 檔案中的一些可配置字段,並將傳入請求發布到 biztalk iis 伺服器上的 web 服務中。路由到 biztalk 引擎的任務,仍然由原始的** web 服務處理。

由於這兩種 web 服務具有相同的 web 介面,所以可以使用相同的客戶端**呼叫任一服務。因此,在開發過程中,您可以使用由嚮導發布的原始 web 服務**來驗證是否所有元件都在按預期工作。**對**可以在測試和開發的最後階段建立,也不會影響任何客戶端**。

使用**對** web 服務的最後一步,是修改公用 iis 伺服器上的 web.config 檔案,以便使用可配置字段。新 web 服務所需的字段如下所示:

由於這兩種 web 服務具有相同的 web 介面,所以可以使用相同的客戶端**呼叫任一服務。因此,在開發過程中,您可以使用由嚮導發布的原始 web 服務**來驗證是否所有元件都在按預期工作。**對**可以在測試和開發的最後階段建立,也不會影響任何客戶端**。

使用**對** web 服務的最後一步,是修改公用 iis 伺服器上的 web.config 檔案,以便使用可配置字段。新 web 服務所需的字段如下所示:

這些設定是針對身份驗證值和重定向 url 提供的。可配置欄位的實際列表(以及它們實際儲存在 web.config 檔案中還是其他位置)由開發人員確定,此處顯示的列表僅供說明使用。

通過防火牆的最複雜的發布路由就是 web 服務的發布路由。http 發布(和 as2)可以使用相似的方式處理,但不需要複製和修改 biztalk 中生成的**。對於 http 發布,可以使用非常簡單的重定向模式進行路由,具體取決於發布的性質。許多組織在確定正確的 biztalk 伺服器路由方式時,可能會感到很困擾,重點是,這些型別的會話不應過於複雜,因為有很多簡單的解決方案都可以解決這個常見問題。

Biztalk學習筆記1

1 傳送埠訂閱不到訊息,可能是被別的埠訂閱了,僅僅stop是不夠的,還需要解除繫結。2 流程脫水,流程序列化存到資料庫,節省cpu和記憶體,伺服器判斷,等待時間過長會自動脫水。3 檔案的receive loaction不能啟用,可能是沒有讀寫許可權 4 使用sql 介面卡時提示 新事務不能登記到指定...

biztalk隨機文件中tutorial3注意事項

學習 biztalk 的最好文件就是 biztalk 的隨機文件,文件中包括一套循序漸進的教程 tutorial 還有許多就某一單項技術的 sample samples in the sdk 這些教程和例子描述的步驟十分的詳細,詳細到你什麼都不用想照它的步驟一步步的做都可以了。教程步驟太詳細,而且往...

深入biztalk清理訊息作業 job

biztalk 中訊息儲存在 messagebox 資料庫的 spool 表和parts 表中。spool 表的內容是訊息的總體性描述和訊息的上下文屬性,一條訊息在此表中為一條記錄。parts 表存放多部分訊息的各個部分,乙個部分在此表中佔一條記錄。哪乙個是正文部分由 spool 表中的uidbod...