《服務(wù)計(jì)算概論 第5章服務(wù)描述》由會員分享,可在線閱讀,更多相關(guān)《服務(wù)計(jì)算概論 第5章服務(wù)描述(29頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、第第5章章 效勞描述效勞描述 5.2 Web效勞接口描述語言WSDL5.1 效勞描述模型引言引言1 1.自描述是效勞的根本特征。2.通過效勞描述,效勞屏蔽了其實(shí)現(xiàn)細(xì)節(jié),使效勞提供者和效勞消費(fèi)者能以一種松耦合方式協(xié)作。3.對效勞的描述是多方面的,每一方面的描述都反映了效勞的某種特征。引言引言2以web效勞為例,以下標(biāo)準(zhǔn)就描述了Web效勞的各個(gè)方面:WSDL:描述Web效勞的接口、訪問消息格式和訪問地址;BPEL4WS:以過程的方式描述一個(gè)組合Web效勞的內(nèi)部結(jié)構(gòu);WS-CDL:描述Web效勞之間的通信約定;WS-Policy;WS-Security;WS-Transaction,5.1.效勞描述
2、模型效勞描述模型1 Will Tracz于1990年提出3C模型,該模型從概念concept、內(nèi)容content和上下文context三方面來刻畫構(gòu)件。1概念:描述構(gòu)件做什么,包含接口標(biāo)準(zhǔn)和語義;2內(nèi)容:描述構(gòu)件如何完成概念所刻畫的功能;3上下文:刻畫構(gòu)件的運(yùn)行環(huán)境。5.2.效勞描述模型效勞描述模型23C模型到Web效勞技術(shù)標(biāo)準(zhǔn)的對應(yīng)關(guān)系:概念對應(yīng)Web效勞描述語言如WSDL;內(nèi)容對應(yīng)Web效勞組合語言如BPEL4WS;上下文對應(yīng)Web效勞策略、協(xié)作、平安、事務(wù)等語言。5.2 Web效勞接口描述語言效勞接口描述語言WSDL5.2.1 WSDL概述5.2.2 WSDL設(shè)計(jì)目標(biāo)5.2.3 WSDL
3、和IDL5.2.4 WSDL結(jié)構(gòu)5.2.1 WSDL概述概述1Web效勞描述語言WSDL描述了Web效勞的接口、消息格式約定和訪問地址三方面的根本內(nèi)容。它定義了一套基于XML的語法,用來將Web效勞描述為能夠進(jìn)行消息交換的效勞訪問點(diǎn)的集合,從而滿足了應(yīng)用需求。簡單地講,WSDL文檔的職責(zé)在于告訴效勞的使用者如何將請求消息格式化,通過何種通信協(xié)議在何處訪問Web效勞。5.2.1 WSDL概述概述2WSDLWSDL文檔在文檔在SOASOA典型協(xié)作模式中所處的位置典型協(xié)作模式中所處的位置5.2.2 WSDL設(shè)計(jì)目標(biāo)設(shè)計(jì)目標(biāo) 首先,WSDL是描述Web效勞的標(biāo)準(zhǔn),尤其是描述Web效勞的接口的標(biāo)準(zhǔn);其次
4、,WSDL具有開放性,允許通過擴(kuò)展使用其它類型定義語言,允許使用多種網(wǎng)絡(luò)傳輸協(xié)議和消息格式;再次,WSDL應(yīng)用當(dāng)代軟件工程中的復(fù)用概念,別離了抽象定義層和具體實(shí)現(xiàn)層,使得抽象定義層的復(fù)用性大大增加;最后,WSDL描述文檔應(yīng)當(dāng)具備機(jī)器可識別能力。5.2.3 WSDL和和IDL WSDL和IDL在功能上有重合之處:即二者都描述了效勞或者構(gòu)件的調(diào)用接口。區(qū)別如下:1在描述Web效勞接口的同時(shí),WSDL還要定義訪問Web效勞的機(jī)制。2WSDL需要定義Web效勞的有效訪問位置。3WSDL需要處理Web效勞的復(fù)雜性帶來的一些其它問題。5.2.4 WSDL結(jié)構(gòu)結(jié)構(gòu)WSDL標(biāo)準(zhǔn)的總體結(jié)構(gòu)通常分為一個(gè)抽象描述局
5、部和一個(gè)具體描述局部,其中抽象局部與傳統(tǒng)的IDL類似,而具體局部那么提供了Web效勞的訪問消息格式、訪問協(xié)議和訪問地址信息。WSDL標(biāo)準(zhǔn)總體結(jié)構(gòu)模型標(biāo)準(zhǔn)總體結(jié)構(gòu)模型1WSDL標(biāo)準(zhǔn)總體結(jié)構(gòu)模型標(biāo)準(zhǔn)總體結(jié)構(gòu)模型2端口類型與傳統(tǒng)中間件IDL的接口相似;每個(gè)端口類型在邏輯上是一組操作的集合;每個(gè)操作定義一組消息,作為Web效勞交互的根本傳輸單位;消息在邏輯上又可看作數(shù)據(jù)類型集合。WSDL標(biāo)準(zhǔn)總體結(jié)構(gòu)模型標(biāo)準(zhǔn)總體結(jié)構(gòu)模型3綁定描述某個(gè)端口類型在作為負(fù)載傳輸時(shí)采用的消息傳輸協(xié)議如SOAP、網(wǎng)絡(luò)傳輸協(xié)議如HTTP、消息的風(fēng)格SOAP/RPC或SOAP/Document,以及消息的編碼規(guī)那么SOAP或lite
6、ral。一個(gè)綁定只描述一個(gè)端口類型,但一個(gè)端口類型可以有多個(gè)綁定,這使相同的功能可以通過多種傳輸協(xié)議和消息格式被訪問。WSDL標(biāo)準(zhǔn)總體結(jié)構(gòu)模型標(biāo)準(zhǔn)總體結(jié)構(gòu)模型4端口和綁定一一對應(yīng),以URI方式描述了綁定對應(yīng)的端口類型的Internet訪問地址。而效勞那么是端口的邏輯分組,通常同一訪問地址的端口可以歸為一組。另一種常用的分組方法是把一個(gè)端口類型對應(yīng)的多個(gè)綁定歸為一種效勞。WSDL概念模型圖概念模型圖IBM 2001WSDL文件的根本表示形式文件的根本表示形式WSDL文件的根本表示形式1.WSDL抽象描述局部抽象描述局部1Web效勞往往是從定義類型開始的。1類型XML Schema具有內(nèi)置數(shù)據(jù)類型
7、,同時(shí)也允許定義復(fù)雜數(shù)據(jù)類型。定義WSDL接口的第一步是要標(biāo)識或者定義消息交換過程中所用到的數(shù)據(jù)類型。數(shù)據(jù)類型舉例1.WSDL抽象描述局部抽象描述局部2在類型定義的根底上,描述Web效勞的下一步便是定義消息。2消息消息具體定義了通信中使用的消息的數(shù)據(jù)結(jié)構(gòu)。消息包含一組分部part,每個(gè)分部由一個(gè)名字和一個(gè)數(shù)據(jù)類型組成。消息舉例1消息舉例21.WSDL抽象描述局部抽象描述局部33操作操作代表具體的消息訪問接口。基于Web效勞對等協(xié)作的特點(diǎn),WSDL操作支持四種消息交換模式。操作舉例1.WSDL抽象描述局部抽象描述局部41.WSDL抽象描述局部抽象描述局部54端口類型前面我們已經(jīng)了解了操作描述主要
8、是定義了一組消息交換的過程,而端口類型是對操作進(jìn)行邏輯分組,因此端口類型和傳統(tǒng)的IDL中的接口相對應(yīng)。一個(gè)端口類型可以由其它端口類型擴(kuò)展而來,此時(shí),該端口類型將包含被擴(kuò)展端口類型的所有操作和自己定義的所有操作。端口類型舉例2.WSDL具體描述局部具體描述局部11綁定綁定為一個(gè)端口類型定義了四方面的內(nèi)容:消息傳輸協(xié)議網(wǎng)絡(luò)傳輸協(xié)議消息風(fēng)格:SOAP RPC/document編碼規(guī)那么:literal字面和SOAP2.WSDL具體描述局部具體描述局部2l字面編碼規(guī)那么直接使用types元素或者XML Schema定義的類型來表示消息內(nèi)容;而SOAP編碼規(guī)那么需要把XML Schema定義的類型根據(jù)S
9、OAP標(biāo)準(zhǔn)定義的編碼規(guī)那么轉(zhuǎn)換后填充為消息內(nèi)容。l通常字面編碼用于文檔操作,而SOAP編碼那么適合RPC風(fēng)格的操作。2.WSDL具體描述局部具體描述局部3采用document/literal綁定的加法運(yùn)算實(shí)例采用rpc/encoded綁定的加法運(yùn)算實(shí)例實(shí)際傳輸過程中的XML消息流實(shí)際傳輸過程中的XML消息流2.WSDL具體描述局部具體描述局部4由于SOAP數(shù)據(jù)模型以非類型化結(jié)構(gòu)圖來表示信息,而XML架構(gòu)以類型化元素樹來表示信息,因此在使用SOAP編碼表示XML類型結(jié)構(gòu)時(shí)會存在歧義。為此WS-I組織認(rèn)為SOAP編碼規(guī)那么應(yīng)逐漸淘汰,在WS-I簡檔中也不允許WSDL綁定使用SOAP編碼規(guī)那么。2.WSDL具體描述局部具體描述局部52端口端口ports也稱為端點(diǎn)end point。端口將接口綁定額一個(gè)具體的網(wǎng)絡(luò)地址對應(yīng),從而可以通過該網(wǎng)絡(luò)地址訪問綁定對應(yīng)的端口類型接口。端口舉例2.WSDL具體描述局部具體描述局部63效勞從描述形式上看,效勞service是端口ports的邏輯分組。一個(gè)特定的WSDL效勞可以與多個(gè)不同的URI關(guān)聯(lián),同時(shí)也可和不同的端口類型關(guān)聯(lián)。在實(shí)際應(yīng)用中,效勞可以按照不同的分類標(biāo)準(zhǔn)對端口進(jìn)行分類,如:按照效勞可以有效訪問的地址分類;按照不同的端口類型表示對同一端口類型的不同綁定進(jìn)行分類。效勞舉例謝謝!