![高級軟件工程-面向服務(wù)的軟件工程課件_第1頁](http://file4.renrendoc.com/view/9e092ddfe960c8b34de2a72d5a0bdda3/9e092ddfe960c8b34de2a72d5a0bdda31.gif)
![高級軟件工程-面向服務(wù)的軟件工程課件_第2頁](http://file4.renrendoc.com/view/9e092ddfe960c8b34de2a72d5a0bdda3/9e092ddfe960c8b34de2a72d5a0bdda32.gif)
![高級軟件工程-面向服務(wù)的軟件工程課件_第3頁](http://file4.renrendoc.com/view/9e092ddfe960c8b34de2a72d5a0bdda3/9e092ddfe960c8b34de2a72d5a0bdda33.gif)
![高級軟件工程-面向服務(wù)的軟件工程課件_第4頁](http://file4.renrendoc.com/view/9e092ddfe960c8b34de2a72d5a0bdda3/9e092ddfe960c8b34de2a72d5a0bdda34.gif)
![高級軟件工程-面向服務(wù)的軟件工程課件_第5頁](http://file4.renrendoc.com/view/9e092ddfe960c8b34de2a72d5a0bdda3/9e092ddfe960c8b34de2a72d5a0bdda35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
二、面向服務(wù)的軟件工程二、面向服務(wù)的軟件工程12.1 概念和背景2.2 面向服務(wù)的架構(gòu)SOA2.3 語義互操作2.4 服務(wù)案例2.5 服務(wù)開發(fā)方法2.6 云計算中的服務(wù)2.7 高級專題提綱22.1 概念和背景提綱2什么是服務(wù)?Web服務(wù)的定義[W3C]:Web服務(wù)(Webservice)應(yīng)當是一個軟件系統(tǒng),用以支持網(wǎng)絡(luò)間不同機器的互動操作。Web服務(wù)是一個用URI(UniformResourceIdentifier)標識的軟件實體,其接口和綁定可以用XML協(xié)議定義、描述和發(fā)現(xiàn)。Web服務(wù)通過Internet協(xié)議以基于XML消息,以松散耦合的方式與其它軟件實體或Web服務(wù)直接通訊。3什么是服務(wù)?Web服務(wù)的定義[W3C]:3Web服務(wù)的興起Web服務(wù)作為一種新興起的技術(shù),被稱為繼
PC
和
Internet
之后的第三次計算機革命Web服務(wù)
利用標準的
Internet
協(xié)議(如
HTTP,SMTP
等),解決了面向
Web
的分布式計算的通信問題,而傳統(tǒng)的分布式模型解決的是特定平臺下的通信問題。Web服務(wù)具有完全的平臺獨立性和語言獨立性,只要遵守
Web
Service
的接口即可進行服務(wù)的請求和調(diào)用。4Web服務(wù)的興起Web服務(wù)作為一種新興起的技術(shù),被稱為繼
PWeb服務(wù)的主要思想以后的應(yīng)用將由一組在線服務(wù)組合而成。兩個相似的服務(wù)使用統(tǒng)一的標準和方法在網(wǎng)絡(luò)上發(fā)布,一個信息應(yīng)用就可以按照代價或性能的標準,從這兩個相互競爭的候選服務(wù)中選擇一個服務(wù)來使用。服務(wù)允許在機器間復制,可以通過將特定的服務(wù)復制到本地存儲庫,從而提高位于特定的計算機(群)上的應(yīng)用程序的性能.5Web服務(wù)的主要思想以后的應(yīng)用將由一組在線服務(wù)組合而成。兩個Web服務(wù)的本質(zhì)從表像上看,Web服務(wù)就是應(yīng)用程序,它向外界暴露出一個能夠通過Web訪問方式進行調(diào)用的服務(wù)接口。從應(yīng)用程序的角度上看,Web服務(wù)是一種新的Web應(yīng)用程序,是自包含、自描述、模塊化的應(yīng)用程序,可以通過互聯(lián)網(wǎng)特別是Web方式來描述、發(fā)布、查找和調(diào)用。6Web服務(wù)的本質(zhì)從表像上看,Web服務(wù)就是應(yīng)用程序,它向外界發(fā)展脈絡(luò)—前期互聯(lián)網(wǎng)一個以協(xié)議為主的交互世界底層網(wǎng)絡(luò)協(xié)議和簡單的內(nèi)容傳輸協(xié)議:“桶”到“桶”之間的交換,不觸及“桶”中的內(nèi)容很少觸及7發(fā)展脈絡(luò)—前期互聯(lián)網(wǎng)7發(fā)展脈絡(luò)—當前互聯(lián)網(wǎng)一個以“文檔的對象化”形式主導的交互世界O-本體(論域中的標準化概念)Service(instance)-(對象)Serviceschema-知識模式(類)Controlled-vocabulary受控詞集(人或機器理解的含義)8發(fā)展脈絡(luò)—當前互聯(lián)網(wǎng)8發(fā)展脈絡(luò)—當前互聯(lián)網(wǎng)一個以“文檔的對象化”形式主導的交互世界O-本體(論域中的標準化概念)Service(instance)-(對象)Serviceschema-知識模式(類)Controlled-vocabulary受控詞集(人或機器理解的含義)9發(fā)展脈絡(luò)—當前互聯(lián)網(wǎng)9發(fā)展脈絡(luò)—今后互聯(lián)網(wǎng)一個以價值為導向的交互世界未經(jīng)整合、低價值的資源經(jīng)過整合、高價值的服務(wù)10發(fā)展脈絡(luò)—今后互聯(lián)網(wǎng)未經(jīng)整合、經(jīng)過整合、10Web服務(wù)特征完好的封裝性。服務(wù)是一種部署在Web上的對象,自然具備對象的良好封裝性,對于使用者而言,能且僅能看到該對象提供的功能列表。松散耦合:當一個Web服務(wù)的實現(xiàn)發(fā)生變更的時候,調(diào)用者是不會感到這一點的,對于調(diào)用者來說,只要服務(wù)的調(diào)用接口不變,服務(wù)實現(xiàn)任何變更對他們來說都是透明的。使用標準協(xié)議規(guī)范:作為Web服務(wù),其所有公共的協(xié)約完全需要使用開放的標準協(xié)議進行描述、傳輸和交換。這些標準協(xié)議具有完全免費的規(guī)范,以便由任意方進行實現(xiàn)。高度可集成能力:由于服務(wù)采取簡單的、易理解的標準協(xié)議作為組件接口描述規(guī)范和協(xié)同描述規(guī)范,完全屏蔽了不同軟件平臺的差異。11Web服務(wù)特征完好的封裝性。服務(wù)是一種部署在Web上的對象,Web服務(wù)優(yōu)勢高度的通用性和易用性:Web服務(wù)利用標準的工Internet協(xié)議(如HTTP,SMTP等),解決了面向Web的分布式計算模式,提高了系統(tǒng)的開放性、通用性和可擴展性。完全的平臺、語言獨立性:Web服務(wù)進行了更高程度的抽象,只要遵守Web服務(wù)的接口即可進行服務(wù)的請求與調(diào)用。高度的集成性:Web服務(wù)實質(zhì)就是通過服務(wù)的組合來完成業(yè)務(wù)邏輯的,因此,表現(xiàn)出了高度的組裝性和集成性.容易發(fā)布和部署:Web服務(wù)體系結(jié)構(gòu)方案通過UDDI,WSDL,SOAP等技術(shù)協(xié)議,能夠很容易實現(xiàn)系統(tǒng)的部署.12Web服務(wù)優(yōu)勢高度的通用性和易用性:Web服務(wù)利用標準的工Web服務(wù)架構(gòu)棧(1)(2)(3)(4)(2)、(3)將在2.3節(jié)討論13Web服務(wù)架構(gòu)棧(1)(2)(3)(4)(2)、(3)將在22.1 概念和背景2.2 面向服務(wù)的架構(gòu)SOA2.3 語義互操作2.4 服務(wù)案例2.5 服務(wù)開發(fā)方法2.6 云計算中的服務(wù)2.7 高級專題提綱142.1 概念和背景提綱14SOA(Service-OrientedArchitecture)起源SOA不是一個新概念,通用對象代理架構(gòu)CORBA和分布式組件對象模型DCOM被看成是SOA架構(gòu)的前身。1996年,GartnerGroup提出了SOA“預(yù)言”(到2008年,超過60%的企業(yè)將使用SOA作為一個“指導原則”),因為當時的軟件發(fā)展水平和信息化程度還不足支撐此概念進入實質(zhì)性的應(yīng)用階段。SOA可以認為是面向?qū)ο蠓治雠c設(shè)計(OOAD)的合理發(fā)展;也是電子商務(wù)解決方案中,在體系結(jié)構(gòu)、系統(tǒng)設(shè)計、實現(xiàn)與部署時所采用的組件化方法的合理發(fā)展。15SOA(Service-OrientedArchitectSOA興起原因(計算部件的對象化趨勢)分布式系統(tǒng)的自然發(fā)展系統(tǒng)與運算環(huán)境的異質(zhì)性操作環(huán)境的動態(tài)性交流設(shè)備細節(jié)的透明化面向過程需要多重服務(wù)16SOA興起原因(計算部件的對象化趨勢)分布式系統(tǒng)的自然發(fā)展1GartnerGroup關(guān)于SOA的最初概念客戶端/服務(wù)器的軟件設(shè)計方法,一項應(yīng)用由軟件服務(wù)和軟件服務(wù)使用者組成。SOA與大多數(shù)通用的客戶端/服務(wù)器模型的不同之處,在于它強調(diào)軟件組件的松散耦合,并使用獨立的標準接口(對象化趨勢)17GartnerGroup關(guān)于SOA的最初概念客戶端/服務(wù)SOA的當前定義[W3C]SOA的定義:SOA是組件的集合,這些組件能被調(diào)用,并且接口的描述可以發(fā)布和發(fā)現(xiàn)。[維基百科]SOA的定義:SOA是構(gòu)造分布式計算的應(yīng)用程序的方法。它將應(yīng)用程序功能作為服務(wù)發(fā)送給最終用戶或者其它服務(wù)。它采用開放標準、與軟件資源進行交互并采用表示的標準方式。18SOA的當前定義[W3C]SOA的定義:SOA是組件的集SOA的當前定義(續(xù))當代SOA代表一個開放的、敏捷的、可擴展的、可聯(lián)邦的、可組合的架構(gòu),包含了自治的、高服務(wù)質(zhì)量的、廠商多樣性的、可互操作的、可發(fā)現(xiàn)的和潛在可復用的服務(wù),使用Web服務(wù)來實現(xiàn)。 ——ThomasErl 《SOA概念、技術(shù)與設(shè)計》19SOA的當前定義(續(xù))當代SOA代表一個開放的、敏捷的普遍接受的SOA架構(gòu)W3C發(fā)布的Web服務(wù)架構(gòu)基本兩種基本角色(服務(wù)提供者和服務(wù)請求者)和一個可選的服務(wù)注冊中心.三種角色交互,涉及發(fā)布、發(fā)現(xiàn)、綁定操作.UDDI、WSDL和SOAP將在2.3節(jié)“語義互操作”中討論20普遍接受的SOA架構(gòu)W3C發(fā)布的Web服務(wù)架構(gòu)基本兩種基本角SOA架構(gòu)中的角色服務(wù)提供者(serviceprovider):發(fā)布自己的服務(wù),并且使用自身服務(wù)的請求進行響應(yīng).服務(wù)代理(servicebroker):可選.注冊與發(fā)布服務(wù)及其提供者,對其進行分類,并提供搜索服務(wù).服務(wù)使用者(servicerequester):利用服務(wù)代理來查找所需服務(wù),進而根據(jù)需求使用該服務(wù).21SOA架構(gòu)中的角色服務(wù)提供者(serviceprovideSOA架構(gòu)中的操作發(fā)布(publish):使服務(wù)提供者可以通過向服務(wù)代理注冊自己的功能及訪問接口.查找(find):服務(wù)使用者可以通過服務(wù)代理查找特定的服務(wù).綁定(bind):使服務(wù)使用者能夠調(diào)用或激活服務(wù).22SOA架構(gòu)中的操作發(fā)布(publish):使服務(wù)提供者可以通SOA架構(gòu)特點服務(wù)的封裝(encapsulation).將服務(wù)封裝成用于業(yè)務(wù)流程的可重用組件的應(yīng)用程序函數(shù).服務(wù)的互操作(interoperability).通過服務(wù)之間既定的通信協(xié)議進行互操作,SOA提供服務(wù)的互操作特性更利于其在多種場合被重用(“服務(wù)”(組織和交互方式)這種抽象協(xié)議).服務(wù)是位置透明的(locationtransparency).服務(wù)請求者不需要知道服務(wù)的具體位置及是哪一個服務(wù)響應(yīng)了自己的請求.23SOA架構(gòu)特點服務(wù)的封裝(encapsulation).將服SOA架構(gòu)特點(續(xù))服務(wù)的重用(reuse).一個服務(wù)是一個獨立的實體,與底層實現(xiàn)和用戶的需求完全無關(guān),極大的方便了服務(wù)的重復使用,從而降低了開發(fā)成本.服務(wù)是自治(autonomous)的功能實體.服務(wù)是由組件組成的組合模塊,是自包含和模塊化的.服務(wù)之間的松散耦合(looselycoupled).服務(wù)請求者和服務(wù)提供者之間只有接口上的往來,至于服務(wù)內(nèi)部如何更改,如何實現(xiàn)都與服務(wù)請求者無關(guān)24SOA架構(gòu)特點(續(xù))服務(wù)的重用(reuse).一個服務(wù)是一個SOA與Web服務(wù)(當前P7和前期P8的區(qū)別)的
聯(lián)系與區(qū)別SOA是一套面向服務(wù)架構(gòu)的標準規(guī)范;Web服務(wù)是一套技術(shù)體系,可以用來建立應(yīng)用解決方案,解決特定的消息通信和應(yīng)用集成問題。SOA是一種軟件架構(gòu),不局限于某個技術(shù)的組合(例如Web服務(wù))。SOA和Web服務(wù)是一對關(guān)聯(lián)技術(shù)。25SOA與Web服務(wù)(當前P7和前期P8的區(qū)別)的
聯(lián)系與區(qū)別2.1 概念和背景2.2 面向服務(wù)的架構(gòu)SOA2.3 語義互操作2.4 服務(wù)案例2.5 服務(wù)開發(fā)方法2.6 云計算中的服務(wù)2.7 高級專題提綱262.1 概念和背景提綱26發(fā)展脈絡(luò)—對象化的文檔互聯(lián)網(wǎng)一個以“文檔的對象化”形式主導的交互世界O-本體(論域中的標準化概念)Service(instance)-(對象)Serviceschema-知識模式(類)Controlled-vocabulary受控詞集(人或機器理解的含義)27發(fā)展脈絡(luò)—對象化的文檔互聯(lián)網(wǎng)27XML建模體系與語義Web語義互操作途徑之一:當前式,RDF、本體與語義Web語義互操作途徑之二:三角架構(gòu),UDDI(開放式的)、WSDL(類或者對象)與SOAP(前期-內(nèi)容傳輸)28XML建模體系與語義Web28適用于網(wǎng)絡(luò)應(yīng)用的標簽化描述方式XMLXML(可擴展標記語言)是SGML的子集,其目標是允許普通的SGML在Web上以HTML的方式被服務(wù)、接收和處理。XML被設(shè)計成易于實現(xiàn),且可在SGML和HTML之間互相操作。29適用于網(wǎng)絡(luò)應(yīng)用的標簽化描述方式XMLXML(可擴展標記語言XML的基本特點XML是結(jié)構(gòu)化的。XML是自描述的。XML允許自定義標簽,并且這些標簽可以說明數(shù)據(jù)的語義,而不是HTML中的格式說明。XML是可擴展的。XML的概念很簡單,但是它卻有廣闊的應(yīng)用領(lǐng)域,因為任何人都可以按照自己應(yīng)用的需要定義相應(yīng)的XML標簽來表達信息的結(jié)構(gòu)和類型。獨立于平臺和應(yīng)用。文檔內(nèi)容是基于UniCode的文本,適于網(wǎng)絡(luò)的傳輸。XML易于設(shè)計。XML文檔容易編寫,設(shè)計正式且簡潔,可讀性強。更精確的搜索。XML標簽表達的是內(nèi)容的含義,從而搜索引擎可以通過搜索XML文檔得到更精確的需要的內(nèi)容。廣泛的支持。XML得到了眾多的軟件廠商比如Microsoft,IBM,Sun,Oracle等幾乎所有大公司的支持。30XML的基本特點XML是結(jié)構(gòu)化的。30簡單的XML文件XML聲明文檔類型聲明文檔元素<?xmlversion=“1.0”encoding=“utf-8”?><!DOCTYPEbooksSYSTEM“books.dtd”[ <!ENTITYbookName“XML簡明教程”>]><books> <book> <name>Java超級編程</name> <author>比爾蓋茨</author> </book></books>31簡單的XML文件XML聲明文檔類型聲明文檔元素<?xmlv格式良好(Well-formed)的XML文檔遵循如下規(guī)則的XML文檔稱為格式良好的XML文檔:語法規(guī)范必須有XML聲明語句<?xmlversion="1.0"encoding="gb2312"?>必須有且僅有一個根元素標記大小寫敏感屬性值用引號標記成對空標記關(guān)閉元素正確嵌套32格式良好(Well-formed)的XML文檔遵循如下規(guī)則的有限表達能力的XMLDTD描述XML文檔的結(jié)構(gòu)時,文件類型定義(DTD)是一個重要的工具,DTD也是XML1.0的重要組成部分。但DTD存在不少缺陷:DTD是基于正則表達式的,描述能力有限;DTD沒有數(shù)據(jù)類型的支持,在大多數(shù)應(yīng)用環(huán)境下能力不足;DTD的約束定義能力不足,無法對XML實例文檔作出更細致的語義限制;DTD的結(jié)構(gòu)不夠系統(tǒng)化,復用的代價相對比較高;DTD并非使用XML作為描述手段,而DTD的構(gòu)建和訪問并沒有標準的編程接口,無法使用標準的編程方式進行DTD維護。33有限表達能力的XMLDTD描述XML文檔的結(jié)構(gòu)時,文件類型較強表達能力的XMLSchemaXMLSchema是針對DTD的缺點設(shè)計的。2001年5月,XMLSchema作為W3C的推薦標準正式發(fā)布,并迅速取代DTD的地位,成為描述XML文檔結(jié)構(gòu)的主流技術(shù)。34較強表達能力的XMLSchemaXMLSchema是針XMLSchema的優(yōu)點一致性。XMLSchema本身就是一個XML文檔。擴展性。XMLSchema對DTD進行擴展,引進了數(shù)據(jù)類型、命名空間等,還可以基于標準數(shù)據(jù)類型創(chuàng)建自己的數(shù)據(jù)類型。互換性。利用XMLSchema能夠書寫XML文檔以及驗證文檔的合法性。通過映射機制,可以實現(xiàn)Schema的轉(zhuǎn)換。規(guī)范性。XMLSchema更加便于描述文檔的內(nèi)容,對數(shù)據(jù)的內(nèi)容、格式進行各種限制,對各種不同的數(shù)據(jù)進行轉(zhuǎn)換,并驗證數(shù)據(jù)的正確性。35XMLSchema的優(yōu)點一致性。XMLSchema本身就ASimpleXMLSchema<?xmlversion="1.0"?>//XML聲明<xs:schemaxmlns:xs="/2001/XMLSchema"targetNamespace=""xmlns=""elementFormDefault="qualified"><xs:elementname="note"><xs:complexType><xs:sequence> <xs:elementname="to"type="xs:string"/> <xs:elementname="from"type="xs:string"/> <xs:elementname="heading"type="xs:string"/> <xs:elementname="body"type="xs:string"/></xs:sequence></xs:complexType></xs:element></xs:schema>36ASimpleXMLSchema<?xmlversiXML的自描述體系與語義Web的發(fā)展37XML的自描述體系與語義Web的發(fā)展37XML建模體系與語義Web語義互操作途徑之一:RDF、本體與語義Web語義互操作途徑之二:UDDI、WSDL與SOAP38XML建模體系與語義Web38基于XML的語義Web技術(shù)傳統(tǒng)的Web面向文檔,沒有提供網(wǎng)頁中數(shù)據(jù)語義信息的表述和處理機制,不便于通過計算機進行判斷和推理。2001年,Web創(chuàng)始人TimBerners-Lee等人正式提出語義Web。語義Web對現(xiàn)在的Web進行了擴展和延伸,通過XML、RDF/RDFS和本體技術(shù),將Web中的信息按照語義層次結(jié)構(gòu)進行組織,并以此為基礎(chǔ)構(gòu)建推理規(guī)則,完成語義的知識表達和推理。39基于XML的語義Web技術(shù)傳統(tǒng)的Web面向文檔,沒有提供網(wǎng)頁RDF(資源描述框架)ResourceDescriptionFramework(RDF)是W3C組織于2004年2月10日發(fā)布的一個推薦標準。它的功能是利用當前存在著的多種元數(shù)據(jù)標準來描述各種網(wǎng)絡(luò)資源,形成人機可讀的、可以由計算機自動處理的文件。RDF是采用XML語法格式處理元數(shù)據(jù)的應(yīng)用,為描述圖像、文檔和它們之間的相互關(guān)系定義了一個簡單數(shù)據(jù)模型。簡而言之,RDF用于進行資源描述,但它并不直接用來描述資源,而是定義了描述資源的規(guī)則。40RDF(資源描述框架)ResourceDescriptiRDFSchema(RDFS)RDFSchema是資源描述框架的擴展。RDF模式相對于RDF來說提供了一個更高級別的抽象概念。具體類別的資源具體的屬性描述的資源與屬性直接的關(guān)系RDFS允許具體資源能被描述成為更加普通的類別的實例。RDFS提供了傳統(tǒng)RDF詞匯能被發(fā)展的機制,同時,RDFS提供了重要的語義功能,即能被增強型的語義語言如DAML,OIL和OWL進行使用。41RDFSchema(RDFS)RDFSchema是資RDF的自描述體系與語義Web的發(fā)展42RDF的自描述體系與語義Web的發(fā)展42本體“本體”這個術(shù)語來自于哲學,它是研究世界上的各種實體以及它們是怎么關(guān)聯(lián)的科學。對于web,本體則關(guān)于對web信息及web信息之間的關(guān)系的精確描述。關(guān)于論域中概念的精確描述43本體“本體”這個術(shù)語來自于哲學,它是研究世界上的各種實體以及WebOntologyLanguage(OWL)Web本體語言是構(gòu)建在RDF之上的,用于處理Web中信息的標記語言,于2004年成為W3C建議標準。OWL提供更多的詞匯、豐富的操作符、更強的語法,來對領(lǐng)域知識或者概念加以描述。通過簡單的概念定義復雜的概念,按照“概念-屬性-概念”的形式描述概念間的關(guān)系。44WebOntologyLanguage(OWL)WebOWL子語言-按描述和計算能力分類為了便于開發(fā)支持OWL的工具,OWL提供了以下三個子語言。OWLLite創(chuàng)建簡單的本體用戶OWLDL(描述邏輯)當在需要較強的表達能力,同時所有的結(jié)論都需要能通過計算推理得到、所有的計算都能在有限的時間內(nèi)完成時,可以使用OWLDL。OWLFull高表達能力45OWL子語言-按描述和計算能力分類為了便于開發(fā)支持OWL的工語義Web服務(wù)和OWL-S語義Web服務(wù)(SWWS)就是將語義Web技術(shù)與Web服務(wù)技術(shù)相結(jié)合,通過語義Web服務(wù)標記語言O(shè)WL-S,利用本體來描述Web服務(wù)信息,通過這些帶有語義信息的描述來實現(xiàn)服務(wù)的自動發(fā)現(xiàn)、調(diào)用和組合。46語義Web服務(wù)和OWL-S語義Web服務(wù)(SWWS)就是將語OWL-SOWL-S是本體語言,是OWL基礎(chǔ)框架的語義Web,為了描述語義Web服務(wù)。OWL-S能使用戶和軟件提供商自動地發(fā)現(xiàn)、調(diào)用、組合和監(jiān)控Web資源來提供服務(wù)。OWL-S的目標自動的Web服務(wù)發(fā)現(xiàn)自動的Web服務(wù)調(diào)用自動的Web服務(wù)組合和互操作47OWL-SOWL-S是本體語言,是OWL基礎(chǔ)框架的語義WebOWL-S重要組成ServiceProfile描述此Web服務(wù)提供什么服務(wù)、介紹服務(wù)的名稱、提供的功能、服務(wù)提供者的聯(lián)系方式。ProcessModel描述Web服務(wù)是怎樣工作。ServiceGrounding描述怎樣使用Web服務(wù)48OWL-S重要組成ServiceProfile描述此WeOWL-S技術(shù)來源49OWL-S技術(shù)來源49XML建模體系與語義Web語義互操作途徑之一:RDF、本體與語義Web語義互操作途徑之二:UDDI、WSDL與SOAP50XML建模體系與語義Web50傳統(tǒng)WebService互操作的核心技術(shù)WebService的核心技術(shù)主要包括SOAP、WSDL和UDDI。這三大部分代表了Webservice體系中的三個層次,分別是:傳輸層、描述層和發(fā)現(xiàn)層。51傳統(tǒng)WebService互操作的核心技術(shù)WebServicSOAP使人想起了互聯(lián)網(wǎng)發(fā)的前期互聯(lián)網(wǎng)一個以協(xié)議為主的交互世界底層網(wǎng)絡(luò)協(xié)議和簡單的內(nèi)容傳輸協(xié)議:“桶”到“桶”之間的交換,不觸及“桶”中的內(nèi)容很少觸及52SOAP使人想起了互聯(lián)網(wǎng)發(fā)的前期互聯(lián)網(wǎng)52SOAP(簡單對象訪問協(xié)議)SOAP是一種在分布式環(huán)境中進行信息轉(zhuǎn)換的輕量級協(xié)議。作為一種不依賴傳輸協(xié)議、用于在應(yīng)用程序之間以對象的形式交換數(shù)據(jù)的表示層通信協(xié)議,SOAP是WebServices的核心。主要特征擴展性(Extensible)。SOAP定義了一個框架,允許例如安全、路由和可靠性等特性作為分層擴展添加進來互操作(Interoperable)。SOAP允許使用任何傳輸協(xié)議傳輸數(shù)據(jù)。獨立(Independent)于編程模型。SOAP采用XML文本格式,因此可以獨立于各種編程語言和平臺。53SOAP(簡單對象訪問協(xié)議)SOAP是一種在分布式環(huán)境中進行SOAP信息交換模式SOAP消息交換模式(MEP)是指如何根據(jù)通信的需要將多條消息組合成一條整體的消息交換的抽象描述。四種模式:請求-響應(yīng)消息交換模式 一個SOAP節(jié)點向另一個SOAP節(jié)點發(fā)送的包含SOAP信息的請求,另一個節(jié)點返回包含SOAP消息的響應(yīng)54SOAP信息交換模式SOAP消息交換模式(MEP)是指如何根SOAP信息交換模式(續(xù))單一響應(yīng)消息交換模式 一個SOAP節(jié)點向另一個SOAP節(jié)點發(fā)送的請求不包含任何SOAP信息,而期望對方返回SOAP消息。SOAPWeb方法特性 請求響應(yīng)模式和單一響應(yīng)模式可一起使用,SOAP節(jié)點間互相交流一些額外信息以表示W(wǎng)eb方法的名字。SOAPAction特性 請求響應(yīng)模式和單一響應(yīng)模式可一起使用,SOAP節(jié)點間互相交流一些額外信息以表示其激活標志。55SOAP信息交換模式(續(xù))單一響應(yīng)消息交換模式55SOAP信息交換ServiceBrokerServiceConsumerServiceProviderhttp
SOAPmessageWSDLdescribingserviceSOAPmessagehttpclientserviceregistryfindpublishDESCRIBEINVOKESOAPSenderSOAPReceiverSOAPSenderSOAPReceiverrequestresponse56SOAP信息交換ServiceServicehttpSSOAP協(xié)議組成SOAP由4部分組成:SOAP封裝(SOAPEnvelope)構(gòu)造定義了一個整體的表示框架,可用于表示在消息中的是什么誰應(yīng)當處理它是“可選的”還是“強制的”SOAP編碼規(guī)則(SOAPEncodingRules)定義了一套編碼機制用于交換應(yīng)用程序定義的數(shù)據(jù)類型的實例SOAPRPC表示(SOAPRPCPresentation)定義了一個用于表示遠程過程調(diào)用和響應(yīng)的約定SOAP綁定(SOAPBinding)定義了一種使用底層傳輸協(xié)議來完成在節(jié)點間交換SOAP封裝的約定。57SOAP協(xié)議組成SOAP由4部分組成:57SOAP信息格式SOAPBodySOAPheaderSOAPenvelopeHeaderblockHeaderdataHeaderdataHeaderdataBodychildelementBodychildelement58SOAP信息格式SOAPBodySOAPSOAPen<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>59<env:Envelopexmlns:env="http:SOAP編碼SOAP編碼:將數(shù)據(jù)的值編碼為XML格式對于應(yīng)用中所定義的數(shù)據(jù)結(jié)構(gòu)和值,SOAP可以將其轉(zhuǎn)換為由節(jié)點和帶有標簽的邊組成的圖,稱為數(shù)據(jù)模型,并進而通過SOAP編碼規(guī)則將SOAP數(shù)據(jù)模型轉(zhuǎn)換為XML格式。60SOAP編碼SOAP編碼:將數(shù)據(jù)的值編碼為XML格式60SOAPRPCSOAP遠程過程調(diào)用信息描述了方法的請求或者方法的回復。SOAPXML文檔在服務(wù)器端轉(zhuǎn)換成方法調(diào)用,調(diào)用后的結(jié)果將編碼成為XML文檔返回給服務(wù)請求者。61SOAPRPCSOAP遠程過程調(diào)用信息描述了方法的請求SOAP請求目標對象的URI方法的參數(shù)方法名62SOAP請求目標對象的URI方法的參數(shù)方法名62SOAP響應(yīng)方法名目標對象的URI返回的結(jié)果63SOAP響應(yīng)方法名目標對象的URI返回的結(jié)果63SOAP協(xié)議綁定SOAP可在任何傳輸協(xié)議上使用,并提供了一種用于定義任意協(xié)議綁定的靈活框架。HTTP使用極為廣泛,也是SOAP協(xié)議綁定對象的首選。64SOAP協(xié)議綁定SOAP可在任何傳輸協(xié)議上使用,并提供了一種HTTP請求與回應(yīng)POST/Accounts/HenrikHTTP/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請求的目的,它的值是一個標識該目的的URI)SOAP信息2XX狀態(tài)碼表示成功返回65HTTP請求與回應(yīng)POST/Accounts/HenSOA架構(gòu)66SOA架構(gòu)66WSDL使人想起了互聯(lián)網(wǎng)發(fā)展的當前狀況互聯(lián)網(wǎng)一個以“文檔的對象化”形式主導的交互世界O-本體(論域中的標準化概念)Service(instance)-(對象)Serviceschema-知識模式(類)Controlled-vocabulary受控詞集(人或機器理解的含義)67WSDL使人想起了互聯(lián)網(wǎng)發(fā)展的當前狀況互聯(lián)網(wǎng)67WSDLWSDL(Webservicesdescriptionlanguage)是以XML格式來描述Web服務(wù)接口,指定Web服務(wù)的位置、操作方法等信息的描述語言。使用者使用WSDL就可以使用Web服務(wù),而不必關(guān)心服務(wù)的實現(xiàn)細節(jié)。68WSDLWSDL(WebservicesdescriptWSDL構(gòu)成元素WSDL文檔包含7個關(guān)鍵的構(gòu)成元素:<definitions><types><message><operation><portType><binding><port><service<types>、<message>、<operation>和<portType>元素是WebService的抽象定義,與具體的WebService部署細節(jié)無關(guān),可以被重用;而<binding>、<port>和<service>元素是WebService的具體描述,其中定義了WebService的技術(shù)細節(jié)69WSDL構(gòu)成元素WSDL文檔包含7個關(guān)鍵的構(gòu)成元素:69WSDL文檔結(jié)構(gòu)示例代碼:WeatherWebService.wsdl是天氣預(yù)報WebService的WSDL文檔,具體含義分析如下: <definitions>
該元素用來定義WSDL文檔的名稱,引入需要的XML命名空間<definitionsname="Weather" xmlns="/wsdl/" xmlns:soap="/wsdl/soap/" xmlns:tns="/Weather/" xmlns:xsd="/2001/XMLSchema" targetNamespace="/Weather/">70WSDL文檔結(jié)構(gòu)示例代碼:WeatherWebServic<types>元素規(guī)定了與消息相關(guān)的數(shù)據(jù)類型的定義
<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>71<types>元素規(guī)定了與消息相關(guān)的數(shù)據(jù)類型的定義<type<message>
<message>(消息)元素定義了傳遞的消息的數(shù)據(jù)結(jié)構(gòu)<portType>
<portType>(端口類型)元素是抽象操作和抽象消息的組合<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>72<message>
<message>(消息)元素定義了傳遞<binding>
<binding>(綁定)元素用來具體化<portType>元素,其中定義了<portType>元素中的操作和消息的格式與協(xié)議等<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>73<binding>
<binding>(綁定)元素用來具體<service>
<service>(服務(wù))元素指定了WebService的位置。一個<service>元素可以包含多個<port>(端口)元素,端口的集合構(gòu)成了service。weather.wsdl中的<service>元素如下:<servicename="Weather"> <portbinding="tns:WeatherSOAP"name="WeatherSOAP"> <soap:addresslocation="/"/> </port></service>74<service>
<service>(服務(wù))元素指定了WeWSDL綁定WSDL綁定可為webservice定義消息格式和協(xié)議細節(jié)。WSDL規(guī)范中定義了3種綁定擴展:SOAP綁定HTTPGETPOST綁定MIME綁定其中SOAP綁定是最常用的一種方式。75WSDL綁定WSDL綁定可為webservice定義SOAP綁定<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>綁定名,命名空間不重復指出綁定是針對SOAP協(xié)議格式的指出操作是面向RPC(消息包含參數(shù)和返回值)的還是面向文檔的(消息包含文檔)使用的SOAP協(xié)議指出綁定是針對SOAP協(xié)議格式的此URI應(yīng)當被直接用作SOAPAction頭的值給出輸入、輸出消息的編碼為literal76SOAP綁定<bindingname="WeatherSUDDIUDDI是通過因特網(wǎng)描述服務(wù)、發(fā)現(xiàn)服務(wù)并且集成商業(yè)服務(wù)的一個獨立于平臺的框架。UDDI代表著普遍化的描述、發(fā)現(xiàn)和集成。UDDI是一個存儲Web服務(wù)的目錄,使用WSDL描述Web服務(wù)接口。77UDDIUDDI是通過因特網(wǎng)描述服務(wù)、發(fā)現(xiàn)服務(wù)并且集成商業(yè)服UDDI互聯(lián)網(wǎng)今后發(fā)展的初級階段互聯(lián)網(wǎng)一個以價值為導向的交互世界未經(jīng)整合、低價值的資源服務(wù)集市78UDDI互聯(lián)網(wǎng)今后發(fā)展的初級階段互聯(lián)網(wǎng)未經(jīng)整合、服務(wù)集市78UDDI互聯(lián)網(wǎng)今后發(fā)展的初級階段互聯(lián)網(wǎng)一個以價值為導向的交互世界經(jīng)過整合、高價值的服務(wù)服務(wù)集市存在明顯的差距79UDDI互聯(lián)網(wǎng)今后發(fā)展的初級階段互聯(lián)網(wǎng)經(jīng)過整合、服務(wù)集市存在四種核心數(shù)據(jù)類型businessEntity(描述發(fā)布服務(wù)組織的信息)businessService(描述服務(wù)的業(yè)務(wù)功能)bindingTemplate(描述服務(wù)的技術(shù)細節(jié))tModel(其他各種屬性)新的數(shù)據(jù)類型(2.0/3.0)publisherAssertion–描述所注冊的服務(wù)之間的關(guān)系Subscription–跟蹤一組實體的變更80四種核心數(shù)據(jù)類型businessEntity(描述發(fā)布服務(wù)組UDDI數(shù)據(jù)結(jié)構(gòu)BusinessEntity企業(yè)碼,企業(yè)名,聯(lián)系方式,描述信息,
分類BusinessService服務(wù)碼,企業(yè)碼,服務(wù)名描述信息及分類BindingTemplate綁定碼,服務(wù)碼,
描述信息,描述信息,接入點tModel模型名,描述信息,
概述文檔,
指向WSDL文檔的指針WSDL文檔外部Web服務(wù)的接口描述81UDDI數(shù)據(jù)結(jié)構(gòu)BusinessEntityBusinesUDDI如何工作2)將服務(wù)的描述注冊到UDDI注冊中心UDDIBusinessRegistry3)
UDDI注冊中心給每個實體指定一個在程序中唯一的標識符4)電子交易場所和搜索引擎等客戶機與商業(yè)應(yīng)用程序使用UDDI注冊中心來發(fā)現(xiàn)它們感興趣的服務(wù)1)軟件公司、程序員等將tModel發(fā)布到UDDI注冊中心5)企業(yè)調(diào)用這些服務(wù),簡便地進行動態(tài)集成82UDDI如何工作2)將服務(wù)的描述注冊到UDDI注冊中心UDD注冊信息企業(yè)與服務(wù)的注冊信息:白頁:表示企業(yè)的基本信息,如企業(yè)的名稱、經(jīng)營范圍描述、聯(lián)系信息等。黃頁:通過支持使用多種具有分類功能的分類法系統(tǒng)產(chǎn)生的類別劃分,使得使用者能夠在更大的范圍內(nèi)查找在注冊中心注冊的企業(yè)或者服務(wù)。綠頁:與服務(wù)相關(guān)聯(lián)的綁定信息,并提供了指向這些服務(wù)所實現(xiàn)的技術(shù)規(guī)范的引用和指向基于文件的URL的不同發(fā)型機制指針。83注冊信息企業(yè)與服務(wù)的注冊信息:83Web服務(wù)工作流程84Web服務(wù)工作流程84WS-BPELWS-BPEL(WebServicesBusinessProcessExecutionLanguage)是一種基于XML用來描述高層業(yè)務(wù)流程的編程語言,被描述的業(yè)務(wù)流程的每個單一步驟由Web服務(wù)實現(xiàn)。原名是BPEL4WS,2002年由IBM、Microsoft、BEA合作開發(fā)。2007改名為WS-BPEL。目前版本是2.0本質(zhì)上是將一組Web服務(wù)整合在一起以形成一個新的Web服務(wù)的語言。85WS-BPELWS-BPEL(WebServicesBuWS-BPEL基本結(jié)構(gòu)<process>//流程定義的根元素 <partnerLinks>//描述業(yè)務(wù)流程與伙伴的關(guān)系 <partnerLink> .......... </partnerLink> </partnerLinks>
<variables>//通過變量表示合作伙伴間生成與傳遞的信息 ............ </variables> <sequence> //一組順序執(zhí)行的活動 ............. </sequence></process>86WS-BPEL基本結(jié)構(gòu)<process>WS-BPEL建模工具和引擎ActiveEndpointsActiveBPELengineActiveBPELDesignerOracleBPELProcessManagerIBMWebSphereBusinessIntegrationServerFoundationBEAWebLogicIntegration\AquaLogicApacheODE開源WS-BPEL引擎87WS-BPEL建模工具和引擎ActiveEndpointsApacheODE開源WS-BPEL引擎ApacheODE是一個WS-BPEL兼容的Web服務(wù)編配引擎,它可以使開發(fā)人員根據(jù)以BPELXML語法寫成的過程描述來編配Web服務(wù)。88ApacheODE開源WS-BPEL引擎ApacheOD基于ApacheODE的Web服務(wù)組合一、加法服務(wù)(Add_Service)輸入double類變量a、b,輸出結(jié)果a+b;二、減法服務(wù)(Sub_Service)輸入double類變量a、b,輸出結(jié)果a-b;三、將這兩個服務(wù)組合為一個新服務(wù)輸入double類變量a、b和字符串變量c,如果c=add,輸出結(jié)果為a+b;如果c=sub,輸出結(jié)果為a-b;89基于ApacheODE的Web服務(wù)組合一、加法服務(wù)(Add基于ApacheODE的Web服務(wù)組合90基于ApacheODE的Web服務(wù)組合90基于ApacheODE的Web服務(wù)組合組合后的Web服務(wù)運行結(jié)果:91基于ApacheODE的Web服務(wù)組合組合后的Web服務(wù)運2.1 概念和背景2.2 面向服務(wù)的架構(gòu)SOA2.3 語義互操作2.4 服務(wù)案例2.5 服務(wù)開發(fā)方法2.6 云計算中的服務(wù)2.7 高級專題提綱922.1 概念和背景提綱92開發(fā)案例-基于IP地址的氣象查詢服務(wù)案例通過BPEL組裝IP2Location(根據(jù)IP地址查出所在地的城市名和國名)和GlobalWeather(根據(jù)城市名和國名給出天氣信息)兩個獨立的Web服務(wù),使得兩個服務(wù)能夠自動地串行調(diào)用,并將整合了的流程發(fā)布為WeatherByIP服務(wù)。93開發(fā)案例-基于IP地址的氣象查詢服務(wù)案例通過BPEL組裝IP業(yè)務(wù)用例客戶端向WeatherByIP服務(wù)請求某一個IP所在地的天氣信息當WeatherByIP服務(wù)取得目標IP后,將參數(shù)傳給IP2Location服務(wù)IP2Location服務(wù)根據(jù)IP地址查出所在地的城市名和國名,將此消息傳遞給GlobalWeather服務(wù)GlobalWeather服務(wù)通過城市名和國家名查詢當?shù)氐奶鞖庑畔ⅲ⒎答佇畔骰豔eatherByIP服務(wù)WeatherByIP服務(wù)最終向用戶輸出目標IP所在地的天氣情況。94業(yè)務(wù)用例客戶端向WeatherByIP服務(wù)請求某一個IP所在ClientWeatherByIPServiceGlobalWeatherServiceIP2LocationServiceTargetedIPWeatherInfoLocationInfoTargetedIPWeatherInfo訪問流程(1)(2)(3)(4)(5)95ClientWeatherByIPGlobalWeather開發(fā)環(huán)境NetBeansIDE5.5withNetBeansEnterprisePack5.5SunjavaSystemApplicationServerPlatformEdition9Update1PartnerServicesIP2LocationService服務(wù)地址:http:///ip2locationwebservice.asmxWSDL地址:http:///ip2locationwebservice.asmx?wsdlGlobalWeatherService服務(wù)地址:/globalweather.asmxWSDL地址: /globalweather.asmx?wsdl96開發(fā)環(huán)境96IP2Location接口類型SOAPHttpGetHttpPost97IP2Location接口類型SOAPHttpGetHttIP2Location輸入消息結(jié)構(gòu)輸入信息98IP2Location輸入消息結(jié)構(gòu)輸入信息98IP2Location輸出消息結(jié)構(gòu)可輸出信息99IP2Location輸出消息結(jié)構(gòu)可輸出信息99GlobalWeather接口類型100GlobalWeather接口類型100GetWeather輸入消息結(jié)構(gòu)輸入信息101GetWeather輸入消息結(jié)構(gòu)輸入信息101GetWeather輸出消息結(jié)構(gòu)輸出信息102GetWeather輸出消息結(jié)構(gòu)輸出信息102WeatherByIPService的XMLSchema為了使整個流程的輸入格式與輸出消息格式保持一致,需在XMLSchema文檔中規(guī)定服務(wù)的輸入和輸出消息結(jié)構(gòu)。主要來源自IP2LocationService的輸入消息格式和GlobalWeatherService的輸出消息格式。103WeatherByIPService的XMLSchemaXMLSchema圖形化表示104XMLSchema圖形化表示104WeatherByIP的服務(wù)描述接口類型和操作:輸入消息結(jié)構(gòu):輸出消息結(jié)構(gòu):105WeatherByIP的服務(wù)描述接口類型和操作:輸出消息結(jié)構(gòu)BPEL流程是業(yè)務(wù)流程的物理實現(xiàn),通過服務(wù)間的消息傳遞,實現(xiàn)相互調(diào)用和流程組合BPEL流程描述106BPEL流程是業(yè)務(wù)流程的物理實現(xiàn),通過服務(wù)間的消息BPEL變量映射在BPEL把消息從一個service傳遞給另一個service時,需要定義不同服務(wù)間的消息變量的映射關(guān)系消息傳遞通過Assign活動來實現(xiàn)。Assign1從WeatherByIP服務(wù)的輸入到IP2Location服務(wù)的輸入Assign2從IP2Location服務(wù)的輸出到GlobalWeather服務(wù)的輸入Assign3從GlobalWeather服務(wù)的輸出到WeatherByIP的輸出107BPEL變量映射在BPEL把消息從一個service傳遞給測試輸入的SOAP消息:輸出的SOAP消息:108測試輸入的SOAP消息:1082.1 概念和背景2.2 面向服務(wù)的架構(gòu)SOA2.3 語義互操作2.4 服務(wù)案例2.5 服務(wù)開發(fā)方法2.6 云計算中的服務(wù)2.7 高級專題提綱1092.1 概念和背景提綱109開發(fā)范式的變遷結(jié)構(gòu)化程序設(shè)計面向?qū)ο蟮能浖_發(fā)基于組件的軟件開發(fā)面向服務(wù)的軟件開發(fā)(對象化+開放式)從單機系統(tǒng)、分布式系統(tǒng)、異構(gòu)分布式系統(tǒng),軟件的規(guī)模與復雜度逐漸提高,模塊耦合度逐步降低(對象化+開放式)。110開發(fā)范式的變遷110面向服務(wù)的軟件開發(fā)特點兩個視圖:服務(wù)提供者視圖:關(guān)心服務(wù)如何實現(xiàn)、封裝、發(fā)布、管理服務(wù)消費者視圖:關(guān)心服務(wù)如何組合滿足業(yè)務(wù)需求面向重用的開發(fā)DevelopmentforreuseReuse-basedDevelopment業(yè)務(wù)敏捷的開發(fā)快速構(gòu)建適應(yīng)發(fā)展111面向服務(wù)的軟件開發(fā)特點兩個視圖:111Web服務(wù)開發(fā)生命周期IBM將服務(wù)的生命周期分為建模、組裝、部署和管理四個階段,而SOA理念和最佳實踐貫穿每個階段。治理和過程為SOA工程提供指導和監(jiān)管,支撐整個生命周期的各個階段。112Web服務(wù)開發(fā)生命周期IBM將服務(wù)的生命周期分為建模、組裝建模Model建模階段主要是收集和分析業(yè)務(wù)需求,建立和優(yōu)化業(yè)務(wù)流程,并設(shè)計軟件服務(wù)的流程。業(yè)務(wù)模型的建立是此階段的主要工作。113建模Model建模階段主要是收集和分析業(yè)務(wù)需求,建立和優(yōu)化業(yè)組裝Assemble在服務(wù)組合階段,主要是根據(jù)業(yè)務(wù)模型,利用已有的服務(wù)資源庫和業(yè)務(wù)解決方案,發(fā)現(xiàn)服務(wù)、創(chuàng)建服務(wù)和集成服務(wù)的過程。114組裝Assemble在服務(wù)組合階段,主要是根據(jù)業(yè)務(wù)模型,利用部署Deploy在部署階段,主要是將服務(wù)以及集成的業(yè)務(wù)流程部署到運行環(huán)境中,通過控制中心配置和優(yōu)化運行環(huán)境,使其能夠滿足業(yè)務(wù)所需的不同服務(wù)水平要求。提供一定的靈活性,以支持服務(wù)和業(yè)務(wù)流程的動態(tài)更新以適應(yīng)不斷變化的業(yè)務(wù)需求。115部署Deploy在部署階段,主要是將服務(wù)以及集成的業(yè)務(wù)流程部管理Manage管理階段提供對底層服務(wù)資源的管理,并實時監(jiān)測主要的性能指標以獲得預(yù)防、隔離、分析和修復問題的信息。及時了解系統(tǒng)的狀態(tài),并為業(yè)務(wù)建模和業(yè)務(wù)流程的持續(xù)改進提供重要的反饋信息。116管理Manage管理階段提供對底層服務(wù)資源的管理,并實時監(jiān)測服務(wù)提供者的開發(fā)方法零起點方法。為新Web服務(wù)創(chuàng)建新的服務(wù)接口,服務(wù)接口和服務(wù)實現(xiàn)都歸服務(wù)提供者所有。自頂向下方法。開發(fā)一個與現(xiàn)有服務(wù)接口一致的新Web服務(wù)。這類服務(wù)接口通常是業(yè)界標準的一部分,可以被許多服務(wù)提供者實現(xiàn)。服務(wù)接口不能歸服務(wù)提供者所有。117服務(wù)提供者的開發(fā)方法零起點方法。為新Web服務(wù)創(chuàng)建新的服服務(wù)提供者的開發(fā)方法(續(xù))自底向上方法。用于為現(xiàn)有的應(yīng)用程序創(chuàng)建新的服務(wù)接口。服務(wù)接口是從應(yīng)用程序的應(yīng)用程序編程接口(applicationprogramminginterface,API)派生出來的。中間相遇方法。當服務(wù)接口已經(jīng)存在,并且用作Web服務(wù)的應(yīng)用程序也已經(jīng)存在時,將使用中間相遇這種Web服務(wù)開發(fā)方法。主要任務(wù)是將現(xiàn)有的應(yīng)用程序接口映射到服務(wù)接口定義中定義的那些應(yīng)用程序接口。118服務(wù)提供者的開發(fā)方法(續(xù))自底向上方法。用于為現(xiàn)有的應(yīng)用程序服務(wù)請求者的開發(fā)方法靜態(tài)綁定。靜態(tài)綁定是在構(gòu)建時通過為服務(wù)請求者將使用的單個Web服務(wù)定位服務(wù)實現(xiàn)定義構(gòu)建的。構(gòu)建時動態(tài)綁定。當服務(wù)請求者想使用特定類型的Web服務(wù),但在運行時之前實現(xiàn)是未知的,或者實現(xiàn)可以在運行時發(fā)生改變,這時將使用這類綁定。這類服務(wù)定義在服務(wù)接口定義中。運行時動態(tài)綁定。這類綁定的不同之處在于服務(wù)接口是在運行時被發(fā)現(xiàn)的。找到服務(wù)接口后,就生成、編譯,然后執(zhí)行代理代碼。這類綁定通常與用戶界面一起使用,因為機器對機器的交互不可能是真正動態(tài)的。119服務(wù)請求者的開發(fā)方法靜態(tài)綁定。靜態(tài)綁定是在構(gòu)建時通過為服務(wù)請服務(wù)設(shè)計方法中的原則服務(wù)的名稱要方便使用者服務(wù)的操作不能太多或者太少服務(wù)的操作應(yīng)該是內(nèi)聚的和完全的服務(wù)應(yīng)該對實現(xiàn)的細節(jié)進行封裝服務(wù)應(yīng)該適應(yīng)多種調(diào)用模式服務(wù)的操作應(yīng)該是無狀態(tài)的服務(wù)應(yīng)該使用有狀態(tài)的事務(wù)進行建模服務(wù)的操作應(yīng)該代表業(yè)務(wù)動作服務(wù)操作的參數(shù)應(yīng)該是粗粒度的。120服務(wù)設(shè)計方法中的原則服務(wù)的名稱要方便使用者1202.1 概念和背景2.2 面向服務(wù)的架構(gòu)SOA2.3 語義互操作2.4 服務(wù)案例2.5 服務(wù)開發(fā)方法2.6 云計算中的服務(wù)2.7 高級專題提綱1212.1 概念和背景提綱121云計算云計算(CloudComputing),是一種基于互聯(lián)網(wǎng)的計算方式,通過這種方式,共享的軟硬件資源和信息可以按需求提供給計算機和其他設(shè)備。云計算描述了一種基于互聯(lián)網(wǎng)的新的IT服務(wù)增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動態(tài)易擴展而且經(jīng)常是虛擬化的資源。122云計算云計算(CloudComputing),是一種基于互云計算中的服務(wù)特征隨需自助服務(wù)。隨時隨地用任何網(wǎng)絡(luò)設(shè)備訪問。多人共享資源池??焖僦匦虏渴痨`活度。可被監(jiān)控與量測的服務(wù)?;谔摂M化技術(shù)快速部署資源或獲得服務(wù)。減少用戶終端的處理負擔。降低了用戶對于IT專業(yè)知識的依賴。123云計算中的服務(wù)特征隨需自助服務(wù)。123互聯(lián)網(wǎng)一個以價值為導向的交互世界未經(jīng)整合、低價值的資源經(jīng)過整合、高價值的服務(wù)資源和服務(wù)集市云計算中的服務(wù)124互聯(lián)網(wǎng)未經(jīng)整合、經(jīng)過整合、高價值的服務(wù)資源和服務(wù)集市云計算中云計算服務(wù)的概觀125云計算服務(wù)的概觀125云計算服務(wù)模式軟件即服務(wù)(SaaS)平臺即服務(wù)(PaaS)基礎(chǔ)架構(gòu)即服務(wù)(IaaS)126云計算服務(wù)模式軟件即服務(wù)(SaaS)126軟件即服務(wù)(SaaS)消費者使用應(yīng)用程序,但并不掌控操作系統(tǒng)、硬件或運作的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。是一種服務(wù)觀念的基礎(chǔ),軟件服務(wù)供應(yīng)商,以租賃的概念提供客戶服務(wù),而非購買,比較常見的模式是提供一組帳號密碼。例如:MicrosoftCRM與S。127軟件即服務(wù)(SaaS)消費者使用應(yīng)用程序,但并不掌控操作系統(tǒng)平臺即服務(wù)(PaaS)消費者使用主機操作應(yīng)用程序。消費者掌控運作應(yīng)用程序的環(huán)境(也擁有主機部分掌控權(quán)),但并不掌控操作系統(tǒng)、硬件或運作的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。平臺通常是應(yīng)用程序基礎(chǔ)架構(gòu)。例如:GoogleAppEngine。128平臺即服務(wù)(PaaS)消費者使用主機操作應(yīng)用程序。消費者掌控基礎(chǔ)架構(gòu)即服務(wù)(IaaS)消費者使用“基礎(chǔ)計算資源”,如處理能力、存儲空間、網(wǎng)絡(luò)組件或中間件。消費者能掌控操作系統(tǒng)、存儲空間、已部署的應(yīng)用程序及網(wǎng)絡(luò)組件(如防火墻、負載平衡器等),但并不掌控云基礎(chǔ)架構(gòu)。例如:AmazonAWS、Rackspace。129基礎(chǔ)架構(gòu)即服務(wù)(IaaS)消費者使用“基礎(chǔ)計算資源”,如處理云計算服務(wù)的部署模型公用云(PublicCloud) 簡而言之,公用云服務(wù)可通過網(wǎng)絡(luò)及第三方服務(wù)供應(yīng)者,開放給客戶使用,“公用”一詞并不一定代表“免費”,但也可能代表免費或相當廉價,公用云并不表示用戶數(shù)據(jù)可供任何人查看,公用云供應(yīng)者通常會對用戶實施使用訪問控制機制,公用云作為解決方案,既有彈性,又具備成本效益。私有云(PrivateCloud) 私有云具備許多公用云環(huán)境的優(yōu)點,例如彈性、適合提供服務(wù),兩者差別在于私有云服務(wù)中,數(shù)據(jù)與程序皆在組織內(nèi)管理,且與公用云服務(wù)不同,不會受到網(wǎng)絡(luò)帶寬、安全疑慮、法規(guī)限制影響;此外,私有云服務(wù)讓供應(yīng)者及用戶更能掌控云基礎(chǔ)架構(gòu)、改善安全與彈性,因為用戶與網(wǎng)絡(luò)都受到特殊限制。130云計算服務(wù)的部署模型公用云(PublicCloud)130云計算服務(wù)的部署模型(續(xù))社區(qū)云(CommunityCloud)社區(qū)云由眾多利益相仿的組織掌控及使用,例如特定安全要求、共同宗旨等。社區(qū)成員共同使用云數(shù)據(jù)及應(yīng)用程序。混合云(HybridCloud) 混合云結(jié)合公用云及私有云,這個模式中,用戶通常將非企業(yè)關(guān)鍵信息外包,并在公用云上處理,但同時掌控企業(yè)關(guān)鍵服務(wù)及數(shù)據(jù)。131云計算服務(wù)的部署模型(續(xù))社區(qū)云(CommunityClo2.1 概念和背景2.2 面向服務(wù)的架構(gòu)SOA2.3 語義互操作2.4 服務(wù)案例2.5 服務(wù)開發(fā)方法2.6 云計算中的服務(wù)2.7 高級專題提綱1322.1 概念和背景提綱132高級專題(探索性的幾個議題)1、服務(wù)推薦
2、服務(wù)組合
3、服務(wù)演化
4、服務(wù)統(tǒng)計133高級專題(探索性的幾個議題)1、服務(wù)推薦
2、服務(wù)組合
3、服務(wù)推薦的背景Web服務(wù)由于其良好的互操作性、平臺獨立性受到了學術(shù)及業(yè)界的青睞。面向服務(wù)的計算改變了傳統(tǒng)的軟件開發(fā)、交互、使用的方式,形成了軟件工程和分布式計算的新型范式。同時也帶來了若干新的挑戰(zhàn),例如:大量服務(wù)涌現(xiàn),面對多個功能相似的服務(wù),用戶如何進行服務(wù)選擇?134服務(wù)推薦的背景Web服務(wù)由于其良好的互操作性、平臺服務(wù)推薦技術(shù)特征的發(fā)展1、基于QoS建模的服務(wù)推薦2、QoS動態(tài)性建模的服務(wù)推薦3、基于協(xié)同過濾的服務(wù)推薦4、基于情景感知QoS預(yù)測的個性化服務(wù)推薦135服務(wù)推薦技術(shù)特征的發(fā)展1、基于QoS建模的服務(wù)推薦135基于QoS建模的服務(wù)推薦常見的(Qos)服務(wù)評價因子:執(zhí)行代價、響應(yīng)時間、可靠性、可用性、信譽度、吞吐率模型的局限性:多數(shù)情況下的前提假設(shè)是:所有的QoS數(shù)據(jù)可以從服務(wù)提供者獲取并且數(shù)據(jù)是穩(wěn)定的(不需要考慮動態(tài)性)。由于網(wǎng)絡(luò)開放性、動態(tài)性,Web服務(wù)的Qos信息是動態(tài)變化的(需要考慮動態(tài)性)136基于QoS建模的服務(wù)推薦常見的(Qos)服務(wù)評價因子:1361、基于QoS建模的服務(wù)推薦2、QoS動態(tài)性建模的服務(wù)推薦3、基于協(xié)同過濾的服務(wù)推薦4、基于情景感知QoS預(yù)測的個性化服務(wù)推薦服務(wù)推薦技術(shù)特征的發(fā)展1371、基于QoS建模的服務(wù)推薦服務(wù)推薦技術(shù)特征的發(fā)展137QoS動態(tài)性建模的服務(wù)推薦QoS數(shù)據(jù)的收集與更新(非歷史和上下文的)研究示范(1)ResearchontoolforservicequalitymeasurementofWebServices.主要工作:提出了一種基于APIHook收集QoS數(shù)據(jù)的方法(2)Random-QoS-AwareReliableWebServiceComposition.主要工作:將QoS的評價因子映射為一組隨機變量,用數(shù)學期望、方差來衡量評價因子的值,不僅僅計算歷史記錄值的平均值。(3)AnApproachforMeasuringQualityofWebServicesBasedontheSuperpositionofUncertainFactors.主要工作:基于非確定因素疊加的web服務(wù)評價方法。局限性:雖然反映了Web服務(wù)的動態(tài)特征,但沒考慮不同用戶之間使用經(jīng)驗的不同(即用戶使用服務(wù)中關(guān)注的上下文)。138QoS動態(tài)性建模的服務(wù)推薦QoS數(shù)據(jù)的收集與更新(非歷史和上1、基于QoS建模的服務(wù)推薦2、QoS動態(tài)性建模的服務(wù)推薦3、基于協(xié)同過濾的服務(wù)推薦4、基于情景感知QoS預(yù)測的個性化服務(wù)推薦服務(wù)推薦技術(shù)特征的發(fā)展1391、基于QoS建模的服務(wù)推薦服務(wù)推薦技術(shù)特征的發(fā)展139基于協(xié)同過濾的服務(wù)推薦研究示范(非上下文的)(1)Reputation-basedrecommenderdiscoveryapproachforserviceselection.主要工作:將信任網(wǎng)絡(luò)劃分為若干個性化的信任網(wǎng)絡(luò),通過信任度的迭代傳播,篩選出信任度高的推薦者。(2)WebserviceQoSpredictionapproach主要工作:通過用戶間Qos數(shù)據(jù)的使用經(jīng)驗的相似性計算,篩選出歷史Qos數(shù)據(jù)與服務(wù)請求者歷史Qos數(shù)據(jù)最相近的用戶及其歷史Qos記錄。局限性:考慮到了用戶的歷史使用經(jīng)驗,但是沒有考慮用戶進行服務(wù)調(diào)用時的情景,例如操作系統(tǒng)、內(nèi)存、CPU、網(wǎng)絡(luò)的帶寬、安全性等情況。140基于協(xié)同過濾的服務(wù)推薦研究示范(非上下文的)1401、基于QoS建模的服務(wù)推薦2、QoS動態(tài)性建模的服務(wù)推薦3、基于協(xié)同過濾的服務(wù)推薦4、基于情景感知QoS預(yù)測的個性化服務(wù)推薦服務(wù)推薦技術(shù)特征的發(fā)展1411、基于QoS建模的服務(wù)推薦服務(wù)推薦技術(shù)特征的發(fā)展141基于情景感知QoS預(yù)測的個性化服務(wù)推薦創(chuàng)新之處在進行Web服務(wù)推薦時,考慮到用戶調(diào)用服務(wù)時的情景,如操作系統(tǒng)、內(nèi)存、CPU、網(wǎng)絡(luò)的帶寬、安全性等等。技術(shù)路線通過聚類的方式,首先篩選出與當前用戶服務(wù)調(diào)用的情景最接近的一組服務(wù),再進行評價推薦。(考慮歷史和類似的上下文)142基于情景感知QoS預(yù)測的個性化服務(wù)推薦創(chuàng)新之處142服務(wù)產(chǎn)生當用戶提出服務(wù)調(diào)用請求時,一組滿足用戶功能需求的服務(wù)及其調(diào)用的歷史記錄就會生成。歷史記錄抽象為屬性集合表示如下:Q={q1,q2,q3,…,qk},其中包括QoS屬性如響應(yīng)時間等,Context情境屬性如IP地址,時間日期。高斯方法(Gaussianapproach):屬性的標準化處理。
表示用戶j調(diào)用服務(wù)i的第k個屬性的標準化處理后的值。143服務(wù)產(chǎn)生143服務(wù)生成以后,按照情境Context進行聚類根據(jù)服務(wù)的調(diào)用記錄,對調(diào)用記錄中屬性進行標準化處理(高斯方法);然后按照情景的相似性(歐幾里得距離)進行聚類(k-means算法)歐幾里得距離(Euclideandistance):計算情景屬性的相似性。
Sim(p,q)表示p,q兩條歷史記錄,調(diào)用情景的相似性。,分別表示p,q兩條歷史記錄中的第i個屬性標準化處理后的值。k-means算法:聚類算法144服務(wù)生成以后,按照情境Context進行聚類144服務(wù)推薦根據(jù)聚類結(jié)果,篩選出與當前用戶調(diào)用情景最相似的一組服務(wù)。按照QoS的值對服務(wù)進行排序,將具有最大QoS值的服務(wù)推薦給用戶。貝葉斯推論(BayesianInference):用于按照QoS對服務(wù)進行排序,根據(jù)先驗概率,計算后驗概率。OS=1,表示用戶對服務(wù)綜合性能滿意。因此實際上p(OS=1|)表示的是用戶對服務(wù)滿意程度,值越高則服務(wù)性能越好145145示例:
<Q1,Q2,Q3,OS>表示服務(wù)調(diào)用的一條歷史記錄
<sj,uj>表示服務(wù)sj被用戶uj調(diào)用
146示例:
<Q1,Q2,Q3,OS>表示服務(wù)調(diào)用的一條流程總結(jié)高斯方法(
Gaussianapproach)數(shù)據(jù)預(yù)處理歷史記錄按情景聚類Cluster中服務(wù)按QoS排序服務(wù)生成(歷史記錄)具有最好QoS的服務(wù)推薦給用戶K-means算法貝葉斯推論當總體QoS大于給定閾值時,則表示用戶滿意即OS=1147流程總結(jié)高斯方法(Gaussianapproach)數(shù)高級專題(探索性的幾個議題)1、服務(wù)推薦
2、服務(wù)組合
3、服務(wù)演化
4、服務(wù)統(tǒng)計148高級專題(探索性的幾個議題)1、服務(wù)推薦
2、服務(wù)組合
3、服務(wù)組合的背景有將簡單功能服務(wù)組合在一起提供復雜功能服務(wù)的需要有提高對于已有的服務(wù)復用程度的需要如何有效地組合分布于Internet中的各類服務(wù),實現(xiàn)服務(wù)之間的無縫集成,形成功能豐富的企業(yè)級服務(wù)流程以達到企業(yè)的商業(yè)目標149服務(wù)組合的背景有將簡單功能服務(wù)組合在一起提供復雜功能服務(wù)的需Web服務(wù)組合定義從業(yè)務(wù)流程的角度出發(fā),Web服務(wù)組合是根據(jù)一定的業(yè)務(wù)規(guī)則將服務(wù)進行有機連接,使其相互協(xié)作從而完成既定的商務(wù)目標。從應(yīng)用集成的角度出發(fā),Web服務(wù)組合是將來自于不同企業(yè)的異質(zhì)異構(gòu)信息系統(tǒng)和軟件進行無縫集成,消除信息孤島,從而形成互通互聯(lián)的軟件聯(lián)合體的過程。從問題求解的角度出發(fā),認為Web服務(wù)組合是為達到用戶特定目標,在給定的一些服務(wù)中,發(fā)現(xiàn)一個能滿足這一目標的組合服務(wù)。從
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- HO-PEG3-CH2-6-Cl-生命科學試劑-MCE-6427
- CP-LC-0743-生命科學試劑-MCE-6886
- 5-Hydroxy-9-S-hexahydrocannabinol-生命科學試劑-MCE-2639
- 二零二五年度互聯(lián)網(wǎng)醫(yī)療企業(yè)股權(quán)并購協(xié)議
- 二零二五年度白酒新品全國市場推廣與銷售代理協(xié)議
- 2025年度二零二五年度終止股權(quán)轉(zhuǎn)讓終止協(xié)議
- 二零二五年度終止體育賽事組織勞務(wù)終止合同
- 二零二五年度蔬菜大棚租賃與農(nóng)業(yè)循環(huán)經(jīng)濟合作協(xié)議
- 施工現(xiàn)場施工防生物戰(zhàn)爭威脅制度
- 施工圍蔽項目特征描述
- 沈陽市第一屆“舒心傳技 莘紳向陽”職業(yè)技能大賽技術(shù)工作文件-27-全媒體運營師
- 安全生產(chǎn)網(wǎng)格員培訓
- 統(tǒng)編版語文三年級下冊第三單元綜合性學習中華傳統(tǒng)節(jié)日 活動設(shè)計
- 降低順產(chǎn)產(chǎn)婦產(chǎn)后2小時失血率PDCA成果匯報書
- 小學數(shù)學分數(shù)四則混合運算300題帶答案
- 2024年考研(英語一)真題及參考答案
- 林下野雞養(yǎng)殖建設(shè)項目可行性研究報告
- 心肺復蘇術(shù)課件2024新版
- 苜蓿青貯料質(zhì)量分級DB41-T 1906-2019
- 新鮮牛肉購銷合同模板
- 2024年內(nèi)蒙古呼和浩特市中考文科綜合試題卷(含答案)
評論
0/150
提交評論