SOA,通天塔之匙?

作者:金蝶中間件(Apusic)首席科學家 袁紅崗

SOA現在正熱得“燙手”。
對於SOA,目前我聽到主要有兩種說法:一種講它是“革命性的顛覆架構”,一種講它是“皇帝的新裝”。但無疑,SOA最近幾年發展得非常快,世界各主要軟件廠商紛紛高調跟進,關於SOA的報道可以說是不絕於耳。而程序員們有的興奮和期待,有的則有些困惑,最近我在於廣州、上海等城市舉行的“金蝶Apusic Java俱樂部”上和程序員們交流時,他們或者以一種朝聖者的表情說:“以前面嚮對象的技術過時了,SOA時代來了”,或者一再懇切地追問我:“SOA到底是什麼?SOA時代現在就要開始了嗎?”

那麼,SOA是什麼?到底能解決什麼問題、解決得怎樣?我們和客戶準備好了嗎?我給出的答案是“Just Processing,SOA-現在進行中”。

SOA到底是什麼?

SOA(Service-Oriented Architecture)的定義是面向服務的架構,就是說將軟件按照功能設計成一個個服務,這些服務用標準的方式定義接口、並通過標準的協議進行調用。SOA所定義的接口和調用方式是獨立於編程語言和運行平臺的,廣義上講SOA可以基於不同的底層技術實現,比如CORBA和Webservices。但CORBA由於過於複雜和臃腫已很少使用,所以目前所說的SOA絕大多數是基於Webservices技術實現。在Webservices的實現方式下,SOA服務的接口用XML進行定義。

在SOA框架的支持下,軟件系統開發從業務流程分析開始,使用組件化業務建模的方法識別和分析各種業務模型,將各種實踐融入其中,在這個基礎上我們建立一組用例,用例直接產生BPEL,這些BPEL則可以被融入一個服務整合框架中,描述了各種服務的信息,從而把ESB上的各個模塊統一起來,形成一個巨大的服務倉[MS1] 。
這樣,理想的SOA甚至是所有軟件人員的一個夢:將中間層再進行抽離,在中間層作一個跨技術架構的元數據和業務邏輯,使之成爲跨技術架構的、可長期繼承的、並不斷積累的企業知識庫和最寶貴的資產,也就是面向服務的組件庫。誇張一點說,如果所有軟件企業都用SOA,那麼世界軟件業將會發生徹底的改變。顯然,這樣一個框架不是一種產品,也不僅僅是一種技術,而是一種解決問題的方法,一種“企業業務的指導思想”。

SOA應用的兩個場景及其缺陷

那麼,SOA要解決的問題是什麼?我認爲,從技術本質上講,SOA應用於兩個場景:第一種是業務互聯互通(EDI),第二種是封閉的交易系統,即將元數據和業務邏輯抽離,形成100%的可複用。比如,當我們分析一個項目時,如果這個項目裏有部分業務模塊會被別的軟件調用,比如一個ERP項目裏的Order模塊會被用戶的自動下訂單系統調用,或者這個項目裏的業務模塊是分佈式運行的,不同站點之間的業務模塊需要互相調用,這時就需要採用SOA技術。

無疑,SOA是一個偉大的思想,它試圖定義一個大家(各種軟件廠商)都“認”的、都“遵循”的法則,大家都用這樣的方法進行互通互聯,從而實現***限的“聯通”,解放無效和重複勞動。打一個不那麼恰當的比喻,就像人類的語言一樣,SOA或許就像《聖經》中那個著名的“通天塔”的故事:人們用同一種語言交流產生的威力無窮,以至於在巴比倫快要修成了一個“通天塔”,直達上帝所在的天庭。

但是,我們始終無法迴避一個一直困擾軟件開發者的大問題:如何解決業務邏輯的可變性?SOA是偉大的, 但在SOA應用的兩個場景中,同樣缺陷也是明顯的:
第一種場景:業務互聯互通,就是應用系統互聯。SOA本身解決互通互聯,與其說是技術問題,不如講是業務問題,例如ERP、CRM的異步整合,數據層面整合都不能很好將兩個系統整合,SOA僅僅是一種實現工具之一,整合效果並不會好不到那裏去。我們可以說,在沒有其他選項之前,SOA是一種最“不壞”的方式,但它並不能解決所有的問題,實際上EAI的牽涉面很廣,而我們知道,有些問題並不是單純靠技術就能解決的。

第二種場景:封閉交易系統,缺點是性能慢,而且交易沒有形成確定的規範。XML比較慢是大家都承認的,性能方面的問題將對SOA的發展造在一定的阻力。同時SOA規範本身沒有完善,包括Transaction規範在不斷完善。SOA實質上可以講就是WebService,但Web Service多年來收效漸微,並且性能較差。總的來說,SOA現在還處在一個發展階段,很多標準還在制定,不同廠商之間還存在一些不兼容的現象,因此SOA還不能已經是一個成熟的技術,還需要時間的檢驗,還在“進行中”。

中國用戶的現實選擇之惑

在憧憬SOA技術帶來的前景之餘,我們不得不回過頭來冷靜地說:SOA和我們大家的共同客戶――中國企業還有距離。

中國信息化進程與歐美不同,我們是大量基礎業務系統都沒有建立起來,整合需求不如想象的大。從我們對客戶的瞭解,發現很少有客戶有此需求。簡單地總結就是互通無基礎,是新建系統,需求並不強迫。而歐美市場大量業務系統建立起來需要整合,從這個角度講,SOA是適用於他們的。

全年年底有個調查說,到2008年的時候,中國會有80%以上的大型企業應用採用SOA方案。但是據最新的媒體報道說,今天這個比例可能還不到10%。一項新技術需要市場的消化,大型企業出於保護企業投資,不會輕易地轉移到新的技術平臺;而即使像J2EE這樣成熟的技術經過了這麼多年的發展,也不敢說能達到80%的市場份額。SOA需要整個IT界的用戶和供應商共同促進,僅靠一兩家樣板客戶是說明不了太大問題。因此,想在兩年內使80%的大型企業應用採用SOA方案、迅速發生如此劇烈而富有戲劇性的巨大變化無異於神話。

我國的信息化剛剛起步,從信息基礎設施到信息化理念上於發達國家又很大的差距。在這個大前提下,我們談信息化不是去盲目跟風,而是要靜下心來認真的思考中國的信息化需要什麼樣技術架構、能夠接受的什麼樣成本價位。這不僅僅是我們客戶需要考慮,我們軟件廠商要比我們的客戶更要考慮清楚、更進一步。在這個充滿變數的激烈競爭市場,只有冷靜務實才能生存、發展。實際上,目前大多數用戶還都在互相觀望,而且在國內根本談不上企業應用接口的標準化,在這種情況下,SOA還需要很長很長的路要走。

《聖經》中的那個故事說到:“通天塔”最後沒有蓋起來,人們之間根據各種關係又分出了很多不同的語言,溝通障礙出現了,理想的塔也就無疾而終。

在我看來,SOA是偉大的理想,但離真正的實際應用還有很長一段路要走,它需要整個行業一同來支持。而目前SOA在業務流程、管理和可靠性這樣的關鍵性規範上還有很多不確定因素,還處於進行中。那麼,如何用未來的“饅頭”滿足今天的溫飽?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章