SOA從應(yīng)用開始走向主流
SOA悄然走向主流
有人說IT是概念炒作的一個行業(yè),沒幾年就出來一個新的概念。SOA這個主題經(jīng)過幾年的熱議,它是不是真的能夠成為信息化建設(shè)的主流?SOA有沒有比較成熟的切實可行的技術(shù)和方法可以推廣?SOA有哪些更好的措施更符合我們中國的特色?在多年的實踐之后,我們很高興和大家分享。
SOA會不會成為主流?有兩個答案,一個比較簡短,一個比較理性。簡短的講,目前國際最大的中間件平臺廠商只剩下Oracle和IBM。他們的產(chǎn)品線已經(jīng)全面的升級到以SOA為特征的第三代中間件產(chǎn)品,如Oracle Fusion和IBM WPS,所以大家很自然的越來越多的使用SOA。
從理性的角度來講,SOA確實給現(xiàn)在的信息化建設(shè)帶來了巨大的價值。這個價值的核心就是變化。去年美國總統(tǒng)選舉的時候,變化這個詞成就了美國第一個黑人的總統(tǒng)。變化也會讓SOA真真切切的發(fā)揮價值,成為信息化建設(shè)的主流。看起來軟件我們已經(jīng)做了那么多年,稅務(wù)也好、銀行、電信、電子政務(wù),我們的信息系統(tǒng)經(jīng)過五年、十年不斷的建設(shè),為什么到現(xiàn)在還沒有結(jié)束的跡象呢?因為軟件并不是代碼,軟件是一個企業(yè)和組織業(yè)務(wù)的體現(xiàn),而業(yè)務(wù)又是企業(yè)文化的反映。當我們的企業(yè)文化和業(yè)務(wù)不斷的發(fā)展變化的時候,我們的軟件就必須跟隨著發(fā)生變化。同時每個企業(yè),每個組織都有自己企業(yè)的文化,這也是為什么規(guī)模經(jīng)營的企業(yè)都不要用套裝軟件,需要去定制、去開發(fā)。
軟件上線以后有人使用就需要變化,正是因為業(yè)務(wù)跟文化都是在發(fā)展變化的過程中,只有像SOA這樣一個以適應(yīng)企業(yè)變化為核心而發(fā)展出來的技術(shù),才能夠適應(yīng)信息系統(tǒng)建設(shè)的長期性的要求。在這樣的環(huán)境中,SOA作為第三代中間件正在以勢不可擋的方式走到信息化建設(shè)的前沿。
SOA到底是什么?技術(shù)成熟度怎么樣?有哪些比較成熟的使用方法?在傳統(tǒng)的軟件開發(fā)中,系統(tǒng)和模塊間互相的接口依賴性比較多,接口的耦合度比較高。當我們的企業(yè)軟件從一個部門級單向的功能發(fā)展到全企業(yè)應(yīng)用的時候,互相之間的依賴性越來越強,往往牽一發(fā)而動全身。所以我們就需要一種體系能夠把所有的軟件的接口,通過一致的、開放的、互相之間松耦合、容易替換的標準方式來描述,這種方式就是與軟件實現(xiàn)技術(shù)、平臺、地點無關(guān)的軟件服務(wù)體系,這就是SOA。
在一個面向服務(wù)的體系中,一個應(yīng)用模塊可以輕易的被替換,也可以快速的被重新組合成新的模塊。在這么個非常簡單的理念之上,業(yè)界已經(jīng)發(fā)展出一整套的配套的核心技術(shù),真是這些配套的核心技術(shù)才讓SOA真正落地,讓打造出能夠靈活應(yīng)變的SOA服務(wù)成為可能。在SOA相關(guān)的技術(shù)里面有幾項比較重要的技術(shù),第一項是SCA標準,即服務(wù)構(gòu)件標準。服務(wù)構(gòu)件標準有兩個層面,首先是怎么樣通過更小顆粒的服務(wù)構(gòu)件快速組裝出軟件服務(wù),因為我們現(xiàn)在的系統(tǒng)開發(fā)中不可能大量的重新開發(fā)新的服務(wù),而是希望這些服務(wù)能夠快速的形成。
同時通過服務(wù)構(gòu)件的方法,能夠組裝成更大顆粒的服務(wù),是一個服務(wù)構(gòu)件組裝的標準。SCA的標準已經(jīng)提交,現(xiàn)在開始有產(chǎn)品化的實現(xiàn),包括普元EOS,Oracle Fusion, IBM WPS 等。
第二項關(guān)鍵技術(shù)是業(yè)務(wù)流程引擎,使得服務(wù)構(gòu)件之間可以通過流程進行組裝。業(yè)務(wù)流程的轉(zhuǎn)變在企業(yè)里面經(jīng)常發(fā)生的。以前業(yè)務(wù)流程的轉(zhuǎn)變都是需要技術(shù)人員通過可視化的編程環(huán)境,通過技術(shù)人員進行配給和調(diào)整。現(xiàn)在我們通過業(yè)務(wù)的人員,就可以對這個業(yè)務(wù)的流程快速的進行轉(zhuǎn)變。
中國主流要有中國特色
國際廠商在SOA的推廣過程中,往往從公司的統(tǒng)一信息化規(guī)劃出發(fā)。但是當大型企業(yè)企圖在整個企業(yè)級進行SOA規(guī)劃的時候,我們會發(fā)現(xiàn)即使在中國的幾大銀行,最大的電信公司,要一步到位在企業(yè)級實現(xiàn)SOA是非常困難的。這些企業(yè)現(xiàn)在已經(jīng)有很多系統(tǒng)正在運行,與國外的同類系統(tǒng)相比較,這些應(yīng)用系統(tǒng)之間的接口并不是非常清晰,而應(yīng)用系統(tǒng)之間的邊界也不是很明確。在這種情況下,如果我們要對整個企業(yè)的信息系統(tǒng)進行重新規(guī)劃,這個規(guī)劃的周期會非常長。即使我們有能力做好規(guī)劃,也要求我們在一開始就從新建設(shè)好很多基礎(chǔ)的服務(wù),這個對很多企業(yè)來講也是很大的一個挑戰(zhàn)。
同時還有很多非技術(shù)性的管理方面的挑戰(zhàn)。比如以前企業(yè)都是按照項目和應(yīng)用來組織預(yù)算、招投標、和項目管理的。總的來講,如果我們直接用完整的SOA理念對于企業(yè)進行實施的話,我們起步代價大、風(fēng)險高、周期長。而服務(wù)規(guī)劃不一定能夠一步到位,不一定這個服務(wù)一下子設(shè)計的很準確,因為我們?nèi)耸鹿芾戆l(fā)生改變,我們的人事管理發(fā)生重組。這就大大增加了第一步就實現(xiàn)企業(yè)級SOA的難度。從應(yīng)用開始,小規(guī)模實現(xiàn)SOA,不斷積累不斷擴展,是更加符合中國企業(yè)實際情況的一種方案。
什么叫SOA從應(yīng)用開始呢?我們對SOA實施選擇從應(yīng)用或者一組相關(guān)的應(yīng)用出發(fā)。比如從信用卡管理,從風(fēng)險控制,而不是從整個商業(yè)銀行開始建設(shè)SOA。在這樣的主題或者一個業(yè)務(wù)領(lǐng)域里面,比較符合現(xiàn)在公司的信息化建設(shè)規(guī)劃,基礎(chǔ)的投入相對來說比較小,不需要大量的投入,把基礎(chǔ)的應(yīng)用開發(fā)出來、服務(wù)開發(fā)出來。同時,也不需要開始進行整個企業(yè)級的改造。有一個比較好的切入點,用我們現(xiàn)在的信息化規(guī)劃的能力,用我們現(xiàn)在的項目規(guī)劃組織以及項目招投標的過程,用我們現(xiàn)在人員在局部地區(qū)先實現(xiàn)SOA。在我們的實踐過程當中,這樣的項目群、應(yīng)用群的推進是比較可行的。第一就是這些有清晰定義的項目比較容易成功,第二在這些項目成功之后,總結(jié)經(jīng)驗,可以幫助我們在更大的規(guī)模推廣SOA。
在中國SOA的實踐有兩個成功的關(guān)鍵。第一就是選用一個已經(jīng)有大量的積累的平臺。市場上很多廠商提供的SOA的中間件,它基本上是一個SOA的技術(shù)實現(xiàn)。但是在技術(shù)上面要把我們需要的基礎(chǔ)服務(wù)開發(fā)出來,要花很多時間,SOA的起步就會比較漫長一點。如果我們選用的平臺上面有一組相關(guān)的基礎(chǔ)服務(wù),特別是有好多基礎(chǔ)的構(gòu)件可以快速組裝出基礎(chǔ)服務(wù)的話,也會大大提高我們這個項目實施的成功概率,降低我們的成本,加快我們的速度。
第二個要點就是我們在SOA實施的過程當中,為了它的成功,首先我們不是為了技術(shù)做SOA,而是把技術(shù)和業(yè)務(wù)有一個很好的結(jié)合。在我們應(yīng)用群里面用SOA基礎(chǔ)的構(gòu)件當中,搭出來的應(yīng)用可以向業(yè)務(wù)部門展現(xiàn)SOA帶來的直接好處。比如說讓業(yè)務(wù)部門可以快速的調(diào)整流程,讓業(yè)務(wù)部門直接體現(xiàn)到SOA的價值。