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