關鍵字:.NET Enterprise Servers
消息隊列技術使在不同時間運行的應用程序可以在臨時離線的網絡和系統上通訊。通過對COM的支持、對.NET Framework的支持、動態的基于目錄服務(directory service)的結構和內置的集中系統管理,消息隊列就集成到.NET Enterprise Server環境中了。
你可以在MSMQ的消息到達時或經過一定的時間間隔后,配置BizTalk Server對它們進行處理。隊列中的消息一直保留在隊列中,直到BizTalk對它們進行處理。這種配置就可以使應用程序在任何時候發送消息到BizTalk Server——即使是服務器不在線時。
更重要的是,你的SQL Server存儲過程或觸發器不需要等BizTalk來處理消息。當消息在隊列中等候處理的時候,SQL Server也可以繼續處理來自Commerce Server的更多的請求。而且,Commerce Server也可以繼續處理來自多個客戶的訂單。這就使我們可以對用戶的交互作出響應,而且可以在后臺處理大量的實際訂單。
供應商可能也需要用MSMQ和XML Web Services來接收訂單。MSMQ消息可以通過XML Web services發送,這就使服務的調用者可以根據企業的計劃和商業需求在消息列隊等候處理時繼續它的工作。
NDC設計了它自己的訂單格式。雖然這種方法簡化了它的內部系統,但它使與商業伙伴的通訊變得復雜了,因為每個公司都有獨特的訂單格式。NDC利用了BizTalk的功能,將數據從本地的內部商業格式轉換成供應商的數據格式。BizTalk可以將任何XML文件轉換成許多其它的文件格式。BizTalk Server可以通過多種方法發送和接收文件,包括電子郵件、FTP、HTTP、MSMQ和XML Web services。NDC配置BizTalk來從消息隊列監控和讀取它的內部訂單消息。BizTalk將NDC的訂單從內部格式轉換成供應商可以理解的特殊的格式。BizTalk通過內部網絡、穿越ISA Server將訂單直接發送給供應商。
不同的供應商的系統可以有不同的轉換需求。NDC配置BizTalk Server,運用適當的轉換機制,將重新格式化的訂單發送給每個供應商。有些NDC的供應商運行的是Microsoft的產品,而另外一些供應商運用的是其它公司的產品,這一事實并不是個問題,因為BizTalk Server可以將數據轉換成XML、EDI或其它格式。例如,有個NDC的供應商運用的是一個非Microsoft的平臺,在其它情況下,它就不能與一個Microsoft平臺通訊。但現在,BizTalk Server對SOAP的支持和XML Web services就可以使NDC和這個供應商相互之間有效地通訊了。
實現安全的B2B交易
另一個NDC的供應商有這樣一個Microsoft解決方案,它包括一個提供安全的ISA Server和一個接收訂單的XML Web service,該訂單放在了供應商系統的消息隊列中。供應商的ISA Server允許一個由NDC簽署的安全的訂單進入網絡,發送訂單請求到XML Web service,然后進入消息隊列。供應商的商業系統在那里對它進行適當的處理。
XML Web services可以為.NET Enterprise Servers或其它服務器之間的集成提供一個重要的集成點。一個Web service是一個程序層,它將它的接口公布給其它Internet應用程序。在本例中,供應商已經提供了一個XML Web service,使NDC可以給它發送一個訂單。你可以把XML Web services看作是你的服務器提供的一個功能,這樣其它程序就可以跨Internet調用那個功能。這些其它的程序都運用SOAP標準,因此它們可以在任何平臺上運行,而且可以用任何編程語言編寫。
位于供應商站點處的Web service處理請求,然后將訂單發送到一個內部消息隊列系統。供應商運用類似于NDC的處理過程來處理訂單。然后供應商的服務器給NDC返回一個文件,表明供應商正在處理產品項目。這時候,NDC的BizTalk就將供應商的文件轉換成NDC可以理解的格式。BizTalk包含商業邏輯,它將一個電子郵件消息直接發送到Exchange Server,讓客戶知道訂單正在被處理中。BizTalk也將消息發送回Commerce Server,根據轉換的文件做處理。Commerce Server記錄供應商提供的交易和信息,然后以XML的格式發送SQL Server信息,表明訂單狀態應該變成“Being Processed”。
原文轉自:http://www.anti-gravitydesign.com