1引言
1.1 SOA的產(chǎn)生背景
隨著計算機(jī)軟件技術(shù)的不斷發(fā)展,各企業(yè)都傾向于應(yīng)用特定的信息系統(tǒng)(如:MIS,LES,SMS)來管理企業(yè)的內(nèi)外事務(wù)。這砦系統(tǒng)為企業(yè)節(jié)約了專項人工開支,提高了商業(yè)運(yùn)作反應(yīng)速度。但從企業(yè)內(nèi)部信息溝通的角度上來看,由于各種軟件的開發(fā)應(yīng)用平臺和設(shè)計結(jié)構(gòu)可能不盡相同,從而不可避免地會產(chǎn)生“信息孤島”,即企業(yè)內(nèi)部各特定系統(tǒng)之間的信息數(shù)據(jù)如不實(shí)行人工干預(yù)模式就難以互通。這種情形對整合企業(yè)內(nèi)部事務(wù)結(jié)構(gòu),梳理企業(yè)內(nèi)外運(yùn)作關(guān)系是極其不利的,也正是這種“孤島”效應(yīng)的產(chǎn)生成為了企業(yè)自身發(fā)展的瓶頸之一。
面向服務(wù)的架構(gòu)(Service—Oriented Architecture,SOA)技術(shù)能夠給企業(yè)提供一種構(gòu)建信息系統(tǒng)的標(biāo)準(zhǔn)和方法。通過建立可組合、重用的服務(wù)體系以減少企業(yè)的信息業(yè)務(wù)冗余,加快項目開發(fā)進(jìn)程,從而提高企業(yè)信息系統(tǒng)利用率并有效降低系統(tǒng)開發(fā)成本。近年來,Web服務(wù)的出現(xiàn)使得異構(gòu)系統(tǒng)的交互成為可能,特別是隨著Web服務(wù)標(biāo)準(zhǔn)和規(guī)范的出臺(如:簡單對象訪問協(xié)議、Web服務(wù)描述語言、統(tǒng)一描述一發(fā)現(xiàn)一集成協(xié)議等等)使之越來越趨于現(xiàn)實(shí)化。在此基礎(chǔ)上,SOA的推廣和普及工作高速運(yùn)轉(zhuǎn),各大廠商如國外的IBM、SUN、SAP,國內(nèi)的中軟、普元、用友都紛紛協(xié)作努力進(jìn)行SOA的標(biāo)準(zhǔn)化定制。人們已經(jīng)把關(guān)注點(diǎn)從簡單的Web服務(wù)拓展到面向服務(wù)體系架構(gòu)的各個方面。各種支持SOA的開發(fā)平臺、工具、中間件紛紛出臺,為SOA的普及化提供了有利的外部環(huán)境。這些舉措標(biāo)志著SOA進(jìn)入到了實(shí)施階段。
1.2 SOA的技術(shù)特點(diǎn)
SOA作為一種分布式組件體系結(jié)構(gòu)。其核心特點(diǎn)是跨平臺和松耦合:不管在企業(yè)內(nèi)部還是企業(yè)外部,SOA組件都是透明的,并且可以通過一系列統(tǒng)一支持的、可互操作遠(yuǎn)程過程調(diào)用和消息傳遞協(xié)議來統(tǒng)一訪問。接口定義標(biāo)準(zhǔn)支持開發(fā)人員工具之間的互操作性。網(wǎng)絡(luò)上協(xié)議互操作性相對于代碼可移植性是SOA組件的中心部分.支持統(tǒng)一訪問和平臺獨(dú)立。調(diào)用方無需知道組件的基礎(chǔ)實(shí)現(xiàn)技術(shù),如J2EE、Micmsofi.Net和PHP。SOA組件封裝功能,并支持通過業(yè)務(wù)分析人員和業(yè)務(wù)模型建模的抽象級別的重用。這使IT功能和它所支持的業(yè)務(wù)功能之間的映射更加直接,從而提高了可靠性。計算機(jī)可處理的約定允許第三方訪問SOA組件提供的服務(wù)。這些約定顯式聲明功能性特征以及非功能性(服務(wù)質(zhì)量或QoS)特征和需求,SOA組件使用WSDL記錄它們的操作,還可以使用用Web服務(wù)的業(yè)務(wù)流程執(zhí)行語言(BPEIAWS)來定義組件的有效操作序列,從而動態(tài)發(fā)現(xiàn)、選擇、綁定(通過其聲明性屬性)和集成SOA組件。松耦合特性簡單來說即是被整合的各種系統(tǒng)除附加增值屬性外還應(yīng)保持自身原有的特有屬性功能。
總的說來,SOA強(qiáng)調(diào)的是一種體系架構(gòu)模型,它可以根據(jù)企業(yè)的業(yè)務(wù)需求通過網(wǎng)絡(luò)對松耦合的不同業(yè)務(wù)服務(wù)進(jìn)行靈活的分布式部署、整合和使用,這些業(yè)務(wù)服務(wù)獨(dú)立于編程語言、實(shí)現(xiàn)方式和運(yùn)行平臺。
2構(gòu)建適用于中小企業(yè)的SOA“核心業(yè)務(wù)”顆粒度模型
在企業(yè)中應(yīng)用SOA就意味著將業(yè)務(wù)流程或功能用服務(wù)來描述,所謂服務(wù)顆粒度(Service Granularitv)就是指一個服務(wù)包含的功能大小。服務(wù)顆粒度的正確定位將直接影響到服務(wù)的質(zhì)量,包括靈活性和效率等諸多方面。因此。選擇合適的顆粒度劃分對服務(wù)設(shè)計是至關(guān)重要的。目前,國內(nèi)許多中小企業(yè)雖看好SOA的發(fā)展趨勢,卻難以接受其高昂的系統(tǒng)成本。這是因?yàn)閼?yīng)用SOA技術(shù)做標(biāo)準(zhǔn)化信息系統(tǒng)整合時,所慣用的企業(yè)服務(wù)顆粒度劃分標(biāo)準(zhǔn)為粗粒度劃分模式12l。我們崩粒度來表示一個服務(wù)的大小,或者說是服務(wù)操作的范圍,粗粒度的服務(wù),涉及的內(nèi)容廣而且雜;細(xì)粒度的服務(wù),涉及的內(nèi)容細(xì)而且簡單。粗粒度的服務(wù)設(shè)計,可以減小服務(wù)之間的耦合性,但付出的代價就是增加服務(wù)的復(fù)雜性。服務(wù)具備了太多的功能.增加了設(shè)計的復(fù)雜性和維護(hù)的難度;細(xì)粒度的服務(wù),可以讓服務(wù)的實(shí)現(xiàn)變得簡單,但這樣會增加服務(wù)的數(shù)量,服務(wù)過細(xì)過多,這樣必然有一些服務(wù)需要組合才能實(shí)現(xiàn)一定的功能,那樣就增加了服務(wù)之間的耦合度,只要其中一個服務(wù)發(fā)生了改變,勢必影響整個系統(tǒng)架構(gòu)。從以上兩種顆粒度的對比我們不難看出,服務(wù)粗粒度的劃分雖符合SOA技術(shù)要求達(dá)到了松耦合的目的,但增加了服務(wù)復(fù)雜度,提高了系統(tǒng)開銷。因此,在對中小企業(yè)SOA系統(tǒng)服務(wù)顆粒度劃分時必須考慮設(shè)計成本與SOA標(biāo)準(zhǔn)化之間的平衡。
在SOA顆粒度模型構(gòu)建上,本文提出一種構(gòu)建“核心業(yè)務(wù)”顆粒度流程模型的方法來尋找一種折中的途徑。這里對“核心業(yè)務(wù)”的定義是企業(yè)內(nèi)外運(yùn)營中最為重要、使片j頻率最高的業(yè)務(wù)(服務(wù))項目或流程。我們的SOA設(shè)計遵循這樣的設(shè)計思路:先從企業(yè)信息系統(tǒng)的各功能模塊中分離出核心業(yè)務(wù),各個功能模塊可以看作核心業(yè)務(wù)的階段性表達(dá);然后在核心業(yè)務(wù)的基礎(chǔ)上設(shè)計組件和業(yè)務(wù)對象;設(shè)計完組件和業(yè)務(wù)對象之后再來設(shè)計系統(tǒng)服務(wù)整合。這樣不管所需整合的服務(wù)范圍多廣,服務(wù)多復(fù)雜。都可以通過核心業(yè)務(wù)和企業(yè)工作流程把各種形式的服務(wù)整合起來。就算是這種整合服務(wù)經(jīng)常需要變動,但是這種變動相對于核心業(yè)務(wù)層次來說是較為穩(wěn)定的。因而能夠有效地加強(qiáng)系統(tǒng)的復(fù)用性并且降低系統(tǒng)構(gòu)件成本。
這樣的設(shè)計思路也體現(xiàn)了SOA自頂向下的設(shè)計方法:功能模塊一>服務(wù)一>組件和業(yè)務(wù)對象。服務(wù)不是憑空想象出來的,它必須要滿足客戶的需求,而客戶需求的體現(xiàn)就是系統(tǒng)要提供的功能,所以功能模塊的設(shè)計是服務(wù)設(shè)計的前提。
3中小企業(yè)SOA系統(tǒng)的可靠性度量
衡量可靠性的兩個粗略的指標(biāo)是平均故障間隔時間(MTTF)和平均恢復(fù)時間(MTTR)。這兩項指標(biāo)對于服務(wù)用戶是非常重要的,因?yàn)檫@些指標(biāo)在確定服務(wù)合同方面將發(fā)揮重要作用。然而,對于服務(wù)部署者來說,還有一些需要優(yōu)先了解的指標(biāo),這些指標(biāo)經(jīng)常會受到這些服務(wù)可能使用的機(jī)器的影響。因此,監(jiān)視和度量機(jī)器和分布式系統(tǒng)中的網(wǎng)絡(luò)連接的MTTF和MTTR也是必要的。另一方面,SOA中的一項鶯要指標(biāo)是系統(tǒng)的服務(wù)靈活性,而服務(wù)靈活性優(yōu)劣是與開發(fā)和部署此項服務(wù)的時間成反比的。因此這種靈活性將隨著開發(fā)時間的增加而變得難以度量,從而直接對SOA系統(tǒng)可靠性衡量帶來了額外的負(fù)擔(dān)。換句話說,SOA系統(tǒng)的可靠性度量復(fù)雜程度與系統(tǒng)中涉及服務(wù)的質(zhì)量有關(guān),越精細(xì)的服務(wù)質(zhì)量所需求的可靠性程度越高,度量丁作量越大,反之度量工作量較小。目前在SOA可靠性研究領(lǐng)域依然沿用著軟件可靠性分析的那一套方法,僅僅從全局的角度來考究系統(tǒng)的可靠性,而SOA系統(tǒng)的核心內(nèi)容是面向服務(wù)的架構(gòu),特別是中小企業(yè)的SOA系統(tǒng)。其個性化程度相當(dāng)高,并不滿足于全局考量,企業(yè)用戶總希望能夠獲得更優(yōu)服務(wù)質(zhì)量同時對單個構(gòu)架的可靠性有較好的把握。
SOA可靠性的衡量需要考慮許多指標(biāo),并非每一個治理實(shí)施都將幫助衡量這些因素。SOA系統(tǒng)架構(gòu)需要從初始研發(fā)的時候就貫穿可靠性分析。單個服務(wù)的可靠性分析也許不容易立即實(shí)現(xiàn),特別是在架構(gòu)部署的起步階段規(guī)模很小并且正在增長的時候。但是,如果你要保證你所架構(gòu)的服務(wù)項目在未來不過時,這些步驟是必要的。
4結(jié)語
SOA作為一種新生的軟件架構(gòu)其自身還有許多不盡完善的地方,如:中小企業(yè)SOA系統(tǒng)的技術(shù)標(biāo)準(zhǔn)、語義網(wǎng)服務(wù)、資產(chǎn)服務(wù)、自適應(yīng)SOA模型、虛擬服務(wù)平臺,靈活的行業(yè)采用等等。這些技術(shù)點(diǎn)的研究都將加速SOA的平民化進(jìn)程,使得SOA服務(wù)得到充分的拓展。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://m.guhuozai8.cn/
本文標(biāo)題:中小企業(yè)構(gòu)建SOA系統(tǒng)有哪些難點(diǎn)?
本文網(wǎng)址:http://m.guhuozai8.cn/html/support/1112153778.html