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