服務的監控及提供相對比較簡單。最讓人困惑的SOA決策是服務如何聯系、服務之間應采用哪種仲裁機制。
在理想情況下,SOA中的每個服務都應符合標準的Web服務規范,健壯可靠,而且可以供需要服務的應用或者XML負載的一系列眾多授權的應用或 者服務直接使用。但實際上,企業需要應對使用從MQ到AS2等各種專有協議的遺留系統。而許多人認為,只有WS-Reliable Messaging等Web服務協議完全成形,并得到廣泛實施,Web服務的傳送才會獲得企業所需的可靠性。
于是,ESB蜂擁而入——ESB是如今與SOA關系最緊密的一類產品。ESB是一種消息傳送總線及服務平臺,有了它,連接舊系統、管理及編制服 務就會比較簡單。與企業應用集成(EAI)產品一樣,ESB也負責轉換及發送消息。ESB廠商對自己的產品是否基于標準非常重視,目前大多數使用Java 消息服務(JMS)或者某種專有的消息傳送協議,目的是為了提供必要的可靠性。
支持者喜歡ESB是因為ESB讓他們可以配置服務、管理服務之間的聯系。經歷了好幾年沒有ESB的日子后,工資單處理服務市場的巨擘ADP公司 最近采用了分布式ESB,因為“很難維護大批一對一的消息傳送適配器”,該公司雇主服務部門的CIO Bob Bongiorno說。這家公司的服務數量從9個增加到了30個以上,但在此過程中,“管理難度絕不是僅僅增加了三倍”。
Intuit公司集成架構解決方案部門的首席架構師Martin Moseley說,ESB適用于需要編制的長時間運行流程,譬如訂單處理。在這種流程中,各步驟必須按某種次序來進行,而且整個過程都要進行驗證。譬如, 在計算運費或者批準使用信用卡之前,訂單流程可能需要驗證顧客的地址(原因是驗證信用卡往往需要地址); 只有完成了所有步驟,才可以發送貨物清單。Intuit的訂單處理系統就使用這樣一種仲裁服務方法。
但也有人認為ESB只是改頭換面的EAI而已,他們認為ESB有悖于SOA的開放性。伯頓集團的分析師Anne Thomas Manes認可使用ESB配置服務,甚至把細粒度服務編制成可廣泛訪問的粗粒度服務,但抨擊了總線作為傳送所有服務的網關這一概念,尤其當ESB消息的來 回傳送帶來額外開銷時,她更是覺得不能接受。
性能、安全和運行時治理
要不要使用ESB取決于每家組織的獨特需求和情況。譬如說,如果分布式服務的編制必不可少,而這些服務沒有接入到異步消息傳送基礎架構,編制起來難度就會相當大。
不過單單有了ESB并不等于就有了SOA。在實施的各種規模的SOA中,一般不會只有一種?赡苄枰B接多條消息總線,而且消息在這些總線上傳送過程中還需要轉換。
思科、Forum Systems、IBM DataPower、Layer 7和Reactivity等廠商提供的新一代XML設備非常勝任這項工作,這類設備主要用于保護、管理及提升SOA的性能。這些廠商銷售的設備可以根據內 容來轉發XML消息,并使用專門為此設計的處理器高速完成XML轉換、轉發及映射等工作。
這些設備大多集成了一系列功能,其中許多功能與ESB的功能相重疊。它們尤其善于對服務進行虛擬化處理,這樣一旦需要提升性能時,就可以動態創建服務,而且可以在運行時使用集中管理軟件,執行針對服務制訂的策略。大多數設備還包括了一系列XML安全功能。
實際上,上述這些廠商銷售的首批設備是XML防火墻,用來阻擋基于XML的威脅和拒絕服務攻擊。如今,XML安全設備支持加密/解密、驗證、身份管理、XML模式驗證及更多功能,既可以控制應用訪問,又能保護網絡邊界。
隨著SOA日趨成熟,安全服務必不可少。ADP公司就是這種情況,該公司現正致力于部署標準安全模型,作為供其他所有服務使用的集中流程。同 樣,技術服務提供商USi也在使用聯合身份管理驗證用戶身份。高級技術部門的副總裁Mike Rulf說: “服務可能甚至不知道用戶是誰,但知道該用戶已在服務傳送過程中的某個階段通過了驗證,因為服務傳送了這些驗證信息!
文章來源于領測軟件測試網 http://www.kjueaiud.com/