




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五章 Web服務體系結(jié)構(gòu)本章內(nèi)容o 1.1軟件危機o 1.2軟件復用o 1.3軟件構(gòu)件的組織與檢索o 1.4軟件構(gòu)件化o 1.5軟件體系結(jié)構(gòu)5.1 Web服務概述o 萬維網(wǎng)聯(lián)盟(World Wide Web Consortium,W3C)提出了Web服務(Web Services)的概念o Web服務是W3C制定的一套開放和標準的規(guī)范,是一種被人們所廣泛接受的新技術(shù)o 當應用需要一種Web程序時,Web服務允許通過Internet,在注冊機構(gòu)中查找分布在Web站點上的相關(guān)服務,自動與服務進行綁定并進行數(shù)據(jù)交換,不需要進行人工干預5.1 Web服務概述o Web服務的誕生不是偶然的,是Inte
2、rnet和相關(guān)技術(shù)發(fā)展到一定程度的產(chǎn)物n 自從Internet出現(xiàn)以來,Http協(xié)議就廣泛地被使用,其簡單性、可靠性和通用性使得網(wǎng)頁可以在各種平臺上運行n XML語言的出現(xiàn)使信息傳輸擺脫了平臺和開發(fā)語言的限制,為網(wǎng)絡(luò)上各種系統(tǒng)的交互提供了一門“國際化標準語言”n SOAP協(xié)議為服務請求和消息格式定義了簡單的規(guī)則,并得到了各種軟件開發(fā)商的支持5.1.1 Web服務定義o W3C將Web服務定義為:n Web服務是為實現(xiàn)跨網(wǎng)絡(luò)操作而設(shè)計的軟件系統(tǒng),提供了相關(guān)的操作接口,其它應用可以使用SOAP消息,以預先指定的方式來與Web服務進行交互o Web服務提供了一種分布式的計算方法,將通過Intrane
3、t和Internet連接的分布式服務器上的應用程序集成在一起o Web服務是一種基于網(wǎng)絡(luò)的分布式計算框架5.1.1 Web服務定義o Web服務建立在許多成熟的技術(shù)之上:n 以可擴展標志語言(eXtensible Markup Language,XML)為基礎(chǔ)n 使用Web服務描述語言(Web Services Description Language,WSDL)來表示服務n 在注冊中心上,通過統(tǒng)一描述、查找和集成協(xié)議(Universal Description Discovery and Integration,UDDI)來對服務進行發(fā)布和查詢n 各個應用通過通用的Web協(xié)議和數(shù)據(jù)格式,例如
4、:HTTP、XML和簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)來訪問服務5.1.1 Web服務定義o Web服務能使應用程序以一種松散耦合的方式組織起來,并實現(xiàn)復雜的交互o Web服務的目標是消除語言差異、平臺差異、協(xié)議差異和數(shù)據(jù)結(jié)構(gòu)差異,成為不同構(gòu)件模型和異構(gòu)系統(tǒng)之間的膠水集成技術(shù)o Web服務獨立于開發(fā)商、開發(fā)平臺和編程語言,提供了足夠的交互能力,能夠適合各種場合的應用需求5.1.1 Web服務定義o Web服務有兩層含義:n 首先是一種技術(shù)和標準,然后是一種軟件和功能,采用軟件構(gòu)件技術(shù),可以讓應用系統(tǒng)易于組裝,通過網(wǎng)絡(luò)來隨時增減構(gòu)件以調(diào)整功能
5、,使系統(tǒng)的開發(fā)過程和維護過程更容易實現(xiàn)n Web服務也是一種通過網(wǎng)絡(luò)存取的軟件構(gòu)件,使應用程序之間可以通過共同的網(wǎng)絡(luò)標準來進行交互o 從不同的角度出發(fā),人們對Web服務的理解和認識也不盡相同5.1.1 Web服務定義n 從語義的角度來看,Web服務封裝了離散的系統(tǒng)功能n 從資源重用的角度來看,Web服務是可復用的軟件模塊n 從軟件開發(fā)的角度來看,Web服務是松散耦合的n 從操作的角度來看,可以在程序中對Web服務進行訪問n 從網(wǎng)絡(luò)操作的角度來看,Web服務體現(xiàn)為一些包裝在Internet通信協(xié)議之中,可以在Internet上組裝和運行的軟件部件5.1.2 Web服務類型o 按照應用的領(lǐng)域不同,
6、可以分為:n 面向商務的Web服務,這種Web服務是為企業(yè)應用而設(shè)計的n 面向消費者的Web服務,這種Web服務是原有的B2C網(wǎng)站改造的結(jié)果n 面向設(shè)備的Web服務,這種Web服務的使用終端是手持設(shè)備和家用電器n 面向系統(tǒng)的Web服務5.1.2 Web服務類型o Web服務技術(shù)的相關(guān)優(yōu)點:n 良好的封裝性,Web服務是一種部署在網(wǎng)絡(luò)上的對象,具備良好的封裝性n 松散的耦合性,Web服務接口封裝了具體的實現(xiàn)細節(jié),只要接口不變,無論服務的實現(xiàn)如何發(fā)生改變,都不會影響到調(diào)用者的使用n 高度的集成性,屏蔽了不同軟件平臺的差異,無論是CORAB構(gòu)件,還是EJB構(gòu)件都可以通過標準協(xié)議進行交互,實現(xiàn)了當前環(huán)
7、境下的高度集成5.1.2 Web服務類型n 穿越性,Web服務使用標準協(xié)議,諸如:SOAP,可以穿越防火墻,進行信息傳遞n 自描述和發(fā)現(xiàn)性,以SOAP、WSDL和UDDI為基礎(chǔ),提供一種Web服務的自描述和發(fā)現(xiàn)機制n 協(xié)議的通用性,Web服務利用標準的Internet協(xié)議,例如:HTTP、SMTP和FTP,解決了基于Internet/Intranet的分布式計算問題n 跨平臺和語言獨立性,Web服務利用標準的網(wǎng)絡(luò)協(xié)議和XML數(shù)據(jù)格式來進行通信,支持這些網(wǎng)絡(luò)標準的系統(tǒng)可以進行Web服務請求與調(diào)用5.1.2 Web服務類型n 協(xié)約的規(guī)范性,作為Web服務,對象界面所提供的功能應當使用標準的描述語言
8、來進行刻畫,這將有利于Web服務的發(fā)現(xiàn)和調(diào)用n Web服務可以看做是一種部署在網(wǎng)絡(luò)上的對象,因此,具有面向?qū)ο蠹夹g(shù)的所有優(yōu)點n Web服務的基石是以XML為主的Web規(guī)范技術(shù),因此,具有比任何對象技術(shù)更好的開放性n 良好的維護性和伸縮性,由于服務提供者和服務使用者之間的關(guān)系是松散耦合的,同時采用了開放的標準,因此,可以方便地實現(xiàn)系統(tǒng)的維護5.2 Web服務技術(shù)o 從兩種不同的角度來分析Web服務n 根據(jù)功能來劃分Web服務中的角色,分析角色之間的通信關(guān)系,描述用于交互的各種操作,形成Web服務體系結(jié)構(gòu)模型n 根據(jù)操作所要達到的目標,包括:技術(shù)目標和商業(yè)目標,制定相應的技術(shù)標準,形成Web服務協(xié)
9、議棧o Web服務體系結(jié)構(gòu)模型描述了三種角色,包括服務提供者、服務注冊中心和服務請求者5.2.1 Web服務體系結(jié)構(gòu)o Web服務體系結(jié)構(gòu)模型定義了三種操作,即查找服務、發(fā)布服務和綁定服務,同時給出了服務和服務描述兩種操作對象o Web服務體系結(jié)構(gòu)的三種角色描述如下:n 服務請求者,實現(xiàn)服務的查找與調(diào)用,請求服務注冊中心查找滿足特定條件和可獲得的Web服務,一旦找到,服務請求者將與服務提供者進行綁定,進行實際的服務調(diào)用5.2.1 Web服務體系結(jié)構(gòu)n 服務注冊中心,集中存儲服務的描述信息,便于服務請求者的查找,服務提供者在服務注冊中心注冊所能提供的服務n 服務提供者,服務提供者就是所謂的服務擁
10、有者,給出可通過網(wǎng)絡(luò)訪問的軟件模塊(Web 服務的實現(xiàn)),負責將服務信息發(fā)布到服務注冊中心,響應服務請求者,提供相應的服務5.2.1 Web服務體系結(jié)構(gòu)5.2.1 Web服務體系結(jié)構(gòu)o Web服務體系結(jié)構(gòu)的三種操作描述如下:n 查找服務,服務請求者使用查找服務操作從本地或服務注冊中心搜索符合條件的Web服務描述,查找服務操作可以通過用戶界面提交,也可以由其它Web服務發(fā)起n 發(fā)布服務,服務提供者定義了Web服務描述,在服務注冊中心上,發(fā)布這些服務描述信息,服務描述包含所有與該服務交互所必需的相關(guān)信息,諸如:網(wǎng)絡(luò)位置、傳輸協(xié)議和消息格式等5.2.1 Web服務體系結(jié)構(gòu)n 綁定服務,一旦服務請求者
11、發(fā)現(xiàn)了合適的Web服務,將根據(jù)服務描述中的相關(guān)信息來調(diào)用服務實現(xiàn)模塊o 實現(xiàn)完整的Web服務過程包括以下步驟:n (1)服務提供者根據(jù)需求設(shè)計實現(xiàn)Web服務,使用WSDL來描述服務的相關(guān)信息,將服務描述信息提交到服務注冊中心,并對外進行發(fā)布,注冊過程遵循統(tǒng)一描述、查找和集成協(xié)議UDDI5.2.1 Web服務體系結(jié)構(gòu)n (2)服務請求者向服務注冊中心提交特定服務請求,服務請求使用WSDL進行描述,服務注冊中心根據(jù)請求查詢服務描述信息,為請求者尋找滿足要求的服務,查詢過程遵循統(tǒng)一描述、查找和集成協(xié)議UDDIn (3)如果服務注冊中心找到符合條件的Web請求,則向服務請求者返回滿足條件的Web服務描
12、述信息,該描述信息使用WSDL來書寫,各種支持Web服務的結(jié)點都能夠理解,繼續(xù)執(zhí)行(4);否則,返回無相關(guān)Web服務的提示信息,結(jié)束5.2.1 Web服務體系結(jié)構(gòu)n (4)服務請求者根據(jù)服務描述信息與服務提供者進行綁定,服務調(diào)用請求被封裝在SOAP協(xié)議中,實現(xiàn)Web服務調(diào)用n (5)服務提供者執(zhí)行相應的Web服務,將操作結(jié)果封裝在SOAP協(xié)議中,返回給服務請求者5.2.2 Web服務協(xié)議棧5.2.2 Web服務協(xié)議棧o 網(wǎng)絡(luò)傳輸層n Web服務協(xié)議棧的基礎(chǔ)是常用的網(wǎng)絡(luò)傳輸協(xié)議,諸如:超文本傳輸協(xié)議(Hypertext Transfer Protocol,HTTP)、簡單郵件傳輸協(xié)議(Simpl
13、e Mail Transfer Protocol,SMTP)和文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)o 數(shù)據(jù)表現(xiàn)層n XML是Web服務進行數(shù)據(jù)交換時所采用的標準,同時也是Web服務技術(shù)的全部規(guī)范和技術(shù)基礎(chǔ)5.2.2 Web服務協(xié)議棧o 消息傳遞層n 在Web服務綁定過程中,經(jīng)常采用簡單對象訪問協(xié)議SOAP,SOAP是一種獨立于編程語言和操作平臺的消息協(xié)議,能實現(xiàn)異構(gòu)環(huán)境下的應用程序交互o Web服務描述n Web服務描述是對Web服務實現(xiàn)的一種抽象,采用Web服務描述語言WSDL來進行表示,WSDL采用XML來描述 5.2.2 Web服務協(xié)議棧o Web服務發(fā)布
14、層n 在Web服務發(fā)布層中,主要采用了統(tǒng)一描述、查找和集成協(xié)議UDDIn UDDI是由結(jié)構(gòu)化信息標準促進組織(Organization for Advancement of Structured Information Standards,OASIS)所制定的一套關(guān)于服務發(fā)布、服務查找和服務接口訪問的技術(shù)標準與規(guī)范o Web服務查找層n 在Web服務查找層中,主要采用了統(tǒng)一描述、查找和集成協(xié)議UDDI5.2.2 Web服務協(xié)議棧o Web服務流組合層n 采用Web服務流程語言(Web Service Flow Language,WSFL)和業(yè)務流程執(zhí)行語言(Business Process E
15、xecution Language,BPEL)n 將一系列的Web服務操作連接起來,按照一定的規(guī)則來描述事務流程,以完成不同的服務整合,實現(xiàn)具體的業(yè)務邏輯5.2.3 Web服務的實現(xiàn)o 集成Web服務的主要核心技術(shù):n 可擴展標記語言XMLn 簡單對象訪問協(xié)議SOAPn Web服務描述語言WSDLn 統(tǒng)一描述、查找和集成協(xié)議UDDIn Web服務流程語言WSFLn 業(yè)務流程執(zhí)行語言BPEL5.2.3 Web服務的實現(xiàn)o 可擴展標記語言XMLn XML是eXtensible Markup Language(可擴展標記語言)的縮寫n XML的三個關(guān)鍵要素包括:模式Schema、可擴展樣式語言XSL
16、和可擴展鏈接語言XLLo Schema規(guī)定了XML文件的邏輯結(jié)構(gòu),定義了XML文件中的元素,解釋了元素屬性以及元素屬性之間的關(guān)系o XSL提供了層疊樣式表(Cascading Style Sheet,CSS)功能,開發(fā)者可以構(gòu)造具有層次結(jié)構(gòu)的Web頁面5.2.3 Web服務的實現(xiàn)o XLL是XML的鏈接語言,與HTML鏈接非常相似,但其功能更強大o 簡單對象訪問協(xié)議SOAPn 在松散分布式環(huán)境下,SOAP是一種交換結(jié)構(gòu)化信息的輕量級協(xié)議,使用XML語言來進行描述n 利用SOAP協(xié)議,服務請求對象可以對服務提供對象實施遠程方法調(diào)用n 利用SOAP協(xié)議,可以在多個對等實體之間傳輸XML數(shù)據(jù),解決了
17、對等實體在分布式環(huán)境中的通信問題5.2.3 Web服務的實現(xiàn)n SOAP是與平臺無關(guān)的純消息協(xié)議規(guī)范n SOAP協(xié)議主要包括SOAP信封、SOAP編碼規(guī)則、SOAP RPC表示和SOAP綁定四部分o SOAP信封(SOAP Envelop),定義了一個整體表示框架,用來表示消息內(nèi)容,同時,說明了采用何種手段來處理消息以及該項是可選的還是強制的o SOAP信封包括一個SOAP頭(SOAP Header)和一個SOAP體(SOAP Body)o SOAP編碼規(guī)則(Encoding Rules),是一個定義所傳輸數(shù)據(jù)類型的通用數(shù)據(jù)類型系統(tǒng),包括程序語言、數(shù)據(jù)庫和半結(jié)構(gòu)化數(shù)據(jù)中不同類型系統(tǒng)的所有公共特
18、性5.2.3 Web服務的實現(xiàn)o SOAP RPC表示(RPC Representation),定義了遠程過程調(diào)用(Remote Procedure Call,RPC)和應答的相關(guān)協(xié)定o SOAP綁定(SOAP Binding),定義了一種使用底層傳輸協(xié)議來完成SOAP消息交換的約定n SOAP可以理解為SOAP=RPC+HTTP+XML,采用HTTP作為傳輸協(xié)議,RPC作為一致性調(diào)用途徑,XML作為數(shù)據(jù)傳送格式n 其工作原理是:5.2.3 Web服務的實現(xiàn)o 當客戶端發(fā)送服務請求時,不管客戶端使用的是什么開發(fā)平臺,也不管應用系統(tǒng)采用的是什么編程語言,都把服務請求的名稱、參數(shù)和類型等信息封裝在
19、SOAP信封中,然后通過底層傳輸協(xié)議HTTP發(fā)送給Web服務提供者o 當Web服務提供者對請求作出響應后,將結(jié)果封裝在SOAP信封中,然后通過底層傳輸協(xié)議HTTP發(fā)送給客戶端o 如果客戶端要求,Web服務提供者將直接返回一個HTTP應答信息給客戶端5.2.3 Web服務的實現(xiàn)5.2.3 Web服務的實現(xiàn)o Web服務描述語言WSDLn WSDL通過一套XML語法來描述Web服務,將其定義為服務訪問端口的集合n 在WSDL文檔中,將Web服務端口和消息定義與實現(xiàn)和綁定分離,從而可以重用這些抽象信息n WSDL文檔包括兩部分:o 一部分位于文檔的前半部分,構(gòu)成Web服務的抽象定義(Abstract
20、)o 另一部分則位于文檔的后半部分,構(gòu)成Web服務的具體說明(Concrete)5.2.3 Web服務的實現(xiàn)5.2.3 Web服務的實現(xiàn)n 抽象定義以獨立于開發(fā)平臺和編程語言的方式來描述Web服務n 抽象定義使用了、和3種標記元素o types,數(shù)據(jù)類型,types是數(shù)據(jù)類型定義容器,包含了WSDL文檔要用到的所有信息類型o message,消息,message表示被傳輸數(shù)據(jù)的抽象定義,message包含若干個邏輯部分,每部分都關(guān)聯(lián)了所定義的數(shù)據(jù)類型o portType,服務接口,portType定義了Web服務的抽象接口和抽象操作5.2.3 Web服務的實現(xiàn)o 統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議UDD
21、In 統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議UDDI是一種在分布式環(huán)境下為Web服務提供信息查詢和發(fā)布的技術(shù)規(guī)范n 在服務注冊中心,請求者使用UDDI來發(fā)現(xiàn)所需要的Web服務,提供者使用UDDI發(fā)布自己的Web服務n UDDI定義了五種基本數(shù)據(jù)結(jié)構(gòu)和兩個附加信息o 商業(yè)實體(businessEntity):描述了商業(yè)機構(gòu)的相關(guān)信息,例如:基本情況、分類和標志等,為服務發(fā)現(xiàn)提供了基礎(chǔ)5.2.3 Web服務的實現(xiàn)o 商業(yè)服務(businessService):包含了特定商業(yè)實體businessEntity的相關(guān)技術(shù)細節(jié)和描述信息,與Web服務相對應o 綁定模板(bindingTemplate):描述了技術(shù)訪問細
22、節(jié),每個businessService包括一組bindingTemplate,說明服務是如何使用相關(guān)協(xié)議進行綁定的o t模型實例信息(tModelInstanceInfo):以t模型實例的形式出現(xiàn),提供了各種服務所必須遵循的技術(shù)規(guī)范5.2.3 Web服務的實現(xiàn)o t模型(tModel):相當于服務接口的元數(shù)據(jù),包括:服務名稱、發(fā)布服務的組織以及指向提供者的URI,起到了服務指針的作用o publisherAssertion:允許UDDI描述商業(yè)實體之間的關(guān)系o operationalInfo:記錄對UDDI的其它數(shù)據(jù)的操作情況,這些數(shù)據(jù)主要包括:更新時間、發(fā)布者和發(fā)布地點等信息5.2.3 We
23、b服務的實現(xiàn)5.2.3 Web服務的實現(xiàn)n WSDL元素與UDDI元素之間存在著一定的對應關(guān)系n 在注冊Web服務時,WSDL文檔應該被轉(zhuǎn)化為UDDI數(shù)據(jù)格式n 在轉(zhuǎn)化時,服務接口與tModel相對應,服務service對應于businessService,service中的每個訪問端口port與bindingTemplate相對應5.2.3 Web服務的實現(xiàn)5.2.3 Web服務的實現(xiàn)o Web服務流語言WSFLn 經(jīng)常需要根據(jù)特定的應用背景來組合不同的Web服務,以實現(xiàn)完整的業(yè)務邏輯n Web服務流語言WSFL是一種符合XML語法的流程描述語言,其作用是:整合Web服務,以定義服務執(zhí)行順序
24、n WSFL用于解決商務流程建模問題,可以描述Web服務在工作流中的交互過程,能夠處理服務之間的通信問題5.2.3 Web服務的實現(xiàn)n WSFL主要采用兩種模型:o 流模型描述了子Web服務的執(zhí)行順序o 全局模型刻畫了子Web服務的交互情況o 業(yè)務流程執(zhí)行語言BPELn BPEL是一種業(yè)務流程定義語言,用于描述面向服務的工作流n BPEL將一組Web服務連接起來,按照特定規(guī)則執(zhí)行,以實現(xiàn)Web服務的整合5.2.3 Web服務的實現(xiàn)n BPEL是IBM的WSFL和Microsoft的XLANG相結(jié)合的產(chǎn)物,同時摒棄了復雜繁瑣的部分,形成了一種較為自然的和抽象的商業(yè)活動描述語言n BPEL所指定的
25、業(yè)務流程是可執(zhí)行的,同時,在BPEL環(huán)境下也是可移植的5.2.4 異構(gòu)服務的集成o 利用Web服務能夠?qū)⒉煌愋偷能浖筒煌脚_所開發(fā)的系統(tǒng)結(jié)合起來,動態(tài)實時地更新和維護一個跨區(qū)域、多功能的應用實體,這就是所謂的異構(gòu)服務集成o 對使用不同平臺技術(shù)所開發(fā)的應用程序,都可以利用Web服務對其接口進行封裝,同時,新功能也可以直接設(shè)計為Web服務o 通過自動和手工方式,來定義Web服務接口的WSDL文檔,在服務注冊中心,將服務描述信息轉(zhuǎn)換為UDDI數(shù)據(jù)格式,對外發(fā)布5.2.4 異構(gòu)服務的集成o 無論什么平臺上的客戶應用程序都可以到服務注冊中心來訪問Web服務的抽象描述信息o 在本地聲稱代理對象,所有業(yè)
26、務都將通過代理對象與Web服務進行交互o 如果Web服務的內(nèi)部結(jié)構(gòu)和實現(xiàn)發(fā)生了改變,只要接口保持不變,則整個系統(tǒng)就不需要做任何調(diào)整5.2.4 異構(gòu)服務的集成5.2.5 Web服務開發(fā)平臺o Visual Studio.NET是一種通用服務框架n 以XML為基礎(chǔ),以Web服務為核心,輔以其它各種實現(xiàn)技術(shù),意在充分利用Internet上強大的計算資源和豐富的帶寬資源,以提高用戶的工作效率n Web服務中大多數(shù)有難度的基礎(chǔ)結(jié)構(gòu)己經(jīng)成為.NET Framework的一部分n 開發(fā)人員無需為實現(xiàn)SOAP處理程序和編寫復雜的WSDL而花費時間,只需集中精力設(shè)計和構(gòu)建實際的Web服務5.2.5 Web服務開
27、發(fā)平臺o .NET Framework是Visual Studio.NET的技術(shù)實現(xiàn)基礎(chǔ),為XML Web服務和其它應用程序提供了一個高效安全的開發(fā)環(huán)境o .NET Framework是一種用于生成、部署和運行Web服務的多語環(huán)境,主要包括三個部分n 公共語言運行庫,實際上,在運行和開發(fā)組件過程中,公共語言運行庫起到了基礎(chǔ)性作用n 統(tǒng)一編程類庫,.NET Framework為開發(fā)人員提供了面向?qū)ο蟮摹⒎謱拥暮涂蓴U展的類庫5.2.5 Web服務開發(fā)平臺n ASP.NET,ASP.NET建立在統(tǒng)一編程類庫基礎(chǔ)之上,提供了一個Web應用程序模型,包含簡化Web應用程序生成的控件集和結(jié)構(gòu)o IBM W
28、eb Service采用了J2EE架構(gòu),除了依靠自己的alphaWorks之外,還博采各類開放源代碼組織的成果o IBM提供了完整和領(lǐng)先的Web服務開發(fā)工具,主要包括:5.2.5 Web服務開發(fā)平臺n Web Service Toolkit、Web Service PMT和Apache SOAP,Web Service Toolkit包含Private UDDI Registry和WSDL生成工具o Sun ONE的框架結(jié)構(gòu)是以Java為核心,使用了一系列開放的標準、技術(shù)和協(xié)議,通過一組API對Web服務進行支持n 其中,API包括:JAXM、JAXP、JAXR和JAX-RPC5.3 面向服務
29、的體系結(jié)構(gòu)o SOA可以使企業(yè)IT環(huán)境更靈活、更快捷地響應不斷變化著的業(yè)務需求,使異構(gòu)系統(tǒng)和應用程序盡可能地實現(xiàn)無縫對接o 關(guān)于SOA,可以從不同的視角來進行理解n 從程序員的角度來看,SOA是一種全新的開發(fā)技術(shù),是一種新的組件模型,例如:Web服務n 從架構(gòu)設(shè)計師的角度來看,SOA是一種新的設(shè)計模式和方法學n 從業(yè)務分析員的角度來看,SOA是一種基于標準的業(yè)務應用服務5.3 面向服務的體系結(jié)構(gòu)o 比較典型的SOA定義:n Service-將SOA定義為:面向服務體系結(jié)構(gòu)本質(zhì)上是服務的集合n IBM將SOA定義為:面向服務體系結(jié)構(gòu)是一個組件模型,通過服務之間定義良好的接口和契約,將應用程序的不
30、同功能單元聯(lián)系起來n L將SOA定義為按需連接資源的系統(tǒng)n Gartner將SOA描述為客戶端/服務器的軟件設(shè)計方法5.3 面向服務的體系結(jié)構(gòu)o SOA的目標是最大限度地重用現(xiàn)有服務以提高IT的適應能力和利用效率o SOA要求相關(guān)技術(shù)人員在開發(fā)新應用時,要首先考慮重用現(xiàn)有服務o SOA作為一種體系結(jié)構(gòu),其任務是建立以服務為中心的業(yè)務模型,從而對用戶需求作出快速和靈活的響應o 服務帶有明確定義的可調(diào)用接口,同時以定義好的順序來調(diào)用這些服務以形成業(yè)務流程,實現(xiàn)系統(tǒng)的邏輯功能5.3 面向服務的體系結(jié)構(gòu)o 在設(shè)計SOA時,應該重點注意以下幾個問題:n 互聯(lián)協(xié)作,面向服務體系結(jié)構(gòu)強調(diào)的就是互聯(lián)協(xié)作,這意
31、味著服務必須提供通過某種數(shù)據(jù)格式和協(xié)議可以訪問的接口,這些數(shù)據(jù)格式和協(xié)議應該是被所有可能要求服務的客戶所認同的n 動態(tài)定位和使用,服務必須能夠被動態(tài)定位,這意味著需要使用第三方機制來查找服務5.3 面向服務的體系結(jié)構(gòu)n 消息傳遞是基于文本的,通常,在面向服務體系結(jié)構(gòu)中,使用XML來描述消息,因此,在不同服務之間,可以一次性地傳送大量信息,而且消息可以非常容易地通過宿主機上的防火墻o 面向服務體系結(jié)構(gòu)SOA和Web服務是兩個不同層面上的問題,前者屬于概念模型,主要面向商業(yè)應用,后者則是實現(xiàn)模式,主要面向框架技術(shù)5.3 面向服務的體系結(jié)構(gòu)o SOA本身是如何將軟件組織在一起的抽象概念,依賴于用XM
32、L和Web服務等更加具體的實現(xiàn)技術(shù)o Web服務體系結(jié)構(gòu)是面向服務體系結(jié)構(gòu)的一個特定實現(xiàn)o 面向服務體系結(jié)構(gòu)作為一個概念模型,將網(wǎng)絡(luò)、傳輸協(xié)議和安全等具體細節(jié)遺留給特定實現(xiàn),即Web服務5.3 面向服務的體系結(jié)構(gòu)o 人們使用Web服務來實現(xiàn)SOA,好處是:在一個中立的平臺上,可以獲取相關(guān)服務o CORBA和IBM的MQ可以利用WSDL的新特性來參與SOA的實現(xiàn)過程5.4 企業(yè)服務總線o ESB是從面向服務體系結(jié)構(gòu)SOA發(fā)展而來的,是一種為實現(xiàn)服務連接而提供的標準化通信的基礎(chǔ)結(jié)構(gòu)o 以開放標準為基礎(chǔ),ESB為應用提供了一個可靠的、可度量的和高度安全的環(huán)境o ESB可以幫助企業(yè)設(shè)計和模擬業(yè)務流程,
33、對業(yè)務流程實施控制和跟蹤,并分析改造流程的性能5.4 企業(yè)服務總線o ESB是構(gòu)建SOA解決方案時所使用的基礎(chǔ)架構(gòu)中的關(guān)鍵部分,由中間件技術(shù)來實現(xiàn),同時,支持SOA的相關(guān)邏輯功能o 在SOA模型中,ESB用在組件層和服務層之間,能夠使用多種協(xié)議來集成不同開發(fā)平臺上的組件,同時將其映射為服務層中的服務o 利用ESB的面向消息、松散耦合以及分布部署的特點來集成異構(gòu)服務和分布式數(shù)據(jù)源,實現(xiàn)服務注冊、服務發(fā)布和消息路由等功能5.4 企業(yè)服務總線o 關(guān)于ESB的概念,不同學者和技術(shù)人員給出了不同的定義:n Sonic公司將企業(yè)服務總線ESB定義為:集成了消息機制、Web服務、消息轉(zhuǎn)換和智能路由的基本標準
34、集成主干n IDC將ESB定義為:使用開放的標準消息總線,通過標準的適配器和接口,來實現(xiàn)各種程序和組件之間的相互操作,ESB支持異構(gòu)環(huán)境中的服務、消息和事件交互,并且具有適當?shù)姆占墑e和可管理性n IBM認為ESB是SOA的核心和基礎(chǔ)5.4.1 ESB的組成o ESB是服務之間的連接框架,其核心功能包括:消息機制、消息轉(zhuǎn)換、消息路由和服務容器四個部分o 消息機制n 消息機制定義了管理計算資源和網(wǎng)絡(luò)通信的相關(guān)機制,以屏蔽分布式環(huán)境的復雜性和異構(gòu)性n ESB可以支持兩種通信模式:發(fā)布/訂閱和請求/回復的消息模式o 在發(fā)布/訂閱模式中,訂閱者將需要的消息發(fā)送到ESB上,發(fā)布者在發(fā)布消息之后,ESB將
35、消息轉(zhuǎn)發(fā)給相關(guān)的訂閱者5.4.1 ESB的組成o 在請求/回復模式中,某一服務提出消息請求,其它服務響應回復,每個消息僅傳遞給一個消費者o 消息轉(zhuǎn)換n 消息是自包含和自治的實體n 連接在ESB總線上的服務種類很多,可能采用不同的消息協(xié)議,對于信息需求也不盡相同,因此,需要對消息進行轉(zhuǎn)換o 消息路由n 在通信過程中,ESB會根據(jù)網(wǎng)絡(luò)連接的實際情況,作出智能調(diào)整,自動地選擇最佳路由5.4.1 ESB的組成n 路由是分析服務傳遞步驟,建立傳遞線路和規(guī)則,并逐步傳遞消息的過程n 消息路由主要包括路由線路和路由規(guī)則o 路由線路描述了服務將要發(fā)送的地址o 路由規(guī)則定義了消息傳遞和路由線路的選擇策略,例如:
36、需要滿足的前提條件、路由時間延遲、路由控制和可允許的失敗連接次數(shù)等o 服務容器n 服務容器是將各種類型的軟件和應用系統(tǒng),封裝成可支持標準協(xié)議的服務,并抽象成一個端點,連接到ESB總線上的組件5.4.1 ESB的組成n 為了實現(xiàn)分布式處理,服務容器需要提供服務注冊、服務發(fā)現(xiàn)和服務選擇功能n 服務發(fā)現(xiàn)主要包括兩種方式o 一種是服務容器本身不管理注冊信息,而是通過查詢ESB全局注冊表,來獲取相關(guān)的服務信息o 另一種是服務容器維護一個本地注冊表,通過本地查詢來獲得服務信息,但是,本地注冊表需要經(jīng)常進行更新5.4.2 ESB的體系結(jié)構(gòu)o ESB的體系結(jié)構(gòu)主要包括:傳輸適配鏈、服務適配鏈以及在協(xié)議轉(zhuǎn)換和消
37、息派發(fā)中所使用的一些公共服務o 傳輸適配鏈:n 負責SOAP協(xié)議與IIOP和JRMP等私有協(xié)議之間的轉(zhuǎn)換工作n 傳輸適配鏈包括:源協(xié)議解析器、源協(xié)議生成器、端點標識映射器、操作標識映射器、數(shù)據(jù)編碼轉(zhuǎn)換器、目標協(xié)議解析器和目標協(xié)議生成器5.4.2 ESB的體系結(jié)構(gòu)o 服務適配鏈:n 給出了一種通用的、具有可擴展性和可定制的統(tǒng)一服務提供框架,以集成CORBA對象、COM/DCOM組件和Java EE等企業(yè)遺留應用n 主要包括:服務處理器和服務橋接器o 公共服務:n 為保證傳輸適配鏈和服務適配鏈正常地運轉(zhuǎn)工作,ESB還需要提供SOAP服務、安全、部署和事務等操作5.4.2 ESB的體系結(jié)構(gòu)5.4.2
38、 ESB的體系結(jié)構(gòu)o 在ESB的架構(gòu)中,提供了一個通用的、可擴展的和可維護的統(tǒng)一服務提供框架USPI,即服務橋接器,來定制各種Web服務o 服務橋接器是服務提供者與服務請求者之間的橋梁,用于實現(xiàn)ESB對各種異構(gòu)服務和分布式數(shù)據(jù)源的集成o 由于使用服務橋接器來集成多種異構(gòu)服務,因此,服務實現(xiàn)模塊的修改相對于ESB而言是透明的5.4.2 ESB的體系結(jié)構(gòu)5.4.3 ESB中的安全機制o 服務的安全性體現(xiàn)在以下幾個方面:n 機密性:保證服務之間所交換的信息不被其它人竊聽n 認證:保證只能由提供適當身份證明的用戶才能訪問相關(guān)的服務n 完整性:在傳輸過程中,保證消息不會被有意或無意地修改n 不可否認性:
39、保證信息發(fā)送者無法否認其發(fā)送了該信息n 授權(quán):決定用戶是否能夠訪問某種資源5.4.3 ESB中的安全機制5.4.3 ESB中的安全機制o 客戶端的安全性處理:n 對SOAP消息,設(shè)置時間戳、有效期、發(fā)送方和接收方等安全屬性信息n 使用基于XML的數(shù)字簽名技術(shù)對SOAP消息進行簽名n 利用XML簽名技術(shù)(XML-Signature)對SOAP消息進行加密,可以使用Web服務的公鑰基礎(chǔ)設(shè)施PKI中的密鑰注冊碼n 根據(jù)用戶指定的認證方式和認證信息(諸如:X.509證書、用戶/口令和SAML票據(jù))來構(gòu)造XML認證元素,并且封裝認證信息5.4.3 ESB中的安全機制o 服務器端的安全性處理:n 當服務器
40、收到SOAP消息時,需要檢查時間戳、有效期、發(fā)送方和接收方等安全屬性是否正確n 識別消息中的認證信息,分別進行處理:若為X.509證書,需要檢查證書及其相關(guān)簽名的有效性,同時將請求傳遞給訪問控制模塊作進一步處理;若為會話標識符,需獲取會話信息并使用消息碼MAC進行解密;若為用戶/口令和SAML票據(jù),則直接將解析結(jié)果傳遞給后續(xù)應用5.4.3 ESB中的安全機制n 若請求消息經(jīng)過簽名和加密處理,則采用XML解密技術(shù)進行解密,其中密鑰管理遵循XKMS規(guī)范n 將處理后的請求消息傳遞給應用程序o 相對于現(xiàn)存的集成解決方案而言,ESB具有以下優(yōu)勢:n 靈活的和服務導向的應用組合,以ESB為基礎(chǔ),能夠制訂跨
41、應用、跨系統(tǒng)和穿越防火墻的集成方案,組合開發(fā)測試過的服務來實現(xiàn)用戶的新需求,使系統(tǒng)具有較高的擴展性和可靠性5.4.3 ESB中的安全機制n 擴展的和基于標準的連接,ESB形成一個基于標準的信息骨架,在企業(yè)之間可以很容易地進行異步和同步通訊,ESB采用Web服務、J2EE、.NET和其它標準,可以方便地對系統(tǒng)實施互聯(lián)n 提高復用率,減少總成本,使用ESB來構(gòu)建企業(yè)應用,直接提高了復用效率,減小了維護成本n 減少市場反應時間,提高軟件開發(fā)效率,ESB通過重用構(gòu)件和服務,以SOA為框架基礎(chǔ)簡化了應用開發(fā)過程5.5 網(wǎng)格體系結(jié)構(gòu)o 網(wǎng)格計算的理想是使網(wǎng)絡(luò)上的所有資源協(xié)同工作,服務于不同的網(wǎng)格應用,以實
42、現(xiàn)資源在跨組織應用之間的共享與集成o 網(wǎng)格體系結(jié)構(gòu)主要包括三種:n 第一種是IanFoster提出的五層沙漏結(jié)構(gòu)n 第二種是IBM將五層沙漏結(jié)構(gòu)和Web服務相結(jié)合,提出的開放網(wǎng)格服務體系結(jié)構(gòu)n 第三種是由Globus聯(lián)盟、IBM和HP共同提出的Web服務資源框架5.5.1 五層沙漏結(jié)構(gòu)o 五層沙漏結(jié)構(gòu)的基本思想是:n 以協(xié)議為中心,強調(diào)協(xié)議在網(wǎng)格資源共享和互操作中的地位n 通過協(xié)議實現(xiàn)相關(guān)機制,使虛擬組織的用戶與資源可以相互協(xié)商,建立起共享關(guān)系,并進一步管理和開發(fā)新的共享關(guān)系o 五層沙漏結(jié)構(gòu)的設(shè)計原則是使參與開銷最小化,即使用的基礎(chǔ)核心協(xié)議比較少,以方便移植,類似于操作系統(tǒng)的內(nèi)核5.5.1 五
43、層沙漏結(jié)構(gòu)o 在五層沙漏結(jié)構(gòu)中,越向下越接近共享物理資源,越向上是抽象程度更高的邏輯共享資源o 五層沙漏結(jié)構(gòu)由構(gòu)造層、連接層、資源層、匯聚層和應用層組成 o 這種結(jié)構(gòu)之所以稱為沙漏,是由于各層協(xié)議數(shù)量分布不均勻引起的o 資源層和連接層共同組成瓶頸部分,形成核心層,促進資源共享5.5.1 五層沙漏結(jié)構(gòu)5.5.1 五層沙漏結(jié)構(gòu)o 構(gòu)造層,基本功能是控制局部資源,包括:n 查詢資源的狀態(tài)、發(fā)現(xiàn)資源的結(jié)構(gòu)、控制服務質(zhì)量和管理資源等,同時,向上提供訪問這些資源的接口o 連接層,實現(xiàn)各個孤立資源之間的安全通信,定義了核心層的通信協(xié)議和認證協(xié)議,用于處理網(wǎng)格中的事務n 各種資源之間的數(shù)據(jù)交換、授權(quán)驗證和安全控制都是在這一層實現(xiàn)的5.5.1 五層沙漏結(jié)構(gòu)o 資源層,基本功能是實現(xiàn)資源共享n 提供了安全初始化、監(jiān)視、控制資源共享、審計和付費等功能,同時,忽略了全局狀態(tài)和跨分布式資源集合的原子操作o 匯聚層,協(xié)調(diào)多種共享資源,共同完成某項任務n 在匯聚層中,協(xié)議與服務涉及到資源的共性知識,說明了不同資源集合之間是如何相互作用的,但不涉及資源的具體特征5.5.1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024廣西柳州金融集團招聘筆試參考題庫附帶答案詳解
- 2024年中鐵建銅冠投資有限公司2025屆校園招聘筆試參考題庫附帶答案詳解
- 留守兒童遠程陪伴論文
- 2025年統(tǒng)計學期末考試題庫:統(tǒng)計調(diào)查方法與應用模擬試題
- 2025年護士執(zhí)業(yè)資格考試題庫:護理科研方法與實踐操作技能真題解析模擬試題
- 2025年統(tǒng)計學期末考試題庫:數(shù)據(jù)可視化與計算題集測試
- 2025年征信考試題庫:征信信用評分模型實戰(zhàn)案例與試題
- 2025終止解除勞動合同證明書范本
- 2024山東土地東方發(fā)展集團有限公司招聘30人查看職位筆試參考題庫附帶答案詳解
- 中國科學院大學《土木工程材料雙語》2023-2024學年第一學期期末試卷
- 2022-2023學年四川眉山仁壽新店鎮(zhèn)小學校數(shù)學五年級第二學期期末學業(yè)質(zhì)量監(jiān)測試題含解析
- bs hrp52用戶手冊創(chuàng)業(yè)門戶應用平臺
- 2023年生態(tài)環(huán)境綜合行政執(zhí)法考試參考題庫(400題)
- 二年級數(shù)學歐利和他的懶弟弟優(yōu)秀課件
- 2023年春江蘇開放大學《江蘇紅色文化》過程性考核作業(yè)一二和綜合大作業(yè)+參考答案
- 材料物理知到章節(jié)答案智慧樹2023年南開大學
- 花城版音樂課時2-第2課 兩首風格不同的臺灣民謠-《放紙鷂》-課件
- 馬原第七章共產(chǎn)主義崇高理想及其最終實現(xiàn)
- 壓電陶瓷完整版課件
- 獲獎QC小組活動-提高苗木栽植成活率
- 青島版科學(2017)六三制六年級下冊14.《有趣的碰碰球》教學課件
評論
0/150
提交評論