版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、南京郵電大學(xué) 畢 業(yè) 設(shè) 計(論 文) 題 目基于Petri網(wǎng)的Web服務(wù)組合驗證研究專 業(yè)信息安全學(xué)生姓名班級學(xué)號指導(dǎo)教師指導(dǎo)單位計算機學(xué)院、軟件學(xué)院 日期:2014年3月10日至2014年6月13日畢業(yè)設(shè)計(論文)原創(chuàng)性聲明 本人鄭重聲明:所提交的畢業(yè)設(shè)計(論文),是本人在導(dǎo)師指導(dǎo)下,獨立進(jìn)行研究工作所取得的成果。除文中已注明引用的內(nèi)容外,本畢業(yè)設(shè)計(論文)不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本研究做出過重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明并表示了謝意。 論文作者簽名: 日期: 年 月 日摘 要近年來Web服務(wù)的理論和技術(shù)取得了長足的發(fā)展,其保證互操作性的協(xié)議棧
2、下層在學(xué)術(shù)界和工業(yè)界已基本達(dá)成一致。Web服務(wù)的價值在于服務(wù)重用,新興的Web服務(wù)組合正是主要的重用手段。然而基于流程的Web服務(wù)組合建模是一個復(fù)雜且易出錯的過程。如果流程定義在投入運行之后被發(fā)現(xiàn)有錯,則修復(fù)錯誤的代價相當(dāng)高。因此,在建模階段進(jìn)行有效的過程驗證時十分必要的。此外Web服務(wù)組合可能存在不必要的流程設(shè)計而影響執(zhí)行效率。本課題分析了基于Petri網(wǎng)建模的優(yōu)勢,給出基于Petri網(wǎng)的Web服務(wù)的形式化定義和描述,對Web服務(wù)組合進(jìn)行建模及元素映射,給出Petri網(wǎng)模型生成算法并對組合服務(wù)模型的可達(dá)性、安全性、有界性與活性等特性進(jìn)行驗證分析。從而達(dá)到對基于Petri網(wǎng)的Web服務(wù)組合的驗
3、證。關(guān)鍵詞:Web服務(wù);Petri網(wǎng);服務(wù)組合;服務(wù)組合驗證全套設(shè)計加扣3012250582ABSTRACTWeb Services offer a new paradigm for distributed computing on the World Wide Web. Web services composition allows us to combine a number of existing Web services into a new, value-added Web service. Mission critical Web services have little tole
4、rance for run time errors, as repairing them at service operation time is usually costly. The development of such Web services requires thorough verification at the design stage in order to detect and correct errors as early as possible. Moreover, lots of web services compositions may have redundant
5、 flow design which can lead to low performance. Then reduction is needed. The advantages were discussed for modeling web services composition using Petri net in this thesis. Based on Petri net theory, the formal definition and graphic description were proposed for web services and their composition;
6、 the element mapping process was also illustrated. Then an algorithm was proposed to construct the Petri net model for web services composition. The reachability, safeness, boundness and liveness of the model were also validated. To achieve the verification of web service composition based on Petri
7、net.Key words: Web services; Petri net; Services composition; Services composition verification目 錄第一章緒論11.1 研究背景11.2 研究目的31.3 研究現(xiàn)狀41.4 結(jié)構(gòu)安排4第二章 相關(guān)技術(shù)探究62.1 Web服務(wù)概述62.1.1 Web服務(wù)的定義62.1.2 Web服務(wù)的特點62.1.3 Web服務(wù)的結(jié)構(gòu)模型72.1.4 Web服務(wù)核心標(biāo)準(zhǔn)和協(xié)議棧72.1.5 Web服務(wù)的應(yīng)用領(lǐng)域92.2 Web服務(wù)組合92.2.1 Web服務(wù)組合的定義92.2.2 基于BPEL4WS的Web服務(wù)組合1
8、02.3 Petri 網(wǎng)10第三章 基于Petri網(wǎng)的Web服務(wù)組合123.1 基于Petri網(wǎng)的Web服務(wù)定義123.2 Web 服務(wù)組合的代數(shù)描述133.3 Petri網(wǎng)模型生成算法153.4 應(yīng)用Petri網(wǎng)驗證Web服務(wù)組合16第四章 基于Petri網(wǎng)的Web服務(wù)組合的實例分析194.1 Cygwin194.1.1 Cygwin概述194.1.2 Cygwin組成和工作機制194.1.3 Cygwin安裝與配置204.2 BPEL2oWFN234.2.1 BPEL2oWFN的介紹234.2.2 BPEL2oWFN在Cygwin平臺上的編譯244.2.3 BPEL2oWFN在Cygwin
9、平臺上的安裝264.3 LOLA274.3.1 LOLA的介紹274.3.2 LOLA在Cygwin平臺上的編譯274.3.3 LOLA在Cygwin平臺上的安裝294.4 對實際的Web服務(wù)組合進(jìn)行結(jié)構(gòu)驗證30結(jié)束語35致 謝36參考文獻(xiàn)37南京郵電大學(xué)2014屆本科生畢業(yè)設(shè)計(論文)第1章 緒論1.1 研究背景Web服務(wù)作為一種新型的分布式構(gòu)件模型已經(jīng)在電子商務(wù)、企業(yè)應(yīng)用集成等領(lǐng)域扮演著越來越重要的角色,特別是Web服務(wù)的組合技術(shù),因其能實現(xiàn)服務(wù)的重用和增值而成為學(xué)術(shù)界和工業(yè)界關(guān)注的焦點。服務(wù)組合是將服務(wù)看成構(gòu)件而進(jìn)行重用的技術(shù),能在現(xiàn)有的服務(wù)中選取特定的服務(wù),組合成新的服務(wù)來滿足用戶的需
10、求。近年來Web服務(wù)的理論和技術(shù)取得了長足的發(fā)展,其保證互操作性的協(xié)議棧下層在學(xué)術(shù)界和工業(yè)界已基本達(dá)成一致。然而Web服務(wù)的價值在于服務(wù)重用,新興的Web服務(wù)組合正是主要的重用手段。Web服務(wù)技術(shù)遵循面向服務(wù)架構(gòu)(SOA:Service-Oriented Architecture)將網(wǎng)絡(luò)上的成員劃分為Web服務(wù)的需求者、提供者和中介者三種角色。并且以各項基于XML的標(biāo)準(zhǔn)協(xié)議達(dá)成異構(gòu)平臺間的整合:利用簡單對象訪問協(xié)議(SOAP)執(zhí)行、發(fā)布和查詢服務(wù),以Web服務(wù)描述語言(WSDL)描述服務(wù)的應(yīng)用程序接口,并且通過統(tǒng)一描述發(fā)現(xiàn)與整合規(guī)范(UDDI)為服務(wù)需求者和提供者提供代理機制。近年來,通過許多
11、現(xiàn)存Web服務(wù)的協(xié)同組合產(chǎn)生一個新的Web服務(wù)以達(dá)成特定目的的行為被稱之為Web服務(wù)組合,產(chǎn)生的組合服務(wù)也可以作為構(gòu)成其它組合服務(wù)的一個基礎(chǔ)服務(wù)。通過Web服務(wù)組合可以實現(xiàn)出具備更多功能更有價值的企業(yè)流程,通過基礎(chǔ)Web服務(wù)的組合可以創(chuàng)造出更多更有價值的企業(yè)應(yīng)用服務(wù)。許多的企業(yè)組織也將它們的核心服務(wù)包裝成Web服務(wù)的形式放在網(wǎng)絡(luò)上供服務(wù)需求者使用,例Google的搜尋服務(wù)、Amazon的書籍查詢服務(wù)等。如此通過面向服務(wù)架構(gòu)中介機制的透明化特性,Web服務(wù)組合便可以跨越企業(yè)組織將各個不同企業(yè)所提供的Web服務(wù)加以組合創(chuàng)造出新的增值性Web服務(wù)。從Web服務(wù)組合使用者的觀點來看,Web服務(wù)組合的需
12、求規(guī)范可以劃分為面向過程的規(guī)范(POS;Process Oriented Specification)和面向接口的規(guī)范(IOS;Interface Oriented Specification)兩種。POS規(guī)范包含許多抽象化的Web服務(wù)組件(以服務(wù)的功能為基礎(chǔ)并不需要實際指定由那一個服務(wù)負(fù)責(zé)執(zhí)行)配合企業(yè)應(yīng)用邏輯以工作流程的概念描述這些Web服務(wù)間的協(xié)同關(guān)系;IOS規(guī)范只需要Web服務(wù)組合使用者針對所需求的Web服務(wù)組合提供輸入和輸出的信息,至于Web服務(wù)組合中要包含那些基于Petri網(wǎng)的Web服務(wù)組合的驗證與化簡Web服務(wù)組件,要以什么樣的結(jié)構(gòu)組合這些服務(wù),使用者并不需要知道。這兩種Web服
13、務(wù)組合需求規(guī)范必須以不同的方法來達(dá)成,采用POS規(guī)范的Web服務(wù)組合最好是由企業(yè)邏輯模型配合工作流程的規(guī)劃來實現(xiàn)Web服務(wù)的組合協(xié)同;而采用IOS規(guī)范的Web服務(wù)組合則需通過自動化程序組合方法的使用來達(dá)成Web服務(wù)的組合協(xié)同。就Web服務(wù)組合發(fā)展來看,采用POS規(guī)范也就是利用工作流程的概念來規(guī)劃Web服務(wù)的組合協(xié)同仍然是目前最通用的方法,許多的Web服務(wù)匯編語言例如BPEL4WS、WSFL、WSCL、XLANG、BPML、BPSS、WSCI、Wf-XML、JDF、PIPs等也都采用工作流程的概念作為協(xié)同Web服務(wù)組合運作的方法。 然而目前的Web服務(wù)組合仍存在著許多問題有待解決,主要包括以下幾
14、點:l Web服務(wù)組合的開發(fā)問題以工作流程為基礎(chǔ)的Web服務(wù)組合開發(fā)和管理需要具備特定的知識且耗費大量的程序撰寫時間。目前雖然有許多的Web服務(wù)匯編語言但是在開發(fā)上仍然需要以編輯文件的方式來開發(fā)Web服務(wù)組合,然而這是非常費時且沒有效率的。因此許多的研究都發(fā)展出Web服務(wù)組合的開發(fā)平臺來方便組合服務(wù)開發(fā)者的開發(fā)工作,例如:Self-Serv、eFlow、FUSION、SCET等。l Web服務(wù)組合的挑選問題由于在Web服務(wù)的架構(gòu)下,通過UDDI中介機制每個服務(wù)提供者都可以將服務(wù)注冊到中介者上,因此在進(jìn)行Web服務(wù)組合時,對于同樣的工作任務(wù)可能有許多的Web服務(wù)都可以達(dá)成,也因此產(chǎn)生Web服務(wù)在
15、挑選上的問題。而對Web服務(wù)組合而言,就不單單只是單一Web服務(wù)的挑選問題,因為隨著參與組合的Web服務(wù)數(shù)量的增加,出現(xiàn)的排列組合可行方案就會以倍數(shù)成長。針對這樣的問題,許多研究從Web服務(wù)的質(zhì)量上著手,所謂的Web服務(wù)質(zhì)量指的是Web服務(wù)的執(zhí)行時間、可靠度、價格等非功能特性,通過這些非功能特性的評估,讓開發(fā)者有選擇的依據(jù)。l Web服務(wù)的組合能力問題Web服務(wù)要彼此組合必須輸出結(jié)果與輸入?yún)?shù)的數(shù)據(jù)類型能夠互相配合,并且數(shù)據(jù)的意義要相同,否則Web服務(wù)組合執(zhí)行的結(jié)果將是不正確的,而這樣的特性被稱之為Web服務(wù)的組合能力。目前有許多的研究采用DAML-S配合本體知識的方式定義Web服務(wù)輸入?yún)?shù)及
16、輸出結(jié)果的語意描述,在組合時便通過語意描述的比對來判斷Web服務(wù)的組合能力。l Web服務(wù)組合的驗證問題無論Web服務(wù)組合的開發(fā)者是通過組合平臺的設(shè)計或是程序撰寫的方式來開發(fā)Web服務(wù)組合,在設(shè)計Web服務(wù)組合的流程時都有可能發(fā)生流程設(shè)計上的問題例如:死鎖、不可達(dá)性等這些問題不容易在Web服務(wù)組合的設(shè)計階段看出,而要等到Web服務(wù)組合實際執(zhí)行時這些問題才會發(fā)生,但這時很可能已經(jīng)產(chǎn)生無法彌補的錯誤。因此在Web服務(wù)組合實際執(zhí)行前必須針對Web服務(wù)組合的流程設(shè)計進(jìn)行驗證的工作。然而目前尚未有研究提及Web服務(wù)組合的驗證應(yīng)該包含那些步驟做哪些事。大部分的相關(guān)研究僅止于對Web服務(wù)組合進(jìn)行建模而已,至
17、于建模完成后要如何驗證,以及其驗證的標(biāo)準(zhǔn)要如何制定都尚未提及。因此本課題將針對上述Web服務(wù)組合驗證的相關(guān)問題進(jìn)行探討并提出具體的方法。目前Web服務(wù)及其組合的形式化描述和驗證是語義Web服務(wù)中一個重要的研究方向,現(xiàn)有的許多Web服務(wù)及其組合描述語言都是半形式化的,容易出錯和不容易檢測,正確性難以保證。模型的正確性是指模型結(jié)構(gòu)上的正確性,即是安全、有界、無死鎖等。Petri網(wǎng)作為一種基于狀態(tài)的形式化建模方法,具有直觀、形象且有嚴(yán)格語義和數(shù)學(xué)分析之優(yōu)點,是數(shù)據(jù)和控制流的抽象和形式化建模方法。Petri網(wǎng)理論作為組合Web服務(wù)的一個主要機制,可以用來快速組合創(chuàng)建功能更強大的Web服務(wù)。1.2 研究
18、目的本課題理解Petri網(wǎng)相關(guān)知識及其在Web服務(wù)組合中應(yīng)用,分析基于Petri網(wǎng)的Web服務(wù)組合方法,并對其進(jìn)行驗證。根據(jù)以上的出現(xiàn)的問題探討可以發(fā)現(xiàn),Web服務(wù)組合在實際執(zhí)行前若未經(jīng)過驗證將可能發(fā)生死鎖、不可達(dá)性、不能滿足安全性等問題,這些流程設(shè)計問題必須通過建模工具的模擬分析,否則將難以在Web服務(wù)組合的設(shè)計階段察覺。并且Web服務(wù)組合開發(fā)者的Web服務(wù)組合流程設(shè)計可能過于繁雜而不夠簡單明了,造成Web服務(wù)組合的執(zhí)行效率低落。為解決以上的問題,本課題提出一個基于Petri-Net的Web服務(wù)組合驗證及簡化方法,以達(dá)成以下兩項目的:l 確保Web服務(wù)組合流程設(shè)計的正確性為避免Web服務(wù)組合
19、實際執(zhí)行時才發(fā)生Web服務(wù)互相等待輸入消息產(chǎn)生死鎖等的問題造成Web服務(wù)組合使用客戶的不滿和降低Web服務(wù)組合提供者的聲譽,本課題提出一個Web服務(wù)組合的驗證方法,以Petri-Net模型化Web基于Petri網(wǎng)的Web服務(wù)組合的驗證與化簡服務(wù)組合開發(fā)者設(shè)計的Web服務(wù)組合流程,通過Petri-Net的流程狀態(tài)模擬分析能力,預(yù)先發(fā)現(xiàn)由于Web服務(wù)組合的錯誤設(shè)計所造成的死鎖、不可達(dá)性、非安全性等問題,以確保Web服務(wù)組合流程設(shè)計的正確性。l 改善Web服務(wù)組合的執(zhí)行效率本課題將七個流程簡化規(guī)則應(yīng)用在Web服務(wù)組合的簡化上,這些簡化規(guī)則可以在不影響Web服務(wù)組合原有功能的前提下,轉(zhuǎn)換Web服務(wù)組合
20、流程中過于繁雜且不必要的流程設(shè)計。通過Web服務(wù)組合流程的簡化將可以減少由于繁雜的流程設(shè)計所造成的時間浪費達(dá)到提升Web服務(wù)組合執(zhí)行效率的效果。此外,為實踐基于Petri-Net的Web服務(wù)組合驗證及簡化方法,本課題提出一個Web服務(wù)組合驗證及簡化實現(xiàn)架構(gòu)。通過Web服務(wù)匯編語言PNML(Petri-Net Markup Language)的轉(zhuǎn)換完成Web服務(wù)組合的Petri-Net建模,并利用覆蓋樹、關(guān)聯(lián)矩陣等常見的Petri-Net分析方法驗證死鎖、可達(dá)性和安全性等性質(zhì),最后以流程簡化規(guī)則配合Web服務(wù)組合代數(shù)方法的運用完成Web服務(wù)組合流程簡化的工作,達(dá)到高效的驗證效果。1.3 研究現(xiàn)狀
21、Web服務(wù)是語義網(wǎng)的一個關(guān)鍵應(yīng)用研究領(lǐng)域,Web服務(wù)的激增和語義網(wǎng)技術(shù)的發(fā)展,為多樣的Web服務(wù)組合提供了便利。語義網(wǎng)技術(shù)提供了計算機可判斷的Web內(nèi)容和性能標(biāo)記,推動了服務(wù)的自動發(fā)現(xiàn)和服務(wù)組合。目前Web服務(wù)及其組合的形式化描述和驗證是語義Web服務(wù)中一個重要的研究方向,現(xiàn)有的許多Web服務(wù)及其組合描述語言都是半形式化的,容易出錯和不容易檢測,正確性難以保證,需要有形式化的方法來驗證Web服務(wù)組合模型。模型的正確性是指模型結(jié)構(gòu)上的正確性,即是安全、有界、無死鎖等。Petri網(wǎng)作為一種基于狀態(tài)的形式化建模方法,具有直觀、形象且有嚴(yán)格語義和數(shù)學(xué)分析之優(yōu)點,是數(shù)據(jù)和控制流的抽象和形式化建模方法。本
22、文采用Petri網(wǎng)對Web服務(wù)組合進(jìn)行正確性驗證。1.4 結(jié)構(gòu)安排第一章、緒論 緒論部份描述本課題的研究背景、研究目的和本文的工作,并且說明本論文的結(jié)構(gòu)安排。第二章、相關(guān)技術(shù)探討本章為相關(guān)技術(shù)的概述 主要目的是為本課題所做工作提供相關(guān)的基礎(chǔ)知識。第一節(jié)概述Web服務(wù),包括Web服務(wù)的定義、Web服務(wù)的特點、Web服務(wù)的結(jié)構(gòu)模式、Web服務(wù)的核心標(biāo)準(zhǔn)和協(xié)議棧及Web服務(wù)的目前應(yīng)用領(lǐng)域。第二節(jié)Web服務(wù)組合,主要是對Web服務(wù)組合的定義進(jìn)行說明,特別介紹了基于BPEL4WS的Web服務(wù)組合。第三節(jié)著重闡述了Petri的相關(guān)理論。第三章、基于Petri-Net的Web服務(wù)組合 本章描述本課題所提出的
23、基于Petri-Net的Web服務(wù)組合驗證。共分為四個小節(jié),第一節(jié)說明Web服務(wù)組合的定義。第二小節(jié)用代數(shù)描述了Web服務(wù)組合。第三小節(jié)闡述了Petri網(wǎng)模型生成算法。最后一節(jié)重要介紹應(yīng)用Petri網(wǎng)驗證Web服務(wù)組合,如分析Petri網(wǎng)可采用可達(dá)樹法、不變量分析、約簡等方法。第四章、基于Petri網(wǎng)的Web服務(wù)組合的實例分析 本章闡述基于Petri-Net的Web服務(wù)組合驗證的實例分析,以實現(xiàn)第三章提出的Web服務(wù)組合驗證概念。本章共分為四個小節(jié),首先闡述本次課題實現(xiàn)基于的平臺,即Cygwin平臺,包括它的一些概述,它的組成與工作機制以及最重要的安裝與環(huán)境的配置。第二、三部分描本課題實現(xiàn)的兩
24、個很重要的工具,BPEL2WFN和LOLA,用兩小節(jié)分別對它們進(jìn)行了介紹以及在Cygwin平臺上的編譯與安裝、調(diào)試。第四部分詳細(xì)描述對一個實際的Web服務(wù)組合進(jìn)行結(jié)構(gòu)驗證。第二章 相關(guān)技術(shù)探究2.1 Web服務(wù)概述2.1.1 Web服務(wù)的定義隨著技術(shù)的進(jìn)步,Web的角色從信息的容器逐漸發(fā)展成為提供Web服務(wù)的載體,Web服務(wù)建立在面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)基礎(chǔ)之上。SOA為最新的分布式計算技術(shù),可以將軟件組件(包括來自不同系統(tǒng)的程序函數(shù)、對象和進(jìn)程)發(fā)布為服務(wù)。 根據(jù)萬維網(wǎng)協(xié)會(World Wide Web Consortium,W
25、3C)的定義,一個Web服務(wù)是指通過統(tǒng)一資源標(biāo)志符(Universal Resource Identifier,URI)標(biāo)志的一個軟件系統(tǒng),其公共接口和綁定方式是通過可擴展標(biāo)記語言(eXtensible Markup Language,XML)來定義和描述的。其他軟件系統(tǒng)可以發(fā)現(xiàn)Web服務(wù)的定義,然后可以按照定義所規(guī)定的方式與這個Web服務(wù)進(jìn)行交互。這種交互使用基于XML的消息,通過網(wǎng)絡(luò)傳輸協(xié)議來進(jìn)行。2.1.2 Web服務(wù)的特點從外部的使用者的角度而言,Web服務(wù)是一種部署在Web服務(wù)器上的對象或組件,它具備以下特征:封裝性:Web服務(wù)是一種部署在Web上的對象,自然具備對象的良好封裝性,對
26、于使用者而言,他能且僅能看到該對象提供的功能列表?;ゲ僮餍裕喝魏?Web Service 都可以與其它 Web Service 進(jìn)行交互,Web服務(wù)通過SOAP實現(xiàn)相互間的訪問,這樣就避免了在 CORBA,DCOM 和其它協(xié)議等等不同協(xié)議之間轉(zhuǎn)換的麻煩。還因為可以使用任何語言來編寫Web服務(wù),開發(fā)者無需更改他們的開發(fā)環(huán)境就可生產(chǎn)和使用Web服務(wù),同時還可以在新的Web服務(wù)中使用己有的Web服務(wù)而不必考慮Web服務(wù)的實現(xiàn)語言,運行環(huán)境等具體實現(xiàn)細(xì)節(jié)。普遍性:Web服務(wù)使用HTTP和XML進(jìn)行通信。因此,任何支持這些技術(shù)的設(shè)備都可以擁有和訪問Web服務(wù)。相信在未來,Web服務(wù)將普遍應(yīng)用于社會生活的
27、各個領(lǐng)域。易實現(xiàn)性:Web Service背后的概念易于理解,并且來自微軟和SUN等這樣的供應(yīng)商的免費工具箱能夠讓開發(fā)者快速創(chuàng)建和部署自己的Web服務(wù)。松散耦合:這一特性源于對象/組件技術(shù),當(dāng)一個Web服務(wù)的實現(xiàn)發(fā)生變更的時候,調(diào)用者將不會受到任何影響。對于調(diào)用者來說,只要Web服務(wù)的調(diào)用界面不變,Web Service 實現(xiàn)的任何變更對他們來說都是透明的,甚至是當(dāng)Web Service的實現(xiàn)平臺從J2EE遷移到了.NET或者是相反的遷移流程,用戶都可以對此一無所知。 標(biāo)準(zhǔn)性:使用開放的標(biāo)準(zhǔn)協(xié)議進(jìn)行描述、傳輸和交換。這些標(biāo)準(zhǔn)協(xié)議具有完全免費的規(guī)范,以便由任意方進(jìn)行實現(xiàn)。一般而言,絕大多數(shù)規(guī)范將
28、最終由W3C 或OASIS(Organization for the Advancement of Structured Information Standards,結(jié)構(gòu)化標(biāo)準(zhǔn)信息推進(jìn)組織)等權(quán)威組織作為最終版本的發(fā)布方和維護方。 2.1.3 Web服務(wù)的結(jié)構(gòu)模型Web服務(wù)本身是跨平臺的、獨立的、模塊化的應(yīng)用,能夠通過網(wǎng)絡(luò),特別是WWW來描述、發(fā)布、定位以及調(diào)用。根據(jù)W3C的標(biāo)準(zhǔn)提議,一個典型的Web服務(wù)體系結(jié)構(gòu)基于三種角色(服務(wù)提供者、服務(wù)發(fā)現(xiàn)代理和服務(wù)請求者)之間的交互。交互涉及發(fā)布、查找和綁定操作。這些角色和操作一起作用于Web服務(wù)構(gòu)件。服務(wù)提供者定義Web服務(wù)的服務(wù)描述并把它發(fā)布到服務(wù)
29、請求者或服務(wù)注冊中心。服務(wù)請求者使用查找操作來從本地或服務(wù)發(fā)現(xiàn)代理檢索服務(wù)描述,然后使用服務(wù)描述與服務(wù)提供者進(jìn)行綁定并調(diào)用Web服務(wù)實現(xiàn)或同它交互。服務(wù)提供者和服務(wù)請求者角色是邏輯結(jié)構(gòu),因而服務(wù)可以表現(xiàn)兩種特性。圖2.1表示了這些操作、提供這些操作的組件及它們之間的交互。Web服務(wù)代理 查找注冊Web服務(wù)提供者Web服務(wù)請求者 綁定圖2.1 Web 服務(wù)體系構(gòu)架模型2.1.4 Web服務(wù)核心標(biāo)準(zhǔn)和協(xié)議棧要以一種可互操作的方式執(zhí)行發(fā)布、發(fā)現(xiàn)和綁定這三個操作,必須有一個包含每一層標(biāo)準(zhǔn)的Web服務(wù)協(xié)議棧作為Web服務(wù)標(biāo)準(zhǔn)化組織,W3C Web服務(wù)體系架構(gòu)工作組(W3C Web Services Ar
30、chitecture Working Group)在概念層面上提出了一組Web服務(wù)的協(xié)議棧,圖2.2展示了這個Web服務(wù)協(xié)議棧。對各層稍作粗略的解釋如下:圖2.2 Web 服務(wù)體系結(jié)構(gòu)協(xié)議棧 服務(wù)發(fā)現(xiàn)和集成與UDDI服務(wù)發(fā)現(xiàn)與集成的目標(biāo)是根據(jù)請求者的要求發(fā)現(xiàn)合適的Web服務(wù),并將該Web服務(wù)的服務(wù)描述返回給請求者,然后請求者可能將該服務(wù)動態(tài)集成到應(yīng)用中。該層可使用的模式有多種。UDDI作為廣泛使用的規(guī)范是其中的一種。UDDI(Universal Description, Discovery and Integration,通用描述、發(fā)現(xiàn)和集成)是基于XML的規(guī)范。它是為使軟件能夠在網(wǎng)絡(luò)自動發(fā)現(xiàn)
31、服務(wù)并通過提供必要的轉(zhuǎn)換自動同服務(wù)集成在一起而設(shè)計的。UDDI報文附加在SOAP協(xié)議之上,SOAP負(fù)責(zé)調(diào)用網(wǎng)上的服務(wù)。Web服務(wù)描述層與WSDL服務(wù)描述層的目標(biāo)是幫助Web服務(wù)描述其功能。在這層上WSDL( Web Services Description Language,Web服務(wù)描述語言)作為 W3C推薦的服務(wù)描述語言得到廣泛的應(yīng)用,也使事實上的工業(yè)標(biāo)準(zhǔn)。WSDL用來描述網(wǎng)絡(luò)服務(wù)或終端(endpoint)的一種XML語言,它用于定義Web服務(wù):以及如何調(diào)用它們(描述Web服務(wù)的屬性,例如它做什么,它位于哪里和怎樣調(diào)用它)。消息層與SOAP消息層的作用是將Web服務(wù)消息獨立于特定的傳輸協(xié)議
32、。作為W3C唯一推薦的消息層協(xié)議,也是事實上的工業(yè)標(biāo)注,SOAP(Simple Object Access Protocol,簡單對象訪問協(xié)議)是一個基于XML的報文協(xié)議,用于訪問網(wǎng)上的服務(wù)。SOAP可以運行在任何其它傳輸協(xié)議上。比如可以使用HTTP,SMTP,JMS等協(xié)議來傳遞SOAP消息。各種傳輸層之間基于Petri網(wǎng)的Web服務(wù)組合的驗證與化簡的報頭是不同的,但XML有效負(fù)載保持相同。SOAP用XML將消息編碼,因此在調(diào)用過程的任何一步都很容易地處理消息。另外,調(diào)試SOAP消息的方便性使各種SOAP執(zhí)行能快速聚合在一起,達(dá)到大范圍的協(xié)同工作。最后各種針對SOAP的擴展使Web服務(wù)獲得更多
33、的特性,比如安全性等等。XML(eXtensible Markup Language,可擴展標(biāo)記語言)是Internet上數(shù)據(jù)表示和數(shù)據(jù)交換的一種標(biāo)準(zhǔn)。它是一種元語言,可以用來定義和描述結(jié)構(gòu)化數(shù)據(jù),它是Web服務(wù)得以實現(xiàn)的語言基礎(chǔ)。Web服務(wù)的其它協(xié)議規(guī)范都是以XMI的形式來描述和表達(dá)的。在Web服務(wù)技術(shù)中,SOAP消息作為各種傳輸協(xié)議的有效載荷,被用來發(fā)送與接受。迄今為止,在Web服務(wù)中使用的最廣泛的傳輸協(xié)議協(xié)議是HTTP,當(dāng)然也可以使用其它傳輸層協(xié)議,如FTP、SMTP等。2.1.5 Web服務(wù)的應(yīng)用領(lǐng)域Web服務(wù)基本上覆蓋了傳統(tǒng)分布計算技術(shù)的應(yīng)用領(lǐng)域。作為目前最典型的異構(gòu)分布技術(shù),Web
34、服務(wù)在應(yīng)用程序跨平臺和跨網(wǎng)絡(luò)進(jìn)行通信的時候是非常有用的。Web服務(wù)適用于應(yīng)用程序集成、B2B集成、代碼和數(shù)據(jù)重用,以及通過Web進(jìn)行客戶端和服務(wù)器的通信的場合。下面是幾個Web服務(wù)主要的應(yīng)用領(lǐng)域:(1)跨越防火墻的通信。與COM,CORBA等集成技術(shù)不同,Web服務(wù)一開始就是針對Internet的集成。他們采用XML的一系列標(biāo)準(zhǔn),并且能夠以HTTP作為傳輸層協(xié)議,這讓它獲得了穿越防火墻的能力。(2)應(yīng)用系統(tǒng)集成。通過Web服務(wù),應(yīng)用程序可以用標(biāo)準(zhǔn)的方法把功能和數(shù)據(jù)暴露出來,供其它的應(yīng)用程序使用。用Web服務(wù)來實現(xiàn)集成的最大好處在于可以輕易實現(xiàn)互操作性。只要把你的商務(wù)邏輯暴露出來,成為Web服務(wù)
35、,你就可以讓任何指定的合作伙伴輕松的調(diào)用你的商務(wù)邏輯,而不管他們的系統(tǒng)在什么平臺上運行,使用的是什么開發(fā)語言。這樣就大大減少了花在集成的上的時間和成本。(3)軟件重用。目前,軟件重用有一個嚴(yán)重的限制,即重用僅限于代碼,而數(shù)據(jù)不能被重用。因為可以很輕易的發(fā)布組件甚至源代碼,但要發(fā)布數(shù)據(jù)就沒那么容易了,除非那些數(shù)據(jù)都是不會經(jīng)常變化的靜態(tài)數(shù)據(jù)。而Web服務(wù)則允許在重用代碼的同時,重用代碼后面的數(shù)據(jù)。2.2 Web服務(wù)組合 2.2.1 Web服務(wù)組合的定義隨著Web服務(wù)技術(shù)的日益成熟,越來越多的穩(wěn)定易用Web服務(wù)共享在網(wǎng)絡(luò)上。但單個的Web服務(wù)能夠提供的功能有限,為了更加充分地利用共享的Web服務(wù),有
36、必要將共享的Web服務(wù)組合起來,提供更為強大的服務(wù)功能,加快系統(tǒng)開發(fā)的速度,快速滿足用戶需求。Web服務(wù)組合方法從組合方案生成方式來分有兩大類:靜態(tài)組合和動態(tài)組合。靜態(tài)組合意味著請求者應(yīng)在組合計劃實施前創(chuàng)建一個抽象的過程模型。抽象的過程模型包括任務(wù)的集合以及任務(wù)間的數(shù)據(jù)依賴關(guān)系,每個任務(wù)包含一個查詢的子句,用來查找完成任務(wù)的真正的Web服務(wù)。因此這里的自動僅指Web服務(wù)的選擇和綁定是由程序自動完成的。靜態(tài)組合中最常用的是用圖來描述過程模型。而動態(tài)組合不僅自動地選擇、綁定Web服務(wù),同時更重要的是自動地創(chuàng)建過程模型。這需要請求者指定一些約束關(guān)系,包括Web服務(wù)間的依賴關(guān)系、用戶的偏愛等。2.2.
37、2 基于BPEL4WS的Web服務(wù)組合BPEL4WS( Business Process Execution Language for Web Services,Web服務(wù)的商業(yè)流程執(zhí)行語言)是專為整合Web服務(wù)而制定的一項規(guī)范標(biāo)準(zhǔn)。BPEL4WS的作用是將一組現(xiàn)有的服務(wù)整合起來,從而定義一個新的Web服務(wù)。它能夠?qū)eb服務(wù)調(diào)用、操作數(shù)據(jù)、拋出故障或終止一個流程等不同的活動連接起來,從而創(chuàng)造出復(fù)雜的流程,這些活動可以嵌套到結(jié)構(gòu)化活動中,結(jié)構(gòu)化活動定義了活動的運行方式和控制流程。BPEL4WS可將一組現(xiàn)有的服務(wù)整合起來,從而定義一個新的Web服務(wù)。BPEL4WS流程是一個流程圖,用來表達(dá)特定業(yè)
38、務(wù)的處理邏輯和算法,流程的每一步稱為一個活動。BPEL4WS主要利用WSDL使得服務(wù)的動態(tài)綁定成為可能,但它沒有提供具體方式來選取動態(tài)綁定時需要調(diào)用的服務(wù),并且BPEL4WS不支持在應(yīng)用運行時的流程模型的調(diào)整。與類似BPEL4WS這樣來表達(dá)業(yè)務(wù)流程的還有BPEL等。查找Web服務(wù)時需要搜索巨大的服務(wù)空間,比較、匹配滿足條件的服務(wù),因此用來組建組合服務(wù)的方法復(fù)雜、動態(tài)以致難以手工處理。為了自動地開發(fā)組合服務(wù),需要同軟件開發(fā)方法一樣的系統(tǒng)的方法來分析需求,將需求所涉及的活動模型化。改變服務(wù)開發(fā)方法使其適應(yīng)服務(wù)組合開發(fā)的好處是我們能夠深入了解組建服務(wù)組合流程以致更好地管理其實現(xiàn)。2.3 Petri
39、網(wǎng)Petri網(wǎng)是對離散并行系統(tǒng)的數(shù)學(xué)表示。Petri網(wǎng)最早是由德國學(xué)者Carl Adam Petri博士在1962 年提出來的,適合于描述異步的、并發(fā)的計算機系統(tǒng)模型。Petri網(wǎng)既有嚴(yán)格的數(shù)學(xué)表述方式,也有直觀的圖形表達(dá)方式,既有豐富的系統(tǒng)描述手段和系統(tǒng)行為分析技術(shù),又為計算機科學(xué)提供堅實的概念基礎(chǔ)。 一個Petri網(wǎng)是一個有向連通圖,其節(jié)點分別稱為庫所和變遷,每個庫所代表一種資源,而庫所中的托肯數(shù)表示資源的數(shù)量,當(dāng)變遷t的所有輸入庫所中都至少含有一個托肯時(標(biāo)識M),t就可以發(fā)生,記為Mt。變遷發(fā)生的結(jié)果是從每個輸入庫所中移除若干個托肯,而給每個輸出庫所移入若干個托肯。此時到達(dá)標(biāo)識M記為M
40、tM。 一個經(jīng)典的Petri的數(shù)學(xué)表達(dá)如下:Net(S,T;F)STSTFSTTSdom(F)cod(F)ST其中S是庫所(狀態(tài))的集合,T為變遷(事件)的集合。在形式化表達(dá)中,通常用圓圈或橢圓表示庫所,用方框或粗杠表示變遷,用箭頭表示流關(guān)系的圖形的示例,如圖2.3:圖2.3Petri網(wǎng)中的形式化表達(dá)Petri網(wǎng)是一個良好的過程建模方法,在庫所中添加表示狀態(tài)信息的托肯分布,并按引發(fā)規(guī)則使得變遷引發(fā)驅(qū)動狀態(tài)演變,從而反映系統(tǒng)動態(tài)運行過程。采用Petri網(wǎng)來建立模型有許多優(yōu)點,主要有兩個:其一是其圖形化的描述比較容易讓用戶理解系統(tǒng)模型,其二是可以利用Petri網(wǎng)對模型進(jìn)行形式分析和驗證。第三章 基
41、于Petri網(wǎng)的Web服務(wù)組合3.1 基于Petri網(wǎng)的Web服務(wù)定義為了應(yīng)用Petri網(wǎng)驗證Web服務(wù),需將Petri網(wǎng)元素與Web服務(wù)的元素相對應(yīng),以達(dá)成用Petri網(wǎng)形式化地描述Web服務(wù)組合。基于Petri網(wǎng)的Web服務(wù)定義如下。定義3.1 Web服務(wù)定義。一個Web服務(wù)S定義為六元組:S=(Id,SName,Desc,SOnto,URL,Oper),其中:l Id:Web服務(wù)的唯一的標(biāo)識;l SName:Web服務(wù)的名稱;l Desc:服務(wù)的描述;l SOnto:服務(wù)的領(lǐng)域本體,包括對服務(wù)所屬領(lǐng)域類型的語義描述及參數(shù)及操作的語義描述;分類領(lǐng)域本體用來過濾掉不相關(guān)的不同服務(wù)領(lǐng)域的服務(wù),
42、組織服務(wù)到服務(wù)的所屬分類。l URL:服務(wù)的調(diào)用;l Oper:服務(wù)的操作集。定義3.2 服務(wù)網(wǎng)的定義。一個服務(wù)網(wǎng)SN定義為五元組,用來對服務(wù)的動態(tài)行為進(jìn)行建模:SN=(P,T,W,i,o),其中:P:有限庫所集,代表Web服務(wù)的狀態(tài),P=p1,p2,.,pn;T:有限變遷集,代表服務(wù)中的操作(operation)及服務(wù)之間的操作,T=t1,t2,.,tn;W:(PT)(TP),是有向弧的集合,表示服務(wù)狀態(tài)和操作之間的關(guān)系;i:輸入庫所,i=xPT|(x,i)W=;o:輸出庫所,o=xPT|(o,x)W=。庫所i被認(rèn)為是服務(wù)S的初始標(biāo)識,當(dāng)有一個托肯在庫所i中時,執(zhí)行服務(wù)S,當(dāng)有一個托肯在庫所
43、o中時,被認(rèn)為終止服務(wù)S。用標(biāo)識函數(shù)表示系統(tǒng)狀態(tài),另外對系統(tǒng)狀態(tài)的演變過程進(jìn)行描述,就可以對Web服務(wù)組合系統(tǒng)的靜態(tài)特性、動態(tài)特性進(jìn)行全面的建模。系統(tǒng)動態(tài)演變過程的描述是和Petri網(wǎng)的運行規(guī)則對應(yīng)的:(1)tT在標(biāo)識M可觸發(fā)當(dāng)且僅當(dāng)對于任何pP,M(p)I(p,t);(2)若tT在標(biāo)識M下可觸發(fā),按照激活規(guī)則產(chǎn)生新標(biāo)識M,M(p)=M(p)+W(p,t)-W(t,p)。M被稱為M的直接可達(dá)標(biāo)識,M稱為M0的可達(dá)標(biāo)識當(dāng)且僅當(dāng)在以上運行規(guī)則下,存在一個變遷的觸發(fā)序列t1,t2,.,tn,使得模型標(biāo)識從M0轉(zhuǎn)換到M,所有M0的可達(dá)標(biāo)識稱為Petri網(wǎng)PN的可達(dá)集。3.2 Web 服務(wù)組合的代數(shù)描述
44、Web服務(wù)組合組件由原子服務(wù)和控制結(jié)構(gòu)兩部分組成??刂平Y(jié)構(gòu)如:順序、并行、選擇、循環(huán)等,本文采用Petri網(wǎng)對控制流精確描述。在定義3.1的和定義3.2的基礎(chǔ)上,Web服務(wù)組合可通過類BNF范式的符號進(jìn)行定義。代數(shù)操作符的語法如下:S:=X|S1S2|S1S2|S1S2|S|S1cS2(1)X表示一個原子服務(wù)或空服務(wù)(即一個服務(wù)沒有執(zhí)行任何操作);(2)S1S2表示一個組合服務(wù)是順序執(zhí)行S1和S2后形成的;(3)S1S2表示一個組合服務(wù)是執(zhí)行S1或S2后形成的(不可兼或);(4)S1S2表示一個組合服合是按S1和S2順序執(zhí)行或按S2和S1順序執(zhí)行后形成的,等價于S1S2S2S1;(5)S表示一
45、個組合服務(wù)是由S循環(huán)執(zhí)行次后形成的;(6)S1CS2表示一個組合服務(wù)是由S1和S2并發(fā)執(zhí)行后形成的,在并發(fā)執(zhí)行中間兩個服務(wù)間可能會有通信。組合的Web服務(wù)可以通過上述的代數(shù)表達(dá)式獲得。定義3.3服務(wù)組合模型是合理的,必須滿足以下基本要求:(1)每個模型都存在一個輸入庫所i和一個輸出庫所O;(2)每個變遷庫所都在一條從輸入庫所i到輸出庫所O的路徑上;(3)在任何情況下,服務(wù)組合總能最終終止,在終止的時候,只有輸出庫所中有托肯,而其它庫所是沒有托肯存在的;(4)在組合模型中沒有死組合的存在,即任何一個組合都有執(zhí)行的可能。根據(jù)以上四個要求,我們給出組合模型的圖形化表示。采用Petri網(wǎng)建模時,指定服
46、務(wù)的操作為變遷,服務(wù)的狀態(tài)為庫所,基于Petri網(wǎng)的Web服務(wù)建模方法中最小的組合單元是原子服務(wù)。在服務(wù)組合中將子服務(wù)(原子服務(wù)或組合服務(wù))的操作當(dāng)作事件(變遷),子服務(wù)S1和S2的操作執(zhí)行使得服務(wù)的狀態(tài)(庫所)發(fā)生了改變。任何時刻一個服務(wù)可以處于如下狀態(tài):非實例狀態(tài)(notinstantiated)、準(zhǔn)備好狀態(tài)(ready)、運行狀態(tài)(running)、掛起狀態(tài)(suspended)和完成狀態(tài)(finished)。本文服務(wù)組合中處于ready狀態(tài)的服務(wù)被組合,當(dāng)服務(wù)處于finished狀態(tài)時表示服務(wù)被組合成功。(1)組合服務(wù)S1S2的Petri網(wǎng)圖形化表示如圖3.1所示。圖3.1 組合服務(wù)S
47、1S2(2)組合服務(wù)S1S2的Petri網(wǎng)圖形化表示如圖3.2所示。圖3.2 組合服務(wù)S1S2(3) 組合服務(wù)S1S2的Petri網(wǎng)圖形化表示如圖3.3所示。圖3.3 組合服務(wù)S1S2(4) 組合服務(wù)S的Petri網(wǎng)圖形化表示如圖3.4所示。圖3.4 組合服務(wù)S(5) 組合服務(wù)S1CS2的Petri網(wǎng)圖形化表示如圖3.5所示,兩個子服務(wù)間有可能有信息通信,庫所m用來存放通信信息。圖3.5 組合服務(wù)S1cS2對于一些更復(fù)雜的服務(wù)組合操作,可以由上述基本操作可構(gòu)成復(fù)雜的服務(wù)組合操作。如(S1S2Sn)S,其Petri網(wǎng)圖形化表示如圖3.6所示。該組合服務(wù)表示先執(zhí)行原子服務(wù)集合中的某個Si(i1,2
48、n),再執(zhí)行S后形成的組合服務(wù)。其中從n個原子服務(wù)中選擇最優(yōu)的原子服務(wù)的過程將根據(jù)價格,遞交時間和可靠性能等因素通過選用一個等級標(biāo)準(zhǔn)來判斷。圖3.6 組合服務(wù)(S1S2.Sn)S3.3 Petri網(wǎng)模型生成算法在服務(wù)組合時需要通過Petri網(wǎng)的分析技術(shù)來對組合服務(wù)進(jìn)行驗證分析,Petri網(wǎng)模型生成算法的生成算法如下:Step1.確定待組合的Web服務(wù)數(shù)、各服務(wù)的操作以及控制流;Step2.產(chǎn)生一個的初始服務(wù)狀態(tài),并加上一個標(biāo)記,作為初始子網(wǎng);Step3.forj=1toM/*待組合服務(wù)中有j個操作模塊*/a.按控制流選擇一個操作模塊;b.給每個操作分配一個隨機操作時間,操作時間滿足指數(shù)分布的概
49、率分布;c.將操作連接到已存在的子網(wǎng)中去。Step4.endStep5.endStep6.為每種服務(wù)狀態(tài)創(chuàng)建相應(yīng)的狀態(tài)位置;Step7.使用如下方法將服務(wù)狀態(tài)加入到操作中去:a.選擇一個服務(wù)狀態(tài)位置;b.按控制流將此狀態(tài)分配給相應(yīng)的服務(wù)操作,分配時用輸出弧將狀態(tài)位置和操作位置的輸入變遷相連,用輸入弧將狀態(tài)和操作位置的輸出變遷相連;c.重復(fù)Step7,直到按控制流所有操作位置都分配了服務(wù)狀態(tài)。在程序?qū)崿F(xiàn)中,算法程序的輸出就是產(chǎn)生的服務(wù)組合的Petri網(wǎng)模型,它們是用伴隨矩陣L+和L-、初始標(biāo)識M0、終止標(biāo)識Mf和操作時間向量來描述的。3.4 應(yīng)用Petri網(wǎng)驗證Web服務(wù)組合分析Petri網(wǎng)可采
50、用可達(dá)樹法、不變量分析、約簡等方法,其中可達(dá)樹分析法直觀簡捷,可方便地分析系統(tǒng)的可達(dá)性、有界性、活性等各種動態(tài)特性,Petri網(wǎng)的大部分特性可以由可到達(dá)樹來進(jìn)行驗證。我們通過結(jié)合可到達(dá)樹的構(gòu)造和正確性的檢查來實現(xiàn)流程模型的驗證過程??傻竭_(dá)樹的基本思想就是將可到達(dá)的標(biāo)識作為節(jié)點,變遷的觸發(fā)作為連接弧,來構(gòu)造一棵樹。我們的算法就是在構(gòu)造樹的過程中,檢查服務(wù)組合的狀態(tài)和其中庫所的托肯數(shù)目以實現(xiàn)流程模型的驗證。當(dāng)服務(wù)組合時只關(guān)心系統(tǒng)可能的狀態(tài)時,可達(dá)標(biāo)識集可以滿足這類問題的要求。給定Petri網(wǎng)中的一個標(biāo)識M,該網(wǎng)絡(luò)的可達(dá)標(biāo)識表示為M。給定一個以M0 M0為初始標(biāo)識的Petri網(wǎng)N,我們可以從M0 (
51、根結(jié)點)開始計算得到與使能變遷一樣多的新標(biāo)識。從這些新的標(biāo)識,又可得到更多的標(biāo)識,重復(fù)進(jìn)行這個過程的結(jié)果可得到一棵可達(dá)樹。節(jié)點就是從M0產(chǎn)生的后繼標(biāo)識,弧代表從一個標(biāo)識到另一個標(biāo)識的變遷激發(fā)??蛇_(dá)樹用來描述從初態(tài)M0開始的所有可能到達(dá)的狀態(tài),結(jié)點代表M0及其可達(dá)的后繼,其中樹根為M0,樹葉對應(yīng)著系統(tǒng)的終態(tài),弧代表相應(yīng)的變遷。從樹根到某結(jié)點的路徑代表著從初態(tài)變遷到該狀態(tài)。利用可達(dá)樹算法生成可達(dá)樹后,任何發(fā)生序列都可通過在圖上執(zhí)行搜索獲得。Web服務(wù)組合的正確終止對于組合服務(wù)非常重要,通過Petri網(wǎng)對活性和有界性的驗證來決定服務(wù)是否正常結(jié)束,通過是否具有完全可達(dá)性、完整性和前進(jìn)性來驗證Web服務(wù)
52、組合的正確性。定義3.4 可達(dá)性:若從初始標(biāo)識M0出發(fā)觸發(fā)一個變遷序列產(chǎn)生標(biāo)識Mr,則稱Mr是從M0可達(dá)的。所有從M0可達(dá)的標(biāo)識的集合稱為可達(dá)標(biāo)識集或可達(dá)集,記為R(M0)。定義3.5 有界性:給定PN以及其可達(dá)集R(M0),對于位置pP,若0mR(M0):M(p)k,則稱p是k有界的,此處k為正整數(shù);若Petri網(wǎng)的所有位置都是k有界的,則Petri網(wǎng)是k有界。定義3.6 活性:對于一個變遷tT,在任一個標(biāo)識MR下,若存在某一變遷序列Ser,該變遷序列的觸發(fā)使得此變遷t可觸發(fā),則稱該變遷是活的。若一個Petri網(wǎng)的所有變遷都是活的,則稱該Petri網(wǎng)是活的。定義3.7完整性:Petri網(wǎng)所有
53、的狀態(tài)都是可達(dá)的。定義3.8前進(jìn)性:每次觸發(fā)都將逐步推向終態(tài),可達(dá)樹中不會出現(xiàn)無論的循環(huán)。同時具有上述5個性質(zhì)的Petri網(wǎng)不會出現(xiàn)停滯不前的狀態(tài),執(zhí)行中所處的狀態(tài)及等待的消息是有限的,不會出現(xiàn)死鎖。本文給出如下兩個Web服務(wù)組合的正確性的分析。(1)組合服務(wù)S1S2的正確性分析下面通過對圖3.4所示的組合服務(wù)S1S2的構(gòu)造可達(dá)樹,以分析該服務(wù)組合的正確性,可達(dá)樹如圖3.7所示。Mi=i,ready1,ready2,finished1,finished2,p,o圖3.7 組合服務(wù)S1S2的可達(dá)樹 該組合服務(wù)是完全可達(dá)的。從M0開始的狀態(tài)可達(dá)集R(M0)= M0, M1 ,M2 , M3 , M
54、4 , M5 , M6。狀態(tài)集MS= M0, M1 ,M2 , M3 , M4 , M5 , M6。因此,對任一個標(biāo)記MiMS,均有MiR(M0),即組合服務(wù)S1S2中任一個狀態(tài)都是從M0可達(dá)。該組合服務(wù)具有界性。在可達(dá)樹中,每一個位置上的托肯數(shù)從未超過1。因此該組合服務(wù)是安全的。該組合服務(wù)是活性的。從可達(dá)樹可以看出,從M0開始,TiT(T是所有變遷的集合)都至少可以被從M0開始的激發(fā)序列激發(fā)一次。因此,該組合服務(wù)的Petri網(wǎng)是活性的。該組合服務(wù)具有完整性。由可達(dá)樹可見,組合服務(wù)的所有狀態(tài)都從M0可達(dá)并且可以激發(fā)轉(zhuǎn)移到終止?fàn)顟B(tài)M6。該組合服務(wù)具有前進(jìn)性。在可達(dá)樹中,任意狀態(tài)之間沒有出現(xiàn)無意義
55、的循環(huán)。(2)組合服務(wù)S1CS2的正確性分析構(gòu)造組合服務(wù)S1CS2的可達(dá)樹如圖3.8所示。Mi=i,ready1,ready2,finished1,finished2,m,o圖3.8 組合服務(wù)S1C S2的可達(dá)樹 組合服務(wù)是完全可達(dá)的。從M0開始的狀態(tài)可達(dá)集R(M0)= M0, M1 ,M2 , M3 , M4 , M5 , M6, M7。狀態(tài)集MS= M0, M1 ,M2 , M3 , M4 , M5 , M6, M7 。因此,對任一個標(biāo)記MiMS,均有MiR(M0),即組合服務(wù)S1CS2中任一個狀態(tài)都是從M0可達(dá)。 該組合服務(wù)是有界的。在可達(dá)樹中,每一個位置上的托肯數(shù)從未超過2。因此該組合
56、服務(wù)是有界的,其上界為2。 該組合服務(wù)是活性的。從可達(dá)樹可以看出,從M0開始,TiT(T是所有變遷的集合)都至少可以被從M0開始的激發(fā)序列激發(fā)一次。因此,該組合服務(wù)的Petri網(wǎng)是活性的。 該組合服務(wù)具有完整性。由可達(dá)樹可見,組合服務(wù)的所有狀態(tài)都從M0可達(dá)并且可以激發(fā)轉(zhuǎn)移到終止?fàn)顟B(tài)M7。 該組合服務(wù)具有前進(jìn)性。在可達(dá)樹中,任意狀態(tài)之間沒有出現(xiàn)無意義的循環(huán)。同理,對S1S2、S1S2及S的類似分析,可知,這些服務(wù)組合同時滿足對可達(dá)性、有界性、活性、完整性和前進(jìn)性的要求。第四章 基于Petri網(wǎng)的Web服務(wù)組合的實例分析4.1 Cygwin4.1.1 Cygwin概述Cygwin是一個在windo
57、ws平臺上運行的類UNIX模擬環(huán)境,是cygnus Solutions公司開發(fā)的自由軟件。它對于學(xué)習(xí)UNIX/Linux操作環(huán)境,或者從UNIX到Windows的應(yīng)用程序移植,或者進(jìn)行某些特殊的開發(fā)工作,尤其是使用GNU工具集在Windows上進(jìn)行嵌入式系統(tǒng)開發(fā),非常有用。Cygwin是許多軟件的集合,最初由Cygnus Solutions開發(fā),用于各種版本的Microsoft Windows上,運行UNIX類系統(tǒng)。Cygwin的主要目的是通過重新編譯,將POSIX系統(tǒng)(例如Linux、BSD,以及其他Unix系統(tǒng))上的軟件移植到Windows上。Cygwin移植工作在Windows NT、Windows 2000、Windows XP以及Windows Server 2003上比較好,在Windows 95和Windows 98上,相對差勁一些。Cygwin由Red Hat等負(fù)責(zé)維護。Cygwin始于1
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 增資擴股委托協(xié)議
- 2025版小產(chǎn)權(quán)房購房合同范本:房產(chǎn)交易糾紛調(diào)解與和解3篇
- 2025年度個人房屋交易房地產(chǎn)廣告推廣合同范本
- 2025版房地產(chǎn)銷售委托代理合同補充協(xié)議3篇
- 2025-2030全球MBE摻雜源行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國便攜式三維測力臺行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025版?zhèn)€人信用貸款合同樣本6篇
- 2025年度鋼構(gòu)建筑綠色供應(yīng)鏈管理合同范本2篇
- 委托調(diào)查合同范本
- 2025年度個人與個人投資理財合作協(xié)議范本4篇
- 開題報告-鑄牢中華民族共同體意識的學(xué)校教育研究
- 《醫(yī)院標(biāo)識牌規(guī)劃設(shè)計方案》
- 公司2025年會暨員工團隊頒獎盛典攜手同行共創(chuàng)未來模板
- 新滬科版八年級物理第三章光的世界各個章節(jié)測試試題(含答案)
- 夜市運營投標(biāo)方案(技術(shù)方案)
- 電接點 水位計工作原理及故障處理
- 國家職業(yè)大典
- 2024版房產(chǎn)代持協(xié)議書樣本
- 2024年四川省成都市成華區(qū)中考二診物理試題
- 2024年3月計算機等級考試三級數(shù)據(jù)庫技術(shù)筆試真題及答案
- 公眾號運營實戰(zhàn)手冊
評論
0/150
提交評論