亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng)及調(diào)用方法

文檔序號(hào):7710126閱讀:263來源:國知局
專利名稱:一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng)及調(diào)用方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種Web服務(wù)調(diào)用技術(shù),尤其是涉及一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng)及調(diào)用方法。
背景技術(shù)
面向服務(wù)的體系結(jié)構(gòu)(SOA, Service-Oriented Architecture)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(亦稱之為服務(wù))通過它們之間事先定義的良好的接口和契約聯(lián)系起來。其中,接口是采用中立的方式進(jìn)行定義的,它獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言,不依賴于環(huán)境,這使得構(gòu)建在各種采用SOA模型的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。 Web服務(wù)是一種基于網(wǎng)絡(luò)的新型組件模型,它通過WS*標(biāo)準(zhǔn)定義接口和契約,不依賴于任何語言,因而成為了 SOA的重要實(shí)現(xiàn)方式。 隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展和Web服務(wù)應(yīng)用的復(fù)雜化,Web服務(wù)帶來的弊端逐漸被展現(xiàn)出來,人們開始認(rèn)識(shí)到Web服務(wù)的局限性并且對(duì)Web服務(wù)提出了更高的要求。Web服務(wù)的實(shí)時(shí)綁定成為了迫切需要;Web服務(wù)調(diào)用的半自動(dòng)化(即人為參與選擇Web服務(wù)的服務(wù)提供者) 一直是面向服務(wù)應(yīng)用的瓶頸所在;由服務(wù)提供者與服務(wù)請(qǐng)求者之間的綁定關(guān)系而導(dǎo)致的緊耦合性嚴(yán)重違背了 SOA的宗旨;Web服務(wù)日益龐大復(fù)雜,異步方式調(diào)用Web服務(wù)成為必然。 針對(duì)上述提出的要求和問題,相關(guān)研究人員提出了多種Web服務(wù)調(diào)用系統(tǒng)或框
架,然而這些Web服務(wù)調(diào)用系統(tǒng)或框架的缺陷也大都顯而易見,主要表現(xiàn)在 (1)、目前的Web服務(wù)調(diào)用系統(tǒng)或框架只克服了由于服務(wù)請(qǐng)求者與服務(wù)提供者之
間的綁定關(guān)系而引起的緊耦合性的部分問題,而沒有全部克服,這樣仍可能導(dǎo)致Web服務(wù)
不可更改,不可升級(jí)。 (2)、其中一些Web服務(wù)調(diào)用系統(tǒng)或框架,主要是通過高級(jí)語言的反射機(jī)制實(shí)時(shí)生成和編譯存根(Stub)的,在一定程度上實(shí)現(xiàn)了動(dòng)態(tài)調(diào)用,然而這個(gè)動(dòng)態(tài)調(diào)用過程仍然依賴于實(shí)現(xiàn)實(shí)時(shí)生成和編譯存根的靜態(tài)組件。 (3)、其中大多數(shù)的Web服務(wù)調(diào)用系統(tǒng)或框架為實(shí)現(xiàn)Web服務(wù)動(dòng)態(tài)調(diào)用引入了語義,但語義是在客戶端(即服務(wù)請(qǐng)求者)運(yùn)行的,這樣客戶端就必須承擔(dān)較大的負(fù)載,導(dǎo)致客戶端高負(fù)載。 (4)、其中大多數(shù)的Web服務(wù)調(diào)用系統(tǒng)或框架僅支持以同步的方式調(diào)用Web服務(wù),但隨著Web服務(wù)的復(fù)雜化,其計(jì)算時(shí)間不可估計(jì),服務(wù)請(qǐng)求者需長時(shí)間的等待服務(wù)響應(yīng)消息; (5) 、 Restful Web服務(wù)的逐漸推廣和盛行,迫使消息傳輸協(xié)議獨(dú)立成為重要評(píng)價(jià)指標(biāo),要使得Web服務(wù)調(diào)用框架既要符合SOAP (Simple Object Access Protocol,簡單對(duì)象訪問協(xié)議)方式Web服務(wù)調(diào)用規(guī)則,又必須支持REST(R印resentational State Transfer,表述性狀態(tài)轉(zhuǎn)移)方式Web服務(wù),然而目前的Web服務(wù)調(diào)用系統(tǒng)或框架基本只能單獨(dú)實(shí)現(xiàn)
6這兩種方式Web服務(wù)中的其中一種動(dòng)態(tài)調(diào)用。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種能夠有效解除服務(wù)提供者與服務(wù)請(qǐng)求者
之間緊耦合的綁定關(guān)系,無需依賴靜態(tài)組件便能較好地實(shí)現(xiàn)Web服務(wù)的動(dòng)態(tài)調(diào)用,且能夠
有效提高Web服務(wù)匹配的智能性的Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng)及調(diào)用方法。 本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng),包
括服務(wù)請(qǐng)求者、UDDI服務(wù)注冊(cè)中心和服務(wù)提供者,還包括調(diào)用代理,所述的調(diào)用代理分別與
所述的服務(wù)請(qǐng)求者、所述的UDDI服務(wù)注冊(cè)中心及所述的服務(wù)提供者進(jìn)行消息通信,所述的
調(diào)用代理中設(shè)置有消息解析器、服務(wù)匹配器、服務(wù)調(diào)用器及結(jié)果處理器,所述的調(diào)用代理中
建立有語義本體庫,所述的語義本體庫分別為所述的服務(wù)匹配器和所述的結(jié)果處理器提供
語義匹配,所述的服務(wù)請(qǐng)求者發(fā)送服務(wù)請(qǐng)求消息給所述的消息解析器,所述的消息解析器
解析服務(wù)請(qǐng)求消息,得到功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù),所述的服務(wù)匹配器根據(jù)
功能關(guān)鍵字從所述的UDDI服務(wù)注冊(cè)中心中查找服務(wù),獲取Web服務(wù)序列及Web服務(wù)序列中
各個(gè)Web服務(wù)對(duì)應(yīng)的WSDL文件,所述的服務(wù)匹配器根據(jù)輸入?yún)?shù)從Web服務(wù)序列中獲取語
義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件,所述的服務(wù)調(diào)用器發(fā)送由語義匹配度最優(yōu)的
Web服務(wù)對(duì)應(yīng)的WSDL文件產(chǎn)生的服務(wù)請(qǐng)求消息給所述的服務(wù)提供者,并將所述的服務(wù)提供
者根據(jù)接收到的服務(wù)請(qǐng)求消息返回的服務(wù)響應(yīng)消息傳遞給所述的結(jié)果處理器,所述的結(jié)果
處理器將該服務(wù)響應(yīng)消息的格式轉(zhuǎn)化為所述的服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格式,并將格
式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給所述的服務(wù)請(qǐng)求者。 所述的服務(wù)調(diào)用器中設(shè)置有用作緩沖機(jī)制的服務(wù)隊(duì)列。 所述的調(diào)用代理以SOAP和REST兩種方式發(fā)布于Internet中,所述的服務(wù)請(qǐng)求者
可以通過SOAP或者REST方式向所述的調(diào)用代理發(fā)送服務(wù)請(qǐng)求消息,所述的調(diào)用代理獲取
語義匹配度最優(yōu)的Web服務(wù),并根據(jù)該Web服務(wù)的類型,以SOAP或者REST方式異步地向所
述的服務(wù)提供者發(fā)送相應(yīng)的服務(wù)請(qǐng)求消息。 —種Web服務(wù)動(dòng)態(tài)調(diào)用方法,包括以下步驟 ①在傳統(tǒng)的SOA三角架構(gòu)模型基礎(chǔ)上,引入調(diào)用代理服務(wù),該調(diào)用代理分別與服 務(wù)請(qǐng)求者、UDDI服務(wù)注冊(cè)中心和服務(wù)提供者進(jìn)行消息通信,在該調(diào)用代理中設(shè)置消息解析 器、服務(wù)匹配器、服務(wù)調(diào)用器及結(jié)果處理器,在服務(wù)調(diào)用器中設(shè)置用作緩沖機(jī)制的服務(wù)隊(duì) 列; ②根據(jù)具體的服務(wù)領(lǐng)域,在該調(diào)用代理中建立語義本體庫,語義本體庫分別為服 務(wù)匹配器和結(jié)果處理器提供語義匹配; ③服務(wù)請(qǐng)求者向調(diào)用代理發(fā)送服務(wù)請(qǐng)求消息,服務(wù)請(qǐng)求消息以XML格式封裝,服 務(wù)請(qǐng)求消息包括功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù); ④調(diào)用代理接收來自服務(wù)請(qǐng)求者的服務(wù)請(qǐng)求消息,調(diào)用代理中的消息解析器解析 服務(wù)請(qǐng)求消息,得到功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù),其中,輸入?yún)?shù)與需要的響 應(yīng)參數(shù)以XML文檔樹的形式存儲(chǔ); ⑤服務(wù)匹配器根據(jù)消息解析器解析得到的功能關(guān)鍵字查詢語義本體庫,從語義本 體庫中獲取與該功能關(guān)鍵字的語義相近的所有詞匯并選取前N個(gè)詞匯,然后將選出的N個(gè)詞匯分別作為UDDI服務(wù)注冊(cè)中心查找服務(wù)操作的查找關(guān)鍵字,并獲取由UDDI服務(wù)注冊(cè)中 心根據(jù)查找關(guān)鍵字查找得到的N個(gè)Web服務(wù)及各個(gè)Web服務(wù)分別對(duì)應(yīng)的WSDL文件和對(duì)應(yīng) 的tModeKey,服務(wù)匹配器再對(duì)獲取的N個(gè)Web服務(wù)進(jìn)行去冗余處理,得到Web服務(wù)序列;
計(jì)算Web服務(wù)序列中的各個(gè)Web服務(wù)與服務(wù)請(qǐng)求者發(fā)送的服務(wù)請(qǐng)求消息的語義 匹配度,然后從Web服務(wù)序列中選出語義匹配度最優(yōu)的Web服務(wù),并將語義匹配度最優(yōu)的 Web服務(wù)對(duì)應(yīng)的WSDL文件傳遞給調(diào)用代理中的服務(wù)調(diào)用器; ⑦服務(wù)調(diào)用器將語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件產(chǎn)生的服務(wù)請(qǐng)求消 息發(fā)送給服務(wù)提供者,同時(shí)將產(chǎn)生的服務(wù)請(qǐng)求消息放入服務(wù)隊(duì)列中,并監(jiān)聽服務(wù)提供者返 回給服務(wù)調(diào)用器的服務(wù)響應(yīng)消息,再將監(jiān)聽到的服務(wù)響應(yīng)消息傳遞給結(jié)果處理器;
⑧結(jié)果處理器計(jì)算服務(wù)請(qǐng)求需要的響應(yīng)參數(shù)與服務(wù)提供者返回的服務(wù)響應(yīng)消息 的語義匹配度,當(dāng)兩者不匹配時(shí),服務(wù)匹配器從Web服務(wù)序列中選出語義匹配度次優(yōu)的Web 服務(wù)作為語義匹配度最優(yōu)的Web服務(wù),再向服務(wù)調(diào)用器傳遞語義匹配度最優(yōu)的Web服務(wù)對(duì) 應(yīng)的WSDL文件,并返回執(zhí)行步驟⑦;當(dāng)兩者匹配時(shí),結(jié)果處理器將服務(wù)響應(yīng)消息的格式轉(zhuǎn) 化為服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格式,并將格式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給服務(wù)請(qǐng)求 者。 所述的步驟②中語義本體庫的建立過程為 ②-l、設(shè)置一個(gè)空的語義本體庫,將功能關(guān)鍵字、所有輸入?yún)?shù)及所有服務(wù)響應(yīng)消 息作為語義本體庫的基礎(chǔ)詞匯; ②-2、定義兩個(gè)詞匯之間語義的相近程度為語義相近度,記為S,其取值范圍為 0 S^,其中,0表示兩個(gè)詞匯之間的語義不相近,S^表示兩個(gè)詞匯之間的語義完全匹配; 基礎(chǔ)詞匯兩兩之間的語義相近度S = 0 ; ②-3、根據(jù)每個(gè)基礎(chǔ)詞匯建立對(duì)應(yīng)的類別,將各個(gè)基礎(chǔ)詞匯分別作為其對(duì)應(yīng)的類 別中的一個(gè)詞匯,將與各個(gè)基礎(chǔ)詞匯語義相近的新詞匯分別加入各個(gè)基礎(chǔ)詞匯各自所在的 類別中,同一類別中兩個(gè)詞匯之間的語義相近度S > O,不同類別中兩個(gè)詞匯之間的語義相 近度S = 0 ; ②-4、根據(jù)同一類別中兩個(gè)詞匯之間的語義相近度為各個(gè)類別中的所有詞匯的兩 兩語義相近度賦值,構(gòu)成語義本體庫,其中所賦的語義相近度大于0且小于Smax。
所述的步驟⑤包括以下具體步驟 ⑤-l、服務(wù)匹配器根據(jù)消息解析器解析得到的功能關(guān)鍵字在語義本體庫中選出與 功能關(guān)鍵字屬于同一類別的所有詞匯; ⑤-2、服務(wù)匹配器從與功能關(guān)鍵字屬于同一類別的所有詞匯中選出與功能關(guān)鍵字 的語義相近的前N個(gè)詞匯,然后將選出的N個(gè)詞匯分別作為UDDI服務(wù)注冊(cè)中心查找服務(wù)操 作的查找關(guān)鍵字,并獲取由UDDI服務(wù)注冊(cè)中心根據(jù)查找關(guān)鍵字查找得到的N個(gè)Web服務(wù)及 各個(gè)Web服務(wù)分別對(duì)應(yīng)的WSDL文件和對(duì)應(yīng)的tModeKey ; ⑤_3、根據(jù)tModeKey的唯一性,將N個(gè)Web服務(wù)中具有相同的tModeKey的S個(gè) Web服務(wù)中的S-l個(gè)Web服務(wù)刪除,得到去冗余處理后的M個(gè)互不相同的Web服務(wù),由M個(gè) 互不相同的Web服務(wù)構(gòu)成Web服務(wù)序列。
所述的步驟⑥包括以下具體步驟 -1、將查找關(guān)鍵字定義為UDDI服務(wù)注冊(cè)中心根據(jù)該查找關(guān)鍵字查找得到的Web服務(wù)的原始查詢?cè)~匯,定義查詢?cè)~匯相關(guān)度為原始查詢?cè)~匯與消息解析器解析得到的功能 關(guān)鍵字的語義相近程度,記查詢?cè)~匯相關(guān)度為IS ; -2、 Web服務(wù)序列中各個(gè)Web服務(wù)對(duì)應(yīng)的原始查詢?cè)~匯分別為與功能關(guān)鍵字的 語義相近的前N個(gè)詞匯中的一個(gè)或多個(gè),對(duì)于當(dāng)前正在處理的Web服務(wù),定義其為當(dāng)前Web 服務(wù),當(dāng)當(dāng)前Web服務(wù)對(duì)應(yīng)一個(gè)原始查詢?cè)~匯時(shí),查詢?cè)~匯相關(guān)度Is的值為原始查詢?cè)~匯 與功能關(guān)鍵字的語義相近度;當(dāng)當(dāng)前Web服務(wù)對(duì)應(yīng)多個(gè)原始查詢?cè)~匯時(shí),查詢?cè)~匯相關(guān)度 Is的值為各個(gè)原始查詢?cè)~匯與功能關(guān)鍵字的語義相近度中最大的語義相近度;
-3、 Web服務(wù)序列中各個(gè)Web服務(wù)的輸入?yún)?shù)與消息解析器解析得到的輸入?yún)?數(shù)的格式均為XML格式,逐一計(jì)算各個(gè)Web服務(wù)的所有輸入?yún)?shù)的XML文檔樹與消息解析 器解析得到的所有輸入?yún)?shù)的XML文檔樹的語義匹配度,對(duì)于當(dāng)前正在處理的Web服務(wù),定 義其為當(dāng)前Web服務(wù),將當(dāng)前Web服務(wù)的所有輸入?yún)?shù)的XML文檔樹記為dl,將消息解析器 解析得到的所有輸入?yún)?shù)的XML文檔樹記為d2,計(jì)算dl與d2的語義匹配度,記為Sim(dl,
u", —/ " _ y=i V '.=i_^
__,其中,Ai為dl中的第i個(gè)元素,Bj為d2中的第j個(gè)
元素,S(Ai, Bj)為Ai與Bj之間的語義相近度,其值從語義本體庫中查找,p為dl包含的 元素個(gè)數(shù),q為d2包含的元素個(gè)數(shù),S^為dl中的各個(gè)元素與d2中的各個(gè)元素的語義相近 度中的最大的語義相近度; _4、逐一計(jì)算各個(gè)Web服務(wù)與服務(wù)請(qǐng)求者發(fā)送的服務(wù)請(qǐng)求消息的語義匹配度, 對(duì)于當(dāng)前正在處理的Web服務(wù),定義其為當(dāng)前Web服務(wù),計(jì)算當(dāng)前Web服務(wù)與服務(wù)請(qǐng)求者發(fā) 送的服務(wù)請(qǐng)求消息的語義匹配度,記為P, P = a XIs+P XSim(dl, d2),其中,a禾P |3為 權(quán)值,滿足條件a+P = l ; ⑥-5、從Web服務(wù)序列中選出語義匹配度最優(yōu)的Web服務(wù),并將語義匹配度最優(yōu)的 Web服務(wù)對(duì)應(yīng)的WSDL文件傳遞給調(diào)用代理中的服務(wù)調(diào)用器。
所述的步驟⑧包括以下具體步驟 ⑧-l、在結(jié)果處理器中,將服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的XML文檔樹記為dl', 將dl'包含的元素個(gè)數(shù)記為p',將服務(wù)提供者返回的服務(wù)響應(yīng)消息中的所有參數(shù)的XML 文檔樹記為d2',將d2'包含的元素個(gè)數(shù)記為q',計(jì)算dl'與d2'的語義匹配度,記為
P' ,P'= A ^ ,.其中,Ai'為dl'中的第i'個(gè)元素,Bj'為d2'中
.'■'=i /=i
的第j'個(gè)元素,S(Ai' ,Bj')為Ai'與Bj'之間的語義相近度,其值從語義本體庫中查 找; ⑧-2、當(dāng)P' =0時(shí),表明服務(wù)提供者返回的服務(wù)響應(yīng)消息與服務(wù)請(qǐng)求者需要的響 應(yīng)參數(shù)不匹配,服務(wù)匹配器從Web服務(wù)序列中選出語義匹配度次優(yōu)的Web服務(wù)作為語義匹 配度最優(yōu)的Web服務(wù),再向服務(wù)調(diào)用器傳遞語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件, 并返回執(zhí)行步驟⑦;當(dāng)P' > 0時(shí),表明服務(wù)提供者返回的服務(wù)響應(yīng)消息與服務(wù)請(qǐng)求者需要 的響應(yīng)參數(shù)匹配,并繼續(xù)執(zhí)行; ⑧-3、結(jié)果處理器將服務(wù)響應(yīng)消息的格式轉(zhuǎn)化為服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格
9式,并將格式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給服務(wù)請(qǐng)求者。 所述的調(diào)用代理以SOAP和REST兩種方式發(fā)布于Internet中,所述的服務(wù)請(qǐng)求者 可以通過SOAP或者REST方式向所述的調(diào)用代理發(fā)送服務(wù)請(qǐng)求消息,所述的調(diào)用代理獲取 語義匹配度最優(yōu)的Web服務(wù),并根據(jù)該Web服務(wù)的類型,以SOAP或者REST的方式異步地向 所述的服務(wù)提供者發(fā)送相應(yīng)的服務(wù)請(qǐng)求消息。 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于通過在現(xiàn)有的面向服務(wù)體系架構(gòu)的三角模型 基礎(chǔ)上,在服務(wù)請(qǐng)求者與服務(wù)注冊(cè)中心之間引入調(diào)用代理這一個(gè)新的服務(wù)成員,該調(diào)用代 理與服務(wù)請(qǐng)求者、UDDI服務(wù)注冊(cè)中心及服務(wù)提供者進(jìn)行消息通信,對(duì)服務(wù)請(qǐng)求者而言,調(diào)用 代理充當(dāng)服務(wù)提供者的角色,為服務(wù)請(qǐng)求者提供服務(wù),使服務(wù)提供者通過單一接口及少量 信息就可獲得最佳結(jié)果;對(duì)UDDI服務(wù)注冊(cè)中心而言,調(diào)用代理又充當(dāng)服務(wù)請(qǐng)求者的角色, 可以請(qǐng)求服務(wù)注冊(cè)中心提供各類服務(wù),包括查詢指令等;對(duì)服務(wù)提供者而言,調(diào)用代理同樣 充當(dāng)服務(wù)請(qǐng)求者的角色,調(diào)用代理根據(jù)語義匹配結(jié)果,與相應(yīng)的服務(wù)提供者交互,這種動(dòng)態(tài) 調(diào)用方法不僅解除了傳統(tǒng)的SOA三角架構(gòu)模型中服務(wù)提供者與服務(wù)請(qǐng)求者之間緊耦合的 綁定關(guān)系,實(shí)現(xiàn)了滿足語義匹配的動(dòng)態(tài)調(diào)用,而且語義匹配的引入,有效提高了 Web服務(wù)匹 配的智能性;在調(diào)用代理中建立語義本體庫,可根據(jù)語義本體庫依據(jù)Web服務(wù)語義的匹配 程度調(diào)用任何一種可達(dá)的Web服務(wù),具體優(yōu)點(diǎn)體現(xiàn)如下 1)、由于調(diào)用代理這一服務(wù)的引入,服務(wù)請(qǐng)求者與服務(wù)提供者不再是靜態(tài)的綁定 關(guān)系,而是動(dòng)態(tài)的、實(shí)時(shí)匹配的關(guān)系,完全解除了它們之間的緊耦合關(guān)系,為Web服務(wù)的更 改和升級(jí)提供了良好的保障; 2)、由于調(diào)用代理是一個(gè)獨(dú)立運(yùn)行時(shí)的服務(wù),不需要依賴任何靜態(tài)組件而存在,明 顯區(qū)別于利用高級(jí)語言的反射機(jī)制來達(dá)到動(dòng)態(tài)調(diào)用效果的方式,真正實(shí)現(xiàn)了動(dòng)態(tài)調(diào)用;
3)、語義匹配過程涉及到較大的運(yùn)算量,如果將其置于客戶端(即服務(wù)請(qǐng)求者)將 會(huì)帶來較大的運(yùn)算壓力,而本發(fā)明通過引入調(diào)用代理進(jìn)行語義匹配,較好地平衡了服務(wù)請(qǐng) 求者的負(fù)載; 4)、通過在服務(wù)調(diào)用器中引入服務(wù)隊(duì)列,有效實(shí)現(xiàn)了對(duì)Web服務(wù)的異步調(diào)用;
5)、調(diào)用代理提供了 SOAP和REST兩種方式的訪問接口和調(diào)用方式,支持主流的 SOAP和REST方式的Web服務(wù)調(diào)用,具有通用性。


圖1為傳統(tǒng)的S0A三角架構(gòu)模型的示意圖; 圖2為本發(fā)明的Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng)的示意圖; 圖3為本發(fā)明的調(diào)用代理的組成示意圖。 圖4為本發(fā)明中語義本體庫中某一類別的無向有權(quán)圖; 圖5為Web服務(wù)的所有輸入?yún)?shù)的XML文檔樹與消息解析器解析得到的所有輸入 參數(shù)的XML文檔樹的關(guān)系示意圖。
具體實(shí)施例方式
以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。 傳統(tǒng)的S0A三角架構(gòu)模型如圖1所示,其主要包括UDDI (UniversalDescriptionDiscovery and Integration,統(tǒng)一描述、發(fā)現(xiàn)和集成)服務(wù)注冊(cè)中心、服務(wù)請(qǐng) 求者和服務(wù)提供者,UDDI服務(wù)注冊(cè)中心為服務(wù)請(qǐng)求者和服務(wù)提供者提供聯(lián)系的紐帶,對(duì)于 服務(wù)提供者,UDDI服務(wù)注冊(cè)中心為之提供發(fā)布服務(wù),主要記錄Web服務(wù)的描述信息、操作信 息以及結(jié)點(diǎn)位置等,對(duì)于服務(wù)請(qǐng)求者,UDDI服務(wù)注冊(cè)中心為之提供查找服務(wù),通過UDDI服 務(wù)注冊(cè)中心,服務(wù)請(qǐng)求者與服務(wù)提供者可以按照契約獨(dú)立進(jìn)行交互。由于這種架構(gòu)模型中 服務(wù)提供者與服務(wù)請(qǐng)求者之間為緊耦合的綁定關(guān)系,不能較好地實(shí)現(xiàn)Web動(dòng)態(tài)調(diào)用,為此 本發(fā)明提出了一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng)及動(dòng)態(tài)調(diào)用方法。 本發(fā)明的動(dòng)態(tài)調(diào)用系統(tǒng)的組成框圖如圖2和圖3所示,其包括服務(wù)請(qǐng)求者、UDDI服 務(wù)注冊(cè)中心、服務(wù)提供者及調(diào)用代理,調(diào)用代理分別與服務(wù)請(qǐng)求者、UDDI服務(wù)注冊(cè)中心及服 務(wù)提供者進(jìn)行消息通信,調(diào)用代理中設(shè)置有消息解析器、服務(wù)匹配器、服務(wù)調(diào)用器及結(jié)果處 理器,調(diào)用代理中建立有語義本體庫,語義本體庫分別為服務(wù)匹配器和結(jié)果處理器提供語 義匹配,服務(wù)請(qǐng)求者發(fā)送服務(wù)請(qǐng)求消息給消息解析器,消息解析器解析服務(wù)請(qǐng)求消息,得到 功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù),服務(wù)匹配器根據(jù)功能關(guān)鍵字從UDDI服務(wù)注冊(cè)中 心中查找服務(wù),獲取Web服務(wù)序列及Web服務(wù)序列中各個(gè)Web服務(wù)對(duì)應(yīng)的WSDL文件,服務(wù) 匹配器根據(jù)輸入?yún)?shù)從Web服務(wù)序列中獲取語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件, 服務(wù)調(diào)用器發(fā)送由語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件產(chǎn)生的服務(wù)請(qǐng)求消息給服 務(wù)提供者,并將服務(wù)提供者根據(jù)接收到的服務(wù)請(qǐng)求消息返回的服務(wù)響應(yīng)消息傳遞給結(jié)果處 理器,結(jié)果處理器將該服務(wù)響應(yīng)消息的格式轉(zhuǎn)化為服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格式,并 將格式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給服務(wù)請(qǐng)求者。 在此具體實(shí)施例中,在服務(wù)調(diào)用器中設(shè)置有用作緩沖機(jī)制的服務(wù)隊(duì)列,通過服務(wù) 隊(duì)列服務(wù)調(diào)用器可異步地向服務(wù)提供者調(diào)用Web服務(wù)。 在此具體實(shí)施例中,調(diào)用代理以SOAP (Simple Object Access Protocol,簡單對(duì) 象訪問協(xié)議)和REST(R印resentational State Transfer,表述性狀態(tài)轉(zhuǎn)移)兩種Web服 務(wù)方式發(fā)布于Internet中,在調(diào)用代理中設(shè)置有基于WSDL/S0AP服務(wù)的接口及基于REST 服務(wù)的接口 ,基于WSDL/S0AP服務(wù)的接口用于接收服務(wù)請(qǐng)求者發(fā)來的SOAP操作,并將結(jié)果 以SOAP信封的方式返回給服務(wù)請(qǐng)求者;基于REST服務(wù)的接口用于接收服務(wù)請(qǐng)求者發(fā)來的 HTTP請(qǐng)求,并將結(jié)果以HTTP響應(yīng)的方式返回給服務(wù)請(qǐng)求者;調(diào)用代理根據(jù)所匹配的Web服 務(wù)的類型,以SOAP或者REST的方式異步地向服務(wù)提供者調(diào)用Web服務(wù)。
本發(fā)明的Web服務(wù)動(dòng)態(tài)調(diào)用方法包括以下步驟 ①在傳統(tǒng)的SOA三角架構(gòu)模型基礎(chǔ)上,引入調(diào)用代理服務(wù),該調(diào)用代理分別與服 務(wù)請(qǐng)求者、UDDI服務(wù)注冊(cè)中心和服務(wù)提供者進(jìn)行消息通信,在該調(diào)用代理中設(shè)置消息解析 器、服務(wù)匹配器、服務(wù)調(diào)用器及結(jié)果處理器,在服務(wù)調(diào)用器中設(shè)置用作緩沖機(jī)制的服務(wù)隊(duì) 列。 在此,調(diào)用代理以SOAP和REST兩種Web服務(wù)方式發(fā)布于Internet中,在調(diào)用代 理中設(shè)置有基于WSDL/S0AP服務(wù)的接口及基于REST服務(wù)的接口 ,基于WSDL/S0AP服務(wù)的接 口用于接收服務(wù)請(qǐng)求者發(fā)來的SOAP操作,并將結(jié)果以SOAP信封的方式返回給服務(wù)請(qǐng)求者; 基于REST服務(wù)的接口用于接收服務(wù)請(qǐng)求者發(fā)來的HTTP請(qǐng)求,并將結(jié)果以HTTP響應(yīng)的方式 返回給服務(wù)請(qǐng)求者。 ②根據(jù)具體的服務(wù)領(lǐng)域,在該調(diào)用代理中建立語義本體庫,語義本體庫分別為服務(wù)匹配器和結(jié)果處理器提供語義匹配。 在此具體實(shí)施例中,具體的服務(wù)領(lǐng)域不同,則構(gòu)建得到的語義本體庫也各不相同, 但語義本體庫的建立過程是相同的,具體的建立過程為 ②-l、設(shè)置一個(gè)空的語義本體庫,將功能關(guān)鍵字、所有輸入?yún)?shù)及所有服務(wù)響應(yīng)消 息作為語義本體庫的基礎(chǔ)詞匯,如{Al (源于功能關(guān)鍵字),Bl (源于輸入?yún)?shù)1) , CI (源于 輸入?yún)?shù)2) , Dl (源于服務(wù)響應(yīng)消息的參數(shù)1) , El (源于服務(wù)響應(yīng)消息的參數(shù)2) , Fl (源于 其他可能的參數(shù),……)}。 ②-2、定義兩個(gè)詞匯之間語義的相近程度為語義相近度,記為S,其取值范圍為 0 S^,其中,0表示兩個(gè)詞匯之間的語義不相近,S^表示兩個(gè)詞匯之間的語義完全匹配; 基礎(chǔ)詞匯兩兩之間的語義相近度S = 0。 ②-3、根據(jù)每個(gè)基礎(chǔ)詞匯建立對(duì)應(yīng)的類別,將各個(gè)基礎(chǔ)詞匯分別作為其對(duì)應(yīng)的類 別中的一個(gè)詞匯,如建立TA、 TB、 Tc、 TD、 TE、 TF、……等類別,其中詞匯Al、 Bl、 Cl、 Dl等分別 屬于TA、TB、Te、TD等;將與各個(gè)基礎(chǔ)詞匯語義相近的新詞匯分別加入各個(gè)基礎(chǔ)詞匯各自所在 的類別中,進(jìn)行擴(kuò)充詞匯,如1\ = {Al, A2, A3,……};同一類別中兩個(gè)詞匯之間的語義相 近度S > O,不同類別中兩個(gè)詞匯之間的語義相近度S = 0。 ②-4、根據(jù)同一類別中兩個(gè)詞匯之間的語義相近度為各個(gè)類別中的所有詞匯的兩 兩語義相近度賦值,如S(Al, A2) = 3, S(A2, A3) = 12, S(A1, A3) = 6, ,構(gòu)成語義本
體庫,其中所賦的語義相近度大于0且小于Smax,同一類別中所有詞匯兩兩之間的語義相近
度可構(gòu)成一張無向有權(quán)圖,如圖4所示,多個(gè)類別構(gòu)成多張無向有權(quán)圖。 現(xiàn)有的在語義本體庫中的各個(gè)類別中加入新詞匯通常有兩種方式,分別為專家經(jīng)
驗(yàn)方式和調(diào)查統(tǒng)計(jì)方式,其中調(diào)查統(tǒng)計(jì)方式較為準(zhǔn)確。 ③服務(wù)請(qǐng)求者向調(diào)用代理發(fā)送服務(wù)請(qǐng)求消息,服務(wù)請(qǐng)求消息以XML格式封裝,服 務(wù)請(qǐng)求消息包括功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù)。 在此,服務(wù)請(qǐng)求者可以以SOAP Web服務(wù)方式或REST Web服務(wù)方式請(qǐng)求Web服務(wù)。
④調(diào)用代理接收來自服務(wù)請(qǐng)求者的服務(wù)請(qǐng)求消息,調(diào)用代理中的消息解析器解析 服務(wù)請(qǐng)求消息,得到功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù),其中,輸入?yún)?shù)與需要的響 應(yīng)參數(shù)以XML文檔樹的形式存儲(chǔ)。 ⑤服務(wù)匹配器根據(jù)消息解析器解析得到的功能關(guān)鍵字查詢語義本體庫,從語義本 體庫中獲取與該功能關(guān)鍵字的語義相近的所有詞匯并選取前N個(gè)詞匯,然后將選出的N個(gè) 詞匯分別作為UDDI服務(wù)注冊(cè)中心查找服務(wù)操作的查找關(guān)鍵字,并獲取由UDDI服務(wù)注冊(cè)中 心根據(jù)查找關(guān)鍵字查找得到的N個(gè)Web服務(wù)及各個(gè)Web服務(wù)分別對(duì)應(yīng)的WSDL文件和對(duì)應(yīng) 的tModeKey,服務(wù)匹配器再對(duì)獲取的N個(gè)Web服務(wù)進(jìn)行去冗余處理,得到Web服務(wù)序列。具 體步驟如下 ⑤-l、服務(wù)匹配器根據(jù)消息解析器解析得到的功能關(guān)鍵字在語義本體庫中選出與 功能關(guān)鍵字屬于同一類別的所有詞匯。 ⑤-2、服務(wù)匹配器從與功能關(guān)鍵字屬于同一類別的所有詞匯中選出與功能關(guān)鍵字 的語義相近的前N個(gè)詞匯,然后將選出的N個(gè)詞匯分別作為UDDI服務(wù)注冊(cè)中心查找服務(wù)操 作的查找關(guān)鍵字,并獲取由UDDI服務(wù)注冊(cè)中心根據(jù)查找關(guān)鍵字查找得到的N個(gè)Web服務(wù)及 各個(gè)Web服務(wù)分別對(duì)應(yīng)的WSDL文件和對(duì)應(yīng)的tModeKey ;tModeKey是UDDI服務(wù)注冊(cè)中心用以標(biāo)識(shí)Web服務(wù)的一種碼,具有唯一性。 ⑤-3、根據(jù)tModeKey的唯一性,將N個(gè)Web服務(wù)中具有相同的tModeKey的S個(gè) Web服務(wù)中的S-l個(gè)Web服務(wù)刪除,得到去冗余處理后的M個(gè)互不相同的Web服務(wù),由M個(gè) 互不相同的Web服務(wù)構(gòu)成Web服務(wù)序列。
計(jì)算Web服務(wù)序列中的各個(gè)Web服務(wù)與服務(wù)請(qǐng)求者發(fā)送的服務(wù)請(qǐng)求消息的語義
匹配度,然后從Web服務(wù)序列中選出語義匹配度最優(yōu)的Web服務(wù),并將語義匹配度最優(yōu)的
Web服務(wù)對(duì)應(yīng)的WSDL文件傳遞給調(diào)用代理中的服務(wù)調(diào)用器。具體步驟如下 -1、將查找關(guān)鍵字定義為UDDI服務(wù)注冊(cè)中心根據(jù)該查找關(guān)鍵字查找得到的Web
服務(wù)的原始查詢?cè)~匯,定義查詢?cè)~匯相關(guān)度為原始查詢?cè)~匯與消息解析器解析得到的功能
關(guān)鍵字的語義相近程度,記查詢?cè)~匯相關(guān)度為Is。
-2、 Web服務(wù)序列中各個(gè)Web服務(wù)對(duì)應(yīng)的原始查詢?cè)~匯分別為與功能關(guān)鍵字的 語義相近的前N個(gè)詞匯中的一個(gè)或多個(gè),這是由冗余處理后產(chǎn)生的,對(duì)于當(dāng)前正在處理的 Web服務(wù),定義其為當(dāng)前Web服務(wù),當(dāng)當(dāng)前Web服務(wù)對(duì)應(yīng)一個(gè)原始查詢?cè)~匯時(shí),查詢?cè)~匯相關(guān) 度Is的值為原始查詢?cè)~匯與功能關(guān)鍵字的語義相近度;當(dāng)當(dāng)前Web服務(wù)對(duì)應(yīng)多個(gè)原始查詢 詞匯時(shí),查詢?cè)~匯相關(guān)度Is的值為各個(gè)原始查詢?cè)~匯與功能關(guān)鍵字的語義相近度中最大 的語義相近度。
-3、 Web服務(wù)序列中各個(gè)Web服務(wù)的輸入?yún)?shù)與消息解析器解析得到的輸入 參數(shù)的格式均為XML格式,它們之間的語義匹配度可以借鑒XML文檔比較中的元素比較法 來進(jìn)行計(jì)算,逐一計(jì)算各個(gè)Web服務(wù)的所有輸入?yún)?shù)的XML文檔樹與消息解析器解析得到 的所有輸入?yún)?shù)的XML文檔樹的語義匹配度,對(duì)于當(dāng)前正在處理的Web服務(wù),定義其為當(dāng) 前Web服務(wù),將當(dāng)前Web服務(wù)的所有輸入?yún)?shù)的XML文檔樹記為dl,將消息解析器解析得 到的所有輸入?yún)?shù)的XML文檔樹記為d2,計(jì)算dl與d2的語義匹配度,記為Sim(dl, d2),
S(Ai, Bj)為Ai與Bj之間的語義相近度,其值從語義本體庫中查找,p為dl包含的元素個(gè) 數(shù),q為d2包含的元素個(gè)數(shù),S^為dl中的各個(gè)元素與d2中的各個(gè)元素的語義相近度中的 最大的語義相近度。圖5給出了dl和d2的關(guān)系。
_4、逐一計(jì)算各個(gè)Web服務(wù)與服務(wù)請(qǐng)求者發(fā)送的服務(wù)請(qǐng)求消息的語義匹配度, 對(duì)于當(dāng)前正在處理的Web服務(wù),定義其為當(dāng)前Web服務(wù),計(jì)算當(dāng)前Web服務(wù)與服務(wù)請(qǐng)求者發(fā) 送的服務(wù)請(qǐng)求消息的語義匹配度,記為P, P = a XIs+P XSim(dl, d2),其中,a禾P |3為 權(quán)值,滿足條件a + P =1。在此,a和|3分別表達(dá)了查詢?cè)~匯相關(guān)度Is和dl與d2的 語義匹配度Sim' (dl,d2)的重要程度。 ⑥-5、從Web服務(wù)序列中選出語義匹配度最優(yōu)的Web服務(wù),并將語義匹配度最優(yōu)的 Web服務(wù)對(duì)應(yīng)的WSDL文件傳遞給調(diào)用代理中的服務(wù)調(diào)用器。 ⑦服務(wù)調(diào)用器將語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件產(chǎn)生的服務(wù)請(qǐng)求消 息發(fā)送給服務(wù)提供者,同時(shí)將產(chǎn)生的服務(wù)請(qǐng)求消息放入服務(wù)隊(duì)列中,并監(jiān)聽服務(wù)提供者返 回給服務(wù)調(diào)用器的服務(wù)響應(yīng)消息,再將監(jiān)聽到的服務(wù)響應(yīng)消息傳遞給結(jié)果處理器。
在此,服務(wù)調(diào)用器以SOAP Web服務(wù)方式或REST Web服務(wù)方式同步或異步地向服
其中,Ai為dl中的第i個(gè)元素,Bj為d2中的第j個(gè)元素,
13務(wù)提供者調(diào)用Web服務(wù)?,F(xiàn)有的大多數(shù)Web服務(wù)調(diào)用框架只能通過同步方式調(diào)用服務(wù),而 本發(fā)明在服務(wù)調(diào)用器中設(shè)置了一個(gè)服務(wù)隊(duì)列,通過該服務(wù)隊(duì)列可實(shí)現(xiàn)對(duì)Web服務(wù)的異步調(diào) 用,因此在本發(fā)明中,服務(wù)調(diào)用器可以通過兩種方式即同步或異步進(jìn)行服務(wù)調(diào)用。通過異步 調(diào)用,即使Web服務(wù)比較復(fù)雜,也無需服務(wù)請(qǐng)求者長時(shí)間等待。 ⑧結(jié)果處理器計(jì)算服務(wù)請(qǐng)求需要的響應(yīng)參數(shù)與服務(wù)提供者返回的服務(wù)響應(yīng)消息 的語義匹配度,當(dāng)兩者不匹配時(shí),服務(wù)匹配器從Web服務(wù)序列中選出語義匹配度次優(yōu)的Web 服務(wù)作為語義匹配度最優(yōu)的Web服務(wù),再向服務(wù)調(diào)用器傳遞語義匹配度最優(yōu)的Web服務(wù)對(duì) 應(yīng)的WSDL文件,并返回執(zhí)行步驟⑦;當(dāng)兩者匹配時(shí),結(jié)果處理器將服務(wù)響應(yīng)消息的格式轉(zhuǎn) 化為服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格式,并將格式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給服務(wù)請(qǐng)求 者。具體步驟如下 ⑧-IJ艮務(wù)提供者返回的服務(wù)響應(yīng)消息與服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)都是以XML 格式存在的,在結(jié)果處理器中,將服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的XML文檔樹記為dl',將 dl'包含的元素個(gè)數(shù)記為p',將服務(wù)提供者返回的服務(wù)響應(yīng)消息中的所有參數(shù)的XML文 檔樹記為d2',將d2'包含的元素個(gè)數(shù)記為q',計(jì)算dl'與d2'的語義匹配度,記為<formula>formula see original document page 14</formula>
其中,Ai'為dl'中的第i'個(gè)元素,Bj'為d2'中
的第j'個(gè)元素,S(Ai' ,Bj')為Ai'與Bj'之間的語義相近度,其值從語義本體庫中查
找,當(dāng)P'《q'時(shí)<formula>formula see original document page 14</formula>其值大于等于0。 dl'與d2'的語義匹配度實(shí)際
上是服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)與服務(wù)提供者返回的服務(wù)響應(yīng)消息中的參數(shù)的語義匹配 度,是判斷服務(wù)調(diào)用是否正確的重要標(biāo)志,如果服務(wù)調(diào)用正確,則要求服務(wù)請(qǐng)求者需要的響 應(yīng)參數(shù)是服務(wù)提供者返回的服務(wù)響應(yīng)消息中的參數(shù)的子集,亦即,服務(wù)請(qǐng)求者需要的每個(gè) 響應(yīng)參數(shù)必須能在返回的服務(wù)響應(yīng)消息中找到其語義相近的參數(shù)。 ⑧-2、當(dāng)P' =0時(shí),表明服務(wù)提供者返回的服務(wù)響應(yīng)消息與服務(wù)請(qǐng)求者需要的響 應(yīng)參數(shù)不匹配,服務(wù)匹配器從Web服務(wù)序列中選出語義匹配度次優(yōu)的Web服務(wù)作為語義匹 配度最優(yōu)的Web服務(wù),再向服務(wù)調(diào)用器傳遞語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件, 并返回執(zhí)行步驟⑦;當(dāng)P' > 0時(shí),表明服務(wù)提供者返回的服務(wù)響應(yīng)消息與服務(wù)請(qǐng)求者需要 的響應(yīng)參數(shù)匹配,并繼續(xù)執(zhí)行。 ⑧-3、結(jié)果處理器將服務(wù)響應(yīng)消息的格式轉(zhuǎn)化為服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格 式,并將格式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給服務(wù)請(qǐng)求者。實(shí)際上由于服務(wù)請(qǐng)求者需要的響 應(yīng)參數(shù)是服務(wù)提供者返回的服務(wù)響應(yīng)消息中的參數(shù)的子集,結(jié)果處理器依據(jù)語義本體庫將 服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)從服務(wù)提供者返回的服務(wù)響應(yīng)消息中抽取出來即可。結(jié)果處理 器響應(yīng)服務(wù)請(qǐng)求者的方式有兩種當(dāng)服務(wù)請(qǐng)求者以SOAP形式請(qǐng)求Web服務(wù)時(shí),結(jié)果處理器 將結(jié)果封裝成SOAP包返回;當(dāng)服務(wù)請(qǐng)求者以REST形式請(qǐng)求Web服務(wù)時(shí),結(jié)果處理器將結(jié)果 轉(zhuǎn)化成HTTP響應(yīng)返回。
權(quán)利要求
一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng),包括服務(wù)請(qǐng)求者、UDDI服務(wù)注冊(cè)中心和服務(wù)提供者,其特征在于還包括調(diào)用代理,所述的調(diào)用代理分別與所述的服務(wù)請(qǐng)求者、所述的UDDI服務(wù)注冊(cè)中心及所述的服務(wù)提供者進(jìn)行消息通信,所述的調(diào)用代理中設(shè)置有消息解析器、服務(wù)匹配器、服務(wù)調(diào)用器及結(jié)果處理器,所述的調(diào)用代理中建立有語義本體庫,所述的語義本體庫分別為所述的服務(wù)匹配器和所述的結(jié)果處理器提供語義匹配,所述的服務(wù)請(qǐng)求者發(fā)送服務(wù)請(qǐng)求消息給所述的消息解析器,所述的消息解析器解析服務(wù)請(qǐng)求消息,得到功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù),所述的服務(wù)匹配器根據(jù)功能關(guān)鍵字從所述的UDDI服務(wù)注冊(cè)中心中查找服務(wù),獲取Web服務(wù)序列及Web服務(wù)序列中各個(gè)Web服務(wù)對(duì)應(yīng)的WSDL文件,所述的服務(wù)匹配器根據(jù)輸入?yún)?shù)從Web服務(wù)序列中獲取語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件,所述的服務(wù)調(diào)用器發(fā)送由語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件產(chǎn)生的服務(wù)請(qǐng)求消息給所述的服務(wù)提供者,并將所述的服務(wù)提供者根據(jù)接收到的服務(wù)請(qǐng)求消息返回的服務(wù)響應(yīng)消息傳遞給所述的結(jié)果處理器,所述的結(jié)果處理器將該服務(wù)響應(yīng)消息的格式轉(zhuǎn)化為所述的服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格式,并將格式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給所述的服務(wù)請(qǐng)求者。
2. 根據(jù)權(quán)利要求1所述的一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng),其特征在于所述的服務(wù)調(diào)用器 中設(shè)置有用作緩沖機(jī)制的服務(wù)隊(duì)列。
3. 根據(jù)權(quán)利要求1或2所述的一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng),其特征在于所述的調(diào)用 代理以SOAP和REST兩種方式發(fā)布于Internet中,所述的服務(wù)請(qǐng)求者通過SOAP或者REST 方式向所述的調(diào)用代理發(fā)送服務(wù)請(qǐng)求消息,所述的調(diào)用代理獲取語義匹配度最優(yōu)的Web服 務(wù),并根據(jù)該Web服務(wù)的類型,以SOAP或者REST方式異步地向所述的服務(wù)提供者發(fā)送相應(yīng) 的服務(wù)請(qǐng)求消息。
4. 一種Web服務(wù)動(dòng)態(tài)調(diào)用方法,其特征在于包括以下步驟① 在傳統(tǒng)的SOA三角架構(gòu)模型基礎(chǔ)上,引入調(diào)用代理服務(wù),該調(diào)用代理分別與服務(wù)請(qǐng) 求者、UDDI服務(wù)注冊(cè)中心和服務(wù)提供者進(jìn)行消息通信,在該調(diào)用代理中設(shè)置消息解析器、服 務(wù)匹配器、服務(wù)調(diào)用器及結(jié)果處理器,在服務(wù)調(diào)用器中設(shè)置用作緩沖機(jī)制的服務(wù)隊(duì)列;② 根據(jù)具體的服務(wù)領(lǐng)域,在該調(diào)用代理中建立語義本體庫,語義本體庫分別為服務(wù)匹 配器和結(jié)果處理器提供語義匹配;③ 服務(wù)請(qǐng)求者向調(diào)用代理發(fā)送服務(wù)請(qǐng)求消息,服務(wù)請(qǐng)求消息以XML格式封裝,服務(wù)請(qǐng) 求消息包括功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù);④ 調(diào)用代理接收來自服務(wù)請(qǐng)求者的服務(wù)請(qǐng)求消息,調(diào)用代理中的消息解析器解析服務(wù) 請(qǐng)求消息,得到功能關(guān)鍵字、輸入?yún)?shù)及需要的響應(yīng)參數(shù),其中,輸入?yún)?shù)與需要的響應(yīng)參 數(shù)以XML文檔樹的形式存儲(chǔ);⑤ 服務(wù)匹配器根據(jù)消息解析器解析得到的功能關(guān)鍵字查詢語義本體庫,從語義本體 庫中獲取與該功能關(guān)鍵字的語義相近的所有詞匯并選取前N個(gè)詞匯,然后將選出的N個(gè)詞 匯分別作為UDDI服務(wù)注冊(cè)中心查找服務(wù)操作的查找關(guān)鍵字,并獲取由UDDI服務(wù)注冊(cè)中心 根據(jù)查找關(guān)鍵字查找得到的N個(gè)Web服務(wù)及各個(gè)Web服務(wù)分別對(duì)應(yīng)的WSDL文件和對(duì)應(yīng)的 tModeKey,服務(wù)匹配器再對(duì)獲取的N個(gè)Web服務(wù)進(jìn)行去冗余處理,得到Web服務(wù)序列; 計(jì)算Web服務(wù)序列中的各個(gè)Web服務(wù)與服務(wù)請(qǐng)求者發(fā)送的服務(wù)請(qǐng)求消息的語義匹配 度,然后從Web服務(wù)序列中選出語義匹配度最優(yōu)的Web服務(wù),并將語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件傳遞給調(diào)用代理中的服務(wù)調(diào)用器;⑦ 服務(wù)調(diào)用器將語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件產(chǎn)生的服務(wù)請(qǐng)求消息發(fā) 送給服務(wù)提供者,同時(shí)將產(chǎn)生的服務(wù)請(qǐng)求消息放入服務(wù)隊(duì)列中,并監(jiān)聽服務(wù)提供者返回給 服務(wù)調(diào)用器的服務(wù)響應(yīng)消息,再將監(jiān)聽到的服務(wù)響應(yīng)消息傳遞給結(jié)果處理器;⑧ 結(jié)果處理器計(jì)算服務(wù)請(qǐng)求需要的響應(yīng)參數(shù)與服務(wù)提供者返回的服務(wù)響應(yīng)消息的語 義匹配度,當(dāng)兩者不匹配時(shí),服務(wù)匹配器從Web服務(wù)序列中選出語義匹配度次優(yōu)的Web服務(wù) 作為語義匹配度最優(yōu)的Web服務(wù),再向服務(wù)調(diào)用器傳遞語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的 WSDL文件,并返回執(zhí)行步驟⑦;當(dāng)兩者匹配時(shí),結(jié)果處理器將服務(wù)響應(yīng)消息的格式轉(zhuǎn)化為 服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格式,并將格式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給服務(wù)請(qǐng)求者。
5. 根據(jù)權(quán)利要求4所述的一種Web服務(wù)動(dòng)態(tài)調(diào)用方法,其特征在于所述的步驟②中語 義本體庫的建立過程為②-l、設(shè)置一個(gè)空的語義本體庫,將功能關(guān)鍵字、所有輸入?yún)?shù)及所有服務(wù)響應(yīng)消息作 為語義本體庫的基礎(chǔ)詞匯;②-2、定義兩個(gè)詞匯之間語義的相近程度為語義相近度,記為S,其取值范圍為0 Smax,其中,0表示兩個(gè)詞匯之間的語義不相近,Smax表示兩個(gè)詞匯之間的語義完全匹配;基礎(chǔ) 詞匯兩兩之間的語義相近度S = 0 ;②-3、根據(jù)每個(gè)基礎(chǔ)詞匯建立對(duì)應(yīng)的類別,將各個(gè)基礎(chǔ)詞匯分別作為其對(duì)應(yīng)的類別中 的一個(gè)詞匯,將與各個(gè)基礎(chǔ)詞匯語義相近的新詞匯分別加入各個(gè)基礎(chǔ)詞匯各自所在的類別 中,同一類別中兩個(gè)詞匯之間的語義相近度S > O,不同類別中兩個(gè)詞匯之間的語義相近度S = 0 ;②-4、根據(jù)同一類別中兩個(gè)詞匯之間的語義相近度為各個(gè)類別中的所有詞匯的兩兩語 義相近度賦值,構(gòu)成語義本體庫,其中所賦的語義相近度大于0且小于Smax。
6. 根據(jù)權(quán)利要求5所述的一種Web服務(wù)動(dòng)態(tài)調(diào)用方法,其特征在于所述的步驟⑤包括 以下具體步驟 -1、服務(wù)匹配器根據(jù)消息解析器解析得到的功能關(guān)鍵字在語義本體庫中選出與功能 關(guān)鍵字屬于同一類別的所有詞匯; -2、服務(wù)匹配器從與功能關(guān)鍵字屬于同一類別的所有詞匯中選出與功能關(guān)鍵字的語 義相近的前N個(gè)詞匯,然后將選出的N個(gè)詞匯分別作為UDDI服務(wù)注冊(cè)中心查找服務(wù)操作的 查找關(guān)鍵字,并獲取由UDDI服務(wù)注冊(cè)中心根據(jù)查找關(guān)鍵字查找得到的N個(gè)Web服務(wù)及各個(gè) Web服務(wù)分別對(duì)應(yīng)的WSDL文件和對(duì)應(yīng)的tModeKey ; -3、根據(jù)tModeKey的唯一性,將N個(gè)Web服務(wù)中具有相同的tModeKey的S個(gè)Web服 務(wù)中的S-l個(gè)Web服務(wù)刪除,得到去冗余處理后的M個(gè)互不相同的Web服務(wù),由M個(gè)互不相 同的Web服務(wù)構(gòu)成Web服務(wù)序列。
7. 根據(jù)權(quán)利要求6所述的一種Web服務(wù)動(dòng)態(tài)調(diào)用方法,其特征在于所述的步驟⑥包括 以下具體步驟⑥-l、將查找關(guān)鍵字定義為UDDI服務(wù)注冊(cè)中心根據(jù)該查找關(guān)鍵字查找得到的Web服務(wù) 的原始查詢?cè)~匯,定義查詢?cè)~匯相關(guān)度為原始查詢?cè)~匯與消息解析器解析得到的功能關(guān)鍵 字的語義相近程度,記查詢?cè)~匯相關(guān)度為Is ; -2、 Web服務(wù)序列中各個(gè)Web服務(wù)對(duì)應(yīng)的原始查詢?cè)~匯分別為與功能關(guān)鍵字的語義相近的前N個(gè)詞匯中的一個(gè)或多個(gè),對(duì)于當(dāng)前正在處理的Web服務(wù),定義其為當(dāng)前Web服務(wù),當(dāng)當(dāng)前Web服務(wù)對(duì)應(yīng)一個(gè)原始查詢?cè)~匯時(shí),查詢?cè)~匯相關(guān)度Is的值為原始查詢?cè)~匯與功能關(guān)鍵字的語義相近度;當(dāng)當(dāng)前Web服務(wù)對(duì)應(yīng)多個(gè)原始查詢?cè)~匯時(shí),查詢?cè)~匯相關(guān)度Is的值為各個(gè)原始查詢?cè)~匯與功能關(guān)鍵字的語義相近度中最大的語義相近度; -3、 Web服務(wù)序列中各個(gè)Web服務(wù)的輸入?yún)?shù)與消息解析器解析得到的輸入?yún)?shù)的格式均為XML格式,逐一計(jì)算各個(gè)Web服務(wù)的所有輸入?yún)?shù)的XML文檔樹與消息解析器解析得到的所有輸入?yún)?shù)的XML文檔樹的語義匹配度,對(duì)于當(dāng)前正在處理的Web服務(wù),定義其為當(dāng)前Web服務(wù),將當(dāng)前Web服務(wù)的所有輸入?yún)?shù)的XML文檔樹記為dl,將消息解析器解析得到的所有輸入?yún)?shù)的XML文檔樹記為d2,計(jì)算dl與d2的語義匹配度,記為Sim(dl, d2),< f p 、 S別麟)其中,Ai為dl中的第i個(gè)元素,Bj為d2中的第j個(gè)元素,S(Ai, Bj)為Ai與Bj之間的語義相近度,其值從語義本體庫中查找,p為dl包含的元素個(gè) 數(shù),q為d2包含的元素個(gè)數(shù),S^為dl中的各個(gè)元素與d2中的各個(gè)元素的語義相近度中的 最大的語義相近度; -4、逐一計(jì)算各個(gè)Web服務(wù)與服務(wù)請(qǐng)求者發(fā)送的服務(wù)請(qǐng)求消息的語義匹配度,對(duì)于 當(dāng)前正在處理的Web服務(wù),定義其為當(dāng)前Web服務(wù),計(jì)算當(dāng)前Web服務(wù)與服務(wù)請(qǐng)求者發(fā)送的 服務(wù)請(qǐng)求消息的語義匹配度,記為P,P = a XIs+P XSim(dl,d2),其中,a禾P |3為權(quán)值, 滿足條件a+P = 1 ; -5、從Web服務(wù)序列中選出語義匹配度最優(yōu)的Web服務(wù),并將語義匹配度最優(yōu)的Web 服務(wù)對(duì)應(yīng)的WSDL文件傳遞給調(diào)用代理中的服務(wù)調(diào)用器。
8. 根據(jù)權(quán)利要求7所述的一種Web服務(wù)動(dòng)態(tài)調(diào)用方法,其特征在于所述的步驟⑧包括 以下具體步驟⑧-1 、在結(jié)果處理器中,將服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的XML文檔樹記為dl',將dl' 包含的元素個(gè)數(shù)記為P',將服務(wù)提供者返回的服務(wù)響應(yīng)消息中的所有參數(shù)的XML文檔樹 記為d2',將d2'包含的元素個(gè)數(shù)記為q',計(jì)算dl'與d2'的語義匹配度,記為P', 尸'=占善 ,,其中,Ai'為dl'中的第i'個(gè)元素,Bj'為d2'中的第乂=1 /=ij'個(gè)元素,S(Ai' ,Bj')為Ai'與Bj'之間的語義相近度,其值從語義本體庫中查找; ⑧-2、當(dāng)P' =0時(shí),表明服務(wù)提供者返回的服務(wù)響應(yīng)消息與服務(wù)請(qǐng)求者需要的響應(yīng)參 數(shù)不匹配,服務(wù)匹配器從Web服務(wù)序列中選出語義匹配度次優(yōu)的Web服務(wù)作為語義匹配度 最優(yōu)的Web服務(wù),再向服務(wù)調(diào)用器傳遞語義匹配度最優(yōu)的Web服務(wù)對(duì)應(yīng)的WSDL文件,并返 回執(zhí)行步驟⑦;當(dāng)P' > 0時(shí),表明服務(wù)提供者返回的服務(wù)響應(yīng)消息與服務(wù)請(qǐng)求者需要的響 應(yīng)參數(shù)匹配,并繼續(xù)執(zhí)行;⑧-3、結(jié)果處理器將服務(wù)響應(yīng)消息的格式轉(zhuǎn)化為服務(wù)請(qǐng)求者需要的響應(yīng)參數(shù)的格式, 并將格式轉(zhuǎn)化后的服務(wù)響應(yīng)消息發(fā)送給服務(wù)請(qǐng)求者。
9. 根據(jù)權(quán)利要求4至8中任一項(xiàng)所述的一種Web服務(wù)動(dòng)態(tài)調(diào)用方法,其特征在于所述 的調(diào)用代理以SOAP和REST兩種方式發(fā)布于Internet中,所述的服務(wù)請(qǐng)求者通過SOAP或者REST方式向所述的調(diào)用代理發(fā)送服務(wù)請(qǐng)求消息,所述的調(diào)用代理獲取語義匹配度最優(yōu) 的Web服務(wù),并根據(jù)該Web服務(wù)的類型,以SOAP或者REST方式異步地向所述的服務(wù)提供者 發(fā)送相應(yīng)的服務(wù)請(qǐng)求消息。
全文摘要
本發(fā)明公開了一種Web服務(wù)動(dòng)態(tài)調(diào)用系統(tǒng)及方法,包括服務(wù)請(qǐng)求者、UDDI服務(wù)注冊(cè)中心、服務(wù)提供者及調(diào)用代理,調(diào)用代理分別與服務(wù)請(qǐng)求者、UDDI服務(wù)注冊(cè)中心及服務(wù)提供者進(jìn)行消息通信,調(diào)用代理中設(shè)置有消息解析器、服務(wù)匹配器、服務(wù)調(diào)用器及結(jié)果處理器,調(diào)用代理中建立有語義本體庫,語義本體庫分別為服務(wù)匹配器和結(jié)果處理器提供語義匹配,優(yōu)點(diǎn)在于通過調(diào)用代理的引入,完全解除了服務(wù)請(qǐng)求者與服務(wù)提供者之間的緊耦合關(guān)系,為Web服務(wù)的更改和升級(jí)提供了良好的保障;由于調(diào)用代理是一個(gè)獨(dú)立運(yùn)行時(shí)的服務(wù),不需要依賴任何靜態(tài)組件而存在,真正實(shí)現(xiàn)了動(dòng)態(tài)調(diào)用;本發(fā)明通過引入調(diào)用代理進(jìn)行語義匹配,較好地平衡了服務(wù)請(qǐng)求者的負(fù)載。
文檔編號(hào)H04L29/08GK101764837SQ20091015573
公開日2010年6月30日 申請(qǐng)日期2009年12月23日 優(yōu)先權(quán)日2009年12月23日
發(fā)明者俞弘, 姜建生, 干紅華, 廖蘭新, 趙晨 申請(qǐng)人:寧波東海藍(lán)帆科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1