專利名稱:一種基于聚焦搜索的wsdl搜集方法
技術領域:
本發明屬于計算機和網絡應用領域,具體涉及一種基于聚焦搜索的WSDL搜集方法。
背景技術:
Internet為商業服務提供了開放、通用、標準的信息基礎設施,并由此形成了新的商業模式(E-services, E-commerce, B2B, B2C, C2C, Virtual Organizations等)。有效發
現和整合已有的商業服務并形成新的增值服務是這些新的商務模式得以實施的核心,面向
服務體系結構(SOA)是這一模式的有力支撐,Web服務是面向服務體系結構(SOA)的具體實現。Web服務是基于開放的Internet環境下的一種新型Web應用程序,是面向服務體系結構(SOA)背后的關鍵性支持技術之一。因此,如何從互聯網上搜集出大量的Web服務來支撐這些新的商務模式并形成新的增值服務具有十分重要的意義(例如,某客戶要去旅游,他可能要在網上預訂酒店、網上訂票、電子簽證、網上銀行、網上購物等,如果把這些有關聯的服務有效的整合并封裝在一起,就可以在網上發布一個內容更全面的旅游服務,給客戶帶來方便,降低用戶旅游成本,形成新的增值業務)。
發明內容
本發明所要解決的技術問題是提供一種基于聚焦搜索的WSDL搜集方法。
為實現上述目的,本發明的技術方案為 —種基于聚焦搜索的WSDL搜集方法,其特征在于,包括以下步驟 1)定義要搜集的WSDL主題模型的形式化描述和搜索關鍵詞; 2)提交該搜索關鍵詞給通用搜索引擎進行搜索,從搜索到的結果中獲得與WSDL
主題模型的形式化描述相關的URL鏈接;得到所有相關URL鏈接的集合Q ; 3)在集合Q內啟動新聚焦搜索爬蟲線程對于所有相關URL鏈接的集合Q第j個
URL, j為集合Q中的URL的序號,啟動新聚焦搜索爬蟲線程,該新聚焦搜索爬蟲線程步驟為
新聚焦搜索爬蟲在鄰域U(aj, o ) (aj G Q)內結合WSDL主題模型的形式化描述進行搜索,當
在鄰域U(aj, o)內搜索完成后該線程退出;然后進行下一個新聚焦搜索爬蟲線程;aj為第
j個URL,即Web圖中的起始節點的URL ; o為半經,即Web圖中最遠的目標節點到起始節點
的路徑長度;搜索過程中采用模式匹配KMP算法; 4) j從1開始,直到集合Q中所有的URL元素遍歷完,則結束,返回搜索結果。
所述的通用搜索引擎包括百度、谷歌和雅虎搜索的引擎;所述的o的取值為5 200。 所述的WSDL主題模型的形式化描述為本領域的公知且常用的技術,定義如下
TWSDL(def( 't, i,m,p,o,b, s, ), 'xml, , VN) , def為WSDL文檔的根元素,'xml,是WSDL的文檔類型,VN是WSDL的版本號,根元素def下包含7個元素t、 i、 m、 p、 o、 b和s ;
t :定義Web服務使用的所有數據類型集合,可被元素的各消息部件所引用;
i :引用文件外定義的t和m; m :通信消息數據結構的抽象類型化定義,如果把操作看作函數,m中定義的就是
該函數的參數,使用t所定義的類型來定義整個參數的數據結構;
o :單個O描述一個訪問入口的請求/響應消息對; p:對于某個訪問入口點類型所支持操作的抽象集合,即可以有零個、單個或多個P元素, 一個P元素可在o元素中定義一個或多個操作。
b :包含將p中的元素轉變為具體表示的細節; S :協議/數據格式綁定與具體Web訪問地址組合的單個服務訪問點的集合。
本發明具有的有益效果是 1.通用搜索引擎覆蓋資源豐富,內容廣泛,可以保證較高的查全率; 2.由于充分利用了通用搜索引擎資源,開發的成本低,不僅對專業的用戶適用,也
對中小型的普通用戶同樣適用; 3.該方法能夠為相關學科研究和實驗提供豐富的真實有效的Web服務數據支持,具有較高的科研價值和實用價值。
圖1為本發明一種基于聚焦搜索的WSDL搜集方法的系統架構 圖2為本發明聚焦搜索爬蟲的系統結構圖; 圖3為本發明基于通用搜索引擎的最佳優先搜索WSDL方法的流程圖。
圖4為本發明互聯網上的鄰域U(a, o)示意圖。
具體實施例方式
本發明基于聚焦搜索的WSDL搜集方法是新的商業模式實施的重要一部分。通過該方法收集Internet環境下大量分散的Web服務描述語言(WSDL :Web ServicesDescriptionLanguage),獲取有效的Web服務,為有效發現和整合已有的商業服務并形成新的增值服務提供豐富的數據支撐,實現商業模式的應用價植。 本發明基于聚焦搜索的WSDL搜集方法主要包括集成通用搜索引擎接口 、WSDL主題模型和聚焦搜索爬蟲。其中,集成通用搜索引擎環境主是要集成通用搜索引擎接口 (主要包括Google搜索引擎、百度搜索引擎和雅虎搜索引擎),WSDL主題模型是對互聯網上發布的WSDL文檔的結構進行形式化主題描述,聚焦搜索爬蟲是該方法的主要部分,主要是搜取互聯網上符合主題模型描述的WSDL文檔。聚焦搜索爬蟲是一種特殊的網絡爬蟲,其工作流程較為復雜,需要根據一定的網頁分析算法過濾與主題無關的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,并重復上述過程,直到達到系統的某一條件時停止。 本發明基于聚焦搜索的WSDL搜集方法工作過程是首先定義要搜集的Web服務主題描述和搜索關鍵詞,提交該搜索關鍵詞給通用搜索引擎進行搜索,并對返回的頁面內容利用現有的模式匹配KMP算法進行分析,如果返回內容符合Web服務的主題描述(即為Web服務),則保存該Web服務,如果不是Web服務,但對給定的關鍵詞出現頻率達到K(K值默認為IO,也可用戶指定)次以上,則提取該頁面中包含的超級鏈接(URL :Uniform Resource
4Locator),然后將網頁地址作為聚焦爬蟲的URL種子,并在每個URL種子中心所對應的鄰域內結合該主題描述集中進行二次最佳優先搜索。 其中,通用搜索引擎接口集成主要是將通用搜索引擎(如Google, baidu, Yahoo等)接口集成在一起。對用戶給定的搜索主題關鍵詞,通用搜索引擎進行查詢,對查詢結果進行分析并提取頁面信息和頁面包含的URL,此處提取出的URL作為下面聚焦搜索爬蟲搜索的初始種子。 其中,WSDL主題模型是根據WSDL文檔的結構給出聚焦主題描述,WSDL文檔是規范通用的Web服務的描述文檔,其文檔結構是統一固定的,在本發明中對WSDL主題模型的形式化描述為TWSDL(def( 't, i,m,p,o,b, s' ), 'xml' , VN) , def為WSDL文檔的根元素,'xml'是WSDL的文檔類型,VN是WSDL的版本號,根元素def下通常包含7個重要的元素(t :types, i :import, m :message, p :portType, o -operation, b :binding, s -service)。Types,定義了 Web服務使用的所有數據類型集合,可被元素的各消息部件所引用。它使用某種類型系統( 一般地使用XMLSchema中的類型系統)。Import :引用文件外定義的Types和Message。 Message,通信消息數據結構的抽象類型化定義。使用Types所定義的類型來定義整個消息的數據結構。Operation,對服務中所支持操作的抽象描述。一般單個Operation描述了 一個訪問入口的請求/響應消息對。PortType,對于某個訪問入口點類型所支持操作的抽象集合。這些操作可以由一個或多個服務訪問點來支持。Binding,包含了如何將抽象接口的元素(PortType)轉變為具體表示的細節,具體表示也就是指特定的數據格式和協議的結合;特定端口類型的具體協議和數據格式規范的綁定。Port,定義為協議/數據格式綁定與具體Web訪問地址組合的單個服務訪問點。Service,這是一個粗糙命名的元素,代表端口的集合;相關服務訪問點的集合。 其中,聚焦搜索爬蟲根據既定的抓取目標WSDL主題模型,根據URL中的域名,是否出現過Web服務和設定的關鍵字,采用經典的模式匹配KMP算法有選擇地訪問Web網頁及相關鏈接,并根據WSDL文檔結構抓取網頁提供商、最后修改時間等信息,用戶提供的WSDL主題描述用于指定抓取目標(即WSDL文檔),而且為了保證所獲取的頁面與主題相關, 一方面需要根據關鍵詞對頁面進行相關度評價,其中,評價過程是統計包含給定關鍵詞的超級鏈接的節點入度,來確定該頁面的有用價值;另一方面,還要根據主題描述對解析出的超級鏈接對應的頁面進行模式匹配,判斷是否為WSDL文檔,如果是,保存即可,如果不是,則提取出該頁面包含的URL并加入待處理URL隊列。 其中,模式匹配KMP算法是一種改進的字符串匹配算法,由D.E.K皿th與V. R. Pratt和J. H. Morris同時發現,因此人們稱它為克努特——莫里斯——普拉特操作(簡稱KMP算法),基本思想是假設有字符串A和模式串B,其B串長度和A串長度分別為m、n,對模式串B引進next(j)函數,其next(j)函數表示在模式串B中從第1位到第j位之間B的最大子串的長度,在模式匹配的進程中,匹配檢查A串的第i位A[i]和B串的第j位B[j],若A[i] 二B[j],則繼續匹配A[i+l]和B[j+l]是否成功。若A[i]與B[j]不等,則分成兩種情況若j = 1,則模式串右移一位,檢查A[i+l]和B[l]是否匹配;若1 < j < =m,則模式串右移j-next(j)位,檢查A[i]和B[next(j)]是否匹配,重復此過程直到j =m或i = n結束。 本發明基于聚焦搜索的WSDL搜集方法的二次最佳優先搜索策略是在通用搜索引擎的返回結果的基礎上,結合WSDL主題模型的形式化描述,以通用搜索引擎返回的某一URL為中心a,半經為o的去心鄰域U(a, o)內全體URL對WSDL主題進行聚焦搜索。
下面結合附圖和具體實施例對本發明作進一步說明。
實施例1 : 圖1是本發明一種基于聚焦搜索的WSDL搜集方法的系統架構圖。如圖l所示,該方法的系統架構圖主要包括集成通用搜索引擎接口、 WSDL主題模型和聚焦搜索爬蟲。其中,集成通用搜索引擎接口主是要對Google搜索引擎、百度搜索引擎和雅虎搜索引擎進行集成,WSDL主題模型是對互聯網上發布的WSDL文檔的結構進行形式化主題描述,聚焦搜索爬蟲是該方法的主要部分,主要是搜取WWW互聯網上符合主題模型描述的WSDL文檔。
通用搜索引擎接口集成主要是將通用搜索引擎(如Google, Baidu, Yahoo等)接口集成在一起。對用戶給定的搜索主題關鍵詞,通用搜索引擎進行查詢,對查詢結果進行分析并提取頁面信息和頁面包含的URL,此處提取出的URL作為下面聚焦搜索爬蟲搜索的初始種子。 本發明WSDL主題模型的形式化描述的示例如下〈? xml version =〃 1.0〃 encoding = 〃 utf_8〃 ? > ------xml為文檔類型,Version------版
本號VN 〈wsdl:definitions〉 〈wsdl: types>------1元素 〈s:element name =〃 getStocklnfo〃 > ...... 〈/wsdl:types> 〈wsdl :message name = 〃 getStocklnfoSo即In〉------m兀素 ...... 〈/wsdl :message〉 〈wsdl :portType name = 〃 Stocklnfo WSSo即">------P兀素 ...... 〈/wsdl:portType> 〈wsdl:binding name =〃 Stocklnfo WSSoap" type =〃 tns:Stocklnfo
WSSo即〃 >------b元素 ...... 〈/wsdl:binding> 〈wsdl: service name = 〃 Stocklnfo WS〃 >------s兀素 ...... 〈/wsdl:service> 〈/wsdl:definitions> WSDL主題模型是根據WSDL文檔的結構給出聚焦主題描述,WSDL文檔是規范通用的Web服務的描述文檔,其文檔結構是統一固定的,在本發明中對WSDL主題模型的形式化描述為TWSDL(def( 't, i,m,p,o,b,s' ), 'xml' , VN),與WSDL文檔中元素結點對應關系如上述實例所示。def為WSDL文檔的根元素,'xml'是WSDL的文檔類型,VN是WSDL的版本 號,根元素def下通常包含7個重要的元素(t:types,i :import,m :message,p :portType, o -operation, b -binding's :service,其中i元素可以不出現)。因此,WSDL主題模型的描 述是通用的且不能隨意改變的,只有WSDL文檔的結構變化時,才會有變化。
聚焦搜索爬蟲根據既定的抓取目標WSDL主題模型,有選擇地訪問Web網頁及相關 鏈接,根據指定的規則抓取所需信息,用戶提供的WSDL主題描述用于指定抓取目標,而且 為了保證所獲取的頁面與主題相關,一方面需要根據主題描述對頁面進行相關度評價并過 濾掉無關頁面;另一方面,還要根據主題描述對解析出的鏈接進行過濾,只有那些被評價為 有用的鏈接才會被加入待處理URL隊列。 圖2是本發明聚焦搜索爬蟲的系統結構圖。如圖2所示,聚焦搜索爬蟲的系統結構 主要是在通用爬蟲結構的基礎上新增加一個WSDL主題模型,由網頁爬取器、網頁分析器、 URL存儲隊列、URL過濾和文檔過濾等組成。其中,在聚焦搜索爬蟲運行前還需要初始化該 爬蟲要在WWW互聯網爬取的去心鄰域U(a, o) (a為初始URL,由通用搜索引擎提供,o為 搜索半徑),網頁爬取器抓取指定URLi的頁面,網頁分析器是提取網頁內容和包含的URL, URL過濾和文檔過濾主要是結合WSDL的主題描述對文檔的內容和提取的URL進行過濾,其 過濾方法采用當前通用的算法。 圖3為本發明基于通用搜索引擎的最佳優先搜索WSDL方法的流程圖。圖3中的 符號說明 T :Web服務主題描述; Q。 URL隊列; o :搜索半徑; s :爬蟲初始URL種子(Seed); N :當前運行的線程數(剛開始為0); MTs :最大線程數(默認20)。 如圖3所示,在給定的Web服務主題描述的基礎上,首先用通用搜索引擎搜索與主 題相關的URL鏈接,得到所有相關URL鏈接的集合Q。,然后在鄰域U(ai, o ) (&i G Q)內啟 動新聚焦搜索爬蟲線程,新聚焦搜索爬蟲在鄰域U(ai, o ) (ai G Q)內結合WSDL主題模型的 形式化描述,進行集中搜索,當在該鄰域內搜索完成后該線程自動退出并進行下一個鄰域 U(aj, o) (aj G Q)又開啟新的聚焦搜索爬蟲線程循環,直到Q中所有的URL元素遍歷完,其 具體的執行步驟如下 ①.執行判斷條件集合Q。不為空,若成立則執行第②步,否則執行第⑦步;
②.獲取當前正運行的爬蟲線程數N ; ③.執行判斷條件集合Q。不為空并且N小于最大線程數MTs,若條件成立則執行 第④步,否則執行第①步; .從Q。中取URL鏈接s ,從集合Q。中刪除s元素,更新集合Q。;
⑤.確定以s為中心,o為半徑的的搜索領域U(s, o); .在領域U(s, o)內啟動新的聚焦爬蟲線程,s為新爬蟲的初始搜索種子,且爬
蟲計數器加1,然后轉執行第③步; ⑦.等待所有線程結束,最后退出程序。
7
其中,聚焦搜索爬蟲線程在分配的鄰域里會自動完成搜索并且在每個線程退出 時線程計數器會自動減1 ;同時,可以有多個聚焦搜索爬蟲線程同時運用,其最大線程數 (MTs)的具體數目可由用戶指定,默認為20。 其中,二次最佳優先搜索策略是指根據互聯網上Web服務部署相對集中的特點, 第一次用通用搜索引擎進查詢,再在通用搜索引擎的返回結果的基礎上,在鄰域U(a, o) 內對給定的主題進行第二次聚焦搜索的方法。 圖4為本發明互聯網上的鄰域U(a, o)示意圖。鄰域U(a, o)是建立在Web圖的 理論基礎上的,a為Web圖中的某節點(表示某Web站點的URL),半經o為Web圖中的節 點b到節點a的路徑長度。鄰域U(a, o )表示以a中心,所有到節點a的路徑長度小于o 的集合,圖4所示為在反映互聯網的Web圖上的中心為Lenovo. com,半徑o為2的鄰域 U(Lenovo. com,2)的示意圖。
在實施例中,給定關鍵詞股票(Stock) , WSDL主題描述 本發明的實施例中至少包含WSDL主題模型的形式化描述TWSDL(def( 't,i,m,p, o, b, s')、至少一類通用搜索引擎(也可多類通用搜索引擎同時使用)和至少一個聚焦搜 索爬蟲。在實施例中,通用搜索選用百度通用搜索引擎(Baidu),用戶輸入關鍵詞="股票 (stock)",鄰域U半徑的初始值o 二100,最大線程數MTs二20。首先,調用百度通用搜索 引擎對關鍵詞"股票(stock)"進行搜索,利用KMP算法對搜索到的網頁內容和從網頁內容 中抽取出來的URLs對關鍵詞查找分析,得到URL鏈接集合Q。然后,分別以集合Q中的每 一個URL為中心,100為半徑,在對應的去心鄰域U (URL, 100)中進行二次聚焦搜索,保存收 集到的WSDL文檔。在本實施例中,URL :"http:〃www. webxml. com. cn/"是通過百度搜索后 保存到URL鏈接集合Q中的一個元素。在啟動的聚焦搜索爬蟲線程中,必存在一個聚焦搜 索爬蟲在去心鄰域U("http:〃www. webxml. com. cn/", 100)進行二次聚焦搜索。聚焦搜索 爬蟲在去心令卩域U( "http://www. webxml. com. cn/", 100)內以"http://www. webxml. com. cn/"為初始種子聚焦搜索完成整個鄰域內的所有Web節點,并保存搜索到的Web服務。在 本實施例中的去心鄰域U("http:〃www. webxml. com. cn/", 100)內收集到的Web服務約有 120多個,部分Web服務的URL鏈接如下 http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx wsdl
http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx disco
http://webservice. webxml. com. cn/WebServices/StocklnfoWS. asmx
http://trac.assembla.com/ecobrico—CPE/browser/EcoBrico/resources/ EcoBricoService. wsdl http://fisheye. globus, org/changelog/sos—r印o/crux/tr皿k/cxf-adapter/ stock.wsdl http://www. gnu_darwin.org/www001/ports_l.5a_CURRENT/www/wsdlpull/ work/wsdlpull_l. 15/test/wsdl/StockQuotes. wsdl http://www. ibm. com/developerworks/webservices/library/ws_wsdl3/SQS. wsdl http ://f i sheye5. cenqua. com/browse/open_esb/ri_components/ sequencing—engine/d印loyments/wsd1/stock, wsdl
http://svn. apache.org/repos/asf/webservices/wsif/trunk/Java/test/ faults/Stockquote. wsdl http: //media, pragprog. com/titles/fr_eir/code/dist_app/soap/sd_stock. wsdl http://ww2. wso2. org/ saminda/axisl/samples/stock/GetQuote. wsdl。
本實施例不用于限制本發明,凡在本發明的原則和精神之內,所做的任何修改、等 同替換、改進等,均應包含在本發明的權利要求范圍之內。
權利要求
一種基于聚焦搜索的WSDL搜集方法,其特征在于,包括以下步驟1)定義要搜集的WSDL主題模型的形式化描述和搜索關鍵詞;2)提交該搜索關鍵詞給通用搜索引擎進行搜索,從搜索到的結果中獲得與WSDL主題模型的形式化描述相關的URL鏈接;得到所有相關的URL鏈接的集合Q;3)在集合Q內啟動新聚焦搜索爬蟲線程對于所有相關URL鏈接的集合Q第j個URL,j為集合Q中的URL的序號,啟動新聚焦搜索爬蟲線程,該新聚焦搜索爬蟲線程的步驟為新聚焦搜索爬蟲在鄰域U(aj,σ)(aj∈Q)內結合WSDL主題模型的形式化描述進行搜索,當在鄰域U(aj,σ)內搜索完成后該線程退出;然后進行下一個新聚焦搜索爬蟲線程;aj為第j個URL,即Web圖中的起始節點的URL;σ為半經,即Web圖中的最遠的目標節點到起始節點的路徑長度;搜索過程中采用模式匹配KMP算法;4)j從1開始,直到集合Q中所有的URL元素遍歷完,則結束,返回搜索結果。
2. 根據權利要求l所述的基于聚焦搜索的WSDL搜集方法,其特征在于,所述的通用搜 索引擎包括百度、谷歌和雅虎搜索的引擎;所述的o的取值為5 200。
全文摘要
本發明公開了一種基于聚焦搜索的WSDL搜集方法,其特征在于,包括以下步驟1)定義要搜集的WSDL主題模型的形式化描述和搜索關鍵詞;2)提交該搜索關鍵詞給通用搜索引擎進行搜索,從搜索到的結果中獲得與WSDL主題模型的形式化描述相關的URL鏈接;得到所有相關URL鏈接的集合Q;3)在所有相關URL鏈接的集合Q內啟動新聚焦搜索爬蟲線程;4)執行搜索直到集合Q中所有的URL元素遍歷完,則結束,返回搜索結果。本發明基于通用搜索引擎進行搜索,可以保證較高的查全率;開發的成本低,該方法能夠為相關學科研究和實驗提供豐富的真實有效的Web服務數據支持,具有較高的科研價值和實用價值。
文檔編號G06F17/30GK101727485SQ20091022717
公開日2010年6月9日 申請日期2009年12月10日 優先權日2009年12月10日
發明者劉建勛, 李蘇, 覃事剛, 賀財平, 陳平 申請人:湖南科技大學