關于如何把必要的企業(yè)服務總線轉化為面向服務的架構一直存在著爭論。強調ESB對于SOA重要性的人有著自己的關注點,而質疑ESB作為SOA基礎的觀點也有著更深層次的考慮,同時是對前一種觀點走向極端的一種有益的矯正。
使用SOA架構來搭建IT系統(tǒng)是一個復雜的過程,而ESB的使用則簡化了這一過程。“面向服務的架構(SOA)從根本上改變了對企業(yè)應用的設計、開發(fā)和集成的方式。它倡導企業(yè)應用的模塊化服務、便捷集成和重用。然而SOA也帶來一系列的技術挑戰(zhàn),如可靠的消息傳遞、服務的虛擬化、服務的發(fā)現(xiàn)和調用、策略管理等等。而ESB做為SOA架構的中間層,幫助企業(yè)有效解決了這些難題,所以企業(yè)往往會從ESB入手,來實施SOA。” 甲骨文公司大中華區(qū)高級技術經(jīng)理黃建勇這樣向記者解釋ESB在SOA中的作用。 ESB在SOA中的重要作用已經(jīng)得到了人們的共同認可,F(xiàn)orrester Research公司發(fā)表的一份報告指出,持續(xù)采用SOA能很好的體現(xiàn)ESB的思想,并且把ESB稱為“SOA的主要切入點”。 SOA廠商更是紛紛推出自己的ESB產(chǎn)品,并不斷地向用戶宣揚ESB可以幫助他們簡化SOA的難題,降低SOA實施的成本。 ESB不等于SOA 但是,人們對ESB的追捧正在使SOA的實施走向“迷途”。利用ESB來輔助SOA實施變成了以ESB為中心來構建SOA應用,手段變成了目的,技術篡奪業(yè)務成為了SOA的重心,這嚴重地背叛了SOA的本原特性。 IBM WebSphere SOA與J2EE顧問Bobby Woolf最近寫了一篇文章《以ESB為中心的架構是實施SOA錯誤的途徑》來質疑這種把ESB當作SOA的實現(xiàn)基礎的做法。Bobby Woolf在文章中提到,很多客戶在開始建設SOA時要求先為他們建立一個ESB,他們拋棄了SOA的理念而只對ESB感興趣。“這些客戶在ESB和SOA之間劃了一個等號,或者更準確地說建設SOA就必須建設ESB。” SOA中國設計中心主任,IBM資深技術主管毛新生指出了這種錯誤的根源所在。 ESB不等于SOA,它更不能替代SOA。以ESB來啟動SOA應用,然后以ESB為中心來構建SOA系統(tǒng)是不可取的。 Burton Group的分析師Anne Thomas Manes說道:“如果缺少我推薦啟動SOA的基本組件,ESB將不會列在我的清單中。事實上,我并不鼓勵人們由ESB開始。ESB并不會鼓勵好的SOA行為。ESB本質上是集成系統(tǒng),而非SOA系統(tǒng)。SOA是用于拆卸應用豎井(application silos),而集成系統(tǒng)則是修補這些豎井。” 而她提及的基本啟動包括: 一個或多個服務平臺(如.NET,Java EE應用服務器等) SOA管理解決方案 注冊表 如果服務要被暴露在防火墻之外,那么需要XML網(wǎng)關 她還指出,ESB非常有用,但是,在SOA項目的初始階段可能不會發(fā)揮多大的用途。在SOA項目的后期,你還可能需要一個編制(orchestration)引擎,并且大多數(shù)的ESB都會提供一個。即便如此,ESB也絕對不是組織啟動SOA的起點。所有這些能力你一開始并不需要。因此,ESB應該在后期購買。 Accenture首席技術官Don Rippert認為激活SOA的全部潛力需要通過四個階段,而ESB則處于第三個階段。他同時指出當前大多數(shù)的企業(yè)還只是處于第一個階段,因此ESB實際上對于他們來說并不是迫切需要的。 而他所說的四個階段如下所示: 1.使用XML,以更標準的方式使用應用程序接口。 2.捕獲一些業(yè)務過程,并將它們轉化成為Web服務。 3.引入并全面使用企業(yè)服務總線。 4.產(chǎn)生業(yè)務過程執(zhí)行語言(Business Process Execution Language,BPEL),它可由業(yè)務過程建模工具完成。BPEL可以改變應用程序的行為,而無需修改軟件。 另外,在IBM定義的實施SOA的五個切入點中——人員、流程、信息、連接性、重用,只有連接性和ESB相關。 針對這種錯誤的傾向,他警告道“只有當你實際需要一樣東西,才去實現(xiàn)它,決不要僅僅因為你預見到未來的需要。”這種哲學遵循的思想是“夠用就好”,或者說只有需求出現(xiàn)時才去滿足它,而不是預測將來會出現(xiàn)什么樣的需求,然后預先就去實現(xiàn)它,因為這樣做將造成巨大的浪費,甚至給將來設置阻礙。 “ESB就是道路,試想城市規(guī)劃時是不是先把所有的道路都修好,然后再去修建筑呢?”毛新生這樣形象地做了一個比喻。 正確認識SOA的真諦 以ESB為中心來構建SOA系統(tǒng),這種錯誤的根源就是完全從技術角度考慮,而忘記了SOA的核心是業(yè)務價值。 “Bobby Woolf的這篇文章就是批判唯技術而技術的錯誤路線,這是一個不太好的建設企業(yè)IT的傾向。”毛新生這樣解釋Bobby那篇文章的真正目的,他進一步說道:“我們每天都在談業(yè)務驅動,業(yè)務敏捷,把業(yè)務和IT對齊,所有這些其實都在強調SOA的核心是業(yè)務價值,它所解決的問題是業(yè)務問題,而不是關注技術的。而ESB是一個完全技術的東西。” 離開了SOA,ESB將失去它所連接的服務,而僅僅是一個總線,同時也將變得毫無價值。Bobby做了一個比喻:路是沒有任何價值的,除非你利用它把一個東西從一個地方移到另外一個地方。而離開SOA,ESB就像一個沒人使用的道路。 “做SOA的事情不要先上來建立一個大而全的ESB,相反是關注你的業(yè)務問題,找到用SOA的方法來解決業(yè)務上的需求,在解決這個問題的過程當中,你會看到一系列的業(yè)務服務。這些業(yè)務服務是會產(chǎn)生業(yè)務價值的。它可以靈活地組裝,動態(tài)地解決你變化的業(yè)務需求。這是它的價值,只有這樣才能使你的業(yè)務敏捷起來,隨需應變起來。而在服務的組裝過程中,你再去考慮利用ESB來把他們連接起來。”毛新生說道。 在認識到SOA的業(yè)務本性后,我們將重新回歸ESB在SOA實施過程中的正確位置,而不是一切以ESB為中心。當然這種矯正并不是否認ESB的價值。ESB是好的,單純的ESB項目是壞的。讓架構圍繞服務,而非總線。 |
|