IBM軟件企業(yè)整合解決方案副總裁、SOA創(chuàng)始專家之一Jason Weisser先生在訪談中,對SOA目前存在的一些的主要疑問給出了詳盡的解答。
SOA不是產品
請您直接了當地告訴我,SOA是什么東西?
Jason Weisser:不如這樣,我告訴你SOA不是什么。SOA不是“東西”,不是產品,不是可以放在光盤上的軟件套件。你不可能拿起一個刻著SOA軟件的光盤,往機器里一裝,然后第二天公司就進入SOA時代了。最近我聽說一些公司紛紛推出SOA的產品,這很可笑。因為SOA不是產品。
能說SOA是技術嗎?
Jason Weisser:SOA是一種技術。但是它不是一個一般意義上的技術,它是一個具有分水嶺性質的重大技術,我在IT產業(yè)工作超過30年,在企業(yè)開發(fā)領域,SOA是我30年來所見到的最重要的技術變革。我以IBM最近發(fā)布的SOA框架為例來講解一下SOA的基本結構。在這個SOA框架的支持下,軟件系統(tǒng)的開發(fā)是從業(yè)務流程分析開始的,使用組件化業(yè)務建模的方法識別和分析各種業(yè)務模型,并將各種最佳實踐融入其中,在這個基礎上我們建立一組用例,用例直接產生BPEL,這些BPEL則可以被融入一個服務整合框架中。在這個框架中有可能有一至幾條企業(yè)服務總線(ESB),所有的服務都通過ESB提供,甚至包括一些管理協(xié)議,也通過XML格式的消息在這條ESB上傳輸。遺留的數據庫、CRM、各種既有系統(tǒng)等等都連接在ESB上。而在這個框架里有一個用WSDL編寫的metadata庫,這個metadata庫描述了關于各種服務的信息,從而把ESB上的各個模塊統(tǒng)一起來,形成一個巨大的服務倉庫(service repository),所有與業(yè)務流程直接相關的服務都可以在這個服務倉庫中找到。所有的服務都是100%可復用的。實際上這個服務整合框架是SOA的核心,也是我們目前努力在做的工作。這個服務整合框架是一個基于開放標準的監(jiān)管層,任何東西要在SOA中運作,必須符合一系列規(guī)則。顯然,這樣一個框架絕對不能說是產品,它是一種技術,一種方法學,甚至是一種企業(yè)業(yè)務指導思想。我的意思是說,除了SOA作為技術的一方面,這種IT架構的大規(guī)模應用必然要求企業(yè)的業(yè)務經營也相應作出調整。毫無疑問,這種調整將大大提高企業(yè)業(yè)務水平。
很多人理解SOA只是通過新的標準和方式將過去的服務暴露出來,難道這種看法不對嗎?
Jason Weisser:顯然不全面。SOA是一個架構,如果僅僅是一種服務接口規(guī)范,那么架構的一面在哪里?
SOA,IBM是認真的
IBM對SOA是什么態(tài)度?
Jason Weisser:我們非常非常重視SOA。IBM從6年以前就開始重視面向服務這個方向。我是3年前加入IBM的,之后我關注的重點是如何在工作流層面上對業(yè)務進行描述,并且讓這種描述能夠被實際執(zhí)行。當時IBM剛剛收購了一家在面向服務方面積累深厚的公司,而且我們的軟件產品也越來越成熟。我的部門在IBM內部是一個新型組織,我們直接幫助客戶基于SOA構建解決方案,同客戶一起面對各種復雜的問題。我們建立了四個中心,其中北京這家是最早的。幾年來我們已經同超過200家、分布在各個業(yè)務領域內的大型公司合作,在SOA方面取得了實際的經驗。兩周以前,Gartner報告說IBM在SOA領域是第一。
但是其他的公司也紛紛宣稱支持SOA,并且發(fā)布SOA平臺。
Jason Weisser:讓我告訴你一件事,SOA很難、很復雜,超過了一般技術公司所能把握的程度。如果你看到一家公司在過去三年里對SOA只字不提,而且其高級技術人員不斷地被Google這樣新生企業(yè)挖走,卻突然在一周內推出一個SOA平臺,那么請你保持高度的懷疑。我們IBM在過去幾年里在SOA領域投入了10億美金,并且與大量的客戶開展了是實在的合作,才取得了今天的成績。但IBM從來沒有、也不會發(fā)布什么SOA產品,或者ESB產品,因為根本沒有這樣的東西。IBM是實實在在的,我們只是在5月發(fā)布了一個SOA的框架。過去一兩年以來.我們跟一些“小公司”密切合作,比如福特汽車,戴姆勒――克萊斯勒公司,紐約銀行等等,我們已經證實了自己的技術和能力,其他的公司需要證明他們自己。
那么微軟呢?
Jason Weisser:如果你聽懂了我剛才對SOA的解釋.你就知道,SOA是很復雜的,這項技術需要處理大量的技術細節(jié),怎樣讓一個用BEPL描述的組件正確工作,而且安全、可管理、高效、透明,這非常難。不錯,微軟的確有能力做到這一點,但是微軟志不在此。微軟始終是把面向大眾的消費類產品放在首位的,面向企業(yè)集成的SOA不是微軟的競技場。我以前在微軟是首席企業(yè)架構師,但我發(fā)現微軟認為整個世界是單一的,服務端跑著Windows,客戶端也跑著Windows,很遺憾,這與現實世界是不相符合的。這也是我離開微軟的原因。
中國應該直接進入SOA時代
看來SOA很難,而且主要用于整合現有系統(tǒng)。不過中國現在更多地需要開發(fā)新系統(tǒng),是否意味著SOA不適合中國?
Jason Weisser:我的十八代祖宗住在草房子里,難道我也必須住在草房子里?中國企業(yè)有很好的機會,在SOA這樣先進的架構上建構自己的IT基礎,為什么要重復我們走過的老路?其實我認為中國企業(yè)有很多特點正適合SOA。比如你們的業(yè)務變化比較多,相關性比較大。如果采用傳統(tǒng)的基于構件的開發(fā)方式,開發(fā)難度和可復用性都不理想。提到可復用性,我不是說構件不可復用,而是說復用的層次不夠高。企業(yè)希望復用的是業(yè)務,這一點構件化的方法做不到。在過去,IT產業(yè)一直是根據自己的能力來為企業(yè)提供解決方案的。我們看到很多時候,業(yè)務部門對IT部門說,我們需要這樣的東西,而IT部門直接回答說做不到。當開發(fā)者在開發(fā)應用程序的時候,主導開發(fā)的不是業(yè)務部門,而是技術部門。這是IT產業(yè)的恥辱。我想在中國的情況也差不多。SOA是改變這一切的一個機會,SOA成熟之后,技術人員可以更有效地滿足業(yè)務部門提出的新的、變化了的需求。我告訴你一個事實,在美國,整整一代開發(fā)者在企業(yè)開發(fā)上走了很長時間,經歷很多失敗和挫折,也積累了大量的經驗,如果中國的開發(fā)者要走這條老路,你知道這意味著什么?這意味著你們會遠遠地落后。如果你們要做類似SAP那樣的系統(tǒng),你們可能超過德國人嗎?可能超過印度人嗎?而且一旦SOA成為主流,那么就意味著你用傳統(tǒng)方法作出來的系統(tǒng),一落地就是“遺留系統(tǒng)”。而如果你們大膽地邁向SOA,直接進入SOA時代,整個情況就反過來了,你們將領先世界!