面向服務(wù)的軟件工程 1104_第1頁
面向服務(wù)的軟件工程 1104_第2頁
面向服務(wù)的軟件工程 1104_第3頁
面向服務(wù)的軟件工程 1104_第4頁
面向服務(wù)的軟件工程 1104_第5頁
已閱讀5頁,還剩186頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

面向服務(wù)的軟件工程何揚(yáng)帆2015-11-042概念和背景面向服務(wù)的架構(gòu)SOA服務(wù)案例服務(wù)開發(fā)方法云計(jì)算語義Web服務(wù)高級(jí)專題提綱3什么是服務(wù)?Web服務(wù)的定義[W3C]:

Web服務(wù)(Webservice)應(yīng)當(dāng)是一個(gè)軟件系統(tǒng),用以支持網(wǎng)絡(luò)間不同機(jī)器的互動(dòng)操作。

Web服務(wù)是一個(gè)用URI(UniformResourceIdentifier)標(biāo)識(shí)的軟件實(shí)體,其接口和綁定可以用XML協(xié)議定義、描述和發(fā)現(xiàn)。

Web服務(wù)通過Internet協(xié)議以基于XML消息,以松散耦合的方式與其它軟件實(shí)體或Web服務(wù)直接通訊。Web服務(wù)的興起Web服務(wù)作為一種新興起的技術(shù),被稱為繼

PC

Internet

之后的第三次計(jì)算機(jī)革命Web服務(wù)

利用標(biāo)準(zhǔn)的

Internet

協(xié)議(如

HTTP,SMTP

等),解決了面向

Web

的分布式計(jì)算的通信問題,而傳統(tǒng)的分布式模型解決的是特定平臺(tái)下的通信問題。Web服務(wù)具有完全的平臺(tái)獨(dú)立性和語言獨(dú)立性,只要遵守

Web

Service

的接口即可進(jìn)行服務(wù)的請求和調(diào)用。4Web服務(wù)的主要思想以后的應(yīng)用將由一組在線服務(wù)組合而成。兩個(gè)相似的服務(wù)使用統(tǒng)一的標(biāo)準(zhǔn)和方法在網(wǎng)絡(luò)上發(fā)布,一個(gè)信息應(yīng)用就可以按照代價(jià)或性能的標(biāo)準(zhǔn),從這兩個(gè)相互競爭的候選服務(wù)中選擇一個(gè)服務(wù)來使用。服務(wù)允許在機(jī)器間復(fù)制,可以通過將特定的服務(wù)復(fù)制到本地存儲(chǔ)庫,從而提高位于特定的計(jì)算機(jī)(群)上的應(yīng)用程序的性能.5Web服務(wù)的本質(zhì)從表像上看,Web服務(wù)就是應(yīng)用程序,它向外界暴露出一個(gè)能夠通過Web訪問方式進(jìn)行調(diào)用的服務(wù)接口。從應(yīng)用程序的角度上看,Web服務(wù)是一種新的Web應(yīng)用程序,是自包含、自描述、模塊化的應(yīng)用程序,可以通過互聯(lián)網(wǎng)特別是Web方式來描述、發(fā)布、查找和調(diào)用。6發(fā)展脈絡(luò)—前期互聯(lián)網(wǎng)一個(gè)以協(xié)議為主的交互世界

底層網(wǎng)絡(luò)協(xié)議和簡單的內(nèi)容傳輸協(xié)議:“桶”到“桶”之間的交換,不觸及“桶”中的內(nèi)容很少觸及7發(fā)展脈絡(luò)—當(dāng)前互聯(lián)網(wǎng)一個(gè)以“文檔的對(duì)象化”形式主導(dǎo)的交互世界O-本體(論域中的標(biāo)準(zhǔn)化概念)Service(instance)-(對(duì)象)Serviceschema-知識(shí)模式(類)Controlled-vocabulary受控詞集(人或機(jī)器理解的含義)8發(fā)展脈絡(luò)—今后互聯(lián)網(wǎng)一個(gè)以價(jià)值為導(dǎo)向的交互世界9未經(jīng)整合、低價(jià)值的資源經(jīng)過整合、高價(jià)值的服務(wù)Web服務(wù)特征完好的封裝性。服務(wù)是一種部署在Web上的對(duì)象,自然具備對(duì)象的良好封裝性,對(duì)于使用者而言,能且僅能看到該對(duì)象提供的功能列表。松散耦合:當(dāng)一個(gè)Web服務(wù)的實(shí)現(xiàn)發(fā)生變更的時(shí)候,調(diào)用者是不會(huì)感到這一點(diǎn)的,對(duì)于調(diào)用者來說,只要服務(wù)的調(diào)用接口不變,服務(wù)實(shí)現(xiàn)任何變更對(duì)他們來說都是透明的。使用標(biāo)準(zhǔn)協(xié)議規(guī)范:作為Web服務(wù),其所有公共的協(xié)約完全需要使用開放的標(biāo)準(zhǔn)協(xié)議進(jìn)行描述、傳輸和交換。這些標(biāo)準(zhǔn)協(xié)議具有完全免費(fèi)的規(guī)范,以便由任意方進(jìn)行實(shí)現(xiàn)。高度可集成能力:由于服務(wù)采取簡單的、易理解的標(biāo)準(zhǔn)協(xié)議作為組件接口描述規(guī)范和協(xié)同描述規(guī)范,完全屏蔽了不同軟件平臺(tái)的差異。10Web服務(wù)優(yōu)勢高度的通用性和易用性:Web服務(wù)利用標(biāo)準(zhǔn)的Internet協(xié)議(如HTTP,SMTP等),解決了面向Web的分布式計(jì)算模式,提高了系統(tǒng)的開放性、通用性和可擴(kuò)展性。完全的平臺(tái)、語言獨(dú)立性:Web服務(wù)進(jìn)行了更高程度的抽象,只要遵守Web服務(wù)的接口即可進(jìn)行服務(wù)的請求與調(diào)用。高度的集成性:Web服務(wù)實(shí)質(zhì)就是通過服務(wù)的組合來完成業(yè)務(wù)邏輯的,因此,表現(xiàn)出了高度的組裝性和集成性.容易發(fā)布和部署:Web服務(wù)體系結(jié)構(gòu)方案通過UDDI,WSDL,SOAP等技術(shù)協(xié)議,能夠很容易實(shí)現(xiàn)系統(tǒng)的部署.11Web服務(wù)架構(gòu)棧12(1)(2)(3)(4)13提綱面向服務(wù)的架構(gòu)SOASOA(Service-OrientedArchitecture)起源SOA不是一個(gè)新概念,通用對(duì)象代理架構(gòu)CORBA和分布式組件對(duì)象模型DCOM被看成是SOA架構(gòu)的前身。1996年,GartnerGroup提出了SOA“預(yù)言”(到2008年,超過60%的企業(yè)將使用SOA作為一個(gè)“指導(dǎo)原則”),因?yàn)楫?dāng)時(shí)的軟件發(fā)展水平和信息化程度還不足支撐此概念進(jìn)入實(shí)質(zhì)性的應(yīng)用階段。SOA可以認(rèn)為是面向?qū)ο蠓治雠c設(shè)計(jì)(OOAD)的合理發(fā)展;也是電子商務(wù)解決方案中,在體系結(jié)構(gòu)、系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)與部署時(shí)所采用的組件化方法的合理發(fā)展。14SOA興起原因(計(jì)算部件的對(duì)象化趨勢)分布式系統(tǒng)的自然發(fā)展系統(tǒng)與運(yùn)算環(huán)境的異質(zhì)性操作環(huán)境的動(dòng)態(tài)性交流設(shè)備細(xì)節(jié)的透明化面向過程需要多重服務(wù)15GartnerGroup關(guān)于SOA的最初概念客戶端/服務(wù)器的軟件設(shè)計(jì)方法,一項(xiàng)應(yīng)用由軟件服務(wù)和軟件服務(wù)使用者組成。SOA與大多數(shù)通用的客戶端/服務(wù)器模型的不同之處,在于它強(qiáng)調(diào)軟件組件的松散耦合,并使用獨(dú)立的標(biāo)準(zhǔn)接口(對(duì)象化趨勢)16SOA的當(dāng)前定義[W3C]SOA的定義:SOA是組件的集合,這些組件能被調(diào)用,并且接口的描述可以發(fā)布和發(fā)現(xiàn)。[維基百科]SOA的定義:SOA是構(gòu)造分布式計(jì)算的應(yīng)用程序的方法。它將應(yīng)用程序功能作為服務(wù)發(fā)送給最終用戶或者其它服務(wù)。它采用開放標(biāo)準(zhǔn)、與軟件資源進(jìn)行交互并采用標(biāo)準(zhǔn)的表示方式。17SOA的當(dāng)前定義(續(xù))當(dāng)代SOA代表一個(gè)開放的、敏捷的、可擴(kuò)展的、可聯(lián)邦的、可組合的架構(gòu),包含了自治的、高服務(wù)質(zhì)量的、廠商多樣性的、可互操作的、可發(fā)現(xiàn)的和潛在可復(fù)用的服務(wù),使用Web服務(wù)來實(shí)現(xiàn)。 ——ThomasErl 《SOA概念、技術(shù)與設(shè)計(jì)》18普遍接受的SOA架構(gòu)19W3C發(fā)布的Web服務(wù)架構(gòu)基本兩種基本角色(服務(wù)提供者和服務(wù)請求者)和一個(gè)可選的服務(wù)注冊中心.三種角色交互,涉及發(fā)布、發(fā)現(xiàn)、綁定操作.SOA架構(gòu)中的角色服務(wù)提供者(serviceprovider):發(fā)布自己的服務(wù),并且使用自身服務(wù)的請求進(jìn)行響應(yīng).服務(wù)代理(servicebroker):可選.注冊與發(fā)布服務(wù)及其提供者,對(duì)其進(jìn)行分類,并提供搜索服務(wù).服務(wù)使用者(servicerequester):利用服務(wù)代理來查找所需服務(wù),進(jìn)而根據(jù)需求使用該服務(wù).20SOA架構(gòu)中的操作發(fā)布(publish):使服務(wù)提供者可以通過向服務(wù)代理注冊自己的功能及訪問接口.查找(find):服務(wù)使用者可以通過服務(wù)代理查找特定的服務(wù).綁定(bind):使服務(wù)使用者能夠調(diào)用或激活服務(wù).21SOA架構(gòu)特點(diǎn)服務(wù)的封裝(encapsulation).將服務(wù)封裝成用于業(yè)務(wù)流程的可重用組件的應(yīng)用程序函數(shù).服務(wù)的互操作(interoperability).通過服務(wù)之間既定的通信協(xié)議進(jìn)行互操作,SOA提供服務(wù)的互操作特性更利于其在多種場合被重用(“服務(wù)”(組織和交互方式)這種抽象協(xié)議).服務(wù)是位置透明的(locationtransparency).服務(wù)請求者不需要知道服務(wù)的具體位置及是哪一個(gè)服務(wù)響應(yīng)了自己的請求.22SOA架構(gòu)特點(diǎn)(續(xù))服務(wù)的重用(reuse).一個(gè)服務(wù)是一個(gè)獨(dú)立的實(shí)體,與底層實(shí)現(xiàn)和用戶的需求完全無關(guān),極大的方便了服務(wù)的重復(fù)使用,從而降低了開發(fā)成本.服務(wù)是自治(autonomous)的功能實(shí)體.服務(wù)是由組件組成的組合模塊,是自包含和模塊化的.服務(wù)之間的松散耦合(looselycoupled).服務(wù)請求者和服務(wù)提供者之間只有接口上的往來,至于服務(wù)內(nèi)部如何更改,如何實(shí)現(xiàn)都與服務(wù)請求者無關(guān)23SOA與Web服務(wù)的聯(lián)系與區(qū)別SOA是一套面向服務(wù)架構(gòu)的標(biāo)準(zhǔn)規(guī)范;Web服務(wù)是一套技術(shù)體系,可以用來建立應(yīng)用解決方案,解決特定的消息通信和應(yīng)用集成問題。SOA是一種軟件架構(gòu),不局限于某個(gè)技術(shù)的組合(例如Web服務(wù))。SOA和Web服務(wù)是一對(duì)關(guān)聯(lián)技術(shù)。24傳統(tǒng)WebService互操作的核心技術(shù)WebService的核心技術(shù)主要包括SOAP、WSDL和UDDI。這三大部分代表了Webservice體系中的三個(gè)層次,分別是:傳輸層、描述層和發(fā)現(xiàn)層。25SOAP(簡單對(duì)象訪問協(xié)議)26SOAP是一種在分布式環(huán)境中進(jìn)行信息轉(zhuǎn)換的輕量級(jí)協(xié)議。作為一種不依賴傳輸協(xié)議、用于在應(yīng)用程序之間以對(duì)象的形式交換數(shù)據(jù)的表示層通信協(xié)議,SOAP是WebServices的核心。主要特征擴(kuò)展性(Extensible)。SOAP定義了一個(gè)框架,允許例如安全、路由和可靠性等特性作為分層擴(kuò)展添加進(jìn)來互操作(Interoperable)。SOAP允許使用任何傳輸協(xié)議傳輸數(shù)據(jù)。獨(dú)立(Independent)于編程模型。SOAP采用XML文本格式,因此可以獨(dú)立于各種編程語言和平臺(tái)。SOAP信息交換模式SOAP消息交換模式(MEP)是指如何根據(jù)通信的需要將多條消息組合成一條整體的消息交換的抽象描述。四種模式:請求-響應(yīng)消息交換模式

一個(gè)SOAP節(jié)點(diǎn)向另一個(gè)SOAP節(jié)點(diǎn)發(fā)送的包含SOAP信息的請求,另一個(gè)節(jié)點(diǎn)返回包含SOAP消息的響應(yīng)27SOAP信息交換模式(續(xù))單一響應(yīng)消息交換模式

一個(gè)SOAP節(jié)點(diǎn)向另一個(gè)SOAP節(jié)點(diǎn)發(fā)送的請求不包含任何SOAP信息,而期望對(duì)方返回SOAP消息。SOAPWeb方法特性

請求-響應(yīng)模式和單一響應(yīng)模式可一起使用,SOAP節(jié)點(diǎn)間互相交流一些額外信息以表示W(wǎng)eb方法的名字。SOAPAction特性

請求響應(yīng)模式和單一響應(yīng)模式可一起使用,SOAP節(jié)點(diǎn)間互相交流一些額外信息以表示其激活標(biāo)志。28SOAP信息交換29ServiceBrokerServiceConsumerServiceProviderhttp

SOAPmessageWSDLdescribingserviceSOAPmessagehttpclientserviceregistryfindpublishDESCRIBEINVOKESOAPSenderSOAPReceiverSOAPSenderSOAPReceiverrequestresponseSOAP協(xié)議組成SOAP由4部分組成:SOAP信封(SOAPEnvelope)構(gòu)造定義了一個(gè)整體的表示框架,可用于表示在消息中的是什么誰應(yīng)當(dāng)處理它是“可選的”還是“強(qiáng)制的”SOAP編碼規(guī)則(SOAPEncodingRules)定義了一套編碼機(jī)制用于表示應(yīng)用程序交換的數(shù)據(jù)實(shí)例SOAPRPC表示(SOAPRPCPresentation)用于表示遠(yuǎn)程過程調(diào)用和響應(yīng)的約定SOAP綁定(SOAPBinding)底層傳輸協(xié)議,用以表示節(jié)點(diǎn)間交換的SOAP信封的約定。30SOAP信息格式31SOAPBodySOAPheaderSOAPenvelopeHeaderblockHeaderdataHeaderdataHeaderdataBodychildelementBodychildelement<env:Envelopexmlns:env="/2003/05/soap-envelope"><env:Header>

<n:alertcontrolxmlns:n="/alertcontrol">

<n:priority>1</n:priority>

<n:expires>2001-06-22T14:00:00-05:00</n:expires> </n:alertcontrol>

</env:Header><env:Body>

<m:alertxmlns:m="/alert">

<m:msg>PickupMaryatschoolat2pm</m:msg>

</m:alert>

</env:Body></env:Envelope>

32SOAP編碼SOAP編碼:將數(shù)據(jù)的值編碼為XML格式對(duì)于應(yīng)用中所定義的數(shù)據(jù)結(jié)構(gòu)和值,SOAP可以將其轉(zhuǎn)換為由節(jié)點(diǎn)和帶有標(biāo)簽的邊組成的圖,稱為數(shù)據(jù)模型,并進(jìn)而通過SOAP編碼規(guī)則將SOAP數(shù)據(jù)模型轉(zhuǎn)換為XML格式。33SOAPRPCSOAP遠(yuǎn)程過程調(diào)用信息描述了方法的請求或者方法的回復(fù)。SOAPXML文檔在服務(wù)器端轉(zhuǎn)換成方法調(diào)用,調(diào)用后的結(jié)果將編碼成為XML文檔返回給服務(wù)請求者。34SOAP請求35目標(biāo)對(duì)象的URI方法的參數(shù)方法名SOAP響應(yīng)36方法名目標(biāo)對(duì)象的URI返回的結(jié)果SOAP協(xié)議綁定SOAP可在任何傳輸協(xié)議上使用,并提供了一種用于定義任意協(xié)議綁定的靈活框架。HTTP使用極為廣泛,也是SOAP協(xié)議綁定對(duì)象的首選。37HTTP請求與回應(yīng)38POST

/Accounts/Henrik

HTTP/1.1

Content-Type:text/xml;charset="utf-8“

Content-Length:nnnn

SOAPAction:"/MyMessage"

<SOAP:Envelope...

HTTP請求HTTP回應(yīng)HTTP/1.1200Ok

Content-Type:text/xml;charset="utf-8“

Content-Length:nnnn

<SOAP:Envelope...

HTTP請求方法HTTP協(xié)議版本HTTP請求資源資源的文本類型以及編碼格式、長度SOAPActionHTTP請求頭字段(指示SOAPHTTP請求的目的,它的值是一個(gè)標(biāo)識(shí)該目的的URI)SOAP信息2XX狀態(tài)碼表示成功返回SOA架構(gòu)

39WSDLWSDL(Webservicesdescriptionlanguage)是以XML格式來描述Web服務(wù)接口,指定Web服務(wù)的位置、操作方法等信息的描述語言。使用者使用WSDL就可以使用Web服務(wù),而不必關(guān)心服務(wù)的實(shí)現(xiàn)細(xì)節(jié)。40WSDL構(gòu)成元素WSDL文檔包含7個(gè)關(guān)鍵的構(gòu)成元素:<definitions><types><message><operation><portType><binding><port><service><types>、<message>、<operation>和<portType>元素是抽象定義,與具體的WebService部署細(xì)節(jié)無關(guān),可以被重用;而<binding>、<port>和<service>元素是WebService的具體描述,其中定義了WebService的技術(shù)細(xì)節(jié)41WSDL文檔結(jié)構(gòu)示例代碼:WeatherWebService.wsdl是天氣預(yù)報(bào)WebService的WSDL文檔,具體含義分析如下:

<definitions>

該元素用來定義WSDL文檔的名稱,引入需要的XML命名空間42<definitionsname="Weather" xmlns="/wsdl/" xmlns:soap="/wsdl/soap/"

xmlns:tns="/Weather/" xmlns:xsd="/2001/XMLSchema"

targetNamespace="/Weather/"><types>元素規(guī)定了與消息相關(guān)的數(shù)據(jù)類型的定義

43<types><xsd:schematargetNamespace="/Weather/">

<xsd:elementname="WeatherRequest"><xsd:complexType><xsd:sequence><xsd:elementname="city"type="xsd:string"/><xsd:elementname="date"type="xsd:date"/></xsd:sequence></xsd:complexType></xsd:element><xsd:elementname="WeatherResponse"><xsd:complexType><xsd:sequence><xsd:elementname="temperature"type="xsd:int"/><xsd:elementname="humidity"type="xsd:int"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema></types><message>

<message>(消息)元素定義了傳遞的消息的數(shù)據(jù)結(jié)構(gòu)<portType>

<portType>(端口類型)元素是抽象操作和抽象消息的組合44<messagename="getWeatherRequest"> <partelement="tns:WeatherRequest"name="parameters"/></message><messagename="getWeatherResponse"> <partelement="tns:WeatherResponse"name="parameters"/></message><portTypename="Weather"> <operationname="getWeather"> <inputmessage="tns:getWeatherRequest"/> <outputmessage="tns:getWeatherResponse"/> </operation></portType><binding>

<binding>(綁定)元素用來具體化<portType>元素,其中定義了<portType>元素中的操作和消息的格式與協(xié)議等45<bindingname="WeatherSOAP"type="tns:Weather"> <soap:bindingstyle="document" transport="/soap/http"/> <operationname="getWeather"> <soap:operation

soapAction="/Weather/getWeather"/> <input> <soap:bodyuse="literal"/> </input> <output> <soap:bodyuse="literal"/> </output> </operation></binding><service>

<service>(服務(wù))元素指定了WebService的位置。一個(gè)<service>元素可以包含多個(gè)<port>(端口)元素,端口的集合構(gòu)成了service。weather.wsdl中的<service>元素如下:46<servicename="Weather"> <portbinding="tns:WeatherSOAP"name="WeatherSOAP">

<soap:addresslocation="/"/> </port></service>WSDL綁定WSDL綁定可為webservice定義消息格式和協(xié)議細(xì)節(jié)。WSDL規(guī)范中定義了3種綁定擴(kuò)展:SOAP綁定HTTPGETPOST綁定MIME綁定其中SOAP綁定是最常用的一種方式。47SOAP綁定48<binding

name="WeatherSOAP"

type="tns:Weather"> <soap:binding

style="document" transport="/soap/http"/> <operationname="getWeather"> <soap:operation soapAction="/Weather/getWeather"/> <input> <soap:bodyuse="literal"/> </input> <output> <soap:bodyuse="literal"/> </output> </operation></binding>綁定名,命名空間不重復(fù)指出綁定是針對(duì)SOAP協(xié)議格式的指出操作是面向RPC(消息包含參數(shù)和返回值)的還是面向文檔的(消息包含文檔)使用的SOAP協(xié)議指出綁定是針對(duì)SOAP協(xié)議格式的此URI應(yīng)當(dāng)被直接用作SOAPAction頭的值給出輸入、輸出消息的編碼為literalUDDIUDDI是通過因特網(wǎng)描述服務(wù)、發(fā)現(xiàn)服務(wù)并且集成商業(yè)服務(wù)的一個(gè)獨(dú)立于平臺(tái)的框架。UDDI代表著普遍化的描述、發(fā)現(xiàn)和集成。UDDI是一個(gè)存儲(chǔ)Web服務(wù)的目錄,使用WSDL描述Web服務(wù)接口。49四種核心數(shù)據(jù)類型businessEntity(描述發(fā)布服務(wù)組織的信息)businessService(描述服務(wù)的業(yè)務(wù)功能)bindingTemplate(描述服務(wù)的技術(shù)細(xì)節(jié))tModel(其他各種屬性)新的數(shù)據(jù)類型(2.0/3.0)publisherAssertion–描述所注冊的服務(wù)之間的關(guān)系Subscription–跟蹤一組實(shí)體的變更50UDDI數(shù)據(jù)結(jié)構(gòu)51BusinessEntity企業(yè)碼,企業(yè)名,聯(lián)系方式,描述信息,

分類BusinessService服務(wù)碼,企業(yè)碼,服務(wù)名描述信息及分類BindingTemplate綁定碼,服務(wù)碼,

描述信息,描述信息,接入點(diǎn)tModel模型名,描述信息,

概述文檔,

指向WSDL文檔的指針WSDL文檔外部Web服務(wù)的接口描述UDDI如何工作522)將服務(wù)的描述注冊到UDDI注冊中心UDDIBusinessRegistry3)

UDDI注冊中心給每個(gè)實(shí)體指定一個(gè)唯一的標(biāo)識(shí)符4)電子交易場所和搜索引擎等客戶機(jī)與商業(yè)應(yīng)用程序使用UDDI注冊中心來發(fā)現(xiàn)它們感興趣的服務(wù)1)軟件公司、程序員等將tModel發(fā)布到UDDI注冊中心5)企業(yè)調(diào)用這些服務(wù),簡便地進(jìn)行動(dòng)態(tài)集成注冊信息53企業(yè)與服務(wù)的注冊信息:白頁:表示企業(yè)的基本信息,如企業(yè)的名稱、經(jīng)營范圍描述、聯(lián)系信息等。黃頁:通過多種具有分類功能的分類法系統(tǒng)產(chǎn)生的類別劃分,使得使用者能夠在更大的范圍內(nèi)查找在注冊中心注冊的企業(yè)或者服務(wù)。綠頁:與服務(wù)相關(guān)聯(lián)的綁定信息,并提供了指向這些服務(wù)所實(shí)現(xiàn)的技術(shù)規(guī)范的引用.Web服務(wù)工作流程54JAXR(JavaAPIforXMLRegistries)WS-BPEL55WS-BPEL(WebServicesBusinessProcessExecutionLanguage)是一種基于XML來描述高層業(yè)務(wù)流程的編程語言,被描述的業(yè)務(wù)流程的每個(gè)單一步驟由Web服務(wù)實(shí)現(xiàn)。原名是BPEL4WS,2002年由IBM、Microsoft、BEA合作開發(fā)。2007改名為WS-BPEL。目前版本是2.0本質(zhì)上是將一組Web服務(wù)整合在一起以形成一個(gè)新的Web服務(wù)。WS-BPEL基本結(jié)構(gòu)<process>//流程定義的根元素 <partnerLinks>//描述業(yè)務(wù)流程與伙伴的關(guān)系 <partnerLink> .......... </partnerLink> </partnerLinks>

<variables>//通過變量表示合作伙伴間生成與傳遞的信息 ............ </variables> <sequence> //一組順序執(zhí)行的活動(dòng) ............. </sequence></process>56WS-BPEL建模工具和引擎ActiveEndpointsActiveBPELengineActiveBPELDesignerOracleBPELProcessManagerIBMWebSphereBusinessIntegrationServerFoundationBEAWebLogicIntegration\AquaLogicApacheODE開源WS-BPEL引擎57ApacheODE開源WS-BPEL引擎ApacheODE是一個(gè)WS-BPEL兼容的Web服務(wù)編配引擎,它可以使開發(fā)人員根據(jù)以BPELXML語法寫成的過程描述來編配Web服務(wù)。58基于ApacheODE的Web服務(wù)組合59一、加法服務(wù)(Add_Service)輸入double類變量a、b,輸出結(jié)果a+b;二、減法服務(wù)(Sub_Service)輸入double類變量a、b

,輸出結(jié)果a-b;三、將這兩個(gè)服務(wù)組合為一個(gè)新服務(wù)輸入double類變量a、b和字符串變量c,如果c=add,輸出結(jié)果為a+b;如果c=sub,輸出結(jié)果為a-b;基于ApacheODE的Web服務(wù)組合60基于ApacheODE的Web服務(wù)組合組合后的Web服務(wù)運(yùn)行結(jié)果:6162提綱服務(wù)案例開發(fā)案例-基于IP地址的氣象查詢服務(wù)案例通過BPEL組裝IP2Location(根據(jù)IP地址查出所在地的城市名和國名)和GlobalWeather(根據(jù)城市名和國名給出天氣信息)兩個(gè)獨(dú)立的Web服務(wù),使得兩個(gè)服務(wù)能夠自動(dòng)地串行調(diào)用,并將整合了的流程發(fā)布為WeatherByIP服務(wù)。63業(yè)務(wù)用例客戶端向WeatherByIP服務(wù)請求某一個(gè)IP所在地的天氣信息當(dāng)WeatherByIP服務(wù)取得目標(biāo)IP后,將參數(shù)傳給IP2Location服務(wù)IP2Location服務(wù)根據(jù)IP地址查出所在地的城市名和國名,將此消息傳遞給GlobalWeather服務(wù)GlobalWeather服務(wù)通過城市名和國家名查詢當(dāng)?shù)氐奶鞖庑畔?,并將反饋信息傳回WeatherByIP服務(wù)WeatherByIP服務(wù)最終向用戶輸出目標(biāo)IP所在地的天氣情況。64ClientWeatherByIPServiceGlobalWeatherServiceIP2LocationServiceTargetedIPWeatherInfoLocationInfoTargetedIPWeatherInfo訪問流程(1)(2)(3)(4)(5)65開發(fā)環(huán)境NetBeansIDE5.5withNetBeansEnterprisePack5.5SunjavaSystemApplicationServerPlatformEdition9Update1PartnerServicesIP2LocationService服務(wù)地址:http:///ip2locationwebservice.asmxWSDL地址:http:///ip2locationwebservice.asmx?wsdlGlobalWeatherService服務(wù)地址:/globalweather.asmxWSDL地址: http://www.webservicex.net/globalweather.asmx?wsdl66IP2Location接口類型67SOAPHttpGetHttpPostIP2Location輸入消息結(jié)構(gòu)68輸入信息IP2Location輸出消息結(jié)構(gòu)69可輸出信息GlobalWeather接口類型70GetWeather輸入消息結(jié)構(gòu)71輸入信息GetWeather輸出消息結(jié)構(gòu)72輸出信息WeatherByIPService的XMLSchema為了使整個(gè)流程的輸入格式與輸出消息格式保持一致,需在XMLSchema文檔中規(guī)定服務(wù)的輸入和輸出消息結(jié)構(gòu)。主要來自IP2LocationService的輸入消息格式和GlobalWeatherService的輸出消息格式。73XMLSchema圖形化表示74WeatherByIP的服務(wù)描述接口類型和操作:輸入消息結(jié)構(gòu):75輸出消息結(jié)構(gòu):BPEL流程是業(yè)務(wù)流程的物理實(shí)現(xiàn),通過服務(wù)間的消息傳遞,實(shí)現(xiàn)相互調(diào)用和流程組合BPEL流程描述76BPEL變量映射在BPEL把消息從一個(gè)service傳遞給另一個(gè)service時(shí),需要定義不同服務(wù)間的消息變量的映射關(guān)系消息傳遞通過Assign活動(dòng)來實(shí)現(xiàn)。Assign1從WeatherByIP服務(wù)的輸入到IP2Location服務(wù)的輸入Assign2從IP2Location服務(wù)的輸出到GlobalWeather服務(wù)的輸入Assign3從GlobalWeather服務(wù)的輸出到WeatherByIP的輸出77測試輸入的SOAP消息:輸出的SOAP消息:7879提綱服務(wù)開發(fā)方法開發(fā)范式的變遷結(jié)構(gòu)化程序設(shè)計(jì)面向?qū)ο蟮能浖_發(fā)基于組件的軟件開發(fā)面向服務(wù)的軟件開發(fā)(對(duì)象化+開放式)從單機(jī)系統(tǒng)、分布式系統(tǒng)、異構(gòu)分布式系統(tǒng),軟件的規(guī)模與復(fù)雜度逐漸提高,模塊耦合度逐步降低(對(duì)象化+開放式)。80面向服務(wù)的軟件開發(fā)特點(diǎn)兩個(gè)視圖:服務(wù)提供者視圖:關(guān)心服務(wù)如何實(shí)現(xiàn)、封裝、發(fā)布、管理服務(wù)消費(fèi)者視圖:關(guān)心服務(wù)如何組合滿足業(yè)務(wù)需求面向重用的開發(fā)DevelopmentforreuseReuse-basedDevelopment業(yè)務(wù)敏捷的開發(fā)快速構(gòu)建適應(yīng)發(fā)展81Web服務(wù)開發(fā)生命周期IBM將服務(wù)的生命周期分為建模、組裝、部署和管理四個(gè)階段,而SOA理念和最佳實(shí)踐貫穿每個(gè)階段。治理和最佳實(shí)踐為SOA工程提供指導(dǎo)和監(jiān)管,支撐整個(gè)生命周期的各個(gè)階段。82建模Model建模階段主要是收集和分析業(yè)務(wù)需求,建立和優(yōu)化業(yè)務(wù)流程,并設(shè)計(jì)軟件服務(wù)的流程。業(yè)務(wù)模型的建立是此階段的主要工作。83組裝Assemble在服務(wù)組合階段,主要是根據(jù)業(yè)務(wù)模型,利用已有的服務(wù)資源庫和業(yè)務(wù)解決方案,發(fā)現(xiàn)服務(wù)、創(chuàng)建服務(wù)和集成服務(wù)的過程。84部署Deploy在部署階段,主要是將服務(wù)以及集成的業(yè)務(wù)流程部署到運(yùn)行環(huán)境中,通過控制中心配置和優(yōu)化運(yùn)行環(huán)境,使其能夠滿足業(yè)務(wù)所需的不同服務(wù)水平要求。85提供一定的靈活性,以支持服務(wù)和業(yè)務(wù)流程的動(dòng)態(tài)更新以適應(yīng)不斷變化的業(yè)務(wù)需求。管理Manage管理階段提供對(duì)底層服務(wù)資源的管理,并實(shí)時(shí)監(jiān)測主要的性能指標(biāo)以獲得預(yù)防、隔離、分析和修復(fù)問題的信息。86及時(shí)了解系統(tǒng)的狀態(tài),并為業(yè)務(wù)建模和業(yè)務(wù)流程的持續(xù)改進(jìn)提供重要的反饋信息。服務(wù)提供者的開發(fā)方法零起點(diǎn)方法。為新Web服務(wù)創(chuàng)建新的服務(wù)接口,服務(wù)接口和服務(wù)實(shí)現(xiàn)都?xì)w服務(wù)提供者所有。自頂向下方法。開發(fā)一個(gè)與現(xiàn)有服務(wù)接口一致的新Web服務(wù)。這類服務(wù)接口通常是業(yè)界標(biāo)準(zhǔn)的一部分,可以被許多服務(wù)提供者實(shí)現(xiàn)。服務(wù)接口不能歸服務(wù)提供者所有。87服務(wù)提供者的開發(fā)方法(續(xù))自底向上方法。用于為現(xiàn)有的應(yīng)用程序創(chuàng)建新的服務(wù)接口。服務(wù)接口是從應(yīng)用程序的應(yīng)用程序編程接口(applicationprogramminginterface,API)派生出來的。中間相遇方法。當(dāng)服務(wù)接口已經(jīng)存在,并且用作Web服務(wù)的應(yīng)用程序也已經(jīng)存在時(shí),將使用中間相遇這種Web服務(wù)開發(fā)方法。主要任務(wù)是將現(xiàn)有的應(yīng)用程序接口映射到服務(wù)接口定義中定義的那些應(yīng)用程序接口。88服務(wù)請求者的開發(fā)方法靜態(tài)綁定。靜態(tài)綁定是在構(gòu)建時(shí)通過為服務(wù)請求者將使用的單個(gè)Web服務(wù)定位服務(wù)實(shí)現(xiàn)定義構(gòu)建的。構(gòu)建時(shí)動(dòng)態(tài)綁定。當(dāng)服務(wù)請求者想使用特定類型的Web服務(wù),但在運(yùn)行時(shí)之前實(shí)現(xiàn)是未知的,或者實(shí)現(xiàn)可以在運(yùn)行時(shí)發(fā)生改變,這時(shí)將使用這類綁定。這類服務(wù)定義在服務(wù)接口定義中。運(yùn)行時(shí)動(dòng)態(tài)綁定。這類綁定的不同之處在于服務(wù)接口是在運(yùn)行時(shí)被發(fā)現(xiàn)的。找到服務(wù)接口后,就生成、編譯,然后執(zhí)行代理代碼。89服務(wù)設(shè)計(jì)方法中的原則服務(wù)的名稱要方便使用者服務(wù)的操作不能太多或者太少服務(wù)的操作應(yīng)該是內(nèi)聚的和完全的服務(wù)應(yīng)該對(duì)實(shí)現(xiàn)的細(xì)節(jié)進(jìn)行封裝服務(wù)應(yīng)該適應(yīng)多種調(diào)用模式服務(wù)的操作應(yīng)該是無狀態(tài)的服務(wù)應(yīng)該使用有狀態(tài)的事務(wù)進(jìn)行建模服務(wù)的操作應(yīng)該代表業(yè)務(wù)動(dòng)作服務(wù)操作的參數(shù)應(yīng)該是粗粒度的。9091提綱云計(jì)算云計(jì)算云計(jì)算(CloudComputing),是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過這種方式,共享的軟硬件資源和信息可以按需求提供給計(jì)算機(jī)和其他設(shè)備。云計(jì)算描述了一種基于互聯(lián)網(wǎng)的新的IT服務(wù)增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動(dòng)態(tài)擴(kuò)展而且經(jīng)常是虛擬化的資源。92云計(jì)算中的服務(wù)特征隨需自助服務(wù)。隨時(shí)隨地用任何網(wǎng)絡(luò)設(shè)備訪問。多人共享資源池??焖僦匦虏渴痨`活度??杀槐O(jiān)控與量測的服務(wù)。基于虛擬化技術(shù)快速部署資源或獲得服務(wù)。減少用戶終端的處理負(fù)擔(dān)。降低了用戶對(duì)于IT專業(yè)知識(shí)的依賴。93云計(jì)算服務(wù)的概觀94云計(jì)算服務(wù)模式軟件即服務(wù)(SaaS)平臺(tái)即服務(wù)(PaaS)基礎(chǔ)架構(gòu)即服務(wù)(IaaS)95軟件即服務(wù)(SaaS)消費(fèi)者使用應(yīng)用程序,但并不掌控操作系統(tǒng)、硬件或運(yùn)作的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。是一種服務(wù)觀念的基礎(chǔ),軟件服務(wù)供應(yīng)商,以租賃的概念提供客戶服務(wù),而非購買,比較常見的模式是提供一組帳號(hào)密碼。例如:MicrosoftCRM與S。96平臺(tái)即服務(wù)(PaaS)消費(fèi)者使用主機(jī)操作應(yīng)用程序。消費(fèi)者掌控運(yùn)作應(yīng)用程序的環(huán)境(也擁有主機(jī)部分掌控權(quán)),但并不掌控操作系統(tǒng)、硬件或運(yùn)作的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。平臺(tái)通常是應(yīng)用程序基礎(chǔ)架構(gòu)。例如:GoogleAppEngine。97基礎(chǔ)架構(gòu)即服務(wù)(IaaS)消費(fèi)者使用“基礎(chǔ)計(jì)算資源”,如處理能力、存儲(chǔ)空間、網(wǎng)絡(luò)組件或中間件。消費(fèi)者能掌控操作系統(tǒng)、存儲(chǔ)空間、已部署的應(yīng)用程序及網(wǎng)絡(luò)組件(如防火墻、負(fù)載平衡器等),但并不掌控云基礎(chǔ)架構(gòu)。例如:AmazonAWS、Rackspace。98云計(jì)算服務(wù)的部署模型公用云(PublicCloud) 簡而言之,公用云服務(wù)可通過網(wǎng)絡(luò)及第三方服務(wù)供應(yīng)者,開放給客戶使用,“公用”一詞并不一定代表“免費(fèi)”,但也可能代表免費(fèi)或相當(dāng)廉價(jià),公用云并不表示用戶數(shù)據(jù)可供任何人查看,公用云供應(yīng)者通常會(huì)對(duì)用戶實(shí)施使用訪問控制機(jī)制,公用云作為解決方案,既有彈性,又具備成本效益。私有云(PrivateCloud) 私有云具備許多公用云環(huán)境的優(yōu)點(diǎn),例如彈性、適合提供服務(wù),兩者差別在于私有云服務(wù)中,數(shù)據(jù)與程序皆在組織內(nèi)管理,且與公用云服務(wù)不同,不會(huì)受到網(wǎng)絡(luò)帶寬、安全疑慮、法規(guī)限制影響;此外,私有云服務(wù)讓供應(yīng)者及用戶更能掌控云基礎(chǔ)架構(gòu)、改善安全與彈性,因?yàn)橛脩襞c網(wǎng)絡(luò)都受到特殊限制。99云計(jì)算服務(wù)的部署模型(續(xù))社區(qū)云(CommunityCloud)社區(qū)云由眾多利益相仿的組織掌控及使用,例如特定安全要求、共同宗旨等。社區(qū)成員共同使用云數(shù)據(jù)及應(yīng)用程序?;旌显疲℉ybridCloud) 混合云結(jié)合公用云及私有云,這個(gè)模式中,用戶通常將非企業(yè)關(guān)鍵信息外包,并在公用云上處理,但同時(shí)掌控企業(yè)關(guān)鍵服務(wù)及數(shù)據(jù)。100101提綱語義Web服務(wù)WWWURI,HTML,HTTPBringingthewebtoitsfullpotentialSemanticWebRDF,RDF(S),OWLDynamicWebServicesUDDI,WSDL,SOAPStaticSemanticWebServicesMotivationofSemanticWebService

SemanticWebTechnology+WebServiceTechnologySemanticWebServices=SemanticWebServices

allowmachinesupporteddatainterpretationontologiesasdatamodelautomateddiscovery,selection,composition,andweb-basedexecutionofservicesasintegratedsolutionforrealizingthevisionofthenextgenerationoftheWeb.SemanticWebServicesDefineexhaustivedescriptionframeworksfordescribingWebServicesandrelatedaspects(WebServiceDescriptionOntologies)Supportontologiesasunderlyingdatamodeltoallowmachinesupporteddatainterpretation(SemanticWebaspect)DefinesemanticallydriventechnologiesforautomationoftheWebServiceusageprocess(WebServiceaspect)

SemanticWebServicesUsageProcess:Publication:MaketheavailabledescriptionofthecapabilityofaserviceDiscovery:LocatedifferentservicessuitableforagiventaskSelection:ChoosethemostappropriateservicesamongtheavailableonesComposition:CombineservicestoachieveagoalMediation:Solvemismatches(data,protocol,process)amongthecombinedExecution:Invokeservicesfollowingprogrammaticconventions

SemanticWebServicesExecutionsupport:Monitoring:ControltheexecutionprocessCompensation:ProvidetransactionalsupportandundoormitigateunwantedeffectsReplacement:FacilitatethesubstitutionofservicesbyequivalentonesAuditing:VerifythatserviceexecutionoccurredintheexpectedwaySemanticWebServicesWithSemantic:Notonlyaninterfacedescription,butalsothecapabilityoftheservice.Logicreasoningenhancedservicediscoveryandcomposition.Canbedoneautomatically.OWL-S:OntologyWebLanguageforServicesWSMLWSDL-S…語義Web服務(wù)標(biāo)記語言O(shè)ntologyOWL-SisanOWLontologytodescribeWebservicesOWL-SleveragesonOWLtoSupportcapabilitybaseddiscoveryofWebservicesSupportautomaticcompositionofWebServicesSupportautomaticinvocationofWebservices"Completedonotcompete"OWL-SdoesnotaimtoreplacetheWebservicesstandards ratherOWL-SattemptstoprovideasemanticlayerOWL-SreliesonWSDLforWebserviceinvocation(seeGrounding)OWL-sExpandsUDDIforWebservicediscovery(OWL-S/UDDImapping)OWL-S概述OWL-S整體結(jié)構(gòu)ResourceServiceService

ProfileService

ModelService

Groundingcommunicationprotocol(RPC,HTTP,…)portnumbermarshalling/serializationinputtypesoutputtypespreconditionseffectsprocessflowcompositionhierarchyprocessdefinitionsprovidespresents(whatitdoes)describedby

(howitworks)

supports

(howtoaccess)服務(wù)概要ResourceServiceService

ProfileService

ModelService

Groundingprovidespresents(whatitdoes)describedby

(howitworks)

supports

(howtoaccess)服務(wù)概要

ServiceProfilePresentedbyaservice.RepresentswhattheserviceprovidesTwomainuses:AdvertisementsofWebServicescapabilities(non-functionalproperties,QoS,Description,classification,etc.)RequestofWebserviceswithagivensetofcapabilitiesProfiledoesnotspecifyuse/invocation!NonFunctionalPropertiesFunctionalityDescription服務(wù)概要SummarizestheabstractcapabilityofaserviceFunctionalspecificationof

whattheserviceprovides

intermsofparameters,

subclassedas:preconditionsinputsoutputseffects服務(wù)概要—功能性描述PreconditionsSetofconditionsthatshouldholdpriortoserviceinvocationInputsSetofnecessaryinputsthattherequestershouldprovidetoinvoketheserviceOutputsResultsthattherequestershouldexpectafterinteractionwiththeserviceprovideriscompletedEffectsSetofstatementsthatshouldholdtrueiftheserviceisinvokedsuccessfullyOftenrefertoreal-worldeffectsPackagebeingdelivered,orCreditcardbeingdebited服務(wù)概要—功能性描述:參數(shù)ProvidessupportinginformationabouttheserviceTheseincludeserviceNametextDescriptionhas_processqualityRatingserviceParameterserviceCategorycontactInformation服務(wù)概要—非功能性描述Sub-classingtheProfilemodelfacilitatesthecreationandspecialisationofservicecategoriesEachsubclasscan:IntroducenewpropertiesPlacerestrictionsonexistingpropertiesSub-classingcanalsobeusedtospecialiserequestsforserviceAnexampleProfileHierarchyisprovided,butotherscouldjustaseasilybedefined服務(wù)概要層次服務(wù)概要層次:例子ResourceServiceService

ProfileService

ModelService

Groundingprovidespresents(whatitdoes)describedby

(howitworks)

supports

(howtoaccess)服務(wù)模型ServiceProcessDescribeshowaserviceworks:internalprocessesoftheserviceSpecifiesserviceinteractionprotocolSpecifiesabstractmessages:ontologicaltypeofinformationtransmittedFacilitates(automated)Webserviceinvocationcompositioninteroperationmonitoring服務(wù)模型:描述方法ThebasicclassoftheProcessOntologyistheProcess.Itssubclassesdescribeeachprocessby:anynumberof(possibly,conditional)inputs;anynumberof(possibly,conditional)outputs;anynumberofpreconditions,whichmustholdinorderfortheprocesstobeinvoked;anynumberof(possibly,conditional)sideeffects;anynumberofparticipants(subprocess)服務(wù)模型:過程本體Atomicprocesses:directlyinvokable(byanagent),havenosubprocesses,executedinasinglestepCompositeprocesses:consistofother(non-compositeorcomposite)processes

TheyhaveacomposedOfproperty,bywhichthecontrolstructureoftheprocessisindicated,usingaControlConstruct

subclasses(seetable…)Simpleprocesses:abstractconcepts,usedtoprovideaviewofsomeatomicprocess,orasimplifiedrepresentationofsomecompositeprocess(i.e.,the“blackbox”viewofacollapsedcompositeprocess)服務(wù)模型:OWL-S中的過程類型服務(wù)模型:總體結(jié)構(gòu)ConstructDescriptionSequenceExecutealistofprocessesinasequentialorderConcurrentExecuteelementsofabagofprocessesconcurrentlySplitInvokeelementsofabagofprocessesSplit+JoinInvokeelementsofabagofprocessesandsynchronizeUnorderedExecuteallprocessesinabaginanyorderChoiceChoosebetweenalternativesandexecuteoneIf-then-elseIfspecifiedconditionhold,execute“Then”,elseexecute“Else”.Repeat-UntilIterateexecutionofabagofprocessesuntilaconditionholdsRepeat-WhileIterateexecutionofabagofprocesseswhileaconditionholds服務(wù)模型:過程中的控制結(jié)構(gòu)<!–AtomicProcessDefinition-GetDesiredFlightDetails

--><rdfs:Classrdf:ID=“GetDesiredFlightDetails”> <rdfs:subClassOf

rdf:resource= “/Process#AtomicProcess”/></rdfs:Class>GetDesiredFlightDetailsAirportFlightDateAtomicProcessdepartureAirport_InoutboundDate_InAtomicProcessExample<!–(sample)Inputsusedbyatomicprocess

GetDesiredFlightDetails--><rdf:Propertyrdf:ID="departureAirport_In">

<rdfs:subPropertyOf

rdf:resource= "http:///Process#input"/> <rdfs:domain

rdf:resource="#GetDesiredFlightDetails"/> <rdfs:range

rdf:resource="/ont/ DAML-S/concepts.daml#Airport"/></rdf:Property><rdf:Propertyrdf:ID="outbounDate_In">

<rdfs:subPropertyOf

rdf:resource="http:///Process#input"/><rdfs:domain

rdf:resource="#GetDesiredFlightDetails"/>

<rdfs:range

rdf:resource="/ont/DAML-S/concepts.daml#FlightDate"/></rdf:Property>AtomicProcessExample<rdfs:Classrdf:ID="BookFlight"><rdfs:subClassOf

rdf:resource="#CompositeProcess"/><rdfs:subClassOf

rdf:resource="/Process#Sequence"/><daml:subClassOf><daml:Restriction><daml:onProperty

rdf:resource="/Process#components"/><daml:toClass><daml:subClassOf><daml:unionOfrdf:parseType="daml:collection"><rdfs:Class

rdfs:about="#GetFlightDetails"/><rdfs:Class

rdfs:about="#GetContactDetails"/><rdfs:Class

rdfs:about="#ReserveFlight"/><rdfs:Class

rdfs:about="#ConfirmReservation"/></daml:unionOf></daml:subClassOf></daml:toClass></daml:Restriction></daml:subClassOf></rdfs:Class>CompositeProcessConfirmReservationBookFlightGetContactDetailsSequenceGetFlightDetailsReserveFlightSequenceSequenceCompositeProcessExampleResourceServiceService

ProfileService

ModelService

Groundingprovidespresents(whatitdoes)describedby

(howitworks)

supports

(howtoaccess)服務(wù)基點(diǎn)ServiceGroundingProvidesaspecificationofserviceaccessinformationServiceModel+GroundinggiveeverythingneededforusingtheserviceBuildsuponWSDL

todefinemessagestructureandphysicalbindinglayerSpecifies:communicationprotocols,transportmechanisms,agentcommunicationlanguages,etc.服務(wù)基點(diǎn)Resources/ConceptsWSDLOWL-SProcessModelAtomicProcessOperationMessageInputs/OutputsBindingtoSOAP,HTTP,etc.OWL-S/WSDLBindingOWL-S/WSDLBinding132提綱高級(jí)專題高級(jí)專題(探索性的幾個(gè)議題)1331、服務(wù)推薦

2、服務(wù)組合

3、服務(wù)演化

4、服務(wù)統(tǒng)計(jì)服務(wù)推薦的背景134Web服務(wù)由于其良好的互操作性、平臺(tái)獨(dú)立性受到了學(xué)術(shù)及業(yè)界的青睞。面向服務(wù)的計(jì)算改變了傳統(tǒng)的軟件開發(fā)、交互、使用的方式,形成了軟件工程和分布式計(jì)算的新型范式。

同時(shí)也帶來了若干新的挑戰(zhàn),例如:

大量服務(wù)涌現(xiàn),面對(duì)多個(gè)功能相似的服務(wù),用戶如何進(jìn)行服務(wù)選擇?服務(wù)推薦技術(shù)特征的發(fā)展1351、基于QoS建模的服務(wù)推薦2、QoS動(dòng)態(tài)性建模3、基于協(xié)同過濾的服務(wù)推薦4、基于情景感知QoS預(yù)測的個(gè)性化服務(wù)推薦基于QoS建模的服務(wù)推薦常見的(Qos)服務(wù)評(píng)價(jià)因子:執(zhí)行代價(jià)、響應(yīng)時(shí)間、可靠性、可用性、信譽(yù)度、吞吐率模型的局限性:

多數(shù)情況下的前提假設(shè)是:所有的QoS數(shù)據(jù)可以從服務(wù)提供者獲取并且數(shù)據(jù)是穩(wěn)定的(不需要考慮動(dòng)態(tài)性)。由于網(wǎng)絡(luò)開放性、動(dòng)態(tài)性,Web服務(wù)的Qos信息是動(dòng)態(tài)變化的(需要考慮動(dòng)態(tài)性)136服務(wù)推薦技術(shù)特征的發(fā)展1、基于QoS建模的服務(wù)推薦2、QoS動(dòng)態(tài)性建模3、基于協(xié)同過濾的服務(wù)推薦4、基于情景感知QoS預(yù)測的個(gè)性化服務(wù)推薦137QoS動(dòng)態(tài)性建模的服務(wù)推薦QoS數(shù)據(jù)的收集與更新(非歷史和上下文的)

研究示范(1)ResearchontoolforservicequalitymeasurementofWebServices.主要工作:提出了一種基于APIHook收集QoS數(shù)據(jù)的方法(2)Random-QoS-AwareReliableWebServiceComposition.主要工作:將QoS的評(píng)價(jià)因子映射為一組隨機(jī)變量,用數(shù)學(xué)期望、方差來衡量評(píng)價(jià)因子的值,不僅僅計(jì)算歷史記錄值的平均值。(3)AnApproachforMeasuringQualityofWebServicesBasedontheSuperpositionofUncertainFactors.主要工作:基于非確定因素疊加的web服務(wù)評(píng)價(jià)方法。局限性:雖然反映了Web服務(wù)的動(dòng)態(tài)特征,但沒考慮不同用戶之間使用經(jīng)驗(yàn)的不同(即用戶使用服務(wù)中關(guān)注的上下文)。138服務(wù)推薦技術(shù)特征的發(fā)展1、基于QoS建模的服務(wù)推薦2、QoS動(dòng)態(tài)性建模3、基于協(xié)同過濾的服務(wù)推薦4、基于情景感知QoS預(yù)測的個(gè)性化服務(wù)推薦139基于協(xié)同過濾的服務(wù)推薦研究示范(非上下文的)(1)Reputation-basedrecommenderdiscoveryapproachforserviceselection.主要工作:將信任網(wǎng)絡(luò)劃分為若干個(gè)性化的信任網(wǎng)絡(luò),通過信任度的迭代傳播,篩選出信任度高的推薦者。(2)WebserviceQoSpredictionapproach主要工作:通過用戶間Qos數(shù)據(jù)的使用經(jīng)驗(yàn)的相似性計(jì)算,篩選出歷史Qos數(shù)據(jù)與服務(wù)請求者歷史Qos數(shù)據(jù)最相近的用戶及其歷史Qos記錄。局限性:

考慮到了用戶的歷史使用經(jīng)驗(yàn),但是沒有考慮用戶進(jìn)行服務(wù)調(diào)用時(shí)的情景,例如操作系統(tǒng)、內(nèi)存、CPU、網(wǎng)絡(luò)的帶寬、安全性等情況。140服務(wù)推薦技術(shù)特征的發(fā)展1、基于QoS建模的服務(wù)推薦2、QoS動(dòng)態(tài)性建模3、基于協(xié)同過濾的服務(wù)推薦4、基于情景感知QoS預(yù)測的個(gè)性化服務(wù)推薦141基于情景感知QoS預(yù)測的個(gè)性化服務(wù)推薦142創(chuàng)新之處

在進(jìn)行Web服務(wù)推薦時(shí),考慮到用戶調(diào)用服務(wù)時(shí)的情景,如操作系統(tǒng)、內(nèi)存、CPU、網(wǎng)絡(luò)的帶寬、安全性等等。技術(shù)路線

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論