RFID世界網(wǎng) >
技術(shù)文章 >
其他 >
正文
淺談:SOA實(shí)施現(xiàn)狀及面臨的挑戰(zhàn)
作者:軟件技術(shù)交流
日期:2007-09-17 16:04:39
摘要:在過(guò)去的幾年里,大大小小的許多公司實(shí)施了眾多的SOA項(xiàng)目,但結(jié)果多少讓人失望。許多公司漸漸認(rèn)識(shí)到:SOA實(shí)施起來(lái)比預(yù)料的要復(fù)雜,不但需要高度關(guān)注各個(gè)方面的企業(yè)數(shù)據(jù),還要改變企業(yè)文化,程度之深超過(guò)以往任何一股技術(shù)潮流。
在過(guò)去的幾年里,大大小小的許多公司實(shí)施了眾多的SOA項(xiàng)目,但結(jié)果多少讓人失望。許多公司漸漸認(rèn)識(shí)到:SOA實(shí)施起來(lái)比預(yù)料的要復(fù)雜,不但需要高度關(guān)注各個(gè)方面的企業(yè)數(shù)據(jù),還要改變企業(yè)文化,程度之深超過(guò)以往任何一股技術(shù)潮流。
眾所周知,面向服務(wù)的架構(gòu)不是什么新架構(gòu)。SOA的幾個(gè)先行者如通用對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA)和分布式組件對(duì)象模型(DCOM)使用松散耦合、面向服務(wù)的方法,已經(jīng)成功地為不同應(yīng)用架起了橋梁。SOA這股潮流新就新在SOA不僅僅涉及服務(wù)。日益興起的互聯(lián)網(wǎng)和XML為數(shù)據(jù)交互敞開(kāi)了大門(mén)。
軟件行業(yè)以前所未有的力度支持通用的數(shù)據(jù)交換格式(XML)和互聯(lián)網(wǎng)傳輸協(xié)議。因而出現(xiàn)了一大批得到公認(rèn)、開(kāi)放的標(biāo)準(zhǔn),它們能夠?qū)崿F(xiàn)SOA的承諾:支持業(yè)務(wù)流程的靈活配置、減少操作成本、能夠動(dòng)態(tài)發(fā)現(xiàn)服務(wù),并且在諸多應(yīng)用、部門(mén)和交易合作伙伴之間提供無(wú)縫集成。
但很遺憾,讓企業(yè)和技術(shù)人員大失所望的是,SOA的這些美好承諾并沒(méi)有得到兌現(xiàn)。這倒不是因?yàn)槌兄Z本身有什么不對(duì),而是因?yàn)槿缃駥?shí)施的SOA大多數(shù)其本質(zhì)都是試驗(yàn)性的。好消息是,我們可以從SOA試驗(yàn)項(xiàng)目中汲取寶貴經(jīng)驗(yàn),而這些經(jīng)驗(yàn)有助于SOA試驗(yàn)項(xiàng)目變成能夠充分發(fā)揮SOA潛力的企業(yè)級(jí)實(shí)施項(xiàng)目。
SOA的目標(biāo)
我們?cè)谔接懲ㄏ騍OA的道路面臨的挑戰(zhàn)之前,不妨先退后一步思考,重新分析一下啟動(dòng)SOA實(shí)施項(xiàng)目的組織通常有哪些目標(biāo)。
一、獲得流程的可見(jiàn)性和靈活性
席卷全球的SOA潮流無(wú)疑是合情合理的潮流。SOA已經(jīng)逐漸融合了分布式計(jì)算領(lǐng)域的幾個(gè)重大變化。許多組織總是大力投資技術(shù),以便領(lǐng)先競(jìng)爭(zhēng)對(duì)手,而SOA正是提供了這種突破性機(jī)會(huì)。與此同時(shí),許多組織還一直在改善業(yè)務(wù)流程,以充分發(fā)掘競(jìng)爭(zhēng)優(yōu)勢(shì)。
新出現(xiàn)的業(yè)務(wù)流程管理(BPM)有望不斷改進(jìn)流程、促進(jìn)業(yè)務(wù)部門(mén)和IT部門(mén)之間實(shí)現(xiàn)前所未有的協(xié)作。SOA是集大成者,在它的統(tǒng)領(lǐng)之下,多家組織齊心協(xié)力,獲得全面了解數(shù)據(jù)和流程的可見(jiàn)性、不斷進(jìn)行改進(jìn),并且以一種有效、透明的方式實(shí)施細(xì)粒度控制。
二、消除孤島
SOA的第二個(gè)目標(biāo)就是消除應(yīng)用、部門(mén)、交易合作伙伴當(dāng)中的孤島(silo)。這些孤島是由于多年的軟件開(kāi)發(fā)工作形成的,SOA有望消除這些孤島,讓組織獲得更清楚地了解數(shù)據(jù)及流程的可見(jiàn)性。
三、管理更準(zhǔn)確的數(shù)據(jù)
一家組織不但需要更有效地管理數(shù)據(jù),還需要管理更準(zhǔn)確的數(shù)據(jù)。確保這一點(diǎn)很重要:跨組織及交易合作伙伴生成及使用的數(shù)據(jù)是干凈的、可靠的、安全的、妥善管理的、易于獲取的。SOA的目標(biāo)之一就是,為組合式數(shù)據(jù)服務(wù)平臺(tái)提供一套統(tǒng)一的組件,這些組件用于數(shù)據(jù)存取、質(zhì)量、轉(zhuǎn)換、管理、緩存及其他許多以數(shù)據(jù)為中心的服務(wù)。
四、重復(fù)使用服務(wù)
SOA的一個(gè)相關(guān)目標(biāo)就是有效地管理及重復(fù)使用企業(yè)的服務(wù)和數(shù)據(jù)。如果由組織內(nèi)某一部門(mén)開(kāi)發(fā)的服務(wù)在易于訪(fǎng)問(wèn)的注冊(cè)中心里面采用標(biāo)準(zhǔn)格式發(fā)布并加以描述,它們就可以供該組織內(nèi)外的其他任何部門(mén)使用。如果數(shù)據(jù)和服務(wù)屬于所有者,使用者需要時(shí),又可以共享它們,就能減少與維護(hù)及管理數(shù)據(jù)和服務(wù)有關(guān)的操作成本。重復(fù)使用是SOA最主要的優(yōu)點(diǎn)之一。
五、統(tǒng)一組織目標(biāo)
SOA的另一個(gè)目標(biāo)就是協(xié)調(diào)業(yè)務(wù)部門(mén)和IT部門(mén),共同實(shí)現(xiàn)組織的目標(biāo):有助于更好地開(kāi)發(fā)靈活、可配置的業(yè)務(wù)流程。在過(guò)去,業(yè)務(wù)部門(mén)和IT部門(mén)幾乎采用獨(dú)立的方式來(lái)提高組織的經(jīng)濟(jì)效益。
而作為SOA的一個(gè)方面,BPM可以消除業(yè)務(wù)和IT之間的分歧,因?yàn)樗捎昧藰I(yè)務(wù)部門(mén)和IT部門(mén)之間通用并且都能理解的一套術(shù)語(yǔ),通過(guò)建模、模擬、執(zhí)行和監(jiān)控等手段,能夠不斷改進(jìn)流程。
SOA實(shí)施現(xiàn)狀
我們已經(jīng)知道了SOA的目標(biāo),現(xiàn)在看一下幾個(gè)迫切需要實(shí)施SOA的行業(yè)實(shí)例。幾個(gè)行業(yè)如今正面臨法規(guī)驅(qū)動(dòng)的監(jiān)管壓力,譬如金融服務(wù)業(yè)的《薩班斯-奧克斯利法案》和可擴(kuò)展商業(yè)報(bào)告語(yǔ)言(XBRL),或者是制藥業(yè)供應(yīng)鏈中的藥品“譜系”。
這些法規(guī)遵從措施要求各組織從散布于諸多IT系統(tǒng)的孤島收集數(shù)據(jù),有時(shí)還要求與第三方的Web服務(wù)進(jìn)行集成。這些數(shù)據(jù)往往必須進(jìn)行清理,轉(zhuǎn)換成標(biāo)準(zhǔn)格式,以便能夠交換數(shù)據(jù)。
另一個(gè)例子出現(xiàn)在供應(yīng)鏈上下游需要應(yīng)對(duì)無(wú)線(xiàn)射頻識(shí)別(RFID)技術(shù)的各個(gè)IT部門(mén)。RFID能夠?qū)崟r(shí)監(jiān)控供應(yīng)鏈,從而提高效率、改善運(yùn)作。不過(guò),大多數(shù)供應(yīng)鏈和IT應(yīng)用并不牢靠,因而沒(méi)法使用RFID提供的實(shí)時(shí)、細(xì)化的數(shù)據(jù)。正如我們所知,SOA大大減小了集成的復(fù)雜性,并且讓解決方案的完善能夠適應(yīng)未來(lái)需要,又不會(huì)給生產(chǎn)環(huán)境帶來(lái)很大影響。
非SOA或者半心半意的SOA方案會(huì)導(dǎo)致需要定制集成,這需要大筆費(fèi)用,還會(huì)使系統(tǒng)更加呈現(xiàn)緊密耦合的特性,從而使問(wèn)題更為嚴(yán)重。
如今,大多數(shù)IT部門(mén)只是在嘗試SOA而已。有些IT部門(mén)在小規(guī)模部署服務(wù),供內(nèi)部使用。許多部門(mén)正在遺留應(yīng)用上面構(gòu)建服務(wù)封裝器(service wrapper),以便獲得重用性、降低運(yùn)作成本。不管怎樣,SOA實(shí)施的重心似乎放在了服務(wù)層上。
概念有待澄清
SOA這一術(shù)語(yǔ)其實(shí)用詞不當(dāng)。SOA與其說(shuō)是一種架構(gòu),還不如說(shuō)是一套方法,如今,SOA的每一層都有好多種實(shí)施方法。AMR研究公司近期的一份調(diào)查表明,Web服務(wù)是許多組織構(gòu)建服務(wù)的最主要方法,但集成框架、平臺(tái)、應(yīng)用服務(wù)器和業(yè)務(wù)流程管理服務(wù)器也得到了積極使用。
構(gòu)建服務(wù)層的選擇非常廣泛,這也許是樁好事;不過(guò)對(duì)考慮實(shí)施SOA的許多組織而言,這也是導(dǎo)致概念混淆的根源之一。
許多組織為了弄明白外人難以理解的技術(shù)行話(huà),并且確認(rèn)合適的服務(wù)實(shí)施方案,已耗費(fèi)了太多的時(shí)間和精力,結(jié)果它們無(wú)力顧及行之有效的SOA的其他同樣重要的部分,于是決定僅僅構(gòu)建服務(wù)層,迫不及待地想感受投資帶來(lái)的好處。
結(jié)果,實(shí)施的這些SOA到頭來(lái)成了概念證明而已。它們并沒(méi)有經(jīng)過(guò)精心考慮,也無(wú)法解決重要的問(wèn)題,如可擴(kuò)展性、安全和治理。
成功實(shí)施企業(yè)級(jí)SOA面臨許多挑戰(zhàn)。許多組織把大部分精力用在了服務(wù)層上,但構(gòu)架的核心部分:SOA注冊(cè)中心和存儲(chǔ)庫(kù)卻設(shè)計(jì)得不夠好,無(wú)法進(jìn)行有效擴(kuò)展。
SOA原型證明了潛在的好處,但通向真正的企業(yè)級(jí)SOA這條道路顯得困難重重,大多數(shù)組織都不敢上路。企業(yè)必須認(rèn)識(shí)到:要發(fā)揮SOA的潛力,單單服務(wù)層是不夠的。組織制訂的目標(biāo)與實(shí)現(xiàn)這些目標(biāo)的SOA各部分之間要有切實(shí)的對(duì)應(yīng)關(guān)系。
局限和挑戰(zhàn)
現(xiàn)在我們不妨分析一下成功實(shí)施SOA所面臨的種種挑戰(zhàn)。
一、文化障礙
消除組織孤島的目標(biāo)不僅僅帶來(lái)了技術(shù)上的挑戰(zhàn)。許多公司沒(méi)有為這種理念帶來(lái)的深層的文化變革做好準(zhǔn)備。許多人習(xí)慣于完全控制自己使用的特定應(yīng)用軟件的各方面需求。
如今他們卻要依賴(lài)其他部門(mén)提供的服務(wù)。如果這種變革未認(rèn)真處理好,就有可能導(dǎo)致有人對(duì)交出控制權(quán)心存不滿(mǎn),因?yàn)閾碛袛?shù)據(jù)和服務(wù)的是別人,而不是自己。如果不但與組織里面的部門(mén)共享服務(wù),還與外面的交易合作伙伴共享服務(wù),這個(gè)問(wèn)題會(huì)進(jìn)一步復(fù)雜化。
二、誰(shuí)來(lái)負(fù)責(zé)
數(shù)據(jù)歸屬權(quán)和準(zhǔn)確性方面有可能會(huì)讓人混淆。設(shè)想一下:某個(gè)應(yīng)用軟件重復(fù)使用由另一個(gè)部門(mén)擁有或者開(kāi)發(fā)的一項(xiàng)服務(wù),這項(xiàng)服務(wù)可能反過(guò)來(lái)會(huì)使用屬于幾個(gè)不同部門(mén)的其他服務(wù)。如果該應(yīng)用軟件因底層服務(wù)出現(xiàn)問(wèn)題而無(wú)法正常運(yùn)行,想想一路查明問(wèn)題出在哪一方,并且通過(guò)層層服務(wù)實(shí)行補(bǔ)救辦法、最終修復(fù)應(yīng)用軟件會(huì)變得多么困難。
三、實(shí)施困難
除了文化和后勤方面的挑戰(zhàn)外,成功實(shí)施SOA還涉及許多技術(shù)上的挑戰(zhàn)。單單針對(duì)實(shí)施服務(wù)層,許多組織就在采取暫時(shí)性的措施。服務(wù)層其實(shí)只是SOA的一部分而已。即使如此有限的實(shí)施范圍,人們也發(fā)現(xiàn)實(shí)際情況要比預(yù)計(jì)的來(lái)得復(fù)雜。他們發(fā)現(xiàn),遺留系統(tǒng)的大小、數(shù)量和復(fù)雜性使得業(yè)務(wù)流程配置起來(lái)極其困難,這樣實(shí)現(xiàn)SOA的其中一個(gè)主要目標(biāo)就無(wú)從談起。
新出現(xiàn)的大批服務(wù)導(dǎo)致數(shù)據(jù)管理方面存在可擴(kuò)展性問(wèn)題。一小批服務(wù)發(fā)布到注冊(cè)中心、使用者發(fā)現(xiàn)后加以使用也許很容易。但SOA的真正優(yōu)點(diǎn)、確實(shí)也是面臨的挑戰(zhàn)在于擁有成千上萬(wàn)的服務(wù),它們必須有效地加以發(fā)布、發(fā)現(xiàn)及管理。
消除業(yè)務(wù)和IT之間的分歧、實(shí)現(xiàn)業(yè)務(wù)流程的靈活配置,這需要投資業(yè)務(wù)流程管理解決方案??蓡?wèn)題在于,正如服務(wù)層實(shí)施那樣,如今BPM實(shí)施方面不但選擇廣泛,還同樣讓人混淆。
企業(yè)級(jí)SOA的組成部分
以下概述了實(shí)現(xiàn)企業(yè)級(jí)SOA所必要的幾個(gè)組成部分。
一、服務(wù)層和注冊(cè)中心
如今實(shí)施的SOA大多數(shù)關(guān)注服務(wù)層,進(jìn)而關(guān)注發(fā)布及發(fā)現(xiàn)服務(wù)的注冊(cè)中心。由于這種架構(gòu)已落實(shí)到位,許多企業(yè)已經(jīng)獲得了大大改進(jìn)的可見(jiàn)性,遠(yuǎn)勝過(guò)Web服務(wù)描述語(yǔ)言(WSDL)和UDDI等標(biāo)準(zhǔn)出現(xiàn)之前的時(shí)候。遺憾的是,正是由于滿(mǎn)足于這種投資回報(bào),大多數(shù)實(shí)施項(xiàng)目就止步不前——也就是說(shuō),等到試圖對(duì)建立的模型進(jìn)行擴(kuò)展的時(shí)候,光有服務(wù)層和注冊(cè)中心是根本不足以獲得SOA的真正投資回報(bào)的。
二、SOA比看起來(lái)要復(fù)雜
等到通常基于服務(wù)層和注冊(cè)中心的SOA實(shí)施項(xiàng)目開(kāi)始獲得一定成效時(shí),IT部門(mén)和業(yè)務(wù)部門(mén)就會(huì)拼命添加越來(lái)越多的服務(wù)。發(fā)布及使用的Web服務(wù)數(shù)量急劇增加,這會(huì)立即讓人把重點(diǎn)放在之前沒(méi)有預(yù)料到的重要功能上。
需要的第一項(xiàng)功能就是聯(lián)合信息管理功能。服務(wù)使用者一下子要面對(duì)成百上千的服務(wù),所以需要數(shù)據(jù)和服務(wù)的聯(lián)合視圖,以便了解它們。需要的第二項(xiàng)功能是SOA數(shù)據(jù)緩存功能。要是沒(méi)有某種緩存功能,就無(wú)法快速、可靠地訪(fǎng)問(wèn)來(lái)自SOA實(shí)施系統(tǒng)的海量數(shù)據(jù)。
人們清醒地認(rèn)識(shí)到:數(shù)據(jù)和服務(wù)需要前所未有的治理水平,才能確保有效性,這就需要第三項(xiàng)功能:SOA治理。SOA治理是指定義及執(zhí)行組織策略和標(biāo)準(zhǔn)的一種方法。這些策略針對(duì)諸多業(yè)務(wù)需求:管理責(zé)任和依賴(lài)關(guān)系、確保業(yè)務(wù)運(yùn)作的連續(xù)性以及降低成本。因?yàn)檫@些策略定義了控制企業(yè)內(nèi)部數(shù)量激增的服務(wù)的機(jī)制,集成了不斷完善的標(biāo)準(zhǔn),并且促進(jìn)互操作性,IT部門(mén)也能從中得益。
只有組織采用有條不紊、精心制訂的方法來(lái)滿(mǎn)足這些需求,才能真正獲得SOA的投資回報(bào)。
三、SOA存儲(chǔ)庫(kù)
SOA存儲(chǔ)庫(kù)能夠提供的一套服務(wù)要比注冊(cè)中心豐富得多,因?yàn)樗坏梢栽L(fǎng)問(wèn)圍繞服務(wù)的元數(shù)據(jù),還可以訪(fǎng)問(wèn)實(shí)際的SOA數(shù)據(jù)。因而,與注冊(cè)中心基于元數(shù)據(jù)的簡(jiǎn)單服務(wù)相比,元數(shù)據(jù)以及存儲(chǔ)庫(kù)提供的基于數(shù)據(jù)的發(fā)現(xiàn)服務(wù)功能要強(qiáng)得多。存儲(chǔ)庫(kù)還提供了把策略管理與轉(zhuǎn)換、聯(lián)合、抽象及緩存SOA工件(SOA artifact)等功能集成在一起的優(yōu)點(diǎn)。業(yè)務(wù)流程和組合式數(shù)據(jù)服務(wù)可以部署在SOA存儲(chǔ)庫(kù)上面并加以管理,以確保它們是集中的、透明的,因而是易于治理的。
由于所有上述原因,SOA存儲(chǔ)庫(kù)是精心設(shè)計(jì)的SOA的一個(gè)核心部分。
四、工作流和業(yè)務(wù)流程管理
我們前面提到了SOA的一個(gè)重要目標(biāo),獲得業(yè)務(wù)流程的可見(jiàn)性和靈活性。服務(wù)層最能滿(mǎn)足這個(gè)目標(biāo),可使用工作流或者業(yè)務(wù)流程管理系統(tǒng)。服務(wù)層已成為SOA當(dāng)中發(fā)展速度最快的一部分。這個(gè)市場(chǎng)的廠(chǎng)商種類(lèi)繁多,既有專(zhuān)業(yè)的BPM和工作流公司,也有企業(yè)應(yīng)用集成(EAI)和應(yīng)用服務(wù)器公司。
組織內(nèi)部及組織之間流動(dòng)的數(shù)據(jù)大部分是XML數(shù)據(jù)。只有基于最適合管理這種數(shù)據(jù)的基礎(chǔ)設(shè)施來(lái)進(jìn)行實(shí)施,才能充分發(fā)揮SOA的潛力。
經(jīng)過(guò)周密計(jì)劃的工作流或者BPM產(chǎn)品應(yīng)當(dāng)對(duì)業(yè)務(wù)用戶(hù)和IT部門(mén)來(lái)說(shuō)都很便利。它應(yīng)當(dāng)提供無(wú)需編寫(xiě)代碼的流程建模、模擬、執(zhí)行、監(jiān)管和調(diào)試等功能。
理想情況下,這種產(chǎn)品應(yīng)當(dāng)與SOA存儲(chǔ)庫(kù)緊密地集成在一起,那樣工作流和業(yè)務(wù)流程就可以作為元數(shù)據(jù)來(lái)部署,以便集中治理。它還應(yīng)當(dāng)支持可重復(fù)使用的組合式數(shù)據(jù)服務(wù)的開(kāi)發(fā)、部署及使用。
正確實(shí)施SOA
對(duì)精心設(shè)計(jì)的一種面向服務(wù)的架構(gòu)而言,功能齊全的SOA存儲(chǔ)庫(kù)是核心部分。一個(gè)良好的SOA存儲(chǔ)庫(kù)能夠以原生方式嵌入數(shù)據(jù)管理和治理服務(wù)。它為一部全面的詞典提供了語(yǔ)義調(diào)和功能。它可以把數(shù)據(jù)和服務(wù)組織成有意義的術(shù)語(yǔ),并且提供生命周期管理和版本控制服務(wù)。它還提供了一整套數(shù)據(jù)服務(wù),可以執(zhí)行質(zhì)量管理、驗(yàn)證、轉(zhuǎn)換、聯(lián)合、治理和緩存等操作。
如果把這些服務(wù)部署到SOA存儲(chǔ)庫(kù)上,與業(yè)務(wù)流程和工作流相關(guān)的工件、定制的組合式數(shù)據(jù)服務(wù)以及第三方服務(wù)也可以自動(dòng)使用它們。
在附圖中處于顯要位置的另一個(gè)部分是BPM/工作流平臺(tái)。應(yīng)用層能夠發(fā)現(xiàn)及使用直接來(lái)自服務(wù)注冊(cè)中心/存儲(chǔ)庫(kù)層面的服務(wù);也能通過(guò)工作流業(yè)務(wù)流程管理平臺(tái),獲得更大的靈活性。盡管BPM/工作流平臺(tái)為諸多應(yīng)用提供了一套服務(wù),但外部的服務(wù)層可以同時(shí)對(duì)服務(wù)進(jìn)行注冊(cè),以便客戶(hù)發(fā)現(xiàn)及使用。
我們已提到,存儲(chǔ)庫(kù)要處理海量的數(shù)據(jù),因此,它在設(shè)計(jì)時(shí)應(yīng)當(dāng)注重性能和靈活性。如今實(shí)施的大多數(shù)存儲(chǔ)庫(kù)存在這個(gè)問(wèn)題:它們基于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),而這種關(guān)系數(shù)據(jù)庫(kù)根本不夠靈活,連中等規(guī)模的SOA實(shí)施系統(tǒng)帶來(lái)的查詢(xún)?nèi)蝿?wù)都無(wú)法處理。所有SOA數(shù)據(jù)——工件和消息——都采用XML格式,并且使用層次表示法,這不是非常適合于結(jié)構(gòu)僵硬的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。
隨著SOA實(shí)施系統(tǒng)不斷擴(kuò)展,納入更多的端點(diǎn)/使用者、編制和用戶(hù),這個(gè)問(wèn)題尤為嚴(yán)重。缺少功能強(qiáng)大的存儲(chǔ)庫(kù)還會(huì)導(dǎo)致治理和管理工作的復(fù)雜化。譬如說(shuō),如果想改變注冊(cè)中心里面的一系列WSDL,使用XQuery的強(qiáng)大查詢(xún)功能來(lái)實(shí)現(xiàn)就顯得比較簡(jiǎn)單。因?yàn)閄Query可根據(jù)查詢(xún)標(biāo)準(zhǔn)來(lái)選擇合理的工件,并進(jìn)行更新。因?yàn)镾OA中的大多數(shù)工件是XML格式,所以需要以原生方式處理所有SOA XML數(shù)據(jù)的功能。因而,真正響應(yīng)及時(shí)的SOA存儲(chǔ)庫(kù)必須實(shí)施在原生XML數(shù)據(jù)庫(kù)(XDMS)上,而XQuery用于數(shù)據(jù)管理。
XQuery是一種非常靈活、功能強(qiáng)大的語(yǔ)言,用于XML數(shù)據(jù)檢索及管理。如果結(jié)合原生XDMS(XML數(shù)據(jù)庫(kù)管理系統(tǒng)),那么除了傳統(tǒng)方法外,又多了一種處理巧妙、高性能的選擇。傳統(tǒng)方法針對(duì)RDBMS SOA工件存儲(chǔ)區(qū),使用傳統(tǒng)的解析方法,對(duì)XML進(jìn)行中間層轉(zhuǎn)換,這種轉(zhuǎn)換既復(fù)雜,又緩慢。
XDMS可以加快SOA的實(shí)施,因?yàn)樗箶?shù)據(jù)能夠作為原生XML加以存儲(chǔ)及處理。當(dāng)然,不是所有的原生XML數(shù)據(jù)庫(kù)其構(gòu)建方式都是一樣的,它們提供的功能也不是都一樣的。良好的XDMS應(yīng)當(dāng)能夠處理各種XML數(shù)據(jù),不必事先知道XML模式(XML Schema)的結(jié)構(gòu)。
事實(shí)證明,如果處理的XML文檔來(lái)自數(shù)據(jù)結(jié)構(gòu)不一的聯(lián)合系統(tǒng),那么這種功能就有很大優(yōu)勢(shì)。然后就可以在這樣一個(gè)平臺(tái)上構(gòu)建功能強(qiáng)大的組合式數(shù)據(jù)服務(wù)。
用正確的方法使用SOA能夠通過(guò)按需獲得的信息、服務(wù)重復(fù)使用、流程優(yōu)化、集成創(chuàng)新的第三方Web服務(wù),獲得業(yè)務(wù)效率、靈敏性及創(chuàng)新。讓SOA注冊(cè)中心和存儲(chǔ)庫(kù)成為SOA的基石,這可以確保企業(yè)的SOA基礎(chǔ)設(shè)施能夠得到最佳的管理和治理。
SOA能夠?qū)崿F(xiàn)一系列廣泛的用例(use case),可以跨不同的地理位置和交易合作伙伴涵蓋各種系統(tǒng)?;氐轿覀冎疤接懙钠渲幸粋€(gè)例子,許多制藥公司使用全國(guó)藥品代碼(NDC)作為供應(yīng)鏈和監(jiān)管流程的一部分。如果新藥添加、召回或者處方藥的專(zhuān)利保護(hù)到期,這個(gè)NDC數(shù)據(jù)庫(kù)就會(huì)不斷更新。
實(shí)施了SOA的企業(yè)可以訂購(gòu)應(yīng)用廣泛的NDC數(shù)據(jù)庫(kù)Web服務(wù),這樣就可以實(shí)時(shí)更新這些數(shù)據(jù),因而新產(chǎn)品推出或者被召回產(chǎn)品從制藥供應(yīng)鏈撤下時(shí),就可以有效地使用數(shù)據(jù),實(shí)現(xiàn)靈活應(yīng)對(duì)。
同樣,由于監(jiān)管部門(mén)的各種報(bào)告需求在不斷變化,必須從不同的IT系統(tǒng)搜集數(shù)據(jù)?;赟OA的方法可以輕松解決這個(gè)問(wèn)題:幾個(gè)版本的類(lèi)似Web服務(wù)可以在SOA存儲(chǔ)庫(kù)里面得到維護(hù),并且可根據(jù)數(shù)據(jù)參數(shù)進(jìn)行動(dòng)態(tài)選擇。
眾所周知,面向服務(wù)的架構(gòu)不是什么新架構(gòu)。SOA的幾個(gè)先行者如通用對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA)和分布式組件對(duì)象模型(DCOM)使用松散耦合、面向服務(wù)的方法,已經(jīng)成功地為不同應(yīng)用架起了橋梁。SOA這股潮流新就新在SOA不僅僅涉及服務(wù)。日益興起的互聯(lián)網(wǎng)和XML為數(shù)據(jù)交互敞開(kāi)了大門(mén)。
軟件行業(yè)以前所未有的力度支持通用的數(shù)據(jù)交換格式(XML)和互聯(lián)網(wǎng)傳輸協(xié)議。因而出現(xiàn)了一大批得到公認(rèn)、開(kāi)放的標(biāo)準(zhǔn),它們能夠?qū)崿F(xiàn)SOA的承諾:支持業(yè)務(wù)流程的靈活配置、減少操作成本、能夠動(dòng)態(tài)發(fā)現(xiàn)服務(wù),并且在諸多應(yīng)用、部門(mén)和交易合作伙伴之間提供無(wú)縫集成。
但很遺憾,讓企業(yè)和技術(shù)人員大失所望的是,SOA的這些美好承諾并沒(méi)有得到兌現(xiàn)。這倒不是因?yàn)槌兄Z本身有什么不對(duì),而是因?yàn)槿缃駥?shí)施的SOA大多數(shù)其本質(zhì)都是試驗(yàn)性的。好消息是,我們可以從SOA試驗(yàn)項(xiàng)目中汲取寶貴經(jīng)驗(yàn),而這些經(jīng)驗(yàn)有助于SOA試驗(yàn)項(xiàng)目變成能夠充分發(fā)揮SOA潛力的企業(yè)級(jí)實(shí)施項(xiàng)目。
SOA的目標(biāo)
我們?cè)谔接懲ㄏ騍OA的道路面臨的挑戰(zhàn)之前,不妨先退后一步思考,重新分析一下啟動(dòng)SOA實(shí)施項(xiàng)目的組織通常有哪些目標(biāo)。
一、獲得流程的可見(jiàn)性和靈活性
席卷全球的SOA潮流無(wú)疑是合情合理的潮流。SOA已經(jīng)逐漸融合了分布式計(jì)算領(lǐng)域的幾個(gè)重大變化。許多組織總是大力投資技術(shù),以便領(lǐng)先競(jìng)爭(zhēng)對(duì)手,而SOA正是提供了這種突破性機(jī)會(huì)。與此同時(shí),許多組織還一直在改善業(yè)務(wù)流程,以充分發(fā)掘競(jìng)爭(zhēng)優(yōu)勢(shì)。
新出現(xiàn)的業(yè)務(wù)流程管理(BPM)有望不斷改進(jìn)流程、促進(jìn)業(yè)務(wù)部門(mén)和IT部門(mén)之間實(shí)現(xiàn)前所未有的協(xié)作。SOA是集大成者,在它的統(tǒng)領(lǐng)之下,多家組織齊心協(xié)力,獲得全面了解數(shù)據(jù)和流程的可見(jiàn)性、不斷進(jìn)行改進(jìn),并且以一種有效、透明的方式實(shí)施細(xì)粒度控制。
二、消除孤島
SOA的第二個(gè)目標(biāo)就是消除應(yīng)用、部門(mén)、交易合作伙伴當(dāng)中的孤島(silo)。這些孤島是由于多年的軟件開(kāi)發(fā)工作形成的,SOA有望消除這些孤島,讓組織獲得更清楚地了解數(shù)據(jù)及流程的可見(jiàn)性。
三、管理更準(zhǔn)確的數(shù)據(jù)
一家組織不但需要更有效地管理數(shù)據(jù),還需要管理更準(zhǔn)確的數(shù)據(jù)。確保這一點(diǎn)很重要:跨組織及交易合作伙伴生成及使用的數(shù)據(jù)是干凈的、可靠的、安全的、妥善管理的、易于獲取的。SOA的目標(biāo)之一就是,為組合式數(shù)據(jù)服務(wù)平臺(tái)提供一套統(tǒng)一的組件,這些組件用于數(shù)據(jù)存取、質(zhì)量、轉(zhuǎn)換、管理、緩存及其他許多以數(shù)據(jù)為中心的服務(wù)。
四、重復(fù)使用服務(wù)
SOA的一個(gè)相關(guān)目標(biāo)就是有效地管理及重復(fù)使用企業(yè)的服務(wù)和數(shù)據(jù)。如果由組織內(nèi)某一部門(mén)開(kāi)發(fā)的服務(wù)在易于訪(fǎng)問(wèn)的注冊(cè)中心里面采用標(biāo)準(zhǔn)格式發(fā)布并加以描述,它們就可以供該組織內(nèi)外的其他任何部門(mén)使用。如果數(shù)據(jù)和服務(wù)屬于所有者,使用者需要時(shí),又可以共享它們,就能減少與維護(hù)及管理數(shù)據(jù)和服務(wù)有關(guān)的操作成本。重復(fù)使用是SOA最主要的優(yōu)點(diǎn)之一。
五、統(tǒng)一組織目標(biāo)
SOA的另一個(gè)目標(biāo)就是協(xié)調(diào)業(yè)務(wù)部門(mén)和IT部門(mén),共同實(shí)現(xiàn)組織的目標(biāo):有助于更好地開(kāi)發(fā)靈活、可配置的業(yè)務(wù)流程。在過(guò)去,業(yè)務(wù)部門(mén)和IT部門(mén)幾乎采用獨(dú)立的方式來(lái)提高組織的經(jīng)濟(jì)效益。
而作為SOA的一個(gè)方面,BPM可以消除業(yè)務(wù)和IT之間的分歧,因?yàn)樗捎昧藰I(yè)務(wù)部門(mén)和IT部門(mén)之間通用并且都能理解的一套術(shù)語(yǔ),通過(guò)建模、模擬、執(zhí)行和監(jiān)控等手段,能夠不斷改進(jìn)流程。
SOA實(shí)施現(xiàn)狀
我們已經(jīng)知道了SOA的目標(biāo),現(xiàn)在看一下幾個(gè)迫切需要實(shí)施SOA的行業(yè)實(shí)例。幾個(gè)行業(yè)如今正面臨法規(guī)驅(qū)動(dòng)的監(jiān)管壓力,譬如金融服務(wù)業(yè)的《薩班斯-奧克斯利法案》和可擴(kuò)展商業(yè)報(bào)告語(yǔ)言(XBRL),或者是制藥業(yè)供應(yīng)鏈中的藥品“譜系”。
這些法規(guī)遵從措施要求各組織從散布于諸多IT系統(tǒng)的孤島收集數(shù)據(jù),有時(shí)還要求與第三方的Web服務(wù)進(jìn)行集成。這些數(shù)據(jù)往往必須進(jìn)行清理,轉(zhuǎn)換成標(biāo)準(zhǔn)格式,以便能夠交換數(shù)據(jù)。
另一個(gè)例子出現(xiàn)在供應(yīng)鏈上下游需要應(yīng)對(duì)無(wú)線(xiàn)射頻識(shí)別(RFID)技術(shù)的各個(gè)IT部門(mén)。RFID能夠?qū)崟r(shí)監(jiān)控供應(yīng)鏈,從而提高效率、改善運(yùn)作。不過(guò),大多數(shù)供應(yīng)鏈和IT應(yīng)用并不牢靠,因而沒(méi)法使用RFID提供的實(shí)時(shí)、細(xì)化的數(shù)據(jù)。正如我們所知,SOA大大減小了集成的復(fù)雜性,并且讓解決方案的完善能夠適應(yīng)未來(lái)需要,又不會(huì)給生產(chǎn)環(huán)境帶來(lái)很大影響。
非SOA或者半心半意的SOA方案會(huì)導(dǎo)致需要定制集成,這需要大筆費(fèi)用,還會(huì)使系統(tǒng)更加呈現(xiàn)緊密耦合的特性,從而使問(wèn)題更為嚴(yán)重。
如今,大多數(shù)IT部門(mén)只是在嘗試SOA而已。有些IT部門(mén)在小規(guī)模部署服務(wù),供內(nèi)部使用。許多部門(mén)正在遺留應(yīng)用上面構(gòu)建服務(wù)封裝器(service wrapper),以便獲得重用性、降低運(yùn)作成本。不管怎樣,SOA實(shí)施的重心似乎放在了服務(wù)層上。
概念有待澄清
SOA這一術(shù)語(yǔ)其實(shí)用詞不當(dāng)。SOA與其說(shuō)是一種架構(gòu),還不如說(shuō)是一套方法,如今,SOA的每一層都有好多種實(shí)施方法。AMR研究公司近期的一份調(diào)查表明,Web服務(wù)是許多組織構(gòu)建服務(wù)的最主要方法,但集成框架、平臺(tái)、應(yīng)用服務(wù)器和業(yè)務(wù)流程管理服務(wù)器也得到了積極使用。
構(gòu)建服務(wù)層的選擇非常廣泛,這也許是樁好事;不過(guò)對(duì)考慮實(shí)施SOA的許多組織而言,這也是導(dǎo)致概念混淆的根源之一。
許多組織為了弄明白外人難以理解的技術(shù)行話(huà),并且確認(rèn)合適的服務(wù)實(shí)施方案,已耗費(fèi)了太多的時(shí)間和精力,結(jié)果它們無(wú)力顧及行之有效的SOA的其他同樣重要的部分,于是決定僅僅構(gòu)建服務(wù)層,迫不及待地想感受投資帶來(lái)的好處。
結(jié)果,實(shí)施的這些SOA到頭來(lái)成了概念證明而已。它們并沒(méi)有經(jīng)過(guò)精心考慮,也無(wú)法解決重要的問(wèn)題,如可擴(kuò)展性、安全和治理。
成功實(shí)施企業(yè)級(jí)SOA面臨許多挑戰(zhàn)。許多組織把大部分精力用在了服務(wù)層上,但構(gòu)架的核心部分:SOA注冊(cè)中心和存儲(chǔ)庫(kù)卻設(shè)計(jì)得不夠好,無(wú)法進(jìn)行有效擴(kuò)展。
SOA原型證明了潛在的好處,但通向真正的企業(yè)級(jí)SOA這條道路顯得困難重重,大多數(shù)組織都不敢上路。企業(yè)必須認(rèn)識(shí)到:要發(fā)揮SOA的潛力,單單服務(wù)層是不夠的。組織制訂的目標(biāo)與實(shí)現(xiàn)這些目標(biāo)的SOA各部分之間要有切實(shí)的對(duì)應(yīng)關(guān)系。
局限和挑戰(zhàn)
現(xiàn)在我們不妨分析一下成功實(shí)施SOA所面臨的種種挑戰(zhàn)。
一、文化障礙
消除組織孤島的目標(biāo)不僅僅帶來(lái)了技術(shù)上的挑戰(zhàn)。許多公司沒(méi)有為這種理念帶來(lái)的深層的文化變革做好準(zhǔn)備。許多人習(xí)慣于完全控制自己使用的特定應(yīng)用軟件的各方面需求。
如今他們卻要依賴(lài)其他部門(mén)提供的服務(wù)。如果這種變革未認(rèn)真處理好,就有可能導(dǎo)致有人對(duì)交出控制權(quán)心存不滿(mǎn),因?yàn)閾碛袛?shù)據(jù)和服務(wù)的是別人,而不是自己。如果不但與組織里面的部門(mén)共享服務(wù),還與外面的交易合作伙伴共享服務(wù),這個(gè)問(wèn)題會(huì)進(jìn)一步復(fù)雜化。
二、誰(shuí)來(lái)負(fù)責(zé)
數(shù)據(jù)歸屬權(quán)和準(zhǔn)確性方面有可能會(huì)讓人混淆。設(shè)想一下:某個(gè)應(yīng)用軟件重復(fù)使用由另一個(gè)部門(mén)擁有或者開(kāi)發(fā)的一項(xiàng)服務(wù),這項(xiàng)服務(wù)可能反過(guò)來(lái)會(huì)使用屬于幾個(gè)不同部門(mén)的其他服務(wù)。如果該應(yīng)用軟件因底層服務(wù)出現(xiàn)問(wèn)題而無(wú)法正常運(yùn)行,想想一路查明問(wèn)題出在哪一方,并且通過(guò)層層服務(wù)實(shí)行補(bǔ)救辦法、最終修復(fù)應(yīng)用軟件會(huì)變得多么困難。
三、實(shí)施困難
除了文化和后勤方面的挑戰(zhàn)外,成功實(shí)施SOA還涉及許多技術(shù)上的挑戰(zhàn)。單單針對(duì)實(shí)施服務(wù)層,許多組織就在采取暫時(shí)性的措施。服務(wù)層其實(shí)只是SOA的一部分而已。即使如此有限的實(shí)施范圍,人們也發(fā)現(xiàn)實(shí)際情況要比預(yù)計(jì)的來(lái)得復(fù)雜。他們發(fā)現(xiàn),遺留系統(tǒng)的大小、數(shù)量和復(fù)雜性使得業(yè)務(wù)流程配置起來(lái)極其困難,這樣實(shí)現(xiàn)SOA的其中一個(gè)主要目標(biāo)就無(wú)從談起。
新出現(xiàn)的大批服務(wù)導(dǎo)致數(shù)據(jù)管理方面存在可擴(kuò)展性問(wèn)題。一小批服務(wù)發(fā)布到注冊(cè)中心、使用者發(fā)現(xiàn)后加以使用也許很容易。但SOA的真正優(yōu)點(diǎn)、確實(shí)也是面臨的挑戰(zhàn)在于擁有成千上萬(wàn)的服務(wù),它們必須有效地加以發(fā)布、發(fā)現(xiàn)及管理。
消除業(yè)務(wù)和IT之間的分歧、實(shí)現(xiàn)業(yè)務(wù)流程的靈活配置,這需要投資業(yè)務(wù)流程管理解決方案??蓡?wèn)題在于,正如服務(wù)層實(shí)施那樣,如今BPM實(shí)施方面不但選擇廣泛,還同樣讓人混淆。
企業(yè)級(jí)SOA的組成部分
以下概述了實(shí)現(xiàn)企業(yè)級(jí)SOA所必要的幾個(gè)組成部分。
一、服務(wù)層和注冊(cè)中心
如今實(shí)施的SOA大多數(shù)關(guān)注服務(wù)層,進(jìn)而關(guān)注發(fā)布及發(fā)現(xiàn)服務(wù)的注冊(cè)中心。由于這種架構(gòu)已落實(shí)到位,許多企業(yè)已經(jīng)獲得了大大改進(jìn)的可見(jiàn)性,遠(yuǎn)勝過(guò)Web服務(wù)描述語(yǔ)言(WSDL)和UDDI等標(biāo)準(zhǔn)出現(xiàn)之前的時(shí)候。遺憾的是,正是由于滿(mǎn)足于這種投資回報(bào),大多數(shù)實(shí)施項(xiàng)目就止步不前——也就是說(shuō),等到試圖對(duì)建立的模型進(jìn)行擴(kuò)展的時(shí)候,光有服務(wù)層和注冊(cè)中心是根本不足以獲得SOA的真正投資回報(bào)的。
二、SOA比看起來(lái)要復(fù)雜
等到通常基于服務(wù)層和注冊(cè)中心的SOA實(shí)施項(xiàng)目開(kāi)始獲得一定成效時(shí),IT部門(mén)和業(yè)務(wù)部門(mén)就會(huì)拼命添加越來(lái)越多的服務(wù)。發(fā)布及使用的Web服務(wù)數(shù)量急劇增加,這會(huì)立即讓人把重點(diǎn)放在之前沒(méi)有預(yù)料到的重要功能上。
需要的第一項(xiàng)功能就是聯(lián)合信息管理功能。服務(wù)使用者一下子要面對(duì)成百上千的服務(wù),所以需要數(shù)據(jù)和服務(wù)的聯(lián)合視圖,以便了解它們。需要的第二項(xiàng)功能是SOA數(shù)據(jù)緩存功能。要是沒(méi)有某種緩存功能,就無(wú)法快速、可靠地訪(fǎng)問(wèn)來(lái)自SOA實(shí)施系統(tǒng)的海量數(shù)據(jù)。
人們清醒地認(rèn)識(shí)到:數(shù)據(jù)和服務(wù)需要前所未有的治理水平,才能確保有效性,這就需要第三項(xiàng)功能:SOA治理。SOA治理是指定義及執(zhí)行組織策略和標(biāo)準(zhǔn)的一種方法。這些策略針對(duì)諸多業(yè)務(wù)需求:管理責(zé)任和依賴(lài)關(guān)系、確保業(yè)務(wù)運(yùn)作的連續(xù)性以及降低成本。因?yàn)檫@些策略定義了控制企業(yè)內(nèi)部數(shù)量激增的服務(wù)的機(jī)制,集成了不斷完善的標(biāo)準(zhǔn),并且促進(jìn)互操作性,IT部門(mén)也能從中得益。
只有組織采用有條不紊、精心制訂的方法來(lái)滿(mǎn)足這些需求,才能真正獲得SOA的投資回報(bào)。
三、SOA存儲(chǔ)庫(kù)
SOA存儲(chǔ)庫(kù)能夠提供的一套服務(wù)要比注冊(cè)中心豐富得多,因?yàn)樗坏梢栽L(fǎng)問(wèn)圍繞服務(wù)的元數(shù)據(jù),還可以訪(fǎng)問(wèn)實(shí)際的SOA數(shù)據(jù)。因而,與注冊(cè)中心基于元數(shù)據(jù)的簡(jiǎn)單服務(wù)相比,元數(shù)據(jù)以及存儲(chǔ)庫(kù)提供的基于數(shù)據(jù)的發(fā)現(xiàn)服務(wù)功能要強(qiáng)得多。存儲(chǔ)庫(kù)還提供了把策略管理與轉(zhuǎn)換、聯(lián)合、抽象及緩存SOA工件(SOA artifact)等功能集成在一起的優(yōu)點(diǎn)。業(yè)務(wù)流程和組合式數(shù)據(jù)服務(wù)可以部署在SOA存儲(chǔ)庫(kù)上面并加以管理,以確保它們是集中的、透明的,因而是易于治理的。
由于所有上述原因,SOA存儲(chǔ)庫(kù)是精心設(shè)計(jì)的SOA的一個(gè)核心部分。
四、工作流和業(yè)務(wù)流程管理
我們前面提到了SOA的一個(gè)重要目標(biāo),獲得業(yè)務(wù)流程的可見(jiàn)性和靈活性。服務(wù)層最能滿(mǎn)足這個(gè)目標(biāo),可使用工作流或者業(yè)務(wù)流程管理系統(tǒng)。服務(wù)層已成為SOA當(dāng)中發(fā)展速度最快的一部分。這個(gè)市場(chǎng)的廠(chǎng)商種類(lèi)繁多,既有專(zhuān)業(yè)的BPM和工作流公司,也有企業(yè)應(yīng)用集成(EAI)和應(yīng)用服務(wù)器公司。
組織內(nèi)部及組織之間流動(dòng)的數(shù)據(jù)大部分是XML數(shù)據(jù)。只有基于最適合管理這種數(shù)據(jù)的基礎(chǔ)設(shè)施來(lái)進(jìn)行實(shí)施,才能充分發(fā)揮SOA的潛力。
經(jīng)過(guò)周密計(jì)劃的工作流或者BPM產(chǎn)品應(yīng)當(dāng)對(duì)業(yè)務(wù)用戶(hù)和IT部門(mén)來(lái)說(shuō)都很便利。它應(yīng)當(dāng)提供無(wú)需編寫(xiě)代碼的流程建模、模擬、執(zhí)行、監(jiān)管和調(diào)試等功能。
理想情況下,這種產(chǎn)品應(yīng)當(dāng)與SOA存儲(chǔ)庫(kù)緊密地集成在一起,那樣工作流和業(yè)務(wù)流程就可以作為元數(shù)據(jù)來(lái)部署,以便集中治理。它還應(yīng)當(dāng)支持可重復(fù)使用的組合式數(shù)據(jù)服務(wù)的開(kāi)發(fā)、部署及使用。
正確實(shí)施SOA
對(duì)精心設(shè)計(jì)的一種面向服務(wù)的架構(gòu)而言,功能齊全的SOA存儲(chǔ)庫(kù)是核心部分。一個(gè)良好的SOA存儲(chǔ)庫(kù)能夠以原生方式嵌入數(shù)據(jù)管理和治理服務(wù)。它為一部全面的詞典提供了語(yǔ)義調(diào)和功能。它可以把數(shù)據(jù)和服務(wù)組織成有意義的術(shù)語(yǔ),并且提供生命周期管理和版本控制服務(wù)。它還提供了一整套數(shù)據(jù)服務(wù),可以執(zhí)行質(zhì)量管理、驗(yàn)證、轉(zhuǎn)換、聯(lián)合、治理和緩存等操作。
如果把這些服務(wù)部署到SOA存儲(chǔ)庫(kù)上,與業(yè)務(wù)流程和工作流相關(guān)的工件、定制的組合式數(shù)據(jù)服務(wù)以及第三方服務(wù)也可以自動(dòng)使用它們。
在附圖中處于顯要位置的另一個(gè)部分是BPM/工作流平臺(tái)。應(yīng)用層能夠發(fā)現(xiàn)及使用直接來(lái)自服務(wù)注冊(cè)中心/存儲(chǔ)庫(kù)層面的服務(wù);也能通過(guò)工作流業(yè)務(wù)流程管理平臺(tái),獲得更大的靈活性。盡管BPM/工作流平臺(tái)為諸多應(yīng)用提供了一套服務(wù),但外部的服務(wù)層可以同時(shí)對(duì)服務(wù)進(jìn)行注冊(cè),以便客戶(hù)發(fā)現(xiàn)及使用。
我們已提到,存儲(chǔ)庫(kù)要處理海量的數(shù)據(jù),因此,它在設(shè)計(jì)時(shí)應(yīng)當(dāng)注重性能和靈活性。如今實(shí)施的大多數(shù)存儲(chǔ)庫(kù)存在這個(gè)問(wèn)題:它們基于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),而這種關(guān)系數(shù)據(jù)庫(kù)根本不夠靈活,連中等規(guī)模的SOA實(shí)施系統(tǒng)帶來(lái)的查詢(xún)?nèi)蝿?wù)都無(wú)法處理。所有SOA數(shù)據(jù)——工件和消息——都采用XML格式,并且使用層次表示法,這不是非常適合于結(jié)構(gòu)僵硬的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。
隨著SOA實(shí)施系統(tǒng)不斷擴(kuò)展,納入更多的端點(diǎn)/使用者、編制和用戶(hù),這個(gè)問(wèn)題尤為嚴(yán)重。缺少功能強(qiáng)大的存儲(chǔ)庫(kù)還會(huì)導(dǎo)致治理和管理工作的復(fù)雜化。譬如說(shuō),如果想改變注冊(cè)中心里面的一系列WSDL,使用XQuery的強(qiáng)大查詢(xún)功能來(lái)實(shí)現(xiàn)就顯得比較簡(jiǎn)單。因?yàn)閄Query可根據(jù)查詢(xún)標(biāo)準(zhǔn)來(lái)選擇合理的工件,并進(jìn)行更新。因?yàn)镾OA中的大多數(shù)工件是XML格式,所以需要以原生方式處理所有SOA XML數(shù)據(jù)的功能。因而,真正響應(yīng)及時(shí)的SOA存儲(chǔ)庫(kù)必須實(shí)施在原生XML數(shù)據(jù)庫(kù)(XDMS)上,而XQuery用于數(shù)據(jù)管理。
XQuery是一種非常靈活、功能強(qiáng)大的語(yǔ)言,用于XML數(shù)據(jù)檢索及管理。如果結(jié)合原生XDMS(XML數(shù)據(jù)庫(kù)管理系統(tǒng)),那么除了傳統(tǒng)方法外,又多了一種處理巧妙、高性能的選擇。傳統(tǒng)方法針對(duì)RDBMS SOA工件存儲(chǔ)區(qū),使用傳統(tǒng)的解析方法,對(duì)XML進(jìn)行中間層轉(zhuǎn)換,這種轉(zhuǎn)換既復(fù)雜,又緩慢。
XDMS可以加快SOA的實(shí)施,因?yàn)樗箶?shù)據(jù)能夠作為原生XML加以存儲(chǔ)及處理。當(dāng)然,不是所有的原生XML數(shù)據(jù)庫(kù)其構(gòu)建方式都是一樣的,它們提供的功能也不是都一樣的。良好的XDMS應(yīng)當(dāng)能夠處理各種XML數(shù)據(jù),不必事先知道XML模式(XML Schema)的結(jié)構(gòu)。
事實(shí)證明,如果處理的XML文檔來(lái)自數(shù)據(jù)結(jié)構(gòu)不一的聯(lián)合系統(tǒng),那么這種功能就有很大優(yōu)勢(shì)。然后就可以在這樣一個(gè)平臺(tái)上構(gòu)建功能強(qiáng)大的組合式數(shù)據(jù)服務(wù)。
用正確的方法使用SOA能夠通過(guò)按需獲得的信息、服務(wù)重復(fù)使用、流程優(yōu)化、集成創(chuàng)新的第三方Web服務(wù),獲得業(yè)務(wù)效率、靈敏性及創(chuàng)新。讓SOA注冊(cè)中心和存儲(chǔ)庫(kù)成為SOA的基石,這可以確保企業(yè)的SOA基礎(chǔ)設(shè)施能夠得到最佳的管理和治理。
SOA能夠?qū)崿F(xiàn)一系列廣泛的用例(use case),可以跨不同的地理位置和交易合作伙伴涵蓋各種系統(tǒng)?;氐轿覀冎疤接懙钠渲幸粋€(gè)例子,許多制藥公司使用全國(guó)藥品代碼(NDC)作為供應(yīng)鏈和監(jiān)管流程的一部分。如果新藥添加、召回或者處方藥的專(zhuān)利保護(hù)到期,這個(gè)NDC數(shù)據(jù)庫(kù)就會(huì)不斷更新。
實(shí)施了SOA的企業(yè)可以訂購(gòu)應(yīng)用廣泛的NDC數(shù)據(jù)庫(kù)Web服務(wù),這樣就可以實(shí)時(shí)更新這些數(shù)據(jù),因而新產(chǎn)品推出或者被召回產(chǎn)品從制藥供應(yīng)鏈撤下時(shí),就可以有效地使用數(shù)據(jù),實(shí)現(xiàn)靈活應(yīng)對(duì)。
同樣,由于監(jiān)管部門(mén)的各種報(bào)告需求在不斷變化,必須從不同的IT系統(tǒng)搜集數(shù)據(jù)?;赟OA的方法可以輕松解決這個(gè)問(wèn)題:幾個(gè)版本的類(lèi)似Web服務(wù)可以在SOA存儲(chǔ)庫(kù)里面得到維護(hù),并且可根據(jù)數(shù)據(jù)參數(shù)進(jìn)行動(dòng)態(tài)選擇。