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