概述
在企業(yè)傳統(tǒng)的系統(tǒng)開(kāi)發(fā)中,企業(yè)往往在設(shè)計(jì)架構(gòu)的時(shí)候都是采用了緊耦合形式,這是封閉的,自成一體的。這種架構(gòu)下的的MRP、ERP、OA等產(chǎn)品很難適應(yīng)或快速響應(yīng)市場(chǎng)或客戶靈活多變的需求,以及后續(xù)的擴(kuò)展。在這樣的市場(chǎng)、及客戶需求下,從而催生了軟件產(chǎn)品一種新的設(shè)計(jì)或架構(gòu)的理念:面向服務(wù)架構(gòu)(SOA架構(gòu))。
SOA架構(gòu),是一種粗粒度、開(kāi)放式、松耦合的服務(wù)結(jié)構(gòu),要求軟件產(chǎn)品在開(kāi)發(fā)過(guò)程中,按照相關(guān)的標(biāo)準(zhǔn)或協(xié)議,進(jìn)行分層開(kāi)發(fā)。通過(guò)這種分層設(shè)計(jì)或架構(gòu)體系可以使軟件產(chǎn)品變得更加彈性和靈活,且盡可能的與第三方軟件產(chǎn)品互補(bǔ)兼容,以達(dá)到快速擴(kuò)展,滿足或響應(yīng)市場(chǎng)或客戶需求的多樣化、多變性。
SOA體系架構(gòu)帶來(lái)的主要觀點(diǎn)是業(yè)務(wù)驅(qū)動(dòng)IT,即業(yè)務(wù)驅(qū)動(dòng)和業(yè)務(wù)更加緊密地聯(lián)系在一起。以粗粒度的業(yè)務(wù)服務(wù)作為基礎(chǔ)來(lái)對(duì)公司業(yè)務(wù)進(jìn)行建模,這樣就可以產(chǎn)生簡(jiǎn)潔的業(yè)務(wù)和系統(tǒng)視圖;以業(yè)務(wù)服務(wù)為基礎(chǔ)來(lái)實(shí)現(xiàn)的IT系統(tǒng)更靈活、更易于重用、也更快地應(yīng)對(duì)企業(yè)業(yè)務(wù)需求的變化;以業(yè)務(wù)服務(wù)為基礎(chǔ),通過(guò)顯式地方式來(lái)定義、描述、實(shí)現(xiàn)和管理業(yè)務(wù)層次的粗粒度服務(wù)(包括業(yè)務(wù)流程),提供了業(yè)務(wù)服務(wù)模型和相關(guān)IT業(yè)務(wù)之間提供了更好的“可追溯性”,縮小了它們之間的差距,使得業(yè)務(wù)服務(wù)的變化更容易傳遞到IT。
利用SOA架構(gòu)開(kāi)發(fā)的時(shí)候,其基于松耦合的特性能給企業(yè)帶來(lái)諸多的好處:
第一、更易維護(hù)
業(yè)務(wù)服務(wù)提供者和業(yè)務(wù)服務(wù)使用者的松散耦合關(guān)系及對(duì)開(kāi)放標(biāo)準(zhǔn)的采用確保了該特性的實(shí)現(xiàn)。建立在以 SOA基礎(chǔ)上的信息系統(tǒng),當(dāng)需求發(fā)生變化的時(shí)候,不需要修改提供業(yè)務(wù)服務(wù)的接口,只需要調(diào)整業(yè)務(wù)服務(wù)流程或者修改操作即可,整個(gè)應(yīng)用系統(tǒng)也更容易被維護(hù)。
第二、更高的可用性
該特點(diǎn)是在于服務(wù)提供者和服務(wù)使用者的松散耦合關(guān)系上得以發(fā)揮與體現(xiàn)。使用者無(wú)須了解提供者的具休實(shí)現(xiàn)細(xì)節(jié)。
第三、更好的伸縮性
依靠業(yè)務(wù)服務(wù)設(shè)計(jì)、開(kāi)發(fā)和部署等所采用的架構(gòu)模型實(shí)現(xiàn)伸縮性。使得服務(wù)提供者可以互相彼此獨(dú)立地進(jìn)行調(diào)整,以滿足新的服務(wù)需求。
現(xiàn)在,國(guó)內(nèi)許多企業(yè)已經(jīng)使用了SOA架構(gòu),但是是否它就真的沒(méi)有缺點(diǎn),答案顯然不是:
SOA的不足
作為一個(gè)具有發(fā)展前景的應(yīng)用系統(tǒng)架構(gòu),SOA尚處在不斷發(fā)展中,肯定存在許多有待改進(jìn)的地方。隨著標(biāo)準(zhǔn)和實(shí)施技術(shù)的不斷完善,這些問(wèn)題將迎刃而解,SOA應(yīng)用將更加廣泛。
缺憾之一 : 可靠性(Reliability)
SOA還沒(méi)有完全為事務(wù)的最高可靠性——不可否認(rèn)性(nonrepudiation)、消息一定會(huì)被傳送且僅傳送一次(once-and-only-once delivery)以及事務(wù)撤回(rollback)——做好準(zhǔn)備,不過(guò)等標(biāo)準(zhǔn)和實(shí)施技術(shù)成熟到可以滿足這一需求的程度并不遙遠(yuǎn)。
缺憾之二 : 安全性(Security)
在過(guò)去,訪問(wèn)控制只需要登錄和驗(yàn)證;而在SOA環(huán)境中,由于一個(gè)應(yīng)用軟件的組件很容易去與屬于不同域的其他組件進(jìn)行對(duì)話,所以確保迥然不同又相互連接的系統(tǒng)之間的安全性就復(fù)雜得多了。
缺憾之三:編排 (Orchestration)
統(tǒng)一協(xié)調(diào)分布式軟件組件以便構(gòu)建有意義的業(yè)務(wù)流程是最復(fù)雜的,但它同時(shí)也最適合面向服務(wù)類型的集成,原因很顯然,建立在SOA上面的應(yīng)用軟件被設(shè)計(jì)成可以按需要拆散、重新組裝的服務(wù)。作為目前業(yè)務(wù)流程管理(BPM)解決方案的核心,編排功能使IT管理人員能夠通過(guò)已經(jīng)部署的套裝或自己開(kāi)發(fā)的應(yīng)用軟件的功能,把新的元應(yīng)用軟件 (meta-application)連接起來(lái)。 事實(shí)上,最大的難題不是建立模塊化的應(yīng)用軟件,而是改變這些系統(tǒng)表示所處理數(shù)據(jù)的方法。
缺憾之四:遺留系統(tǒng)處理(Legacy support)
SOA中提供集成遺留系統(tǒng)的適配器, 遺留應(yīng)用適配器屏蔽了許多專用性API的復(fù)雜性和晦澀性。一個(gè)設(shè)計(jì)良好的適配器的作用好比是一個(gè)設(shè)計(jì)良好的SOA服務(wù):它提供了一個(gè)抽象層,把應(yīng)用基礎(chǔ)設(shè)施的其余部分與各種棘手問(wèn)題隔離開(kāi)來(lái)。一些廠商就專門(mén)把遺留應(yīng)用軟件“語(yǔ)義集成”到基于XML的集成構(gòu)架中。 但是集成遺留系統(tǒng)的工作始終是一種挑戰(zhàn)。
缺憾之五 : 語(yǔ)義 Semantics
定義事務(wù)和數(shù)據(jù)的業(yè)務(wù)含義,一直是IT管理人員面臨的最棘手的問(wèn)題。語(yǔ)義關(guān)系是設(shè)計(jì)良好SOA架構(gòu)的核心要素。 就目前而言,沒(méi)有哪一項(xiàng)技術(shù)或軟件產(chǎn)品能夠真正解決語(yǔ)義問(wèn)題。為針對(duì)特定行業(yè)和功能的流程定義并實(shí)施功能和數(shù)據(jù)模型是一項(xiàng)繁重的任務(wù),它最終必須由業(yè)務(wù)和IT管理人員共同承擔(dān)。不過(guò),預(yù)制組件和經(jīng)過(guò)實(shí)踐證明的咨詢技能可以簡(jiǎn)化許多難題。
采用XML技術(shù)也許是一個(gè)不錯(cuò)的主意。許多公司越來(lái)越認(rèn)識(shí)到制定本行業(yè)XML標(biāo)準(zhǔn)的重要性。譬如,會(huì)計(jì)行業(yè)已提議用可擴(kuò)展業(yè)務(wù)報(bào)告語(yǔ)言(XBRL)來(lái)描述及審查總賬類型的記錄。 重要的是學(xué)會(huì)如何以服務(wù)來(lái)表示基本的業(yè)務(wù)流程。改變開(kāi)發(fā)方式需要文化變遷,相比之下,解決技術(shù)難題只是一種智力操練。
性能(performance):SOA的第六個(gè)缺憾?
批評(píng)SOA的人士經(jīng)常會(huì)提到性能是阻礙其采用的一個(gè)障礙,但技術(shù)的標(biāo)準(zhǔn)化總需要在速度方面有一些犧牲。這種懷疑觀點(diǎn)通常針對(duì)兩個(gè)方面:SOA的分布性質(zhì)和Web服務(wù)協(xié)議的開(kāi)銷。
不可否認(rèn),任何分布式系統(tǒng)的執(zhí)行速度都不如獨(dú)立式系統(tǒng),這完全是因?yàn)?a target="_blank">網(wǎng)絡(luò)的制約作用造成的。當(dāng)然,有些應(yīng)用軟件無(wú)法容忍網(wǎng)絡(luò)引起的延遲,例如那些對(duì)實(shí)時(shí)性要求很高的應(yīng)用軟件。所以在應(yīng)用SOA架構(gòu)之前,搞清楚它的適用范圍就顯得很重要了。
除了上述幾點(diǎn)之外,筆者認(rèn)為還有兩點(diǎn)也頗值得關(guān)注:
松耦合和敏捷性要求之間的權(quán)衡難題:
服務(wù)松耦合設(shè)計(jì)其實(shí)是一把雙刃劍,在帶來(lái)應(yīng)變敏捷性的同時(shí),也給業(yè)務(wù)建模和服務(wù)劃分帶來(lái)難題。這就是為什么在SOA討論中,業(yè)務(wù)建模的爭(zhēng)論總是最多的原因。
跨系統(tǒng)集成難題:
面向服務(wù)的體系結(jié)構(gòu)設(shè)計(jì)將跨越計(jì)算機(jī)系統(tǒng),并且還可能跨越企業(yè)邊界。我們不得不考慮在使用 Internet 時(shí)安全性功能和需求,以及如何鏈接伙伴的安全域。Internet 協(xié)議并不是為可靠性(有保證的提交和提交的順序)而設(shè)計(jì)的,但是我們需要確保消息被提交并被處理一次。當(dāng)這不可能時(shí),請(qǐng)求者必須知道請(qǐng)求并沒(méi)有被處理。
其次,個(gè)性化問(wèn)題。SOA通過(guò)所謂粗粒度服務(wù)接口和分級(jí),確實(shí)提高了效率。實(shí)現(xiàn)流程化以后,也確實(shí)簡(jiǎn)化了開(kāi)發(fā)難度。如果這個(gè)流程不適合我這個(gè)企業(yè)的實(shí)際情況,我還是需要個(gè)性化開(kāi)發(fā)。國(guó)內(nèi)的中小企業(yè)占到了企業(yè)總量的70%,他們的需求很具個(gè)性化,而且比較在意價(jià)格的因素。實(shí)際上這和SOA高度集成的性質(zhì)是不相符的。
-
SOA
+關(guān)注
關(guān)注
1文章
294瀏覽量
27581
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論