專利名稱:基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及描述和發(fā)現(xiàn)服務(wù)的基于因特網(wǎng)的網(wǎng)絡(luò)系統(tǒng),特別是涉及基于Web應(yīng)用 的服務(wù)信息組織方式,例如注冊、管理、訪問機(jī)制。
背景技術(shù):
目前,Web服務(wù)注冊中心往往采用類UDDI標(biāo)準(zhǔn),使用XML文檔來描述企業(yè)及其提供 的Web服務(wù),并維護(hù)Web服務(wù)的全球目錄。這種基于UDDI或其變體的Web服務(wù)注冊模 型因缺少對Web服務(wù)之間關(guān)系的語義描述,存在如下弊端
1) 注冊表中僅僅存放Web服務(wù)的名稱、領(lǐng)域等基本信息,只能基于關(guān)鍵字進(jìn)行服 務(wù)的發(fā)現(xiàn)、匹配,導(dǎo)致web服務(wù)的査全率和査準(zhǔn)率不高;
2) 缺乏對Web服務(wù)語義屬性的描述信息,造成在面向業(yè)務(wù)流程集成的應(yīng)用中,無 法通過Web服務(wù)的語義屬性特征實(shí)現(xiàn)服務(wù)査詢;
3) 缺乏對Web服務(wù)間關(guān)系的描述信息,無法提供更具靈活性和可用性的服務(wù)分類 機(jī)制;
4) 側(cè)重于功能性要求的服務(wù)發(fā)現(xiàn)算法,無法滿足QoS的要求;
5) 缺乏對Web服務(wù)自動組合的進(jìn)一步支持。
目前,許多研究致力于修正現(xiàn)有UDDI注冊模型的缺陷,比如利用本體技術(shù)來提高 査全率,利用哈希表來提高查找效率,但是都沒有從根本上解決當(dāng)前Web服務(wù)注冊模型 所面臨的上述主要問題。
發(fā)明內(nèi)容
鑒于上述現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出了一種基于語義的web服務(wù)關(guān)系網(wǎng)絡(luò) 系統(tǒng),構(gòu)建基于語義和關(guān)系的Web服務(wù)網(wǎng)絡(luò),本發(fā)明通過對現(xiàn)有的Web服務(wù)注冊中心 中的數(shù)據(jù)、以及對各種離散的Web服務(wù)信息進(jìn)行重新的歸納、整理,轉(zhuǎn)換成富有語義 的本體形式;利用挖掘算法對Web服務(wù)間的關(guān)系進(jìn)行挖掘,將Web服務(wù)注冊中心組織成 一個以Web服務(wù)為節(jié)點(diǎn)、以服務(wù)間的關(guān)系為邊的網(wǎng)絡(luò)系統(tǒng),從而實(shí)現(xiàn)動態(tài)、自主、基于 語義的服務(wù)發(fā)現(xiàn)和(半)自動的服務(wù)組合。
本發(fā)明提出了一種基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),將Web服務(wù)作為該網(wǎng)絡(luò)的節(jié)點(diǎn),與服務(wù)之間的關(guān)系組成的三維立體網(wǎng)絡(luò),具體又分為兩層抽象服務(wù)層和具體服務(wù) 層,分別包括具體服務(wù)和抽象服務(wù),其特征在于,該系統(tǒng)包括Web服務(wù)關(guān)系網(wǎng)絡(luò)、該網(wǎng) 絡(luò)的服務(wù)提交系統(tǒng)和服務(wù)發(fā)現(xiàn)系統(tǒng)、該網(wǎng)絡(luò)的根據(jù)功能描述(半)自動產(chǎn)生組合服務(wù)系 統(tǒng)以及服務(wù)査詢/顯示接口,其中
Web服務(wù)關(guān)系網(wǎng)絡(luò)用于服務(wù)自動發(fā)現(xiàn)、服務(wù)(半)自動組合,該Web服務(wù)關(guān)系網(wǎng)絡(luò)
所要處理的服務(wù)來源于該網(wǎng)絡(luò)的提交服務(wù)和該網(wǎng)絡(luò)的獲取服務(wù),其中,提交服務(wù)包括服
務(wù)提交/服務(wù)的信息提取,該提取信息送到Web服務(wù)關(guān)系網(wǎng)絡(luò);獲取服務(wù)則將獲得服務(wù) 的描述文件通過服務(wù)查詢/顯示接口送到Web服務(wù)關(guān)系網(wǎng)絡(luò);以及根據(jù)功能描述所獲得 的組合服務(wù),這些組合服務(wù)也是通過服務(wù)查詢/顯示接口送到Web服務(wù)關(guān)系網(wǎng)絡(luò);該Web 服務(wù)關(guān)系網(wǎng)絡(luò)提供的査詢服務(wù)功能,通過服務(wù)查詢/顯示接口來完成。
所述具體服務(wù)是抽象服務(wù)的實(shí)例,基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)中的抽象服務(wù)和具 體服務(wù)之間通過Instance-of連接。
所述具體服務(wù)之間,由以下定義的關(guān)系相連,該定義的關(guān)系包括等價型服務(wù)關(guān)系、 替換型服務(wù)關(guān)系、相似型服務(wù)關(guān)系、組合型服務(wù)關(guān)系、調(diào)用型服務(wù)關(guān)系、時間型服務(wù)關(guān) 系、位置型服務(wù)關(guān)系。
所述各節(jié)點(diǎn)的結(jié)構(gòu)按照對應(yīng)選取的0WL-S文件和WSDL文件中web服務(wù)屬性描述部 分的常用子集進(jìn)行定義,同時各對應(yīng)的節(jié)點(diǎn)提供URI屬性指向原先的0WL-S文件或者 WSDL文件。
所述WSDL文件利用WSDL2SN解析器進(jìn)行解析后,生成Web服務(wù)關(guān)系網(wǎng)絡(luò)節(jié)點(diǎn),進(jìn) 而組成Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),所述WSDL2SN的解析器實(shí)現(xiàn)流程,包括以下步驟 首先,通過WSDL4J API把WSDL文件讀到definition中; 從definition中讀取得到類型types定義;
在types定義中構(gòu)建命名空間等屬性信息,并將該屬性轉(zhuǎn)換成JDOM型; 得到完成轉(zhuǎn)換的類型的schema定義。
對于WSDL文件中的參數(shù)為自定義的復(fù)雜類型的情況,需要使用上面得到的schema 去進(jìn)行復(fù)雜類型的解析,直至將自定義類型分解,得到一系列的簡單類型,因此,在上 述流程之后還進(jìn)一步包括以下步驟
首先對service元素進(jìn)行解析,得到綁定信息;
根據(jù)綁定信息找到應(yīng)的portType信息;
對portType中所包含的所有操作(operation)進(jìn)行解析,得到每個操作的基本屬 性和參數(shù)信息,每個輸入和輸出結(jié)果都分別是一個message; 根據(jù)參數(shù)信息找到相應(yīng)的message定義;
message的具體結(jié)構(gòu)從已經(jīng)構(gòu)建好的schema中得到,直至將message分解為簡單 類型;
對綁定類型進(jìn)行判斷,進(jìn)一步分為RPC型和編碼型;當(dāng)綁定類型為RPC型時,構(gòu)建RPC類型復(fù)雜參數(shù); 判斷所構(gòu)建的RPC類型復(fù)雜參數(shù)是否為復(fù)雜類型; 得到完整的服務(wù)信息;
當(dāng)綁定類型為編碼型時,構(gòu)建文檔類型復(fù)雜參數(shù); 判斷所構(gòu)建的文檔類型復(fù)雜參數(shù)是否為復(fù)雜類型; 得到完整的服務(wù)信息。
所述0WL-S文件利用0WL-S解析器進(jìn)行解析,具體包括以下步驟 首先通過OWL-S的URI,讀取0WL-S文件; 導(dǎo)入OWL-S引用的其他本體; 檢査該文件描述的本體是否有效及符合規(guī)范;
如果上述本體的檢査結(jié)果是有效及符合規(guī)范,則解析出組成服務(wù)網(wǎng)絡(luò)中服務(wù)節(jié)點(diǎn)所 需要的相關(guān)內(nèi)容;
映射到符合服務(wù)網(wǎng)絡(luò)定義的規(guī)范; 將結(jié)果持久化到服務(wù)網(wǎng)絡(luò)中,并通知相應(yīng)的維護(hù)程序; 將更新通知服務(wù)網(wǎng)絡(luò)維護(hù)進(jìn)程;
如果上述本體的檢查結(jié)果是無效及不符合規(guī)范,則輸出相關(guān)信息,并且此次操作結(jié)束。
對所述Web服務(wù)關(guān)系網(wǎng)絡(luò)中的服務(wù)關(guān)系采用的相應(yīng)的服務(wù)關(guān)系挖掘算法,具體步驟 如下
首先,對兩個服務(wù)進(jìn)行預(yù)處理,提取出服務(wù)的功能描述標(biāo)簽(tag)和服務(wù)的操作 接口;然后分別計(jì)算兩組tag和兩組服務(wù)操作接口的關(guān)系;再按照一定權(quán)值加權(quán)得到服 務(wù)關(guān)系;根據(jù)服務(wù)關(guān)系更新服務(wù)網(wǎng)絡(luò),算法結(jié)束。
其中該算法進(jìn)一步包括服務(wù)操作接口關(guān)系的計(jì)算流程,具體步驟如下
首先,對兩個操作接口進(jìn)行預(yù)處理;判斷這兩個操作接口的接口名和描述信息是否 為反義,如果是,則算法流程結(jié)束;如果不是,則進(jìn)行輸入/輸出參數(shù)關(guān)系的計(jì)算;然 后得到操作接口的關(guān)系類型和相似度,算法結(jié)束。
所述系統(tǒng)還包括手動操作接口 。
與現(xiàn)有技術(shù)相比,本發(fā)明更加方便Web服務(wù)的發(fā)現(xiàn)、組合、查找匹配,并且對多種 服務(wù)語義描述語言能夠?qū)崿F(xiàn)擴(kuò)充兼容,使用更加方便;將可用Web服務(wù)組織成服務(wù)生態(tài) 系統(tǒng)(Services ecosystem),借助于服務(wù)之間的關(guān)系改進(jìn)服務(wù)的組合、査找、維護(hù)等 操作。
圖1為本發(fā)明的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)形成的示意圖; 圖2為本發(fā)明的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng)示意6圖3為對各種Web服務(wù)模式轉(zhuǎn)換器不同描述方式的轉(zhuǎn)換流程圖; 圖4為適用于WSDL文件的WSDL2SN解析器的實(shí)現(xiàn)流程圖; 圖5為適用于0WL-S文件的OWL-S2SN解析器的實(shí)現(xiàn)流程圖; 圖6為本發(fā)明的基于語義的web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng)的整體框架圖; 圖7為本發(fā)明的服務(wù)關(guān)系挖掘算法的操作接口關(guān)系計(jì)算流程圖; 圖8為本發(fā)明的服務(wù)關(guān)系挖掘算法流程圖。
具體實(shí)施例方式
^ 如圖1所示為本發(fā)明的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)形成的示意圖。服務(wù)網(wǎng)絡(luò)系統(tǒng) 首先從傳統(tǒng)的無語義的Web服務(wù)注冊中心取得許多獨(dú)立的Web服務(wù),通過對每個服務(wù)結(jié) 構(gòu),語義的分析,挖掘出各個服務(wù)之間存在的各種關(guān)系,形成具體服務(wù)網(wǎng)絡(luò)層,同時也 就各個Web服務(wù)的功能進(jìn)行泛化,抽象出共性,從而形成抽象服務(wù)網(wǎng)絡(luò)層。由此構(gòu)成的 整體就是本發(fā)明的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)。
如圖2所示,為本發(fā)明的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng)示意圖。該服務(wù)關(guān)系網(wǎng) 絡(luò)系統(tǒng)將服務(wù)作為該網(wǎng)絡(luò)的節(jié)點(diǎn),與服務(wù)之間的關(guān)系組成的三維立體網(wǎng)絡(luò)。具體又分為 兩層抽象服務(wù)層和具體服務(wù)層,分別包括具體服務(wù)和抽象服務(wù)。該服務(wù)關(guān)系網(wǎng)絡(luò)中的 服務(wù)關(guān)系主要包括以下七種類型
1、 等價型服務(wù)關(guān)系該類型服務(wù)的接口屬性(包括輸入/輸出接口)完全一致,所 實(shí)現(xiàn)功能完全一致,可以相互替換;并且,這種關(guān)系的成立與服務(wù)的具體實(shí)現(xiàn)無關(guān);
2、 替換型服務(wù)關(guān)系該類型服務(wù)之間存在的是一種有向的替換關(guān)系,例如服務(wù)A 實(shí)現(xiàn)的功能,服務(wù)B全部能夠?qū)崿F(xiàn),則服務(wù)B可替換服務(wù)A (反之不一定成立);
3、 相似型服務(wù)關(guān)系例如,(單向)服務(wù)S與服務(wù)T存在功能上的部分重疊(如圖 2中所示相似度0.6),則稱之為服務(wù)B相似于服務(wù)A,服務(wù)A相似于服務(wù)B,但兩者 相似程度上可能有差異。(服務(wù)A對服務(wù)B的相似度,可能與服務(wù)B對服務(wù)A的相似度 不同);
4、 組合型服務(wù)關(guān)系服務(wù)P的實(shí)現(xiàn)由服務(wù)A1, A2, A3…等組成,則服務(wù)Ai到服 務(wù)P之間存在組合關(guān)系。關(guān)于組合關(guān)系,首先應(yīng)考慮到組合的順序,即服務(wù)的組成結(jié)構(gòu) 如何,調(diào)用順序如何,需要考慮將這些關(guān)于組成的控制信息存放在何處,以及需要考慮 如何獲得這些組成的控制信息。這些調(diào)用順序可以有以下幾種順序調(diào)用,循環(huán)調(diào)用, 分支調(diào)用等等。OWL-S標(biāo)準(zhǔn)支持以上幾種控制結(jié)構(gòu),比如Sequence, Split, Split+Join, Unordered, Choice, If-Then-Else, Iterate及Repeat-Until等;
5、 調(diào)用型服務(wù)關(guān)系服務(wù)B1調(diào)用了服務(wù)E1,則服務(wù)Bl到服務(wù)El存在調(diào)用關(guān)系, 調(diào)用關(guān)系常常跟組合關(guān)系一起存在;
6、 時間型服務(wù)關(guān)系指不同服務(wù)在發(fā) 時間方面的先后次序關(guān)系。比如,服務(wù)P必須先與服務(wù)Q執(zhí)行。
該服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng)中的具體服務(wù)是抽象服務(wù)的實(shí)例,之間通過Instance-of連 接。具體服務(wù)之間,還可以由上面定義的關(guān)系相連。
其中,服務(wù)節(jié)點(diǎn)的屬性參數(shù)包括
接口屬性IOPE,即Input, Output, Precondition, Effect。
*功能描述(是標(biāo)簽或者分類)采用關(guān)鍵字形式描述服務(wù)完成的功能以及服務(wù)的
特點(diǎn),并以此作為服務(wù)的分類依據(jù),有相同關(guān)鍵字的服務(wù)成為一類。 *服務(wù)的提供者信息比如姓名,聯(lián)系方式(電話、E-mail)。當(dāng)用戶只能使用
此服務(wù),而此服務(wù)又不可用,那么用戶可以聯(lián)系服務(wù)的提供者,通過協(xié)商使服
務(wù)可用。
* URI:服務(wù)的地址。
* D-URI:描述文件所在的URI。
*組合服務(wù)屬性如為原子服務(wù)則用"atomic"做屬性值,若為組合服務(wù)則用cmp 做為屬性值。
*權(quán)限信息username/password。對于付費(fèi)服務(wù),可能會需要。 *服務(wù)創(chuàng)建時間(每次的修改時間)。
*服務(wù)質(zhì)量包括穩(wěn)定性、可靠性、服務(wù)成本及信譽(yù)度。穩(wěn)定性(Stability)用 于描述同一 Web服務(wù)在不同的調(diào)用時刻所需的響應(yīng)時間的差異;響應(yīng)時間(Response Time)指服務(wù)從請求者發(fā)出執(zhí)行請求開始到收到應(yīng)答消息所經(jīng)過的時間;可靠性 (Reliability)表示能夠維護(hù)服務(wù)和服務(wù)質(zhì)量的程度;服務(wù)成本(Service Cost)描 述服務(wù)消費(fèi)者需要為使用服務(wù)而付出的費(fèi)用;信譽(yù)度(Grade)用于描述服務(wù)使用者對 他們所調(diào)用的Web服務(wù)的評價。
在本發(fā)明的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng)中,各節(jié)點(diǎn)的結(jié)構(gòu)按照對應(yīng)選取的 OWL-S文件和WSDL文件中web service屬性描述部分的常用子集進(jìn)行定義,同時各對 應(yīng)的節(jié)點(diǎn)提供URI屬性指向原先的0WL-S文件或者WSDL文件。采用這種做法即可以保 證web service結(jié)構(gòu)的簡潔,清晰,同時也保證了信息的完整性,容易實(shí)現(xiàn)。
本發(fā)明主要采用對服務(wù)的本體描述,來表示W(wǎng)eb服務(wù)關(guān)系網(wǎng)絡(luò)。
由于本發(fā)明的服務(wù)關(guān)系網(wǎng)絡(luò)與現(xiàn)有技術(shù)的各種Web服務(wù)描述方式不一致,因此定義 了一種較為簡略又不丟失原描述文件所包含的信息的節(jié)點(diǎn)結(jié)構(gòu),以保證該服務(wù)關(guān)系網(wǎng)絡(luò) 系統(tǒng)對現(xiàn)有技術(shù)中的各種不同Web服務(wù)描述方式的兼容。該處理需要首先對不同的描述 方式進(jìn)行解析,解析流程如圖3所示。該解析流程包括以下步驟
對于WSDL文件,利用WSDL2SN解析器進(jìn)行解析后,生成Web服務(wù)關(guān)系網(wǎng)絡(luò)節(jié)點(diǎn), 進(jìn)而組成Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng);
對于OWL-S文件,經(jīng)過0WL-S2SN解析器的解析處理后,生成Web服務(wù)關(guān)系網(wǎng)絡(luò)節(jié)點(diǎn),進(jìn)而組成Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng)。
WSDL2SN的解析器實(shí)現(xiàn)流程,該流程如圖4所示步驟40廣步驟404,該流程包括以 下步驟
首先,通過WSDL4J API把WSDL文件讀到definition中,步驟401;從definition 中讀取得到類型types定義(DOM型),步驟402;在types定義中構(gòu)建命名空間等屬性 信息,并將該屬性轉(zhuǎn)換成JDOM型,步驟403;得到完成轉(zhuǎn)換的類型的schema定義,歩 驟404;該schema定義在面對自定義的參數(shù)類型進(jìn)行解析時需要用到。
對于WSDL文件中的參數(shù)為自定義的復(fù)雜類型的情況,需要使用上面得到的Schema 去進(jìn)行復(fù)雜類型的解析,直至將自定義類型分解,得到一系列的簡單類型。這部分流程 如圖4所示步驟405~步驟415,該流程包括以下步驟
步驟405:首先對service元素進(jìn)行解析,得到綁定信息,即解析至〈wsdl:service〉 標(biāo)簽,找到每個〈wsdl:port〉標(biāo)簽中的binding后面的綁定信息;
步驟406:根據(jù)綁定信息找到應(yīng)的portType信息,即:到〈wsdl:binding〉標(biāo)簽中 去找portType屬性,這就是該服務(wù)所提供的主要的接口名稱。
步驟407:對portType中所包含的所有操作(operation)進(jìn)行解析,得到每個操 作的基本屬性和參數(shù)信息,即至(J〈wsdl:portType〉標(biāo)簽中去找每一個操作, 〈wsdl:operation〉每一個操作又分別對應(yīng)有自己的輸入和輸出,每個輸入和輸出結(jié)果都 分另提一個message;
步驟408:根據(jù)參數(shù)信息找到相應(yīng)的message定義,g卩到〈wsdl:message〉中去找 每個message的基本組成,它可能由簡單類型和復(fù)雜的自定義類型組成。如果是簡單類 型則解析過程終止;
步驟409:Message的具體結(jié)構(gòu)可以從已經(jīng)構(gòu)建好的schema中得到,直至將message 分解為簡單類型,g卩如果message的組成是復(fù)雜的自定義類型,則需要遞歸地到類型 定義中去找對這種復(fù)雜類型的定義,直至構(gòu)成類型完全為簡單類型;
步驟410:對綁定類型進(jìn)行判斷,進(jìn)一步分為RPC型和編碼型;
步驟411;當(dāng)綁定類型為RPC型時,構(gòu)建RPC類型復(fù)雜參數(shù);
步驟412:判斷所構(gòu)建的RPC類型復(fù)雜參數(shù)是否為復(fù)雜類型;
步驟415:得到完整的服務(wù)信息;
步驟413:當(dāng)綁定類型為編碼型時,構(gòu)建文檔類型復(fù)雜參數(shù)「 步驟414:判斷所構(gòu)建的文檔類型復(fù)雜參數(shù)是否為復(fù)雜類型; 步驟415:得到完整的服務(wù)信息。
如圖5所示為0WL-S2SN解析器的實(shí)現(xiàn)流程圖,具體包括以下步驟
步驟501:首先通過OWL-S的URI,讀取0WL-S文件,g卩獲得被解析的0WL-S文件的URI,讀取該文件,并讀取其引用的其他本體文件; 步驟502:導(dǎo)入0WL-S引用的其他本體;
步驟503:檢査該文件描述的本體是否有效及符合規(guī)范,即是否存在語義上的矛盾, 以及是否符合OWL-S規(guī)范;
步驟504:如果上述本體的檢查結(jié)果是有效及符合規(guī)范,則解析出組成服務(wù)網(wǎng)絡(luò)中
服務(wù)節(jié)點(diǎn)所需要的相關(guān)內(nèi)容;
步豳505:映射到符合服務(wù)網(wǎng)絡(luò)定義的規(guī)范,即將解析的結(jié)果格式化成符合服務(wù) 網(wǎng)絡(luò)規(guī)范定義的格式;
步驟506:將結(jié)果持久化到服務(wù)網(wǎng)絡(luò)中,并通知相應(yīng)的維護(hù)程序;
步驟507:將更新通知服務(wù)網(wǎng)絡(luò)維護(hù)進(jìn)程;
步驟508:如果上述本體的檢查結(jié)果是無效或不符合規(guī)范,則輸出相關(guān)信息,并且 結(jié)束此次操作。
如圖6所示,為本發(fā)明的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng)的整體框架圖,其中 Web服務(wù)關(guān)系網(wǎng)絡(luò)用于服務(wù)自動發(fā)現(xiàn)、服務(wù)(半)自動組合,該Web服務(wù)關(guān)系網(wǎng)絡(luò)的所 要處理的服務(wù)來源于用戶提交的服務(wù);Web服務(wù)網(wǎng)絡(luò)自動產(chǎn)生的組合服務(wù);Web服^務(wù)關(guān) 系網(wǎng)絡(luò)系統(tǒng)通過機(jī)器人程序從internet自動搜索,提取出的公開的服務(wù)。其中,提交 服務(wù)包括服務(wù)提交/服務(wù)的信息提取,該提取信息送到Web服務(wù)關(guān)系網(wǎng)絡(luò);Web服務(wù)網(wǎng) 絡(luò)將根據(jù)用戶的需求(半)自動的產(chǎn)生新的組合服務(wù),并產(chǎn)生出該Web服務(wù)的描述文件, 在將該服務(wù)提交給用戶的同時也作為一個案例存放在Web服務(wù)網(wǎng)絡(luò)中;獲取服務(wù)則將獲 得服務(wù)的描述文件通過服務(wù)添加接口送到Web服務(wù)關(guān)系網(wǎng)絡(luò);該Web服務(wù)關(guān)系網(wǎng)絡(luò)提供 的服務(wù)查詢功能,通過服務(wù)查詢/顯示接口來完成。
該Web服務(wù)關(guān)系網(wǎng)絡(luò)還包括手動操作接口 ,用于對Web服務(wù)關(guān)系網(wǎng)絡(luò)所提供的查詢 服務(wù)、獲取服務(wù)以及組合服務(wù)與Web服務(wù)關(guān)系網(wǎng)絡(luò)的手動操作。
為了實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明將采用語義網(wǎng)技術(shù)構(gòu)建Web服務(wù)本體以及設(shè)計(jì)相應(yīng) 的關(guān)系挖掘算法。對于服務(wù)關(guān)系挖掘來講,要做的是在普遍的服務(wù)世界中計(jì)算服務(wù)的邏 輯關(guān)系,需要詳細(xì)的數(shù)值來度量服務(wù)之間相似的程度,而服務(wù)之間的關(guān)系很大程度上依 賴于服務(wù)操作接口之間的關(guān)系。
如圖7所示,為服務(wù)關(guān)系挖掘算法的操作接口關(guān)系的計(jì)算流程,該流程包括以下步
驟
首先,對兩個操作接口進(jìn)行預(yù)處理;判斷這兩個操作接口的接口名和描述信息是否 為反義,如果是,則算法流程結(jié)束;如果不是,則進(jìn)行輸入/輸出參數(shù)相似度計(jì)算,然 后接口相似度建立,得到關(guān)系類型和相似度,算法結(jié)束。
下面具體介紹本算法中的一些處理步驟的具體含義
"預(yù)處理"模塊是對操作接口進(jìn)行的一些預(yù)處理工作,包括對操作接口名的分詞和分析,對描述信息中關(guān)鍵字進(jìn)行提取,以及對輸入輸出參數(shù)列表的提取。
操作接口名和操作接口的描述性信息只起參考作用,如果不是相反的意思即可不再 考慮。
"參數(shù)相似度計(jì)算"模塊用來計(jì)算兩組參數(shù)的相似程度。輸入?yún)?shù)列表和輸出參數(shù) 列表的相似度計(jì)算方法是一樣的,后文統(tǒng)稱為參數(shù)列表相似度計(jì)算。只是在最終計(jì)算操 作接口關(guān)系的時候,輸入和輸出所占的比重是不一樣的,通常情況下,人們更關(guān)心輸出 的匹配情況,因而輸出所占的比重要大于輸入。
一般情況下,服務(wù)的參數(shù)列表不只是簡單的數(shù)據(jù)類型,而是具有語義信息的概念, 在本文中,參數(shù)列表相似度的計(jì)算即可以看作是兩組概念的相似度計(jì)算。
首先要說明一下單獨(dú)的兩個概念之間相似度的計(jì)算方法。概念相似度是指本體中兩 個概念間相似程度的度量。需要說明的是,只有同一個本體中的兩個概念才有相似度, 不同本體中的概念認(rèn)為相似度為零(未來可以考慮不同本體中的概念相似度)。本體中
概念的相似程度與概念之間的語義距離有關(guān),通過相關(guān)的相似度函數(shù)即可得到單個概念 間的相似度。
兩組概念的相似度可以可用加權(quán)二部圖的最優(yōu)匹配方法解決。以兩組概念分別為兩 組頂點(diǎn),操作間的相似度為邊的權(quán)值(為方便起見,為相似度設(shè)置一個閾值,低于這個 閾值則認(rèn)為是零,即不存在這條邊)。本發(fā)明參照經(jīng)典的kuhn-munkres算法來確定參數(shù) 列表之間的匹配。
在"服務(wù)關(guān)系建立"模塊中,根據(jù)輸入、輸出概念列表的相似度值和相似屬性來最 終確定操作接口之間的相似關(guān)系。
如圖8所示,為本發(fā)明的操作服務(wù)關(guān)系計(jì)算流程。該流程具體包括以下步驟 首先,對兩個服務(wù)進(jìn)行預(yù)處理,對兩個服務(wù)進(jìn)行預(yù)處理,提取出服務(wù)的功能描述標(biāo) 簽(tag)和服務(wù)的操作接口;然后分別計(jì)算兩組tag和兩組服務(wù)操作接口的關(guān)系;再 按照一定權(quán)值加權(quán)得到服務(wù)關(guān)系;根據(jù)所得的服務(wù)關(guān)系更新服務(wù)網(wǎng)絡(luò),算法結(jié)束。 下面具體介紹本算法中的一些處理步驟的具體含義
"預(yù)處理"模塊是對服務(wù)操作接口進(jìn)行的一些預(yù)處理工作,提取出服務(wù)的功能描述 標(biāo)簽(tag)和服務(wù)的操作接口。
在"接口關(guān)系計(jì)算"模塊中,將兩組操作接口作為輸入,然后兩兩配對,應(yīng)用圖7 所示的算法進(jìn)行計(jì)算,得到兩組操作接口中兩兩配對的相似度值和關(guān)系類型,再通過尋 找二部圖的最佳匹配。以兩組操作分別為兩組頂點(diǎn),操作間的相似度為邊的權(quán)值(為方 便起見,為相似度設(shè)置一個閾值,低于這個閾值則認(rèn)為是零,即不存在這條邊)。從而 確定兩組操作的相似度和關(guān)系類型。這里依舊參照kuhn-munkres算法來確定操作接口 間的匹配。
在"詞組關(guān)系計(jì)算"模塊中,將兩組tag作為輸入,然后兩兩配對,基于WordNet語義詞典計(jì)算詞匯的相似度和關(guān)系類型,得到兩組tag中兩兩配對的相似度值和關(guān)系類 型,再通過尋找二部圖的最佳匹配。以兩組tag操作分別為兩組頂點(diǎn),詞匯間的相似度 為邊的權(quán)值(為方便起見,為相似度設(shè)置一個閾值,低于這個閾值則認(rèn)為是零,即不存 在這條邊)。從而確定兩組操作的相似度和關(guān)系類型。
"服務(wù)關(guān)系建立"模塊通過操作接口關(guān)系和tag關(guān)系,按照一定的權(quán)值來確實(shí)服務(wù) 關(guān)系,如果服務(wù)關(guān)系存在,則通過"更新服務(wù)網(wǎng)絡(luò)"模塊來更新服務(wù)網(wǎng)絡(luò),算法結(jié)束; 否則算法直接結(jié)束。
以上內(nèi)容僅為本發(fā)明的實(shí)施例,其目的并非用于對本發(fā)明所提出的系統(tǒng)的限制,本 發(fā)明的保護(hù)范圍以權(quán)利要求為準(zhǔn)。在不脫離本發(fā)明的精神和范圍的情況下,本領(lǐng)域技術(shù) 人員在不偏離本發(fā)明的范圍和精神的情況下,對其進(jìn)行的關(guān)于形式和細(xì)節(jié)的種種顯而易 見的修改或變化均應(yīng)落在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),將服務(wù)作為該網(wǎng)絡(luò)的節(jié)點(diǎn),與服務(wù)之間的關(guān)系組成的三維立體網(wǎng)絡(luò),具體又分為兩層抽象服務(wù)層和具體服務(wù)層,分別包括具體服務(wù)和抽象服務(wù),其特征在于,該系統(tǒng)包括Web服務(wù)關(guān)系網(wǎng)絡(luò)、該網(wǎng)絡(luò)的提交服務(wù)、該網(wǎng)絡(luò)的獲取服務(wù)、該網(wǎng)絡(luò)的根據(jù)功能描述所自動組合得到復(fù)合服務(wù)以及服務(wù)發(fā)現(xiàn)/顯示接口,其中Web服務(wù)關(guān)系網(wǎng)絡(luò)用于自動發(fā)現(xiàn)、動態(tài)組合,該Web服務(wù)關(guān)系網(wǎng)絡(luò)所要處理的服務(wù)來源于該網(wǎng)絡(luò)的注冊服務(wù)和發(fā)現(xiàn)服務(wù),其中,注冊服務(wù)包括服務(wù)提交/服務(wù)的信息提取,該提取信息送到Web服務(wù)關(guān)系網(wǎng)絡(luò);發(fā)現(xiàn)服務(wù)則通過爬蟲獲得服務(wù)的描述文件并注冊到Web服務(wù)關(guān)系網(wǎng)絡(luò);以及根據(jù)功能描述自動進(jìn)行服務(wù)組合,這些復(fù)合服務(wù)也是通過服務(wù)注冊接口送到Web服務(wù)關(guān)系網(wǎng)絡(luò);該Web服務(wù)關(guān)系網(wǎng)絡(luò)提供的查詢/顯示服務(wù)功能,通過服務(wù)發(fā)現(xiàn)接口來完成。
2. 如權(quán)利要求l所述的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),其特征在于,所述具 體服務(wù)是抽象服務(wù)的實(shí)例,基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)中的抽象服務(wù)與各具體服務(wù)之 間通過Instance-of連接。
3. 如權(quán)利要求1所述的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),其特征在于,所述具 體服務(wù)之間,由以下定義的關(guān)系相連等價型服務(wù)關(guān)系、替換型服務(wù)關(guān)系、相似型服務(wù) 關(guān)系、組合型服務(wù)關(guān)系、調(diào)用型服務(wù)關(guān)系、時間型服務(wù)關(guān)系。
4. 如權(quán)利要求l所述的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),其特征在于,所述各 節(jié)點(diǎn)的結(jié)構(gòu)按照對應(yīng)選取的0WL-S文件和WSDL文件中Web服務(wù)屬性描述部分的常用子 集進(jìn)行定義,同時各對應(yīng)的節(jié)點(diǎn)提供URI屬性指向原先的0WL-S文件或者WSDL文件。
5. 如權(quán)利要求4所述的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),其特征在于,所述WSDL 文件利用WSDL2SN解析器進(jìn)行解析后,生成Web服務(wù)關(guān)系網(wǎng)絡(luò)節(jié)點(diǎn),進(jìn)而組成Web服務(wù) 關(guān)系網(wǎng)絡(luò)系統(tǒng),所述WSDL2SN的解析器實(shí)現(xiàn)流程,包括以下步驟首先,通過WSDL4J API把WSDL文件讀到definition中; 從definition中讀取得到類型types定義;在types定義中構(gòu)建命名空間等屬性信息,并將該屬性轉(zhuǎn)換成JDOM型; 得到完成轉(zhuǎn)換的類型的schema定義。對于WSDL文件中的參數(shù)為自定義的復(fù)雜類型的情況,需要使用上面得到的schema 去進(jìn)行復(fù)雜類型的解析,直至將自定義類型分解,得到一系列的簡單類型,因此,在上 述流程之后還進(jìn)一步包括以下步驟首先對service元素進(jìn)行解析,得到綁定信息;根據(jù)綁定信息找到應(yīng)的portType信息;對portType中所包含的所有操作operation進(jìn)行解析,得到每個操作的基本屬性和參數(shù)信息,每個輸入和輸出結(jié)果都分別是一個message; 根據(jù)參數(shù)信息找到相應(yīng)的message定義;message的具體結(jié)構(gòu)從已經(jīng)構(gòu)建好的schema中得到,直至將message分解為簡單 類型;對綁定類型進(jìn)行判斷,進(jìn)一步分為RPC型和編碼型; ' 當(dāng)綁定類型為RPC型時,構(gòu)建RPC類型復(fù)雜參數(shù); 判斷所構(gòu)建的RPC類型復(fù)雜參數(shù)是否為復(fù)雜類型; 得到完整的服務(wù)信息;當(dāng)綁定類型為編碼型時,構(gòu)建文檔類型復(fù)雜參數(shù); 判斷所構(gòu)建的文檔類型復(fù)雜參數(shù)是否為復(fù)雜類型; 得到完整的服務(wù)信息。
6. 如權(quán)利要求4所述的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),其特征在于,所述OWL-S 文件利用OWL-S解析器進(jìn)行解析,具體包括以下步驟首先通過0WL-S的URI,讀取OWL-S文件;導(dǎo)入OWL-S引用的其他本體;檢査該文件描述的本體是否有效及符合規(guī)范;如果上述本體的檢查結(jié)果是有效及符合規(guī)范,則解析出組成服務(wù)網(wǎng)絡(luò)中服務(wù)節(jié)點(diǎn)所 需要的相關(guān)內(nèi)容;映射到符合服務(wù)網(wǎng)絡(luò)定義的規(guī)范; 將結(jié)果持久化到服務(wù)網(wǎng)絡(luò)中,并通知相應(yīng)的維護(hù)程序; 將更新通知服務(wù)網(wǎng)絡(luò)維護(hù)進(jìn)程;'如果上述本體的檢査結(jié)果是無效或不符合規(guī)范,則輸出相關(guān)信息,并且結(jié)束此次操作。
7. 如權(quán)利要求l所述的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),其特征在于,對所述 Web服務(wù)關(guān)系網(wǎng)絡(luò)中的服務(wù)關(guān)系采用的相應(yīng)的服務(wù)關(guān)系挖掘算法,以及該算法進(jìn)一步包 括的操作接口關(guān)系的計(jì)算流程,具體步驟如下首先,對兩個服務(wù)進(jìn)行預(yù)處理,提取出服務(wù)的功能描述標(biāo)簽(tag)和服務(wù)的操作 接口;然后分別計(jì)算兩組tag和兩組服務(wù)操作接口的關(guān)系;再按照一定權(quán)值加權(quán)得到服 務(wù)關(guān)系;根據(jù)所得的服務(wù)關(guān)系更新服務(wù)網(wǎng)絡(luò),算法結(jié)束。在服務(wù)操作接口的計(jì)算流程中,首先,對兩個操作接口進(jìn)行預(yù)處理;判斷這兩個操 作接口的接口名和描述信息是否為反義,如果是,則算法流程結(jié)束;如果不是,則進(jìn)行 輸入/輸出參數(shù)關(guān)系的計(jì)算;然后得到操作接口的關(guān)系類型和相似度,算法結(jié)束。
8. 如權(quán)利要求l所述的基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),其特征在于,所述系 統(tǒng)還包括手動操作接口。 '
全文摘要
本發(fā)明公開了一種基于語義的Web服務(wù)關(guān)系網(wǎng)絡(luò)系統(tǒng),Web服務(wù)關(guān)系網(wǎng)絡(luò)用于基于語義的服務(wù)發(fā)現(xiàn)、(半)自動服務(wù)組合。該Web服務(wù)關(guān)系網(wǎng)絡(luò)所要處理的服務(wù)來源于該網(wǎng)絡(luò)的提交服務(wù)和該網(wǎng)絡(luò)的獲取服務(wù),提交服務(wù)被動式接收服務(wù)注冊請求,提取信息送到Web服務(wù)關(guān)系網(wǎng)絡(luò);獲取服務(wù)則包括主動利用網(wǎng)絡(luò)爬蟲技術(shù)獲得服務(wù)的描述文件并通過服務(wù)注冊接口加入到Web服務(wù)關(guān)系網(wǎng)絡(luò);根據(jù)用戶的功能描述所自動獲得的復(fù)合服務(wù),復(fù)合服務(wù)通過服務(wù)注冊送到Web服務(wù)關(guān)系網(wǎng)絡(luò)。本發(fā)明更加方便Web服務(wù)的發(fā)布、基于語義的服務(wù)發(fā)現(xiàn)、(半)自動組合,并且對多種服務(wù)描述語言能夠擴(kuò)充兼容;將可用的Web服務(wù)組織成服務(wù)生態(tài)系統(tǒng),借助于服務(wù)之間的關(guān)系改進(jìn)服務(wù)的自動組合、查找、維護(hù)等操作。
文檔編號H04L29/08GK101605141SQ20081005406
公開日2009年12月16日 申請日期2008年8月5日 優(yōu)先權(quán)日2008年8月5日
發(fā)明者馮志勇, 輝 王, 炬 陳, 陳世展, 冷 韓 申請人:天津大學(xué)