為了深入了解這兩項技術規范發布的意義,IBM北亞太區企業整合解決方案首席架構師暨中國SOA設計中心技術主管毛新生先生對此做了相關介紹。
問:請問這兩項技術規范會給行業帶來哪些影響?
毛新生:綜合起來,SCA就是怎樣在現有技術基礎上,為SOA計算環境(松耦合計算環境)提供開放的組件及其服務描述。另一方面,它規定已經設計好的組件之間交互,以便組裝服務來構造應用。SDO則包含了連接器、協調器、對象圖表、各種數據對象之間的聯系信息以及這些聯系信息中的描述方式。
無論如何,SCA/SDO所構成的編程模型可以為程序員帶來很多非常直接的好處,而且用它們來描述和實現業務模型,將會達到一種相比原有J2EE平臺或者.NET平臺更加簡潔和通用的效果。在面向服務的環境中,新編程模型最主要的特點就是從業務的需求出發,將一組松耦合的服務組合成業務流程,完成所需要的業務活動。但這種松耦合的服務組裝是建立在開放的服務組件及其動態交互的基礎之上的,因此,SCA定義能讓整個業務架構看起來更加漂亮、有更大的靈活度,你還可以選擇不同的方式來實現這些業務組件。過去,人們沒有太多選擇,在J2EE下,只能使用Section Bean,在.NET下,只能使用.NET Component,IBM在SCA的實現中,也就是WPS 6.0所提供的SCA運行時環境,有多達八種不同的組件實現形式可供選擇。你可以選擇用BPEL的方式實現組件,也可以用純Java組件的方式實現這些業務組件,你甚至可以定義業務規則、人機交互任務或者狀態機來完成這個事情,這樣就可以根據你的實際狀況、人員情況、技術背景等不同的方式選擇更適合自己的方式。由于SCA下實現組件的接口都是非常統一、通用的,因此要將它們組合起來是一件相對原來更加輕松的工作。SDO帶來的好處則更加明顯。在我們服務過的客戶中,一旦遇到需要針對很多應用進行集成時,其數據源往往都分布在不同的地方,而且極有可能是異構的,它們不僅在語法上,而且在語義上也有極大的差別。而SDO恰恰就是用來完成這項工作的,它根據業務的語義定義一個完整的Schema,不僅能清晰地定義各種數據對象,而且還能有效描述各種對象之間的聯系,充分利用了XML強大的自描述能力。對于在整合復雜應用的環境下,SDO所帶來的效率上的提高非常大。
問:這兩個規范對SOA具有什么重要意義?
毛新生:這個規范是IT技術主流的技術廠商支持的,它的建立為SOA計算環境下的編程模型打下了一個堅實的基礎,而且這個編程模型對于SOA的發展,相當于向前跨了一大步,具有非常重要的意義。你可以從如下幾個維度來看待SOA:
計算環境維度,編程模型是整個計算環境非常重要的組成部分;
軟件工程維度,用怎樣的方法來標識這些服務,怎樣描述它的接口、消息等細節;
設計原則維度,根據你采用的編程思想來設計軟件結構和設計風格;
具體實現維度,怎樣用你已經搭建起來的軟件在SOA的計算環境下跑起來。
從上面幾個角度可以看出,SCA/SDO在SOA的環境下扮演了非常重要的角色。從IBM目前已經做到的工作上看,我們已經能夠將SOA開始應用在工程領域,過去兩年來我們的實踐也證明了這一點。
問:這兩項規范的發布是否會給J2EE平臺帶來沖擊?
毛新生:就平臺而言,J2EE與SCA/SDO應該是一種相互補充的關系,而并非相互取代,只是你現在可以用另外一種方法來實現業務。不管平臺本身到底如何,關鍵的問題在于背后的思想——開放。不管J2EE還是SCA/SDO,都是可以支持SOA計算環境,這也意味著J2EE朝著開放性上再一次做了提升。過去,IBM、BEA等廠商都很支持J2EE,所有的支持者都將繼續在J2EE平臺做具體工作,但是大家都需要一個更開放的標準。
問:為什么在這次聯合規范發布的廠商中,沒有Sun和微軟?
毛新生:Sun在Java社區是非常重要的一個成員,眾多原來支持J2EE標準的廠商也正在與Sun做一些溝通,并通過Java標準化組織來合力促成標準的制定。另外,微軟是產業中非常重要的廠商,在SOA方面,大家共同推進的標準需要對整個IT產業中的廠商都產生影響,因此微軟將來也很可能加入到這個聯盟中來,當然,在短期下,可能它會受限于原有平臺和技術的獨立性,但從長遠看,這個事情是遲早要發生的。開放在今天是主流,在技術推動下、用戶要求下、市場壓力下,多數廠商都會逐漸走到開放的大旗下來,這是我看到的一個趨勢。因此在SCA/SDO開放的本質是顯而易見的,一旦這個規范成為標準,我相信會有更多的廠商會加入其中,而且,眾多在開放旗幟下的廠商也一定會為推動開放規范標準化進程而努力。
問:能否預測一下SOA未來的發展趨勢?
毛新生:這里我引用一下Gartner的報告:
隨著商業和技術的推動,SOA將成為將來的發展趨勢已經沒有人懷疑了;
2007年,超過50%的公司將SOA作為IT戰略來考慮;
2008年還沒有將SOA引入到公司的IT實現中去,那么該公司將成為一只恐龍,也就是說這個公司很落后了
目前中國大陸公司做了10來年信息化、臺灣做了20多年、日本做了30左右年,歐美做了40幾年,過去那個時代,部門級的信息化就可以獲得很好的效益和利潤,但今天全球化到來,企業還需要進一步加強競爭力。部門級的競爭力要轉化為企業級的競爭力。有些公司已經開始在自己的IT系統中支持虛擬組織/企業的業務運作,把自己搭建到一個龐大價值鏈的頂端,并建立起針對這種環境的業務模型。這些企業開始在動態價值網絡上最大化自身,這種做法對IT提出了很多新要求。另外,動態協作,也就是部門之間/企業之間動態、快速地協作,使業務運作能夠迅速應變,要求建立起清晰的契約,如果沒有契約,很多業務規則將消失于無形,進而影響業務的控制和管理,它與服務的概念不謀而合。這要求實現分布式的技術應該是開放、靈活、松耦合的組件,并以清晰的契約協作,完成業務邏輯、業務流程和業務活動。新模式與SOA極為類似,這也是為什么開放的規范將會很容易成為發展趨勢的原因。相比之下,美國和日本等企業對于開放的技術接受程度很高,并將開放的標準作為戰略的決策依據,對于企業目標的實現具有至關重要的作用。多年基于部門級的間信息化建設,企業架構比較亂,需要整合,需要理得順一些,而EAI通常采用特有技術,開發和維護費用過于昂貴,SOA以及所提供的SOI,以其開放、通用的特性,為建設企業級架構、企業范圍內的應用整合提供了最為理想的基礎。由此,SOA的趨勢不可抵擋。11月30日,IBM、BEA、Oracle、IONA、SAP、Siebel、Sybase、Xcalia和Zend科技公司聯合發布了針對SOA的編程模型SCA(Service Component Architecture)、SDO(Servlce Data Object),這兩個規范的發布標志著SOA的實施進入了實質階段。