鄧 榮 張秀英
(1、重慶工程職業(yè)技術學院,重慶 400037 2、重慶警官職業(yè)學院,重慶 400319)
軟件系統(tǒng)開發(fā)經(jīng)歷了面向過程、面向對象、面向組件、面向集成的發(fā)展過程:基于面向過程的代碼高度耦合,可以提高效率,但無法滿足業(yè)務變化的需求;面向對象技術通過繼承、多態(tài)和重載等一系列特性提高了軟件的重用,使得整個基礎架構能夠滿足需求的快速變化,但它的重用仍停留在代碼共享的級別;面向組件技術加速了適應業(yè)務變化的步伐,但在異構系統(tǒng)操作中依然存在許多問題;面向集成把系統(tǒng)的概念提升到了一定的高度,但它針對獨立的應用提供服務,系統(tǒng)的體系結構面向特定的應用,使得系統(tǒng)的可實施性較差。在這種情況下,一種更活躍的、自由的、高效的軟件復用機制--面向服務的體系架構SOA(serviceoriented architecture)應運而生,它不僅是一個體系結構,也包含了策略、實踐和框架,以保證服務被正確的提供和消費。
SOA通過構建分布式系統(tǒng),將應用程序功能作為服務對象對外發(fā)布,從而將服務提供給終端用戶應用程序或其它服務。SOA體系結構的組成元素,分為功能元素和服務質量元素兩大部分。
傳輸:定義了用于將來自服務使用者的服務請求傳送給服務提供者,并將來自服務提供者的響應傳送給服務使用者的通信機制;
服務通信協(xié)議:定義了服務提供者和服務使用者進行通信的服務協(xié)議;
服務描述:事先定義好的模式,用于描述服務的內容、調用方式和參數(shù)等;
服務:實際可供使用的服務功能;
業(yè)務流程:定義了滿足業(yè)務要求的服務集合,可按照特定的順序用一組特定的規(guī)則進行調用;
服務注冊中心:服務和服務描述的倉庫,服務提供者可以通過服務注冊中心發(fā)布服務,而服務使用者可以通過服務注冊中心,查找自己可用的服務。
策略:一組條件和規(guī)則,服務提供者遵循這些條件和規(guī)則來對外提供服務;
安全性:規(guī)則集,應用于服務使用者的身份驗證、授權和訪問控制等;
事務:屬性集,應用于一組服務,以保證每次調用一組服務時都提供一致的結果;
管理:屬性集,應用于管理服務和服務的使用。
面向服務體系架構模型,如圖1所示,建立在三個角色(服務提供者、服務注冊中心和服務請求者)的交互上。交互的內容包括發(fā)布、查找和綁定三個操作。這些角色和操作都圍繞Web服務的服務本身和服務描述而展開。圖1顯示了這些操作、提供這些操作的模塊以及它們之間的交互關系。

圖1 面向服務體系架構模型
3.1.1 服務:服務是由服務描述定義的接口,而這里接口的實現(xiàn)就是服務本身。服務是服務提供者在網(wǎng)絡上發(fā)布可供不同平臺使用的軟件模塊。服務請求者可以調用服務。服務本身也可能是請求者,在它的實現(xiàn)過程中使用其他的服務。
3.1.2 服務描述:服務描述包含服務接口和實現(xiàn)的細節(jié),包括數(shù)據(jù)類型、操作、綁定信息和網(wǎng)絡位置等,也可能包括分類和其他元數(shù)據(jù)信息,這些信息通常是為了協(xié)助服務請求者發(fā)現(xiàn)和使用服務。服務的提供者可以把服務描述直接發(fā)送給服務請求者,也可以發(fā)布到服務注冊中心。
3.1.3 服務提供者:從商業(yè)的角度來看,服務提供者是服務的擁有者。從SOA架構看,服務提供者是擁有服務的平臺。
3.1.4 服務請求者:從商業(yè)的角度來看,服務請求者是需求某種功能的商業(yè)機構。從SOA架構看,服務請求者是查找、調用服務的應用程序。
3.1.5 服務注冊中心:服務提供者在服務注冊中心發(fā)布他們的服務描述,而服務請求者在服務注冊中心找到服務,并得到服務綁定的信息。
在服務的實現(xiàn)過程中,有三個操作是必須的:服務描述的發(fā)布、查找服務描述和根據(jù)服務描述綁定或調用服務。這些操作可能會執(zhí)行一次或多次。
3.2.1 發(fā)布:為了能夠訪問服務,必須首先發(fā)布服務描述,服務請求者才能找到它。到底把服務描述發(fā)布到何處,或者以什么方式發(fā)布,這是由應用程序的具體要求決定的。
3.2.2 查找:在查找操作中,服務請求者可能會直接得到服務描述,也可能會向服務注冊中心查詢服務描述的位置。查找操作可以出現(xiàn)在服務請求者生命周期的兩個不同階段:設計時刻和運行時刻,前者獲得服務的接口說明用于程序的開發(fā),后者獲得服務的綁定和定位說明用于服務的調用。
3.2.3 綁定:在綁定操作中,服務的請求者在運行時刻使用服務描述中的綁定信息定位、連接和調用服務,啟動與服務的交互。
Web服務(web service)[20,22]是由web應用延伸出來的一種技術規(guī)范,同時它也是SOA技術思想的源泉。SOA雖然不一定必須基于Web服務,但是其思路與Web服務關系密切,而且Web服務是當前SOA較為理想的技術。當前一些研究傾向于使用面向服務模型的概念來描述Web服務。盡管Web服務與SOA密切相關,但Web服務仍然需要進一步的提升以獲得真正的服務模型。
從本質上來說,SOA是一種架構模式,而Web服務則是利用一系列技術標準實現(xiàn)的服務,也就是說Web服務是實現(xiàn)SOA的方式之一。用 Web服務來實現(xiàn)SOA的好處是可以用一個中立平臺來獲得服務,而且隨著越來越多的軟件商都支持Web服務規(guī)范,更好地理解Web服務即能更好地理解SOA內涵。
SOA是一種新興的分布式軟件體系架構,具有分布式、松散耦合、開放性等的特點,在其架構下,可以通過一系列符合開放式標準的協(xié)議和規(guī)范,為分布式環(huán)境下異構系統(tǒng)的整合與集成提供一種可控代價的技術途徑。SOA的提出為解決在Internet環(huán)境下多種異構業(yè)務集成的提供了一種十分有價值的技術手段,通過連接能完成特定任務的獨立功能實體,來實現(xiàn)整合、集成的應用功能。它能夠以可控制的實現(xiàn)代價整合不同的業(yè)務系統(tǒng),使它們具備協(xié)同工作的能力。
[1]桑蘭芬,李海軍.實驗室開放與校園網(wǎng)實驗教學[J].長春理工大學學報(社會科學版),2005,18(3):46-47.
[2]鄔志紅,段喜龍,舒遠仲.開放型計算機實驗室管理系統(tǒng)的設計與實現(xiàn)[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ù)傳輸中的應用[J],長春大學學報(自然科學版),2006,4
[7]劉振鵬,周冬冬,薛林雁,常曉萌,宋曉靜.一個基于SOAP消息的Web服務綜合安全模型[J],武漢大學學報(理學版).2006,5.