鄧 榮 張秀英
(1、重慶工程職業(yè)技術(shù)學(xué)院,重慶 400037 2、重慶警官職業(yè)學(xué)院,重慶 400319)
軟件系統(tǒng)開發(fā)經(jīng)歷了面向過程、面向?qū)ο?、面向組件、面向集成的發(fā)展過程:基于面向過程的代碼高度耦合,可以提高效率,但無法滿足業(yè)務(wù)變化的需求;面向?qū)ο蠹夹g(shù)通過繼承、多態(tài)和重載等一系列特性提高了軟件的重用,使得整個(gè)基礎(chǔ)架構(gòu)能夠滿足需求的快速變化,但它的重用仍停留在代碼共享的級(jí)別;面向組件技術(shù)加速了適應(yīng)業(yè)務(wù)變化的步伐,但在異構(gòu)系統(tǒng)操作中依然存在許多問題;面向集成把系統(tǒng)的概念提升到了一定的高度,但它針對(duì)獨(dú)立的應(yīng)用提供服務(wù),系統(tǒng)的體系結(jié)構(gòu)面向特定的應(yīng)用,使得系統(tǒng)的可實(shí)施性較差。在這種情況下,一種更活躍的、自由的、高效的軟件復(fù)用機(jī)制--面向服務(wù)的體系架構(gòu)SOA(serviceoriented architecture)應(yīng)運(yùn)而生,它不僅是一個(gè)體系結(jié)構(gòu),也包含了策略、實(shí)踐和框架,以保證服務(wù)被正確的提供和消費(fèi)。
SOA通過構(gòu)建分布式系統(tǒng),將應(yīng)用程序功能作為服務(wù)對(duì)象對(duì)外發(fā)布,從而將服務(wù)提供給終端用戶應(yīng)用程序或其它服務(wù)。SOA體系結(jié)構(gòu)的組成元素,分為功能元素和服務(wù)質(zhì)量元素兩大部分。
傳輸:定義了用于將來自服務(wù)使用者的服務(wù)請(qǐng)求傳送給服務(wù)提供者,并將來自服務(wù)提供者的響應(yīng)傳送給服務(wù)使用者的通信機(jī)制;
服務(wù)通信協(xié)議:定義了服務(wù)提供者和服務(wù)使用者進(jìn)行通信的服務(wù)協(xié)議;
服務(wù)描述:事先定義好的模式,用于描述服務(wù)的內(nèi)容、調(diào)用方式和參數(shù)等;
服務(wù):實(shí)際可供使用的服務(wù)功能;
業(yè)務(wù)流程:定義了滿足業(yè)務(wù)要求的服務(wù)集合,可按照特定的順序用一組特定的規(guī)則進(jìn)行調(diào)用;
服務(wù)注冊(cè)中心:服務(wù)和服務(wù)描述的倉庫,服務(wù)提供者可以通過服務(wù)注冊(cè)中心發(fā)布服務(wù),而服務(wù)使用者可以通過服務(wù)注冊(cè)中心,查找自己可用的服務(wù)。
策略:一組條件和規(guī)則,服務(wù)提供者遵循這些條件和規(guī)則來對(duì)外提供服務(wù);
安全性:規(guī)則集,應(yīng)用于服務(wù)使用者的身份驗(yàn)證、授權(quán)和訪問控制等;
事務(wù):屬性集,應(yīng)用于一組服務(wù),以保證每次調(diào)用一組服務(wù)時(shí)都提供一致的結(jié)果;
管理:屬性集,應(yīng)用于管理服務(wù)和服務(wù)的使用。
面向服務(wù)體系架構(gòu)模型,如圖1所示,建立在三個(gè)角色(服務(wù)提供者、服務(wù)注冊(cè)中心和服務(wù)請(qǐng)求者)的交互上。交互的內(nèi)容包括發(fā)布、查找和綁定三個(gè)操作。這些角色和操作都圍繞Web服務(wù)的服務(wù)本身和服務(wù)描述而展開。圖1顯示了這些操作、提供這些操作的模塊以及它們之間的交互關(guān)系。
圖1 面向服務(wù)體系架構(gòu)模型
3.1.1 服務(wù):服務(wù)是由服務(wù)描述定義的接口,而這里接口的實(shí)現(xiàn)就是服務(wù)本身。服務(wù)是服務(wù)提供者在網(wǎng)絡(luò)上發(fā)布可供不同平臺(tái)使用的軟件模塊。服務(wù)請(qǐng)求者可以調(diào)用服務(wù)。服務(wù)本身也可能是請(qǐng)求者,在它的實(shí)現(xiàn)過程中使用其他的服務(wù)。
3.1.2 服務(wù)描述:服務(wù)描述包含服務(wù)接口和實(shí)現(xiàn)的細(xì)節(jié),包括數(shù)據(jù)類型、操作、綁定信息和網(wǎng)絡(luò)位置等,也可能包括分類和其他元數(shù)據(jù)信息,這些信息通常是為了協(xié)助服務(wù)請(qǐng)求者發(fā)現(xiàn)和使用服務(wù)。服務(wù)的提供者可以把服務(wù)描述直接發(fā)送給服務(wù)請(qǐng)求者,也可以發(fā)布到服務(wù)注冊(cè)中心。
3.1.3 服務(wù)提供者:從商業(yè)的角度來看,服務(wù)提供者是服務(wù)的擁有者。從SOA架構(gòu)看,服務(wù)提供者是擁有服務(wù)的平臺(tái)。
3.1.4 服務(wù)請(qǐng)求者:從商業(yè)的角度來看,服務(wù)請(qǐng)求者是需求某種功能的商業(yè)機(jī)構(gòu)。從SOA架構(gòu)看,服務(wù)請(qǐng)求者是查找、調(diào)用服務(wù)的應(yīng)用程序。
3.1.5 服務(wù)注冊(cè)中心:服務(wù)提供者在服務(wù)注冊(cè)中心發(fā)布他們的服務(wù)描述,而服務(wù)請(qǐng)求者在服務(wù)注冊(cè)中心找到服務(wù),并得到服務(wù)綁定的信息。
在服務(wù)的實(shí)現(xiàn)過程中,有三個(gè)操作是必須的:服務(wù)描述的發(fā)布、查找服務(wù)描述和根據(jù)服務(wù)描述綁定或調(diào)用服務(wù)。這些操作可能會(huì)執(zhí)行一次或多次。
3.2.1 發(fā)布:為了能夠訪問服務(wù),必須首先發(fā)布服務(wù)描述,服務(wù)請(qǐng)求者才能找到它。到底把服務(wù)描述發(fā)布到何處,或者以什么方式發(fā)布,這是由應(yīng)用程序的具體要求決定的。
3.2.2 查找:在查找操作中,服務(wù)請(qǐng)求者可能會(huì)直接得到服務(wù)描述,也可能會(huì)向服務(wù)注冊(cè)中心查詢服務(wù)描述的位置。查找操作可以出現(xiàn)在服務(wù)請(qǐng)求者生命周期的兩個(gè)不同階段:設(shè)計(jì)時(shí)刻和運(yùn)行時(shí)刻,前者獲得服務(wù)的接口說明用于程序的開發(fā),后者獲得服務(wù)的綁定和定位說明用于服務(wù)的調(diào)用。
3.2.3 綁定:在綁定操作中,服務(wù)的請(qǐng)求者在運(yùn)行時(shí)刻使用服務(wù)描述中的綁定信息定位、連接和調(diào)用服務(wù),啟動(dòng)與服務(wù)的交互。
Web服務(wù)(web service)[20,22]是由web應(yīng)用延伸出來的一種技術(shù)規(guī)范,同時(shí)它也是SOA技術(shù)思想的源泉。SOA雖然不一定必須基于Web服務(wù),但是其思路與Web服務(wù)關(guān)系密切,而且Web服務(wù)是當(dāng)前SOA較為理想的技術(shù)。當(dāng)前一些研究?jī)A向于使用面向服務(wù)模型的概念來描述Web服務(wù)。盡管Web服務(wù)與SOA密切相關(guān),但Web服務(wù)仍然需要進(jìn)一步的提升以獲得真正的服務(wù)模型。
從本質(zhì)上來說,SOA是一種架構(gòu)模式,而Web服務(wù)則是利用一系列技術(shù)標(biāo)準(zhǔn)實(shí)現(xiàn)的服務(wù),也就是說Web服務(wù)是實(shí)現(xiàn)SOA的方式之一。用 Web服務(wù)來實(shí)現(xiàn)SOA的好處是可以用一個(gè)中立平臺(tái)來獲得服務(wù),而且隨著越來越多的軟件商都支持Web服務(wù)規(guī)范,更好地理解Web服務(wù)即能更好地理解SOA內(nèi)涵。
SOA是一種新興的分布式軟件體系架構(gòu),具有分布式、松散耦合、開放性等的特點(diǎn),在其架構(gòu)下,可以通過一系列符合開放式標(biāo)準(zhǔn)的協(xié)議和規(guī)范,為分布式環(huán)境下異構(gòu)系統(tǒng)的整合與集成提供一種可控代價(jià)的技術(shù)途徑。SOA的提出為解決在Internet環(huán)境下多種異構(gòu)業(yè)務(wù)集成的提供了一種十分有價(jià)值的技術(shù)手段,通過連接能完成特定任務(wù)的獨(dú)立功能實(shí)體,來實(shí)現(xiàn)整合、集成的應(yīng)用功能。它能夠以可控制的實(shí)現(xiàn)代價(jià)整合不同的業(yè)務(wù)系統(tǒng),使它們具備協(xié)同工作的能力。
[1]桑蘭芬,李海軍.實(shí)驗(yàn)室開放與校園網(wǎng)實(shí)驗(yàn)教學(xué)[J].長(zhǎng)春理工大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2005,18(3):46-47.
[2]鄔志紅,段喜龍,舒遠(yuǎn)仲.開放型計(jì)算機(jī)實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化.2006(2):114-115,121.
[3]W3C.Simple Object Access Protocol Version 1.2[[EB/OL].http://www.w3.org/TR/soap/
[4]Heather Kreger,Web Services Conceptual Architecture[M]IBM Software Group,2001
[5]Lianjun An and Jun-Jang Jeng ,Web Service Management Using System Dynamics[C],IEEE,2005
[6]隋菱歌,殷樹友,黃嵐.SOAP協(xié)議在XML數(shù)據(jù)傳輸中的應(yīng)用[J],長(zhǎng)春大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,4
[7]劉振鵬,周冬冬,薛林雁,常曉萌,宋曉靜.一個(gè)基于SOAP消息的Web服務(wù)綜合安全模型[J],武漢大學(xué)學(xué)報(bào)(理學(xué)版).2006,5.