談SOA的時候我們談到兩個方面的解耦,其一是業(yè)務(wù)需求和技術(shù)實現(xiàn)的解耦,其二是業(yè)務(wù)操作和業(yè)務(wù)數(shù)據(jù)的解耦。
1.應(yīng)用系統(tǒng)涉及的跨系統(tǒng)邊界的主數(shù)據(jù)抽象到主數(shù)據(jù)管理系統(tǒng),提高數(shù)據(jù)服務(wù)能力。
2.業(yè)務(wù)系統(tǒng)下層,業(yè)務(wù)模塊分為界面和邏輯兩個部分內(nèi)容,業(yè)務(wù)模塊下沉為提供業(yè)務(wù)服務(wù)能力的單元。
3.流程引擎+業(yè)務(wù)規(guī)則引擎可以進一步對業(yè)務(wù)服務(wù),數(shù)據(jù)服務(wù)進行服務(wù)的編排。
4.展現(xiàn)層可以實現(xiàn)界面層的組裝,可以調(diào)用數(shù)據(jù)服務(wù)能力和業(yè)務(wù)服務(wù)能力。
對于SOA要注意的是本身是一個集成平臺,其本身并不產(chǎn)生能力,本身也不存儲和結(jié)構(gòu)化數(shù)據(jù),更重要的是消息協(xié)議轉(zhuǎn)化,路由和數(shù)據(jù)的傳輸。SOA服務(wù)目錄庫能力來源于業(yè)務(wù)系統(tǒng),業(yè)務(wù)系統(tǒng)提供服務(wù)注冊到SOA的服務(wù)目錄庫中,因此SOA更多是能力集成平臺??梢詫I(yè)務(wù)系統(tǒng)各個層面的能力轉(zhuǎn)化為數(shù)據(jù)服務(wù),業(yè)務(wù)服務(wù),流程服務(wù)和展現(xiàn)層服務(wù)。通過SOA來集成這些服務(wù),提供統(tǒng)一的服務(wù)目錄庫來屏蔽底層業(yè)務(wù)系統(tǒng)。
對于云計算則根據(jù)強調(diào)能力的集中化,特別是原有業(yè)務(wù)系統(tǒng),原有終端都具備的能力要全部遷移到云端集中,然后由云平臺統(tǒng)一來提供這種能力,調(diào)配這種能力。同一個能力不應(yīng)該在各個業(yè)務(wù)系統(tǒng)反復(fù)的建設(shè),而是應(yīng)該集中到云端來統(tǒng)一建設(shè)和管理。
對于SOA和IaaS層云計算都有一個共性特征,即先通過解耦方式拆分再進行合并和組合。一個通過解耦形成的是標(biāo)準(zhǔn)的可復(fù)用的服務(wù)單元,而一個通過解耦形成的是標(biāo)準(zhǔn)的計算資源或存儲資源。對于SOA的解耦重點是實現(xiàn)了業(yè)務(wù)和技術(shù)的剝離,而對于云計算解耦重點是實現(xiàn)業(yè)務(wù)系統(tǒng)和硬件環(huán)境的剝離。
從拆分的過程來看,SOA拆分是要打破原有業(yè)務(wù)系統(tǒng)的緊耦合,識別出可重用的服務(wù),形成粗粒度的業(yè)務(wù)組件或服務(wù)組件;而云計算中資源池的拆分更多是已有硬件環(huán)境通過虛擬化方式的整合,將大的計算或存儲能力通過虛擬化后形成更小的可以調(diào)度的計算單元或存儲單元。
從合并的過程來看,SOA重點是對服務(wù)進行重新組裝和編排,以滿足業(yè)務(wù)或流程的。
首先要說明的是,在各方面的能力都云化后,在云端會形成多朵云,云之間交互可以通過ESB集成進行。云端提供了從開發(fā)環(huán)境,測試環(huán)境,自動部署,執(zhí)行環(huán)境,底層硬件環(huán)境,平臺技術(shù)環(huán)境等一系列得支撐云。在有了這些能力提供后,業(yè)務(wù)系統(tǒng)可以根據(jù)快速的通過組裝這些能力快速的構(gòu)建應(yīng)用。
即業(yè)務(wù)只關(guān)注業(yè)務(wù)本身,不關(guān)注技術(shù)和基礎(chǔ)設(shè)施,基礎(chǔ)設(shè)施和平臺全由云端提供。傳統(tǒng)的應(yīng)用開發(fā)模式會變成真正意義上的應(yīng)用編排和組裝方式,原有的業(yè)務(wù)系統(tǒng)真正變成了瘦應(yīng)用。
而對于云計算,我還是強調(diào)本身的定義一定是終端能力向云端的遷移過程,那我們在談應(yīng)用系統(tǒng)的時候一定是根據(jù)關(guān)注應(yīng)用系統(tǒng)的部署架構(gòu)和開發(fā)運行環(huán)境,而不是應(yīng)用系統(tǒng)的軟件架構(gòu)本身。云計算重點是解決業(yè)務(wù)系統(tǒng)和IT硬件環(huán)境的解耦。
1.對虛擬資源池的管理能力,包括虛擬資源的創(chuàng)建,使用,回收全生命周期的管理。
2.對虛擬計算資源的動態(tài)調(diào)度能力,即中間件平臺可以動態(tài)調(diào)度虛擬資源滿足業(yè)務(wù)需求。
3.對分布式存儲的擴展支撐能力,在這里包括了基于hadoop+hdfs的云存儲架構(gòu)。
4.對分布式數(shù)據(jù)庫的支持能力,在這里即包括key-value半結(jié)構(gòu)化數(shù)據(jù)庫,也包括hive等數(shù)據(jù)云數(shù)據(jù)庫。
SOA是一個能力中心,SOA本身即是一個提供各種能力的能力提供者,提供能力的方式是通過SOA服務(wù)目錄庫,對于SOA提供的能力包括了多個方面的內(nèi)容。由直接可以使用的流程服務(wù)或UI組件,也可以是數(shù)據(jù)服務(wù)或業(yè)務(wù)服務(wù)。能夠最終入庫的能力首先需要滿足的是服務(wù)本身的粒度和可重用性。
對于云計算的計算,存儲等能力由客戶端向云端遷移后,能力本身變成了一種服務(wù),能力提供變成了對于服務(wù)的運營。包括亞馬遜推出的彈性計算,彈性存儲等都是將云端能力作為一種服務(wù)進行運營。那么既然要運營這些服務(wù)能力,那么就需要一套后端的運營支撐系統(tǒng)進行支撐。
從軟件和技術(shù)層面來看,SOA架構(gòu)下的云化可以實現(xiàn)能力集成中心和能力產(chǎn)生中心的進一步融合,首先考慮基礎(chǔ)設(shè)施和平臺層云化。 SOA的集成點將由業(yè)務(wù)系統(tǒng)間的集成轉(zhuǎn)化為云化后各能力中心的集成。
在剝離了IT硬件基礎(chǔ)設(shè)施后,對于業(yè)務(wù)系統(tǒng)解耦后的數(shù)據(jù)層,業(yè)務(wù)規(guī)則層,流程層,界面展現(xiàn)層都可以考慮是否存在共性和公有,是否可以朝云端遷移和集中化。在云端形成類似主數(shù)據(jù)平臺,規(guī)則引擎庫,公共流程平臺等。
演進的第一階段首先是基礎(chǔ)設(shè)施層能力的集中化,即通過IaaS層建設(shè)構(gòu)造企業(yè)內(nèi)部私有云得虛擬資源池,提供統(tǒng)一的計算能力和存儲能力。在這個階段同時會引入SOA中間件進行異構(gòu)系統(tǒng)之間的數(shù)據(jù)集成和應(yīng)用集成。
演進的第二階段重點講放在PaaS層能力和數(shù)據(jù)層能力的構(gòu)建上,一方面是將SOA中間件中的ESB,BPM等發(fā)展為內(nèi)部的PaaS云平臺,一方面是考慮各種業(yè)務(wù)系統(tǒng)中可抽取公共技術(shù)資源和數(shù)據(jù)的抽取,形成各種公共技術(shù)引擎和主數(shù)據(jù)管理中心。PaaS平臺首先是數(shù)據(jù)庫,中間件的平臺化,即我們所說的執(zhí)行環(huán)境的云化;其次才是開發(fā)環(huán)境和測試環(huán)境的云化。
演進的第三階段重點是IaaS層和PaaS層構(gòu)成了完整的快速構(gòu)建Sa。
a.階段1 : 實現(xiàn)IT硬件基礎(chǔ)設(shè)施層面的云化和資源動態(tài)調(diào)度;
b.階段2 : 實現(xiàn)開發(fā)平臺,開發(fā)環(huán)境層面的云化,業(yè)務(wù)基礎(chǔ)數(shù)據(jù)層面云化;
c.階段3 : 實現(xiàn)應(yīng)用的快速組裝和構(gòu)建,滿足SaaS多租戶等架構(gòu)。









