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