專利名稱:一種基于服務網(wǎng)絡的服務發(fā)現(xiàn)工具的建立方法
技術領域:
本發(fā)明涉及一種基于語義的服務網(wǎng)絡,具體涉及一種基于語義的服務網(wǎng)絡的服務 發(fā)現(xiàn)工具。
背景技術:
Web服務發(fā)現(xiàn)是定位或發(fā)現(xiàn)一個或多個說明特定的Web服務的文檔的過程。服務 發(fā)現(xiàn)工具可以把Web服務提供者提供的許多不同類型和不同形式的Web服務找到,執(zhí)行Web 服務請求。本發(fā)明所述服務發(fā)現(xiàn)工具是在服務網(wǎng)絡的基礎上設計并實現(xiàn)的。現(xiàn)將服務網(wǎng)絡和 現(xiàn)階段國內(nèi)外的服務發(fā)現(xiàn)介紹如下。1、服務網(wǎng)絡服務網(wǎng)絡是由服務和服務之間的關系所組成的網(wǎng)絡。它以服務作為節(jié)點,以服務 之間的關系作為邊。其中,服務可分為抽象服務和具體服務。服務之間關系包括前驅(qū)-后 繼關系、等價關系、相似關系、包含關系、從屬關系、聚類關系等。通過服務網(wǎng)絡,可以更好地 滿足用戶的需求。這是因為(1)服務網(wǎng)絡包含了眾多服務,信息量大。這些服務通過即插即用的方式存儲于服 務網(wǎng)絡之中。(2)通過解析服務網(wǎng)絡的服務,服務動態(tài)地加入服務網(wǎng)絡,以數(shù)據(jù)庫的形式存儲。 這樣更加便于服務的查找和應用。(3)為實現(xiàn)基于服務網(wǎng)絡的服務發(fā)現(xiàn)做了充分準備。本發(fā)明即是針對服務網(wǎng)絡所 設計和實現(xiàn)的服務發(fā)現(xiàn)工具。2、國內(nèi)外服務發(fā)現(xiàn)隨著互聯(lián)網(wǎng)的迅猛發(fā)展,Web服務數(shù)量日益增多,如何從龐大的服務群中發(fā)現(xiàn)所需 的服務,這是現(xiàn)階段國內(nèi)外Web服務發(fā)現(xiàn)的任務。因此服務發(fā)現(xiàn)成為Web服務領域的研究執(zhí)占?,F(xiàn)有的這些服務發(fā)現(xiàn)工具有的基于語法,有的基于語義。基于語法發(fā)現(xiàn)服務的方 法有基于關鍵字、基于框架、演繹檢索等方法,如UDDI是基于框架的方法。基于語義匹配發(fā) 現(xiàn)服務的方法有基于功能語義的服務發(fā)現(xiàn),基于相似度的服務發(fā)現(xiàn),面向特定應用領域的 服務發(fā)現(xiàn)等等。然而,現(xiàn)有的Web服務發(fā)現(xiàn)算法,無論是語法級別的還是語義級別上的,都 不能直接應用在服務網(wǎng)絡的架構(gòu)模型當中,更不用說利用服務網(wǎng)絡內(nèi)部服務關系了 ;并且, 若要按照一股的服務匹配方法來匹配發(fā)現(xiàn)服務,需要掃描整個龐大的服務網(wǎng)絡,效率低下。 因此,這就需要開發(fā)基于服務網(wǎng)絡的高效的服務發(fā)現(xiàn)工具。因此,這些服務發(fā)現(xiàn)工具都有其 各自的應用前景,但并不能應用在我們的服務網(wǎng)絡上。
發(fā)明內(nèi)容
針對上述問題,本發(fā)明提供一種建立基于服務網(wǎng)絡的服務發(fā)現(xiàn)工具的方法,本發(fā)明的目的是在現(xiàn)有的服務網(wǎng)絡的基礎上,充分利用服務網(wǎng)絡的結(jié)構(gòu),進行切實可行的服務 發(fā)現(xiàn),將服務全面、準確、快捷地返回給用戶,滿足用戶需求。技術方案如下一種基于服務網(wǎng)絡的服務發(fā)現(xiàn)工具的建立方法,包括(1)從具體服務中提取服務標簽,去除重復的標簽;(2)對于每個服務標簽,找出包含每個服務標簽的具體服務;(3)建立每個標簽與具體服務之間的對應關系;
(4)建立標簽索引層;(5)定位中心服務;(6)對每個中心服務,建立中心服務和與其相關的服務之間的擴展服務,在擴展服 務列表里,包括中心服務ID、關系類型、與該中心服務相關的服務的服務列表;(7)從服務網(wǎng)絡中提取服務信息,編制基于服務網(wǎng)絡的服務發(fā)現(xiàn)程序;(8)對服務發(fā)現(xiàn)程序進行應用程序接口封裝。本發(fā)明的實質(zhì)性特點是,從需求模型出發(fā),通過提取服務網(wǎng)絡的信息,通過標簽索 引進行匹配,發(fā)現(xiàn)服務的。用戶輸入所需服務的關鍵信息,由此構(gòu)造出需求模型。由需求模 型出發(fā),根據(jù)T(tag)定位到標簽索引層,再通過匹配標簽層定位到具體服務層,進而將滿 足需求的服務信息返回。同時,利用服務網(wǎng)絡之間服務之間的服務關系,向用戶推薦其他相 關服務,從而擴展用戶可用的服務范圍。通過本發(fā)明建立的基于服務網(wǎng)絡的服務發(fā)現(xiàn)工具,具有如下的有益效果1、建立抽象索引層,可以常數(shù)階時間來發(fā)現(xiàn)服務,而無需查找匹配整個服務網(wǎng)絡, 提高了服務發(fā)現(xiàn)的效率。2、禾Ij用服務網(wǎng)絡的服務關系,擴展了返回給用戶的服務范圍,提高了查全率。3、適應服務網(wǎng)絡的模型架構(gòu),實現(xiàn)了基于服務網(wǎng)絡的服務發(fā)現(xiàn)的API,便于服務網(wǎng) 絡其他開發(fā)人員的調(diào)用。
圖1本發(fā)明的基于服務網(wǎng)絡的服務發(fā)現(xiàn)流程圖。圖2標簽層與具體服務的對應關系。圖3標簽索引層的建立過程。圖4利用服務關系擴展服務。圖5數(shù)據(jù)庫模型圖。
具體實施例方式下面對本發(fā)明進行詳細描述,本發(fā)明建立服務發(fā)現(xiàn)工具可分為三個部分(1)建立抽象索引層,通過抽象索引層匹配需求,以常數(shù)階時間來發(fā)現(xiàn)服務,提高 效率。假設對每一個服務請求模型,都需要遍歷整個服務網(wǎng)絡,匹配所有服務,這種方法 無疑搜索空間太大,效率低下。本發(fā)明解決了這個問題,通過建立抽象索引層,對每個服務 請求,實現(xiàn)了時間復雜度由O(n)到0(1)的轉(zhuǎn)變,從而大大提高了服務發(fā)現(xiàn)效率。索引層與具體服務層的對應關系如圖2所示。
標簽索引層的建立過程,參見圖3。首先從具體服務中提取所有服務標簽,去除重 復的標簽。對每個服務標簽,找出包含它的具體服務列表,建立起每個標簽與服務的對應關 系。即建立了標簽索引層。在數(shù)據(jù)庫中建立幾張表,用于存儲標簽索引層的索引關系。并且,隨著日后服務網(wǎng) 絡服務數(shù)量的增加或變動,數(shù)據(jù)庫中表格數(shù)據(jù)可以動態(tài)維護。這樣,標簽索引層已經(jīng)建立起 來。優(yōu)點1、標簽索引層的只需要一次建立。不管查詢服務多少次,標簽索引層均不用重復建立。2、對每一個服務請求,并不需要掃描服務網(wǎng)絡的所有服務,而只需要匹配標簽索 引,根據(jù)標簽索引關系,可以立即查找到具體服務。因而將時間復雜度由0(n)降低到0(1), 提高發(fā)現(xiàn)效率。(2)利用服務網(wǎng)絡的服務關系,擴展返回給用戶的服務范圍本發(fā)明在這一步進行擴展利用服務關系擴展服務的過程參見圖4。中心服務是 指在服務網(wǎng)絡中,通過標簽索引層與需求模型進行匹配后,得到的滿足需求的一些服務。利 用服務網(wǎng)絡服務之間的關系,由中心服務出發(fā),將與其相似、等價的服務以及其前驅(qū)、后繼 服務或具有從屬、包含關系的服務均查找出來,提供給用戶。這里,中心服務是指在服務網(wǎng) 絡中。這樣,本發(fā)明解決了當前大多數(shù)服務發(fā)現(xiàn)工具的一個普遍問題——不能應用服務關 系。這里,數(shù)據(jù)庫有幾張表分別存儲這些關系。如表ServiceRelation各字段分別是 ServicelcURelationTypejidList,分別表示中心服務ID、關系類型、與該中心服務有關系 RelationType的服務列表。優(yōu)點1、充分利用了服務網(wǎng)絡的服務關系;2、擴展了返回給用戶的服務范圍;3、提高了服務發(fā)現(xiàn)的查全率。(3)利用服務網(wǎng)絡的模型架構(gòu),實現(xiàn)基于服務網(wǎng)絡的服務發(fā)現(xiàn)的API。通過向服務網(wǎng)絡中加載服務,解析過的服務加入到服務網(wǎng)絡中,服務的各項信息 被分別存儲于數(shù)據(jù)庫的各張表當中,如serviceinfo、parameterinfo、interfaceinfo,分別 存儲服務信息、參數(shù)信息、接口信息等等。如圖5所示,服務網(wǎng)絡包含內(nèi)容眾多。每個服務信息表中包括服務名稱、命名空 間、對應參數(shù)、對應接口、服務ID等等字段;每個參數(shù)信息中包含參數(shù)名稱、類型、參數(shù)ID、 對應接口 ID等等字段;每個接口信息又包括接口名稱、接口描述、接口 ID、對應服務ID等 等字段。本發(fā)明從服務網(wǎng)絡中提取服務信息,進行基于服務網(wǎng)絡的服務發(fā)現(xiàn),最終將其封 裝成API,供服務網(wǎng)絡其他開發(fā)人員調(diào)用。findServiceByTaglndex包為本發(fā)明的主要實現(xiàn)java包。其中包含了主要的實現(xiàn) 代碼,其他代碼與該工程的其他java包相交叉,在此不再列出。其中, AbsorbTagging. java 顧名思義,實現(xiàn)了將所有Web服務中的標簽一一抽取,由原來的“由服務找標簽”這種關系轉(zhuǎn)化到“由標簽找服務”的關系,因為只有這樣,才能構(gòu)建 出由所有標簽組成的抽象服務層,進而通過“由標簽找服務”的關系,找到每個標簽所對應 的一系列服務,方便我們的查找?!?ConnectToDB 與數(shù)據(jù)庫sn相連接,在sn中構(gòu)建表格Tagservice,該表對每個 標簽進行編號,并列出各個標簽對應的所有服務的標號。請參見圖5。
· TaggingsOfAllServices. Java 定義了新的數(shù)據(jù)結(jié)構(gòu) TagService,與數(shù)據(jù)庫表 標簽-服務映射相照應?!?GetTagService. Java 找到索引層的標簽,實現(xiàn)了由索引層的標簽來得到標簽 與具體服務層的對應關系,接口 getTagservice (String tag),該方法返回TagService類 的對象,即得到了由標簽索引層到具體服務層的映射關系?!?ServiceRequest. Java 此類描述服務需求模型。· FindRelatedServices. java 在數(shù)據(jù)庫中建立表 Servicerelation 來存儲服務 關系,類FindRelatedServices. java實現(xiàn)了由中心服務出發(fā)查找相關服務的接口?!?ForTest. java 對這段代碼及數(shù)據(jù)庫進行測試,通過getService (String str) 方法通過標簽索引層取出相關服務,其中該方法的參數(shù)String str即為圖1中“需求模 型”,即用戶所需服務的關鍵信息。優(yōu)點1、適應服務網(wǎng)絡的模型架構(gòu);2、封裝成一個服務發(fā)現(xiàn)API,可供其他服務網(wǎng)絡開發(fā)人員調(diào)用。下面對通過本發(fā)明建立的服務發(fā)現(xiàn)工具的技術效果進行驗證。從Web服務發(fā)現(xiàn)的查全率和效率兩個方面進行實驗。查全率是指從服務網(wǎng)絡中返 回的滿足用戶請求的服務數(shù)占服務網(wǎng)絡中滿足用戶請求的服務總數(shù)的比例。服務發(fā)現(xiàn)的可 擴展性是指該方法在不同規(guī)模的服務網(wǎng)絡中的可用性,主要是指服務發(fā)現(xiàn)方法的效率。本工具采用JDK1. 6實現(xiàn)基于服務網(wǎng)絡的服務發(fā)現(xiàn)方法,基于eclipse SDK 3. 2工 具開發(fā),運行于Tomcat 6. O服務器上,服務網(wǎng)絡的服務總數(shù)為593個,對于不同的請求數(shù) 量,分別用一股的服務匹配方法和本發(fā)明工具進行服務發(fā)現(xiàn),進行比較。實驗結(jié)果與分析為說明本服務發(fā)現(xiàn)工具具有良好的發(fā)現(xiàn)效率,設計了如表1所示的3個不同規(guī)模 的請求數(shù)量的實驗。服務網(wǎng)絡中服務總量為593。分別用普通服務匹配發(fā)現(xiàn)服務的方法和 本服務發(fā)現(xiàn)工具接受服務請求,進行服務發(fā)現(xiàn),分別得到3種不同請求規(guī)模下的總時間開 銷。表1不同規(guī)模請求數(shù)量的實驗
請求數(shù)量一股方法用時 本發(fā)明用時~ (ms)(ms)
~10026412188
2003Γ722375 表1的結(jié)果表明本工具所花費時間遠遠少于前述一股方法所花費時間。并且,隨 著請求數(shù)量的遞增,這種差異就更為明顯。由此可見,本發(fā)明工具具有較好的發(fā)現(xiàn)效率。為說明本工具具有更好的查全率,設計了如下的實驗,對100組服務請求,將利用 服務關系與不利用服務關系兩種服務發(fā)現(xiàn)的結(jié)果進行比較。事實上,通過服務關系(尤其 是包含、從屬關系)將其他相關服務推薦給用戶,用戶不僅得到不利用服務關系時所得到 的服務,而且獲得了不利用服務關系時所遺漏的可以部分或全部滿足需求的服務。用戶獲 得的服務必然增多。表2給出了不利用服務關系或者利用不同的服務關系最終得到的服務 數(shù)量的結(jié)果。表2是否利用關系所得結(jié)果 表2直觀地體現(xiàn)了是否利用關系所得結(jié)果??梢姵浞掷梅贞P系所得服務數(shù)量 要多于不利用服務關系所得服務。以“weather”為例,若不利用服務關系,返回給用戶的 就是一系列服務,這些服務提供的方法諸如getWeather (Parameter 1,Parameter2),其中 Parameterl為city名,Parameter〗為日期;而如果利用了服務關系,返回給用戶的服務,除 了可以提供上述類型的getWeather之外,還可提供getClimateO等方法來獲得總體氣候 信息,還可提供 getffindScale (Parameter 1, Parameter2) >getRainProbobility (Parameter 1,Parameter2)等等方法,其中Parameterl為city名,Parameter2為日期,來獲取某地某 日的“風力級別” “降水概率”等等具體的天氣信息。
權(quán)利要求
一種基于服務網(wǎng)絡的服務發(fā)現(xiàn)工具的建立方法,包括(1)從具體服務中提取服務標簽,去除重復的標簽;(2)對于每個服務標簽,找出包含每個服務標簽的具體服務;(3)建立每個標簽與具體服務之間的對應關系;(4)建立標簽索引層;(5)定位中心服務;(6)對每個中心服務,建立中心服務和與其相關的服務之間的擴展服務,在擴展服務列表里,包括中心服務ID、關系類型、與該中心服務相關的服務的服務列表;(7)從服務網(wǎng)絡中提取服務信息,編制基于服務網(wǎng)絡的服務發(fā)現(xiàn)程序;(8)對服務發(fā)現(xiàn)程序進行應用程序接口封裝。
全文摘要
本發(fā)明屬于計算機服務網(wǎng)絡技術領域,涉及一種基于服務網(wǎng)絡的服務發(fā)現(xiàn)工具的建立方法,步驟如下從具體服務中提取服務標簽,去除重復的標簽;對于每個服務標簽,找出包含每個服務標簽的具體服務;建立每個標簽與具體服務之間的對應關系;建立標簽索引層;定位中心服務;對每個中心服務,建立中心服務和與其相關的服務之間的擴展服務,在擴展服務列表里,包括中心服務ID、關系類型、與該中心服務相關的服務的服務列表;從服務網(wǎng)絡中提取服務信息,編制基于服務網(wǎng)絡的服務發(fā)現(xiàn)程序;對服務發(fā)現(xiàn)程序進行應用程序接口封裝。通過本發(fā)明建立的服務發(fā)現(xiàn)工具,能夠充分利用服務網(wǎng)絡的結(jié)構(gòu),將服務全面、準確、快捷地返回給用戶,滿足用戶需求。
文檔編號H04L29/06GK101859318SQ20101017433
公開日2010年10月13日 申請日期2010年5月17日 優(yōu)先權(quán)日2010年5月17日
發(fā)明者馮志勇, 劉雅瓊, 徐金娜, 王輝, 陳世展 申請人:天津大學