服務的監(jiān)控及提供相對比較簡單。最讓人困惑的SOA決策是服務如何聯(lián)系、服務之間應采用哪種仲裁機制。
在理想情況下, SOA中的每個服務都應符合標準的Web服務規(guī)范,健壯可靠,而且可以供需要服務的應用或者XML負載的一系列眾多授權的應用或者服務直接使用。但實際上,企業(yè)需要應對使用從MQ到AS2等各種專有協(xié)議的遺留系統(tǒng)。而許多人認為,只有WS-Reliable Messaging等Web服務協(xié)議完全成形,并得到廣泛實施,Web服務的傳送才會獲得企業(yè)所需的可靠性。
于是,ESB蜂擁而入——ESB是如今與SOA關系最緊密的一類產(chǎn)品。ESB是一種消息傳送總線及服務平臺,有了它,連接舊系統(tǒng)、管理及編制服務就會比較簡單。與企業(yè)應用集 成(EAI)產(chǎn)品一樣,ESB也負責轉(zhuǎn)換及發(fā)送消息。ESB廠商對自己的產(chǎn)品是否基于標準非常重視,目前大多數(shù)使用Java消息服務(JMS)或者某種專 有的消息傳送協(xié)議,目的是為了提供必要的可靠性。
支持者喜歡ESB是因為ESB讓他們可以配置服務、管理服務之間的聯(lián)系。經(jīng)歷了 好幾年沒有ESB的日子后,工資單處理服務市場的巨擘ADP公司最近采用了分布式ESB,因為“很難維護大批一對一的消息傳送適配器”,該公司雇主服務部 門的CIO Bob Bongiorno說。這家公司的服務數(shù)量從9個增加到了30個以上,但在此過程中,“管理難度絕不是僅僅增加了三倍”。
Intuit公司集成架構解決方案部門的首席架構師Martin Moseley說,ESB適用于需要編制的長時間運行流程,譬如訂單處理。在這種流程中,各步驟必須按某種次序來進行,而且整個過程都要進行驗證。譬如, 在計算運費或者批準使用信用卡之前,訂單流程可能需要驗證顧客的地址(原因是驗證信用卡往往需要地址); 只有完成了所有步驟,才可以發(fā)送貨物清單。Intuit的訂單處理系統(tǒng)就使用這樣一種仲裁服務方法。
但也有人認為ESB只是改頭 換面的EAI而已,他們認為ESB有悖于SOA的開放性。伯頓集團的分析師Anne Thomas Manes認可使用ESB配置服務,甚至把細粒度服務編制成可廣泛訪問的粗粒度服務,但抨擊了總線作為傳送所有服務的網(wǎng)關這一概念,尤其當ESB消息的來 回傳送帶來額外開銷時,她更是覺得不能接受。