專利名稱:語(yǔ)義Web服務(wù)組合的模型轉(zhuǎn)換及形式化驗(yàn)證方法
技術(shù)領(lǐng)域:
本發(fā)明屬于語(yǔ)義網(wǎng)及Web服務(wù)領(lǐng)域,旨在為人們提供一種模型轉(zhuǎn)換方法,能夠?qū)?語(yǔ)義Web服務(wù)組合轉(zhuǎn)換為著色Petri網(wǎng),從而利用Petri網(wǎng)技術(shù)進(jìn)行形式化驗(yàn)證。
背景技術(shù):
在面向服務(wù)的體系架構(gòu)(Service-OrientedArchitecture, S0A)下,Web 服務(wù)組 合已經(jīng)成為支撐業(yè)務(wù)流程執(zhí)行的主要形式。然而如何實(shí)現(xiàn)Web服務(wù)的自動(dòng)組合一直是一個(gè) 研究難題,因?yàn)閃eb服務(wù)不包含機(jī)器可讀的語(yǔ)義信息。語(yǔ)義Web的出現(xiàn)將語(yǔ)義和Web服務(wù) 結(jié)合起來,吸引了很多研究者的注意,Web服務(wù)本體描述語(yǔ)言(Web Ontology Language for Services, OffL-S)已經(jīng)成為事實(shí)上的標(biāo)準(zhǔn)語(yǔ)義Web服務(wù)本體建模語(yǔ)言。OffL-S提供一個(gè)框架來描述Web服務(wù)的功能和公告,從而實(shí)現(xiàn)服務(wù)的自動(dòng)發(fā)現(xiàn)、調(diào) 用、和組合。以O(shè)WL-S的1. 2版本為例,其服務(wù)模型使用以下三個(gè)部分描述本體· profile 服務(wù)概要,描述服務(wù)是什么;· model 服務(wù)模型,說明服務(wù)如何工作;· grounding 服務(wù)基點(diǎn),提供如何使用服務(wù)的信息。1. ServiceProfile為服務(wù)的注冊(cè)提供簡(jiǎn)要的描述,包括(1)服務(wù)提供者的信息, 如聯(lián)系信息等;(2)服務(wù)的功能信息,包括參數(shù)信息、輸入(Inputs)和輸出(Outputs)參 數(shù)、前提條件(Preconditions)及效果(Effects) ; (3)服務(wù)屬性,包括服務(wù)分類、附加參數(shù)、 服務(wù)完成時(shí)間、服務(wù)代價(jià)、服務(wù)質(zhì)量等。2. ServiceModel 本體主要有兩個(gè)模塊:Process 本體禾口 ProcessControl 本體。 Process本體以流程的形式描述了服務(wù)中各子過程的執(zhí)行順序,而ProcessControl本體 主要管理和監(jiān)控服務(wù)流程的執(zhí)行。Process可分為簡(jiǎn)單過程(simple processes)、原子過 程(atomic processes)禾口復(fù)合過程(composite processes)。原子過程是一個(gè)直接可以 調(diào)用的過程,它沒有子過程,從服務(wù)請(qǐng)求者的角度來看,原子過程能一步完成。簡(jiǎn)單過程不 是一個(gè)可直接調(diào)用的過程,但簡(jiǎn)單過程也能通過一步完成。組合過程是通過控制結(jié)構(gòu)將原 子過程或子組合過程組合起來的一個(gè)復(fù)雜過程,但它可以分解成其它的過程。目前OWL-S 有順序(Sequence)、選擇(Choice)、如果-那么(If-Then-Else)、任意順序(Any-Order)、 重復(fù)-當(dāng)(Repeat-While)、重復(fù)-直到(Repeat-Until)、分支(Split)和分支+匯合 (Split+Join)等控制結(jié)構(gòu)。復(fù)合過程中的控制結(jié)構(gòu)規(guī)定了各個(gè)子過程之間具有怎樣的數(shù)據(jù) 與功能依賴關(guān)系,及子過程間的執(zhí)行順序。復(fù)合過程必須通過原子過程的運(yùn)行來實(shí)現(xiàn)。3. ServiceGrounding描述如何獲取服務(wù)的細(xì)節(jié),主要包括相關(guān)協(xié)議、消息格式、序 列化、傳輸和尋址。OffL-S對(duì)Web服務(wù)及流程建模,使得Web服務(wù)包含機(jī)器可讀的語(yǔ)義信息,因而可以 實(shí)現(xiàn)Web服務(wù)的自動(dòng)組合、發(fā)現(xiàn)和調(diào)用。但是在語(yǔ)義Web服務(wù)組合的過程中,也會(huì)存在流程 死鎖(即流程執(zhí)行到某個(gè)服務(wù)時(shí)無法繼續(xù)進(jìn)行下去)、服務(wù)結(jié)點(diǎn)孤立(即流程中的某個(gè)服務(wù) 永遠(yuǎn)不會(huì)被執(zhí)行)、服務(wù)不相容(即不同服務(wù)由于定義方法不同在組合之后無法匹配)等問題,因此還需要對(duì)語(yǔ)義Web服務(wù)組合進(jìn)行正確性驗(yàn)證。正確性驗(yàn)證是指判斷該語(yǔ)義Web服 務(wù)組合模型是否正確,即組合流程無死鎖、沒有孤立的服務(wù)結(jié)點(diǎn)、服務(wù)之間是相容的。為了驗(yàn)證語(yǔ)義Web服務(wù)組合的正確性,本發(fā)明利用Petri網(wǎng)技術(shù),通過將語(yǔ)義Web 服務(wù)組合模型轉(zhuǎn)換為Petri網(wǎng)模型,從而進(jìn)行服務(wù)組合正確性的驗(yàn)證。下面對(duì)Petri網(wǎng)技術(shù)作一簡(jiǎn)單介紹Petri網(wǎng)是1960年由卡爾· A ·佩特里發(fā)明的,是用于描述分布式系統(tǒng)的一種模 型。它既能描述系統(tǒng)的結(jié)構(gòu),又能模擬系統(tǒng)的運(yùn)行。描述系統(tǒng)結(jié)構(gòu)的部分稱為網(wǎng)(net)。從 形式上看,一個(gè)網(wǎng)就是一個(gè)沒有孤立結(jié)點(diǎn)的有向二分圖。Petri網(wǎng)包括這樣幾種組成元素(參見圖3)1.庫(kù)所(Place)用一個(gè)圓形節(jié)點(diǎn)來表示2.變遷(Transition)用一個(gè)方形節(jié)點(diǎn)來表示3.有向弧(Connection):是庫(kù)所和變遷之間的帶有方向的弧4.令牌(Token)用一個(gè)黑點(diǎn)來表示,是庫(kù)所中的動(dòng)態(tài)對(duì)象,可以從一個(gè)庫(kù)所移動(dòng) 到另一個(gè)庫(kù)所。一個(gè)變遷之前的庫(kù)所稱為輸入庫(kù)所,之后的庫(kù)所稱為輸出庫(kù)所。Petri網(wǎng)的規(guī)則是1.有向弧是有方向的2.兩個(gè)庫(kù)所或變遷之間不允許有弧3.庫(kù)所可以擁有任意數(shù)量的令牌4.如果一個(gè)變遷的每個(gè)輸入庫(kù)所都擁有令牌,該變遷即為被允許。當(dāng)變遷被允許 時(shí)才能被觸發(fā)(執(zhí)行),此時(shí)輸入庫(kù)所的令牌將被消耗(即減少),輸出庫(kù)所將產(chǎn)生令牌(即 增加)。Petri網(wǎng)可以用于描述流程中狀態(tài)的變化,各個(gè)庫(kù)所表示不同的狀態(tài),例如論文的 狀態(tài)(撰寫、提交、初審、復(fù)審、通過等),某人的職位變化(實(shí)習(xí)生、職員、組長(zhǎng)、經(jīng)理等),四 季的不同(春夏秋冬),或地理位置的不同(西直門、天安門、王府井等);通過變遷連接不 同的庫(kù)所,變遷可以表示事件、轉(zhuǎn)化或傳輸;而令牌的位置(即它所在的庫(kù)所)則表示當(dāng)前 所處的狀態(tài);當(dāng)令牌從一個(gè)庫(kù)所經(jīng)過變遷跳到另一個(gè)庫(kù)所時(shí),則表示狀態(tài)發(fā)生了變化。例 如,圖4表示一個(gè)四季更替的過程。Petri網(wǎng)的應(yīng)用非常廣泛,主要包括軟件設(shè)計(jì)、工作流管理、數(shù)據(jù)分析、并行程序 設(shè)計(jì)、協(xié)議驗(yàn)證等。由于Petri網(wǎng)不僅可以刻畫系統(tǒng)的結(jié)構(gòu),而且可以描述系統(tǒng)的動(dòng)態(tài)行為;不僅具 有直觀的圖形表示,而且能夠引入許多數(shù)學(xué)方法對(duì)其性質(zhì)進(jìn)行分析,此外Petri網(wǎng)已有成 熟的計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)的模型檢測(cè)技術(shù)和支持工具,因而使用Petri網(wǎng)來驗(yàn)證服務(wù)組合的正 確性是非常有效的,也有較多的研究工作使用Petri網(wǎng)對(duì)業(yè)務(wù)流程和工作流進(jìn)行建模。而對(duì)于語(yǔ)義Web服務(wù)組合目前還沒有行之有效的形式化驗(yàn)證方法。將OWL-S建 模的Web流程轉(zhuǎn)化成Petri網(wǎng)模型,就可以利用現(xiàn)有的大量Petri網(wǎng)研究的成果對(duì)語(yǔ)義 Web服務(wù)組合進(jìn)行正確性驗(yàn)證。相關(guān)的研究工作主要有D. Moldt等人提出一種將DAML-S descriptions轉(zhuǎn)換到一種高層Petri網(wǎng)Reference Nets的工具DaGen,但是僅僅對(duì)描述部 分(Description)進(jìn)行轉(zhuǎn)換,沒有涉及到過程本體(Moldt,D. and J. Ortmann, “ DaGen :ΑTool for Automatic Translation fromDAML-S to High-Level Petri Nets" , LECTURE NOTES IN COMPUTER SCIENCE, 2004. 2984 :pp. 209-213.)。Srini Narayanan 等人提出了 DAML+OIL本體描述Web服務(wù)的組合方法,但是沒有對(duì)模型的正確性進(jìn)行驗(yàn)證(Narayanan S,Μ. S. ,Simulation,verification and automated composition of Web services" . In Proc. ofthe Ilth Int,1 World Wide Web Conf. WWW2002. Honolulu :ACM. 2002.)。因此,有必要提出一種更加完善的從語(yǔ)義Web服務(wù)組合到Petri網(wǎng)的轉(zhuǎn)換方法,并 提供相應(yīng)的算法支持Web服務(wù)組合的形式化驗(yàn)證。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的是提出一種從語(yǔ)義Web服務(wù)組合到 著色Petri網(wǎng)的模型轉(zhuǎn)換方法以及相應(yīng)的形式化驗(yàn)證方法,能夠通過模型轉(zhuǎn)換充分利用 Petri網(wǎng)的形式化驗(yàn)證技術(shù)對(duì)語(yǔ)義Web服務(wù)組合的正確性進(jìn)行驗(yàn)證。著色Petri網(wǎng)(Coloured Petri Nets,簡(jiǎn)稱CPN)是經(jīng)典Petri網(wǎng)的一個(gè)衍生和擴(kuò) 展。它通過對(duì)令牌著色豐富了 Petri網(wǎng)表達(dá)的內(nèi)涵。不同顏色的令牌代表不同屬性的對(duì)象, 例如紅色令牌表示28歲的張三,藍(lán)色令牌表示25歲的李四,綠色令牌表示30歲的王五。令 牌的顏色由構(gòu)建者來定義,庫(kù)所和變遷的設(shè)置與經(jīng)典Petri網(wǎng)相同,都表示狀態(tài)變化。ia^^fe Petri M ( #JAL Jensen, K. , Coloured Petri Nets :Basic Concepts, Analysis Methods, andPractical Use. 1997 :Springer.)結(jié)合了 Petri 網(wǎng)禾口高級(jí)語(yǔ)言的優(yōu) 點(diǎn),在對(duì)復(fù)雜系統(tǒng)建模時(shí),可以使得模型更加簡(jiǎn)單、清晰,因此本發(fā)明使用著色Petri網(wǎng)來 驗(yàn)證語(yǔ)義Web服務(wù)組合的正確性,提出了從語(yǔ)義Web服務(wù)到著色Petri網(wǎng)的轉(zhuǎn)換方法,定義 了語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net,并提出SWS-net的驗(yàn)證算法,能夠有效檢測(cè)轉(zhuǎn)換模 型的正確性。下面給出著色Petri網(wǎng)的形式化定義。定義1 著色 Petri 網(wǎng) CP-Net 是一個(gè)六元組 CPN = ( Σ,P,T,F(xiàn),C,E),其中Σ是顏色集合,表示令牌的不同顏色,P是庫(kù)所的集合,表示所述著色Petri網(wǎng)模型中所有的庫(kù)所,T是變遷的集合,表示所述著色Petri網(wǎng)模型中所有的變遷,F(xiàn)是有向弧集,表示所述著色Petri網(wǎng)模型中所有的有向弧,每條有向弧連接一個(gè) 庫(kù)所和變遷,C是顏色函數(shù),把所述庫(kù)所和庫(kù)所中令牌的顏色對(duì)應(yīng)起來,用C:P —Σ表示,E是弧函數(shù),把每一條有向弧映射到某一個(gè)顏色集合,所述某一個(gè)顏色集合表示要 觸發(fā)該有向弧所需的令牌顏色及個(gè)數(shù)。下面定義輸入輸出矩陣與關(guān)聯(lián)矩陣定義2著色Petri網(wǎng)CPN的網(wǎng)結(jié)構(gòu)可以用一個(gè)η行m列矩陣A= [aij]nXm來表示,稱A為CPN的關(guān)聯(lián)矩陣,它描述了該著色Petri網(wǎng)中各條有
向弧的分布。其中m表示庫(kù)所的個(gè)數(shù),η表示變遷的個(gè)數(shù), =<-<,
「K ,
即當(dāng)存在從變遷、到庫(kù)所Pj的有向弧時(shí),a,;等于1,否則a:等于0 ;
若Μ)“即當(dāng)存在從庫(kù)所ρ」到變遷、的有向弧時(shí),a,;等于1,否則等于0 ;<formula>formula see original document page 8</formula>即所有aij+組成的η行m列矩陣,稱A+為輸出矩陣;<formula>formula see original document page 8</formula> ,即所有aij_組成的η行m列矩陣,稱A_為輸入矩陣;i e {1,2, ...,n},je {1,2, ...,m}將語(yǔ)義Web服務(wù)轉(zhuǎn)換為著色Petri網(wǎng),需要對(duì)現(xiàn)有的著色Petri網(wǎng)加以擴(kuò)展,擴(kuò)展 后的著色Petri網(wǎng)定義為語(yǔ)義Web服務(wù)著色Petri網(wǎng),如下定義3 語(yǔ)義 Web 服務(wù)著色 Petri 網(wǎng)(Semantic Web Services Net,SWS_net)是一 個(gè)八元組 SWS-net = (CPN,DT, DV, Pin, Pout, Hin, Hout, R),其中CPN,是所述著色Petri網(wǎng)模型,DT,是數(shù)據(jù)類型定義的集合,DV,是變量定義的集合,Pin,是所有輸入庫(kù)所的集合,所述輸入庫(kù)所是經(jīng)輸入有向弧指向變遷的庫(kù)所,P。ut,是所有輸出庫(kù)所的集合,所述輸出庫(kù)所是從變遷通過輸出有向弧所指向的庫(kù) 所,Hin,是令牌從庫(kù)所到達(dá)變遷所需的時(shí)間,Hout,是令牌從變遷到達(dá)庫(kù)所所需的時(shí)間,R是變遷發(fā)生其本身所需消耗的成本,即該變遷所對(duì)應(yīng)的服務(wù)操作在執(zhí)行時(shí)所需 的費(fèi)用,是一個(gè)已知量。 語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net的表示參見圖5。本發(fā)明的特征在于,提出了一種從語(yǔ)義Web服務(wù)到著色Petri網(wǎng)模型的轉(zhuǎn)換方法, 定義了語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net。對(duì)于轉(zhuǎn)換后得到的SWS-net模型,給出了組合 服務(wù)的正確性驗(yàn)證算法,從而能夠更有效的判斷組合服務(wù)是否能夠正確執(zhí)行,并通過Petri 網(wǎng)的圖形化方法表示組合服務(wù)的運(yùn)行過程。和其他方法相比,本發(fā)明提出的方法能夠更加 有效的解決語(yǔ)義Web服務(wù)組合的正確性驗(yàn)證問題。
圖1是一個(gè)描述了語(yǔ)義Web服務(wù)模型轉(zhuǎn)換與驗(yàn)證系統(tǒng)的詳細(xì)結(jié)構(gòu)圖;圖2是一個(gè)描述了語(yǔ)義Web服務(wù)模型轉(zhuǎn)換與正確性驗(yàn)證方法的具體步驟的圖;圖3是一個(gè)描述了 Petri網(wǎng)模型的組成元素的示例圖;圖4是一個(gè)用Petri網(wǎng)模型表示四季更替的過程的示例圖;圖5是一個(gè)描述了語(yǔ)義Web服務(wù)著色Petri網(wǎng)模型的組成元素的示例圖;圖6是一個(gè)描述了從OWL-S原子過程到SWS-net轉(zhuǎn)換規(guī)則的圖;圖7是一個(gè)描述了語(yǔ)義Web服務(wù)著色Petri網(wǎng)正確性驗(yàn)證的算法流程圖; 圖8是從OWL-S組合過程到SWS-net的轉(zhuǎn)換規(guī)則。
具體實(shí)施例方式所述方法是依次按以下步驟實(shí)現(xiàn)的步驟(1),計(jì)算機(jī)初始化安裝本體建模工具Prot6g6,用于建立、刪除、修改本體,并把本體存儲(chǔ)為網(wǎng)絡(luò)Web 服務(wù)本體建模語(yǔ)言O(shè)WL-S的格式,
構(gòu)建語(yǔ)義Web服務(wù)組合存儲(chǔ)單元,用于存儲(chǔ)由所述Web服務(wù)本體建模工具Prot6g6 構(gòu)造、用所述OWL-S格式表示的語(yǔ)義Web服務(wù)組合模型,安裝語(yǔ)義Web服務(wù)組合模型轉(zhuǎn)換與驗(yàn)證模塊,包括模型轉(zhuǎn)換子模塊、語(yǔ)義Web服 務(wù)著色Petri網(wǎng)存儲(chǔ)子模塊以及正確性驗(yàn)證子模塊,其中模型轉(zhuǎn)換子模塊,用于把所述語(yǔ)義Web服務(wù)組合存儲(chǔ)單元中存儲(chǔ)的語(yǔ)義Web服務(wù) 組合轉(zhuǎn)換為著色Petri網(wǎng)模型,轉(zhuǎn)換后的模型命名為“語(yǔ)義Web服務(wù)著色Petri網(wǎng)”,其中著色Petri網(wǎng)簡(jiǎn)稱CPN,是一個(gè)六元組的模型,所述CPN = ( Σ,P,Τ,F(xiàn),C,Ε),其 中Σ是顏色集合,表示令牌的不同顏色,P是庫(kù)所的集合,表示所述著色Petri網(wǎng)模型中所有的庫(kù)所,T是變遷的集合,表示所述著色Petri網(wǎng)模型中所有的變遷,F(xiàn)是有向弧集,表示所述著色Petri網(wǎng)模型中所有的有向弧,每條有向弧連接一個(gè) 庫(kù)所和變遷,C是顏色函數(shù),把所述庫(kù)所和庫(kù)所中令牌的顏色對(duì)應(yīng)起來,用C:P —Σ表示,E是弧函數(shù),把每一條有向弧映射到某一個(gè)顏色集合,所述某一個(gè)顏色集合表示要 觸發(fā)該有向弧所需的令牌顏色及個(gè)數(shù),所述著色Petri網(wǎng)CPN可以由一個(gè)η行m列的矩陣A表示,稱為該CPN的關(guān)聯(lián)矩 陣,A = [BijJnxm, m為庫(kù)所的個(gè)數(shù),1 ^ j ^ m, η為變遷的個(gè)數(shù),1<formula>formula see original document page 9</formula>其 中,
<formula>formula see original document page 9</formula>當(dāng)存在從變遷、到庫(kù)所Pj的輸出有向弧時(shí),<=1,否則,<=0,
<formula>formula see original document page 9</formula>當(dāng)存在從庫(kù)所Pj到變遷、的輸入有向弧時(shí),< =1,否則,< =0,語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net是一個(gè)八元組模型,SWS-net = (CPN, DT, DV, Pin' Pout,Hin,Hout, R),其中,CPN,是所述著色Petri網(wǎng)模型,DT,是數(shù)據(jù)類型定義的集合,DV,是變量定義的集合,Pin,是所有輸入庫(kù)所的集合,所述輸入庫(kù)所是經(jīng)輸入有向弧指向變遷的庫(kù)所,
P。ut,是所有輸出庫(kù)所的集合,所述輸出庫(kù)所是從變遷通過輸出有向弧所指向的庫(kù) 所,Hin,是令牌從庫(kù)所到達(dá)變遷所需的時(shí)間,Hout,是令牌從變遷到達(dá)庫(kù)所所需的時(shí)間,R是變遷發(fā)生其本身所需消耗的成本,即該變遷所對(duì)應(yīng)的服務(wù)操作在執(zhí)行時(shí)所需 的費(fèi)用,是一個(gè)已知量,
語(yǔ)義Web服務(wù)著色Petri網(wǎng)存儲(chǔ)子模塊,用于存儲(chǔ)所述語(yǔ)義Web服務(wù)著色Petri 網(wǎng)模型,正確性驗(yàn)證子模塊,用于驗(yàn)證轉(zhuǎn)換得到的所述語(yǔ)義Web服務(wù)著色Petri網(wǎng)模型的 正確性;步驟(2),依次按以下步驟實(shí)現(xiàn)語(yǔ)義Web服務(wù)組合的模型轉(zhuǎn)換以及形式化驗(yàn)證方 法步驟(2. 1),用所述模型轉(zhuǎn)換子模塊從所述語(yǔ)義Web服務(wù)組合存儲(chǔ)單元中提取待 轉(zhuǎn)換的Web服務(wù)組合模型,步驟(2. 2),把所述語(yǔ)義Web服務(wù)組合模型OWL-S中的各個(gè)組成部分映射到著色 Petri網(wǎng)中的組成元素,形成語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net,其步驟如下步驟(2. 2. 1),服務(wù)的所有消息參數(shù)類型對(duì)應(yīng)所述顏色集合Σ ;步驟(2. 2. 2),服務(wù)操作運(yùn)行產(chǎn)生的效果對(duì)應(yīng)變遷發(fā)生過程中令牌轉(zhuǎn)移前后的狀 態(tài);步驟(2. 2. 3),存放服務(wù)參數(shù)的緩沖區(qū)對(duì)應(yīng)庫(kù)所;步驟(2. 2. 4),服務(wù)的操作對(duì)應(yīng)變遷;步驟(2. 2. 5),服務(wù)中消息的傳輸方向?qū)?yīng)有向弧集;步驟(2. 2. 6),服務(wù)的輸入、輸出參數(shù)類型對(duì)應(yīng)顏色函數(shù);步驟(2. 2. 7),在輸入有向弧上添加時(shí)間標(biāo)識(shí)函數(shù)值Hin,表示輸入?yún)?shù)傳輸時(shí)延, 在輸出有向弧上添加時(shí)間標(biāo)識(shí)函數(shù)值H。ut,表示輸出參數(shù)傳輸時(shí)延,當(dāng)變遷所需參數(shù)全部到 達(dá)時(shí),瞬間完成變遷觸發(fā),Hin+H。ut表示變遷從發(fā)生到完成所需的時(shí)延;步驟(2. 2. 8),在變遷上添加成本函數(shù)R,表示用戶使用該服務(wù)操作時(shí)其自身所需 付出的費(fèi)用;步驟(2. 3),把所述OWL-S中單個(gè)服務(wù)的一次交互過程,也稱原子過程,與所述 SWS-net中單個(gè)Web服務(wù)調(diào)用相對(duì)應(yīng),其轉(zhuǎn)換規(guī)則如下把原子過程映射為變遷t,t命名為原子過程的名稱,前提條件映射為輸入庫(kù)所集Pin,結(jié)果映射為輸出庫(kù)所集P。ut,輸入映射為輸入庫(kù)所的初始令牌,步驟(2. 4),把所述OWL-S組合過程轉(zhuǎn)換到SWS-net,用以表示復(fù)雜的業(yè)務(wù)邏輯,所 述組合過程由原子服務(wù)或子組合過程組合而成,其轉(zhuǎn)換規(guī)則如下對(duì)于所述OWL-S中的順序結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),其中子過程按照 順序依次執(zhí)行,對(duì)于所述OWL-S中的選擇結(jié)構(gòu)或者如果-那么結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng) 結(jié)構(gòu),其中選擇結(jié)構(gòu)表示在一組子過程中隨機(jī)選擇一個(gè)子過程執(zhí)行,如果_那么結(jié)構(gòu)表示在兩個(gè)過程中選擇一個(gè)執(zhí)行,對(duì)于所述OWL-S中的任意順序結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),它表示一組 子過程無序地執(zhí)行,但不能并發(fā)執(zhí)行,對(duì)于所述OWL-S中的重復(fù)-當(dāng)結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu)。首先檢查 循環(huán)條件,條件為真則執(zhí)行子過程,否則退出循環(huán),對(duì)于所述OWL-S中的重復(fù)-直到結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu)。首先執(zhí) 行子過程,條件為假則重復(fù)執(zhí)行子過程,直到條件為真退出循環(huán)繼續(xù)執(zhí)行后續(xù)子過程,對(duì)于所述OWL-S中的分支結(jié)構(gòu)或者分支-匯合結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng) 結(jié)構(gòu)。分支結(jié)構(gòu)表示一組子過程并發(fā)執(zhí)行,當(dāng)所有子過程都并發(fā)執(zhí)行時(shí),控制結(jié)構(gòu)執(zhí)行完 畢。分支-匯合結(jié)構(gòu)表示一組子過程并發(fā)執(zhí)行后,同步這些子過程,即所有子過程執(zhí)行完才 表示控制結(jié)構(gòu)執(zhí)行完成,步驟(2.5),對(duì)步驟(2.4)得到的轉(zhuǎn)換后的SWS-net,按以下步驟進(jìn)行正確性驗(yàn) 證步驟(2. 5. 1),把語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net輸入到所述正確性驗(yàn)證子模 塊,步驟(2. 5. 2),計(jì)算所述關(guān)聯(lián)矩陣A=[aij+]nxm-[aij-]nxm,[BijInxm為所有從變遷i到庫(kù)所j的輸出有向弧 /組成的η行m列矩陣,稱為輸 出矩陣,[BijInxm為所有從庫(kù)所j到變遷i的輸入有向弧組成的η行m列矩陣,稱為輸 入矩陣,步驟(2. 5. 3),設(shè)置各庫(kù)所在初始狀態(tài)下的令牌數(shù)序列Mq,Mq= (P1 (O)JP2(O),-, pm(0)},步驟(2. 5. 4),設(shè)置各庫(kù)所在第K個(gè)狀態(tài)時(shí)的令牌數(shù)序列MK,K表示從初始狀態(tài)到 目標(biāo)狀態(tài)所經(jīng)歷的狀態(tài)數(shù),Mk= (P1(K)jP2(K), -,Pffl(K)I,步驟(2.5. 5),令變量 i = 1,Z = 0,步驟(2. 5. 6),令Mi =Mm+(^f,其中Mh表示第i_l個(gè)狀態(tài),義表示關(guān)聯(lián)矩陣A 的第i個(gè)行向量,Mi表示第i個(gè)狀態(tài);計(jì)算得到Mi,它表示為一個(gè)m維行向量Mi = (P1(I), P2⑴,…,Pffl⑴},將該行向量中最大的數(shù)與變量Z比較,如果其大于Z則令Z等于該最大 值,否則Z值不變,步驟(2. 5.7),若i大于等于K,將i的值加1,重復(fù)步驟(2. 5.6),若i小于K,繼續(xù) 進(jìn)行下一步,K表示從初始狀態(tài)到目標(biāo)狀態(tài)所經(jīng)歷的狀態(tài)個(gè)數(shù),步驟(2. 5. 8),若Z等于1,表示該模型是安全的,否則進(jìn)行下一步,所述該模型是 安全的表示該模型的任一庫(kù)所中最多可能出現(xiàn)的令牌數(shù)為1,即在狀態(tài)變遷過程中每個(gè)庫(kù) 所最多可能出現(xiàn)一個(gè)令牌,因此該模型能夠安全無溢出的執(zhí)行完畢,步驟(2. 5. 9),若Z大于1且小于正無窮,表示該模型的界為Z,否則表示該模型錯(cuò) 誤,所述該模型的界為Z表示模型的任一庫(kù)所中最多可能出現(xiàn)Z個(gè)令牌,Z也稱為狀態(tài)邊界, 若Z是一個(gè)有限的正整數(shù),則該模型也能夠正確執(zhí)行,若Z等于正無窮,說明令牌溢出,模型 會(huì)出現(xiàn)死鎖,若Z等于0,說明模型中從沒有令牌,模型沒有執(zhí)行,若Z等于負(fù)數(shù),說明系統(tǒng)錯(cuò)誤,步驟(3),把步驟(2)得到的分析結(jié)果反饋給用戶,若結(jié)果顯示該模型正確,即模 型是安全的或有界的,則用戶可直接使用該模型對(duì)服務(wù)進(jìn)行組合并執(zhí)行,若結(jié)果顯示該模 型不正確,則用戶需要對(duì)模型修改(使用prot6g6)并再次執(zhí)行步驟(2)。為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案如下1.建立語(yǔ)義Web服務(wù)組合模型轉(zhuǎn)換與驗(yàn)證系統(tǒng)的運(yùn)行環(huán)境,參閱圖1,該系統(tǒng)的主 要構(gòu)件及建立過程如下(1)在計(jì)算機(jī)上安裝操作系統(tǒng)。操作系統(tǒng)可選用微軟公司的視窗(Windows)系列 操作系統(tǒng)中的Windows 2000及以上版本;(2)在計(jì)算機(jī)上安裝本體工具Prot6g6。Prot6g6是斯坦福大學(xué)開發(fā)的開源的本 體建模工具,目前已經(jīng)得到廣泛的應(yīng)用。該工具可以建立、刪除、修改本體,并將本體存儲(chǔ) 為0WL-S(Web Ontology Language for Services,網(wǎng)絡(luò)本體語(yǔ)言,參考資料可從萬(wàn)維網(wǎng) http //www. w3. org/TRlowl-ref 至Ij )白勺||·5ζ。 Protege ^ihKTli^M http://protege. Stanford, edu/download/download. html 上下載,其參考資料可從萬(wàn)維網(wǎng) http:// proteRe. Stanford, edu/doc/users Ruide/ 上得至丨J ;(3)在計(jì)算機(jī)上構(gòu)建語(yǔ)義Web服務(wù)組合存儲(chǔ)單元,用于存儲(chǔ)語(yǔ)義Web服務(wù)組合。 所述語(yǔ)義Web服務(wù)組合采用標(biāo)準(zhǔn)格式描述,并通過本體工具構(gòu)造而成。所述標(biāo)準(zhǔn)格式采用 OWL-S格式。所述本體工具采用步驟(2)中所述的Prot6g6;(4)在計(jì)算機(jī)上安裝語(yǔ)義Web服務(wù)組合模型轉(zhuǎn)換與驗(yàn)證模塊,該模塊主要包含如 下三個(gè)部分(4. 1)模型轉(zhuǎn)換子模塊用于將所述語(yǔ)義Web服務(wù)組合存儲(chǔ)單元中存儲(chǔ)的語(yǔ)義Web 服務(wù)組合轉(zhuǎn)換為著色Petri網(wǎng)模型,轉(zhuǎn)換后的模型命名為“語(yǔ)義Web服務(wù)著色Petri網(wǎng)”。(4. 2)語(yǔ)義Web服務(wù)著色Petri網(wǎng)存儲(chǔ)子模塊用于存儲(chǔ)所述“語(yǔ)義Web服務(wù)著色 Petri網(wǎng)”模型。(4. 3)正確性驗(yàn)證子模塊用于驗(yàn)證轉(zhuǎn)換后的“語(yǔ)義Web服務(wù)著色Petri網(wǎng)”模型 是否正確。2. 一種將語(yǔ)義Web服務(wù)組合轉(zhuǎn)換到著色Petri網(wǎng)的模型轉(zhuǎn)換方法,該方法采用的 具體方案參閱圖6和表1,包括如下的步驟步驟1,用模型轉(zhuǎn)換模塊從語(yǔ)義Web服務(wù)組合存儲(chǔ)單元中提取待轉(zhuǎn)換的服務(wù)組合;步驟2,將服務(wù)組合OWL-S模型中的各個(gè)組成部分映射到著色Petri網(wǎng)中的組成元 素,形成語(yǔ)義Web服務(wù)著色Petri網(wǎng)(SWS-net),具體步驟如下步驟2. 1,服務(wù)的所有消息參數(shù)類型對(duì)應(yīng)顏色集Σ ;步驟2. 2,服務(wù)操作運(yùn)行產(chǎn)生的效果對(duì)應(yīng)變遷發(fā)生過程中令牌轉(zhuǎn)移前后的狀態(tài);步驟2. 3,存放服務(wù)參數(shù)的緩沖區(qū)對(duì)應(yīng)庫(kù)所P ;步驟2. 4,服務(wù)的操作對(duì)應(yīng)變遷T ;步驟2. 5,服務(wù)中消息的傳輸方向?qū)?yīng)有限弧集F ;步驟2. 6,服務(wù)的輸入輸出參數(shù)類型對(duì)應(yīng)顏色函數(shù)C ;步驟2. 7,在輸入有向弧上添加時(shí)間標(biāo)識(shí)函數(shù)值Hin,表示輸入?yún)?shù)傳輸時(shí)延,在輸 出有向弧上添加時(shí)間標(biāo)識(shí)函數(shù)值H。ut,表示輸出參數(shù)傳輸時(shí)延,當(dāng)變遷所需參數(shù)全部到達(dá)時(shí),瞬間完成變遷觸發(fā),Hin+H。ut表示變遷從發(fā)生到完成所需的時(shí)延;步驟2. 8,在變遷上添加成本函數(shù)R,表示用戶使用該服務(wù)操作時(shí)其自身所需付出的費(fèi)用;步驟3,將OWL-S原子過程轉(zhuǎn)換為SWS-net,原子過程是單個(gè)服務(wù)的一次交互過程,沒有子過程,不可以再細(xì)分,原子過程與單個(gè)Web服務(wù)調(diào)用相對(duì)應(yīng)。其轉(zhuǎn)換規(guī)則如下(見圖 6)1)將原子過程映射為變遷t,t命名為原子過程的名稱;2)前提條件(Precondition)和結(jié)果(Result)分別映射為輸入庫(kù)所集Pin和輸出
庫(kù)所集P。ut ;3)輸入(Input)映射為輸入庫(kù)所Pin的初始令牌。步驟4,將OWL-S組合過程轉(zhuǎn)換到SWS-net。0WL-S的組合過程由原子服務(wù)或者其 他組合服務(wù)組合而成,用來表達(dá)復(fù)雜的業(yè)務(wù)邏輯。其轉(zhuǎn)換規(guī)則如下1)對(duì)于OWL-S中的順序(Sequence)結(jié)構(gòu),轉(zhuǎn)換為表1所對(duì)應(yīng)的著色Petri網(wǎng)結(jié) 構(gòu)。其中子過程按照順序依次執(zhí)行。2)對(duì)于OWL-S中的選擇結(jié)構(gòu)或者如果_那么結(jié)構(gòu)(Choice/If-Then-Else),轉(zhuǎn)換 為表1所對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),其中選擇結(jié)構(gòu)表示在一組子過程中隨機(jī)選擇一個(gè)子過 程執(zhí)行,如果-那么結(jié)構(gòu)表示在兩個(gè)過程中選擇一個(gè)執(zhí)行。3)對(duì)于OWL-S中的任意順序(Any-Order)結(jié)構(gòu),轉(zhuǎn)換為表1所對(duì)應(yīng)的著色Petri 網(wǎng)結(jié)構(gòu),它表示一組子過程無序地執(zhí)行,但不能并發(fā)執(zhí)行。4)對(duì)于OWL-S中的重復(fù)-當(dāng)(Itepeat-While)結(jié)構(gòu),轉(zhuǎn)換為表1所對(duì)應(yīng)的著色 Petri網(wǎng)結(jié)構(gòu)。首先檢查循環(huán)條件,條件為真則執(zhí)行子過程,否則退出循環(huán)。5)對(duì)于OWL-S中的重復(fù)-直到(Itepeat-Until)結(jié)構(gòu),轉(zhuǎn)換為表1所對(duì)應(yīng)的著色 Petri網(wǎng)結(jié)構(gòu)。首先執(zhí)行子過程,條件為假則重復(fù)執(zhí)行子過程,直到條件為真退出循環(huán)繼續(xù) 執(zhí)行后續(xù)子過程。6)對(duì)于OWL-S中的分支結(jié)構(gòu)或者分支-匯合結(jié)構(gòu)(Split/Split-Join),轉(zhuǎn)換為表 1所對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu)。分支結(jié)構(gòu)表示一組子過程并發(fā)執(zhí)行,當(dāng)所有子過程都并發(fā)執(zhí) 行時(shí),控制結(jié)構(gòu)執(zhí)行完畢;分支-匯合結(jié)構(gòu)表示一組子過程并發(fā)執(zhí)行后,同步這些子過程, 即所有子過程執(zhí)行完才表示控制結(jié)構(gòu)執(zhí)行完成。通過對(duì)于OWL-S的6種控制結(jié)構(gòu)到SWS-net的映射,就可以將復(fù)雜的組合過程通 過這6種控制結(jié)構(gòu)組合成相應(yīng)的SWS-net。3.按以下步驟對(duì)轉(zhuǎn)換后的SWS-net進(jìn)行正確性驗(yàn)證步驟1,把語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net輸入到所述正確性驗(yàn)證子模塊;步驟2,計(jì)算所述關(guān)聯(lián)矩陣A=[aij+]nxm-[aij-]nxm[BijInxm為所有從變遷i到庫(kù)所j的輸出有向弧 /組成的η行m列矩陣,稱為輸 出矩陣,[BijInxm為所有從庫(kù)所j到變遷i的輸入有向弧組成的η行m列矩陣,稱為輸 入矩陣;步驟3,設(shè)置各庫(kù)所在初始狀態(tài)下的令牌數(shù)序列Mq,Mq = (P1 (0),P2 (0),-,Pffl(O)}, 其中P表示庫(kù)所,共m個(gè)庫(kù)所,P1(O)表示P1庫(kù)所在第0個(gè)狀態(tài)(即初始狀態(tài))時(shí)的令牌數(shù);
步驟4,設(shè)置各庫(kù)所在第K個(gè)狀態(tài)時(shí)的令牌數(shù)序列MK,K表示從初始狀態(tài)到目標(biāo)狀態(tài)所經(jīng)歷的狀態(tài)數(shù),Mk= (P1(K)jP2(K),…,Pm(K)},其中P表示庫(kù)所,共m個(gè)庫(kù)所,P1(K)表 示P1庫(kù)所在第K個(gè)狀態(tài)時(shí)的令牌數(shù);步驟5,令變量 i = 1,Z = 0;步驟6,令Mi =Mm,其中M^1表示第i_l個(gè)狀態(tài),4.表示關(guān)聯(lián)矩陣A的 第i個(gè)行向量,Mi表示第i個(gè)狀態(tài);計(jì)算得到Mi,它表示為一個(gè)m維行向量Mi = (P1 (i), P2⑴,…,Pffl⑴},將該行向量中最大的數(shù)與變量Z比較,如果其大于Z則令Z等于該最大 值,否則Z值不變;步驟7,若i大于等于K,將i的值加1,重復(fù)步驟6,若i小于K,繼續(xù)進(jìn)行下一步, K表示從初始狀態(tài)到目標(biāo)狀態(tài)所經(jīng)歷的狀態(tài)個(gè)數(shù);步驟8,若Z等于1,表示該模型是安全的,否則進(jìn)行下一步,所述該模型是安全的 表示該模型的任一庫(kù)所中最多可能出現(xiàn)的令牌數(shù)為1,即在狀態(tài)變遷過程中每個(gè)庫(kù)所最多 可能出現(xiàn)一個(gè)令牌,因此該模型能夠安全無溢出的執(zhí)行完畢;步驟9,若Z大于1且小于正無窮,表示該模型的界為Z,否則表示該模型錯(cuò)誤,所 述該模型的界為Z表示模型的任一庫(kù)所中最多可能出現(xiàn)Z個(gè)令牌,Z也稱為狀態(tài)邊界,若Z 是一個(gè)有限的正整數(shù),則該模型也能夠正確執(zhí)行,若Z等于正無窮,說明令牌溢出,模型會(huì) 出現(xiàn)死鎖,若Z等于0,說明模型中從沒有令牌,模型沒有執(zhí)行,若Z等于負(fù)數(shù),說明系統(tǒng)錯(cuò) 誤;4.把步驟3得到的分析結(jié)果反饋給用戶,如果結(jié)果顯示該模型正確(即模型是安 全的或有界的),則用戶可直接使用該模型對(duì)服務(wù)進(jìn)行組合并執(zhí)行;如果結(jié)果顯示該模型 不正確(模型錯(cuò)誤),則用戶需要對(duì)模型修改(使用prot6g6)并再次執(zhí)行步驟2和步驟3。按照發(fā)明內(nèi)容中的初始化設(shè)定中的步驟依次完成系統(tǒng)的部署和設(shè)定,根據(jù)發(fā)明內(nèi) 容中的模型轉(zhuǎn)換方法將語(yǔ)義Web服務(wù)組合的OWL-S模型轉(zhuǎn)換為著色Petri網(wǎng)模型,并通過 正確性驗(yàn)證算法判斷語(yǔ)義Web服務(wù)組合的正確性。用戶根據(jù)分析結(jié)果決定是否要對(duì)模型進(jìn) 行修改,從而保證服務(wù)組合能夠正確執(zhí)行。
權(quán)利要求
語(yǔ)義Web服務(wù)組合的模型轉(zhuǎn)換及形式化驗(yàn)證方法,其特征在于,所述方法是在計(jì)算機(jī)中依次按以下步驟實(shí)現(xiàn)的步驟(1),計(jì)算機(jī)初始化安裝本體建模工具Protégé,用于建立、刪除、修改本體,并把本體存儲(chǔ)為網(wǎng)絡(luò)Web服務(wù)本體建模語(yǔ)言O(shè)WL-S的格式,構(gòu)建語(yǔ)義Web服務(wù)組合存儲(chǔ)單元,用于存儲(chǔ)由所述Web服務(wù)本體建模工具Protégé構(gòu)造、用所述OWL-S格式表示的語(yǔ)義Web服務(wù)組合模型,安裝語(yǔ)義Web服務(wù)組合模型轉(zhuǎn)換與驗(yàn)證模塊,包括模型轉(zhuǎn)換子模塊、語(yǔ)義Web服務(wù)著色Petri網(wǎng)存儲(chǔ)子模塊以及正確性驗(yàn)證子模塊,其中模型轉(zhuǎn)換子模塊,用于把所述語(yǔ)義Web服務(wù)組合存儲(chǔ)單元中存儲(chǔ)的語(yǔ)義Web服務(wù)組合轉(zhuǎn)換為著色Petri網(wǎng)模型,轉(zhuǎn)換后的模型命名為“語(yǔ)義Web服務(wù)著色Petri網(wǎng)”,其中著色Petri網(wǎng)簡(jiǎn)稱CPN,是一個(gè)六元組的模型,所述CPN=(∑,P,T,F(xiàn),C,E),其中∑是顏色集合,表示令牌的不同顏色,P是庫(kù)所的集合,表示所述著色Petri網(wǎng)模型中所有的庫(kù)所,T是變遷的集合,表示所述著色Petri網(wǎng)模型中所有的變遷,F(xiàn)是有向弧集,表示所述著色Petri網(wǎng)模型中所有的有向弧,每條有向弧連接一個(gè)庫(kù)所和變遷,C是顏色函數(shù),把所述庫(kù)所和庫(kù)所中令牌的顏色對(duì)應(yīng)起來,用C:P→∑表示,E是弧函數(shù),把每一條有向弧映射到某一個(gè)顏色集合,所述某一個(gè)顏色集合表示要觸發(fā)該有向弧所需的令牌顏色及個(gè)數(shù),所述著色Petri網(wǎng)CPN可以由一個(gè)n行m列的矩陣A表示,稱為該CPN的關(guān)聯(lián)矩陣,A=[aij]n×m,m為庫(kù)所的個(gè)數(shù),1≤j≤m,n為變遷的個(gè)數(shù),1≤i≤n, <mrow><msub> <mi>a</mi> <mi>ij</mi></msub><mo>=</mo><msubsup> <mi>a</mi> <mi>ij</mi> <mo>+</mo></msubsup><mo>-</mo><msubsup> <mi>a</mi> <mi>ij</mi> <mo>-</mo></msubsup><mo>,</mo> </mrow>,其中,當(dāng)存在從變遷ti到庫(kù)所pj的輸出有向弧時(shí), <mrow><msubsup> <mi>a</mi> <mi>ij</mi> <mo>+</mo></msubsup><mo>=</mo><mn>1</mn><mo>,</mo> </mrow>否則, <mrow><msubsup> <mi>a</mi> <mi>ij</mi> <mo>+</mo></msubsup><mo>=</mo><mn>0</mn><mo>,</mo> </mrow>當(dāng)存在從庫(kù)所pj到變遷ti的輸入有向弧時(shí), <mrow><msubsup> <mi>a</mi> <mi>ij</mi> <mo>-</mo></msubsup><mo>=</mo><mn>1</mn><mo>,</mo> </mrow>否則, <mrow><msubsup> <mi>a</mi> <mi>ij</mi> <mo>-</mo></msubsup><mo>=</mo><mn>0</mn><mo>,</mo> </mrow>語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net是一個(gè)八元組模型,SWS-net=(CPN,DT,DV,Pin,Pout,Hin,Hout,R),其中,CPN,是所述著色Petri網(wǎng)模型,DT,是數(shù)據(jù)類型定義的集合,DV,是變量定義的集合,Pin,是所有輸入庫(kù)所的集合,所述輸入庫(kù)所是經(jīng)輸入有向弧指向變遷的庫(kù)所,Pout,是所有輸出庫(kù)所的集合,所述輸出庫(kù)所是從變遷通過輸出有向弧所指向的庫(kù)所,Hin,是令牌從庫(kù)所到達(dá)變遷所需的時(shí)間,Hout,是令牌從變遷到達(dá)庫(kù)所所需的時(shí)間,R是變遷發(fā)生其本身所需消耗的成本,即該變遷所對(duì)應(yīng)的服務(wù)操作在執(zhí)行時(shí)所需的費(fèi)用,是一個(gè)已知量,語(yǔ)義Web服務(wù)著色Petri網(wǎng)存儲(chǔ)子模塊,用于存儲(chǔ)所述語(yǔ)義Web服務(wù)著色Petri網(wǎng)模型,正確性驗(yàn)證子模塊,用于驗(yàn)證轉(zhuǎn)換得到的所述語(yǔ)義Web服務(wù)著色Petri網(wǎng)模型的正確性;步驟(2),依次按以下步驟實(shí)現(xiàn)語(yǔ)義Web服務(wù)組合的模型轉(zhuǎn)換以及形式化驗(yàn)證方法步驟(2.1),用所述模型轉(zhuǎn)換子模塊從所述語(yǔ)義Web服務(wù)組合存儲(chǔ)單元中提取待轉(zhuǎn)換的Web服務(wù)組合模型,步驟(2.2),把所述語(yǔ)義Web服務(wù)組合模型OWL-S中的各個(gè)組成部分映射到著色Petri網(wǎng)中的組成元素,形成語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net,其步驟如下步驟(2.2.1),服務(wù)的所有消息參數(shù)類型對(duì)應(yīng)所述顏色集合∑;步驟(2.2.2),服務(wù)操作運(yùn)行產(chǎn)生的效果對(duì)應(yīng)變遷發(fā)生過程中令牌轉(zhuǎn)移前后的狀態(tài);步驟(2.2.3),存放服務(wù)參數(shù)的緩沖區(qū)對(duì)應(yīng)庫(kù)所;步驟(2.2.4),服務(wù)的操作對(duì)應(yīng)變遷;步驟(2.2.5),服務(wù)中消息的傳輸方向?qū)?yīng)有向弧集;步驟(2.2.6),服務(wù)的輸入、輸出參數(shù)類型對(duì)應(yīng)顏色函數(shù);步驟(2.2.7),在輸入有向弧上添加時(shí)間標(biāo)識(shí)函數(shù)值Hin,表示輸入?yún)?shù)傳輸時(shí)延,在輸出有向弧上添加時(shí)間標(biāo)識(shí)函數(shù)值Hout,表示輸出參數(shù)傳輸時(shí)延,當(dāng)變遷所需參數(shù)全部到達(dá)時(shí),瞬間完成變遷觸發(fā),Hin+Hout表示變遷從發(fā)生到完成所需的時(shí)延;步驟(2.2.8),在變遷上添加成本函數(shù)R,表示用戶使用該服務(wù)操作時(shí)其自身所需付出的費(fèi)用;步驟(2.3),把所述OWL-S中單個(gè)服務(wù)的一次交互過程,也稱原子過程,與所述SWS-net中單個(gè)Web服務(wù)調(diào)用相對(duì)應(yīng),其轉(zhuǎn)換規(guī)則如下把原子過程映射為變遷t,t命名為原子過程的名稱,前提條件映射為輸入庫(kù)所集Pin,結(jié)果映射為輸出庫(kù)所集Pout,輸入映射為輸入庫(kù)所的初始令牌,步驟(2.4),把所述OWL-S組合過程轉(zhuǎn)換到SWS-net,用以表示復(fù)雜的業(yè)務(wù)邏輯,所述組合過程由原子服務(wù)或子組合過程組合而成,其轉(zhuǎn)換規(guī)則如下對(duì)于所述OWL-S中的順序結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),其中子過程按照順序依次執(zhí)行,對(duì)于所述OWL-S中的選擇結(jié)構(gòu)或者如果-那么結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),其中選擇結(jié)構(gòu)表示在一組子過程中隨機(jī)選擇一個(gè)子過程執(zhí)行,如果-那么結(jié)構(gòu)表示在兩個(gè)過程中選擇一個(gè)執(zhí)行,對(duì)于所述OWL-S中的任意順序結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),它表示一組子過程無序地執(zhí)行,但不能并發(fā)執(zhí)行,對(duì)于所述OWL-S中的重復(fù)-當(dāng)結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),首先檢查循環(huán)條件,條件為真則執(zhí)行子過程,否則退出循環(huán),對(duì)于所述OWL-S中的重復(fù)-直到結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),首先執(zhí)行子過程,條件為假則重復(fù)執(zhí)行子過程,直到條件為真退出循環(huán)繼續(xù)執(zhí)行后續(xù)子過程,對(duì)于所述OWL-S中的分支結(jié)構(gòu)或者分支-匯合結(jié)構(gòu),轉(zhuǎn)換為對(duì)應(yīng)的著色Petri網(wǎng)結(jié)構(gòu),分支結(jié)構(gòu)表示一組子過程并發(fā)執(zhí)行,當(dāng)所有子過程都并發(fā)執(zhí)行時(shí),控制結(jié)構(gòu)執(zhí)行完畢,分支-匯合結(jié)構(gòu)表示一組子過程并發(fā)執(zhí)行后,同步這些子過程,即所有子過程執(zhí)行完才表示控制結(jié)構(gòu)執(zhí)行完成,步驟(2.5),對(duì)步驟(2.4)得到的轉(zhuǎn)換后的SWS-net,按以下步驟進(jìn)行正確性驗(yàn)證步驟(2.5.1),把語(yǔ)義Web服務(wù)著色Petri網(wǎng)SWS-net輸入到所述正確性驗(yàn)證子模塊,步驟(2.5.2),計(jì)算所述關(guān)聯(lián)矩陣 <mrow><mi>A</mi><mo>=</mo><msub> <mrow><mo>[</mo><msubsup> <mi>a</mi> <mi>ij</mi> <mo>+</mo></msubsup><mo>]</mo> </mrow> <mrow><mi>n</mi><mo>×</mo><mi>m</mi> </mrow></msub><mo>-</mo><msub> <mrow><mo>[</mo><msubsup> <mi>a</mi> <mi>ij</mi> <mo>-</mo></msubsup><mo>]</mo> </mrow> <mrow><mi>n</mi><mo>×</mo><mi>m</mi> </mrow></msub><mo>,</mo> </mrow>[aij+]n×m為所有從變遷i到庫(kù)所j的輸出有向弧aij+組成的n行m列矩陣,稱為輸出矩陣,[aij-]n×m為所有從庫(kù)所j到變遷i的輸入有向弧aij-組成的n行m列矩陣,稱為輸入矩陣,步驟(2.5.3),設(shè)置各庫(kù)所在初始狀態(tài)下的令牌數(shù)序列M0,M0={P1(0),P2(0),…,Pm(0)},步驟(2.5.4),設(shè)置各庫(kù)所在第K個(gè)狀態(tài)時(shí)的令牌數(shù)序列MK,K表示從初始狀態(tài)到目標(biāo)狀態(tài)所經(jīng)歷的狀態(tài)數(shù),MK={P1(K),P2(K),…,Pm(K)},步驟(2.5.5),令變量i=1,Z=0,步驟(2.5.6),令 <mrow><msub> <mi>M</mi> <mi>i</mi></msub><mo>=</mo><msub> <mi>M</mi> <mrow><mi>i</mi><mo>-</mo><mn>1</mn> </mrow></msub><mo>+</mo><msup> <mrow><mo>(</mo><msub> <mi>A</mi> <mrow><mi>i</mi><mo>*</mo> </mrow></msub><mo>)</mo> </mrow> <mi>T</mi></msup><mo>,</mo> </mrow>其中Mi-1表示第i-1個(gè)狀態(tài),表示關(guān)聯(lián)矩陣A的第i個(gè)行向量,Mi表示第i個(gè)狀態(tài),計(jì)算得到Mi,它表示為一個(gè)m維行向量Mi={P1(i),P2(i),…,Pm(i)},將該行向量中最大的數(shù)與變量Z比較,若該最大值大于Z則令Z等于該最大值,否則Z值不變,步驟(2.5.7),若i大于等于K,將i的值加1,重復(fù)步驟(2.5.6),若i小于K,繼續(xù)進(jìn)行下一步,K表示從初始狀態(tài)到目標(biāo)狀態(tài)所經(jīng)歷的狀態(tài)個(gè)數(shù),步驟(2.5.8),若Z等于1,表示該模型是安全的,否則進(jìn)行下一步,所述該模型是安全的表示該模型的任一庫(kù)所中最多可能出現(xiàn)的令牌數(shù)為1,即在狀態(tài)變遷過程中每個(gè)庫(kù)所最多可能出現(xiàn)一個(gè)令牌,因此該模型能夠安全無溢出的執(zhí)行完畢,步驟(2.5.9),若Z大于1且小于正無窮,表示該模型的界為Z,否則表示該模型錯(cuò)誤,所述該模型的界為Z表示模型的任一庫(kù)所中最多可能出現(xiàn)Z個(gè)令牌,Z也稱為狀態(tài)邊界,若Z是一個(gè)有限的正整數(shù),則該模型也能夠正確執(zhí)行,若Z等于正無窮,說明令牌溢出,模型會(huì)出現(xiàn)死鎖,若Z等于0,說明模型中從沒有令牌,模型沒有執(zhí)行,若Z等于負(fù)數(shù),說明系統(tǒng)錯(cuò)誤,步驟(3),把步驟(2)得到的分析結(jié)果反饋給用戶,若結(jié)果顯示該模型正確,即模型是安全的或有界的,則用戶可直接使用該模型對(duì)服務(wù)進(jìn)行組合并執(zhí)行,若結(jié)果顯示該模型不正確,則用戶需要對(duì)模型修改(使用protégé)并再次執(zhí)行步驟(2)。F2009102363649C00022.tif,F2009102363649C00025.tif,F2009102363649C00053.tif
全文摘要
語(yǔ)義Web服務(wù)組合的模型轉(zhuǎn)換及形式化驗(yàn)證方法屬于語(yǔ)義網(wǎng)及Web服務(wù)領(lǐng)域,其特征在于,在計(jì)算機(jī)上建立語(yǔ)義Web服務(wù)組合存儲(chǔ)單元、模型轉(zhuǎn)換子模塊、語(yǔ)義Web服務(wù)著色Petri網(wǎng)存儲(chǔ)子模塊、正確性驗(yàn)證子模塊和本體工具Protégé;該方法通過模型轉(zhuǎn)換子模塊將OWL-S形式的語(yǔ)義Web服務(wù)組合模型轉(zhuǎn)換為語(yǔ)義Web服務(wù)著色Petri網(wǎng)模型,轉(zhuǎn)換后的模型不僅能清晰表示服務(wù)組合中各子過程之間的邏輯關(guān)系,而且能夠用著色Petri網(wǎng)的形式化方法進(jìn)行服務(wù)組合的正確性驗(yàn)證。根據(jù)本發(fā)明,能夠通過形式化方法驗(yàn)證語(yǔ)義Web服務(wù)組合的正確性,從而保證服務(wù)組合的正確執(zhí)行。
文檔編號(hào)H04L29/08GK101808109SQ20091023636
公開日2010年8月18日 申請(qǐng)日期2009年10月20日 優(yōu)先權(quán)日2009年10月20日
發(fā)明者倪悅, 范玉順 申請(qǐng)人:清華大學(xué)