編者按:
2007年3月20日清晨,大洋彼岸連線中國,共同發布了一個重大消息:
SOA中關鍵的SCA/SDO規范主體部分起草完成。
這一規范的完成,是否意味著SOA可以部分標準化了,SOA即將迎來一個前所未有的飛躍?
既有的市場格局是否會被打破,應用者和開發者是從頭再來,還是邊走邊做?
SOA將會變得理性可行,還是更加撲朔迷離?
“在我們力圖改善文明這個整體的種種努力中,我們還必須始終在這個給定的整體中進行工作,旨在點滴建設,而不是全盤的建構,并在發展的每一個階段中都運用既有的歷史材料,一步一步地改進細節,而不是力圖重新建設這個整體。”
——著名政治思想家弗里德里希·馮·哈耶克

易觀國際高級IT分析師
梁新剛
2007年3月20日清晨7點,筆者在北京通過電話和WebEx在線會議系統遠程接入了OSOA針對亞太區分析師的發布會。會上宣布:SCA/SDO規范的主體部分已經起草完成,將正式提交給OASIS(The Organization for the Advancement of Structured Information Standards,結構化信息標準促進組織),使該規范逐步成為正式國際標準。SOA的國際標準制定由此進入了一個新的歷史階段。
SCA/SDO告別蟄伏
SOA的概念最初由Gartner公司于1996年提出,但當時并未引起人們的廣泛關注。2000年前后,人們提出了Web Service的概念,SOA開始走向實際應用。
從2005年開始,SOA推廣和普及工作開始加速。各大廠商也逐漸放棄成見,通過建立廠商間的協作組織共同努力制定中立的SOA標準。OSOA就是18家致力于SOA企業的聯盟。聯盟開始起草SCA/SDO規范。
如果把SOA的思想比為以插接樂高積木的方式來構建靈活的、可復用的企業IT系統,則SCA相當于做了那個帶插孔的底板,它定義了架構,便于各個積木塊插在上面,搭建成一個企業級IT系統。
而SDO定義了多種格式數據的統一訪問,相當于規范了積木塊的凹槽和凸起,使彼此能夠插接。
此次SCA/SDO規范移交給OASIS的重大意義則在于,一旦成為國際標準,不同廠商的“積木塊”彼此之間都能夠方便地插接。仍以積木類比,當前沒有國際標準,則任意兩個積木之間是無法插接的,因為它們之間的插槽不遵循統一標準。
在以往的企業IT整合過程中,如果這些IT系統來自不同的應用供應商,整合就將是非常困難的事。雖然各家廠商都倡導SOA,但是各自的積木塊未必能插接在一起,因為其凹槽和凸起各不相同。如果SCA/SDO規范在OASIS的進一步推動下成為國際標準,SOA思想就有可能在不同IT廠商的產品之間獲得廣泛實現。
影響三方力量 打破既有均衡
雖然業務引領IT,但技術的演進對業務也產生互動影響。SCA/SDO規范在技術上解決了IT應用整合的標準化,讓IT系統更為靈活。而企業要享有這一好處,其業務勢必要做出相應的改進。
對于用戶來說,首要的就是業務流程的梳理。企業級優化不僅需要新技術的支持,還需要從新角度考慮商業模式設計問題,實質是實現企業內部更細的分工和專業化的過程。隨著內部專業化日趨成熟,業務活動的整合將公司轉變成由一個個業務模塊組成的網絡,每個模塊中都包含一系列彼此關聯的活動,由適當企業資源提供支持,如人員、流程和技術等。每個業務模塊都在組織中發揮獨特作用,同時又可以作為單獨實體運行。這種“模塊聯盟”設計從思想方法上是與SOA同構的,這些內部的變化不僅將加速企業的創新能力,還能提供更多更好的服務。
SCA/SDO規范也要求IT Vendor做出積極的應對。首先,SOA標準化將成就一個統一的SOA應用市場。IT廠商營銷口徑的一致,將打消用戶的疑慮,加快SOA應用的進程。其次,SOA標準的輪廓已經清晰,IT廠商以SOA改造各自的產品是當務之急。事實上,從“復用”的角度來說,IT廠商是應當最先實踐SOA理念的。但是此前有很多IT廠商采取了漸進策略,以SOA之名,行EAI整合之實,即所謂“新瓶裝舊酒”。現在,有了SCA/SDO規范作為“試金石”,深諳技術之道的CIO們自會以此檢驗廠商的解決方案是否真的符合SOA。第三,標準化意味著同質化競爭。IT廠商必然爭先推出符合SOA架構的方案,搶占市場份額。
考察IT市場格局,曾參與OSOA的廠商無疑占有先機,而其中擁有豐富的中間件軟件的廠商將先拔頭籌,充分享受到SOA整合帶來的巨大商機。今后,SOA市場的競爭,焦點在于平臺。形象的比喻是:如果多國的鐵軌要連通,那么,采用了哪國的軌距,就為其節省了巨大的改造成本,贏得了市場的先機。
SOA面臨分水嶺
SCA/SDO踏上國際標準征途既是一個里程碑事件,也是SOA發展面臨的一個分水嶺:是以建構的思想來規范構件,還是以演進的思想兼容并包異構。
讓我們回到SOA的核心思想,一言以蔽之:復用。
一個服務組件就是一個“粗顆粒度”的、會被重復使用的業務功能模塊。因為可復用,所以企業的IT系統能隨機應變、快速調整。例如, “開發票”就是一個服務組件的例子,它比一個API“大”,但又比一個業務流程“小”。一家采用了SOA的企業,其應用系統就是由許許多多這樣的服務構件裝配而成。
現在SOA面臨的問題是,SCA/SDO只是完成了積木的底板和凹槽的規范,接下來要決定:服務構件到底應該賦予多大的尺度,才能實現“足夠的”靈活應變,以及在復用中降低IT成本?這個問題是SCA/SDO沒有界定的、卻是不可回避的問題。
之所以構成一個難題,是因為構件的顆粒度與制作構件的成本之間需要權衡。對于企業來說,構件的顆粒度越小,搭建起來的系統靈活度越高。但是,相應地,企業在初期為編寫細顆粒度的服務構件需投入的成本也更高,業務流程也需要為此做出更為細分和專業化的調整。
為何SCA/SDO規范沒有解決構件編寫的規范?因為,IBM作為OSOA的盟主,其根本思想方法是“組裝”。這是由其主要服務的歐美企業的需求決定的。
經過數十年的IT系統建設,歐美大型企業已經擁有了豐富的應用系統。所以實現SOA架構的第一步是將存在于異構應用系統之中的業務流程切割、封裝成為標準的服務構件(SCA);第二步是將散在不同系統中的數據整合包裝成為數據服務(SDO);第三步是根據業務需要,通過BPEL將分散的服務聯結成新的業務系統。
在參與OSOA開放組織的18家廠商中,普元軟件無疑是獨特的。其獨特性不僅因其是亞洲唯一的成員,更因其根本的思想方法與歐美廠商不同。2006年5月,28屆世界軟件工程大會上,普元軟件的黃柳青已經闡明了這一點:“SCA的概念和普元EOS的一些概念是大同小異,異曲同工。SCA中提出的一些新概念在EOS中都有對應的類似概念。但是,EOS和SCA還是有一些區別。例如,SCA粒度比較大。而EOS更廣泛,粒度要小一些。而且,兩者在定位上也有所不同:美國企業應用背景是那些大量存在的僵化而又揮之不去的遺產系統,是要把企業中那些大量的遺產系統、現有系統,以及新的基于瀏覽器的前端用‘服務’綁定起來。它在本質上是要實現‘整合’。而國內的應用系統,除了整合,還需要大量新的開發,表現出不同的市場特征。正是面對國內的市場需求,才有了EOS的出現。” 普元董事長劉亞東也有類似的說法:通向SOA有兩條路徑:美國式和中國式。
在SCA/SDO規范的這一段路程,以上兩條路徑還可求同存異;再往下走,其思想方法上的分歧就不可避免地凸顯出來。
暴露致命的自負
如果說IBM發起OSOA的初衷是對企業遺留系統的“破”—分割然后組裝;則普元從2001年成立以來始終追求的則是“立”—從普元的英文名不難窺見劉亞東這位馬里蘭大學物理學博士的方法論:以構件類比物理世界的原子,構建企業級IT系統。
這“破”與“立”看似都通向SOA,其根本的方法論實則大相徑庭。SCA的“破”,是對傳統EAI整合的升華,對遺留系統和新系統兼容并包;而面向構件的“立“,則要求企業勇于接受一個全新建構的IT世界。
贏得一個新世界固然好,但前期投入相對較高,除了平臺提供商已經提煉出來的通用服務組件,企業需要梳理業務流程,編制大量的服務組件。今天的成本和未來的應變能力,孰輕孰重,是擺在企業面前的難題。
SOA面臨的這一難題暴露了IT技術致命的自負。從方法論意義來說,IT技術的根本是理性建構主義的。軟件工程思想從面向過程、面向對象,發展到當前的面向服務,都是期望能通過IT架構更細的分工和專業化,來應對將來業務的變化。換言之,就是“設計未來”。但是,未來真的可以設計嗎?
構件的顆粒度及其規范問題,也許能夠與經典物理學在20世紀初面臨的海森堡“測不準原理”相類比,結論不言而喻:企業的IT架構更像是一部只有大致情節的劇本,不可能以預先編制的構件解決全盤問題,未來還有很多可創造的空間。
這一反思,對于即將采用SOA的企業的重要意義在于:需要審慎地評估投資ROI,在系統建設初期如果投入大成本編制服務構件,今后真被有效復用的會有多少?會不會為了管理未來變化而在今天過度投資?實際上,在早期實施SOA的企業,這個問題已經暴露出來。
什么是SCA/SDO?
首先,我們要知道什么是SOA。
形象地說,SOA就是將現有的一些功能模塊打包成獨立的程序包,命名為“服務”模塊。這些服務模塊(組件)在整個軟件系統的角色相當于在樂高玩具中所用到的小磚塊。對于這些服務模塊,需要對其接口進行良好定義,使得其他的應用系統可以使用“拿來主義”,方便地使用這些服務模塊。這好像我們在樂高游戲中,使用同樣的小磚塊,只需要對磚塊進行重新排列,我們既可以搭建出城堡,又可以搭建成鱷魚或飛機。
如果把SOA的思想類比為以插接樂高積木的方式來構建靈活的、可復用的企業IT系統,則SCA相當于做了那個帶插孔的底板。
SCA提供了一種統一的面向服務組件的調用方式,從而使得客戶可以把不同的軟件模塊通過服務組件的標準化而統一地封裝起來和被調用訪問。而SDO則作為一種數據編程架構和API,它統一了不同數據源類型的數據編程,讓開發人員可以從不同的數據源以統一的方式訪問和操縱數據。可以說,SCA以面向構件的方法,簡化了客戶的業務邏輯編程,提高了應用的靈活性。而SDO則更進一步從數據對象上大大簡化了開發。
SCA/SDO的歷程
2005 年 11 月, IBM、BEA、IONA、Oracle、SAP AG、Sybase、Xcalia 和 Zend 就合作建立新的業內規范來簡化 SOA 應用發展達成了一致,共同發布了兩項針對SOA的重要構件模型規范——SCA 0.9和SDO。此后,該團體陸續吸引了 Cape Clear、Interface21、普元、Progress Software(前 Sonic Software)、Red Hat、Rogue Wave Software、Software AG、Sun Microsystems 和 TIBCO Software 、Siemens AG等多家公司的加盟,目前成員數量躍至 18家,形成了OSOA聯盟。
2007年3月,這18家廠商宣布了SCA和SDO規范中關鍵部分的完成,并將正式提交給OASIS(The Organization for the Advancement of Structured Information Standards,結構化信息標準促進組織),通過其開放式標準過程進行推動。