專利名稱:一種服務發(fā)現(xiàn)和組合裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種服務部署裝置,特別是關(guān)于一種服務發(fā)現(xiàn)和組合裝置。
背景技術(shù):
目前無論是在企業(yè)內(nèi)部還是外部都有越來越多的服務被部署,在開發(fā)基于面 向服務架構(gòu)的系統(tǒng)時可以充分利用這些服務。如何管理這些服務,包括服務注冊、 服務發(fā)布、服務組合等成為一個難點問題。UDDI (Universal Description, Discovery and Integration,統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議)以及IBM公司的WSRR (WebSphere Service Registry and R印ository,網(wǎng)絡中間j牛服務注冊和存儲庫) 是實現(xiàn)服務庫的兩個備選方案。
UDDI規(guī)范定義了一個注冊服務用于Web服務及其他電子和非電子服務的注 冊。UDDI注冊服務本身也是一個Web服務,可以管理服務提供者、服務消費者、 服務元數(shù)據(jù)等信息;服務提供者可以用UDDI來發(fā)布他們的服務;服務消費者可以 用UDDI來發(fā)現(xiàn)所需要的服務并獲取使用服務所需要的元數(shù)據(jù)。盡管最新的3. 0版 本支持S0A,但UDDI存在著搜索準確性低的問題,而且缺少對其它形式的服務組 件的支持,包括EJB、 COM和Java類等。IBM公司的WSRR是一種支持服務庫的產(chǎn) 品。WSRR是提供了服務消息描述的一個元數(shù)據(jù)庫,支持服務的搜索和管理,可以 在服務庫里面管理服務的元數(shù)據(jù),實現(xiàn)服務注冊、發(fā)布、版本管理、變更管理及 使用監(jiān)視等功能。
服務管理的一個關(guān)鍵問題是如何準確、高效地搜索到一個用戶所需的服務。 UDDI所提供的搜索是基于關(guān)鍵字匹配的,存在語義沖突的問題,不能很好的支持 基于語義的模糊搜索。WSRR支持很多種服務,在服務發(fā)現(xiàn)方面也沒有通過基于語 義的模糊搜索,因此搜索的準確性也有待提高。
發(fā)明內(nèi)容
針對上述問題,本發(fā)明的目的是提供一種用于管理多種類型的服務,可以支 持基于語義化查詢條件的模糊搜索的服務發(fā)現(xiàn)和組合裝置。
為實現(xiàn)上述目的,本發(fā)明采取以下技術(shù)方案 一種服務發(fā)現(xiàn)和組合裝置,其 特征在于它包括客戶端、服務器和數(shù)據(jù)庫,其中所述客戶端包括服務庫管理模 塊訪問接口和語義庫管理模塊訪問接口,所述服務器包括服務庫管理模塊和語義 庫管理模塊;所述數(shù)據(jù)庫包括語義庫、本體庫和服務庫,所述語義庫用于存儲帶有語義信息的服務,所述本體庫對本體概念進行定義和描述,所述服務庫用于存 儲不帶有語義信息的服務;所述服務庫管理模塊包括用戶管理模塊、服務管理模 塊,所述語義庫管理模塊包括服務搜索模塊、本體管理模塊和語義標注模塊;所 述用戶管理模塊對用戶的注冊和登錄進行管理;所述服務管理模塊根據(jù)所述服務 庫管理模塊訪問接口輸入的信息,在所述服務庫中査詢目標服務、注冊服務、對 服務的注冊信息進行修改或刪除;所述服務搜索模塊接受所述語義庫管理模塊訪 問接口輸入的服務査詢條件,通過服務發(fā)現(xiàn)算法向所述客戶端返回滿足所述服務 査詢條件的服務;當所述服務庫中的服務不能滿足所述服務査詢條件時,所述服 務搜索模塊通過服務組合算法結(jié)合所述本體管理模塊中的本體推理功能,對所述 服務庫中的服務進行組合,將服務組合結(jié)果返回所述客戶端;所述本體管理模塊 提取所述語義庫中經(jīng)過語義標注的服務的語義信息,根據(jù)所述査詢條件產(chǎn)生本體 概念供所述服務搜索模塊調(diào)用,并維護與更新所述本體庫中的現(xiàn)有本體;所述語 義標注模塊通過所述本體庫中定義的本體概念,對所述服務庫中的服務進行語義 標注。
所述服務庫管理模塊訪問接口有網(wǎng)頁瀏覽器和網(wǎng)絡服務應用編程接口兩種方 式;所述語義庫管理模塊訪問接口有網(wǎng)頁瀏覽器和可擴展開發(fā)平臺兩種方式。 所述服務庫管理模塊使用關(guān)鍵字匹配的方式在所述服務庫中査詢目標服務。 所述語義庫模塊的服務發(fā)現(xiàn)和組合算法步驟包括1)在所述數(shù)據(jù)庫中構(gòu)建映 射表,所述映射表中的每一條映射對應一個語義服務-本體概念的關(guān)聯(lián)關(guān)系;2) 在所述本體管理模塊中讀取本體中的信息,提供本體査詢支持;3)査詢條件處理, 在所述服務搜索模塊中抽取出所述査詢條件中的關(guān)鍵字、預期輸入和預期輸出信 息;若所述預期輸入和預期輸出均為空,即表示査詢條件不合法,轉(zhuǎn)步驟7);否 則繼續(xù)進入步驟4); 4)迸行服務發(fā)現(xiàn)算法,若所述最終服務列表為空,則說明未 搜索到可用的服務,所述服務發(fā)現(xiàn)算法失敗轉(zhuǎn)步驟7);否則繼續(xù)進行服務組合算 法,進入步驟5); 5)服務組合算法,如果服務組合結(jié)果集為空,說明未找到合理 的服務組合,轉(zhuǎn)步驟7);否則,繼續(xù)對服務組合結(jié)果進行排序;6)組合結(jié)果排序,
按照每個服務組合的最后得分對服務組合的結(jié)果進行排序,將排序結(jié)果返回所述
客戶端進行顯示;7)異常處理,根據(jù)異常的情況,生成對應的失敗信息,并返
回給所述客戶端顯示。
所述步驟4)中所述服務發(fā)現(xiàn)算法的步驟包括i)使用所述查詢條件,在所
述本體庫中查找并返回對應的本體概念,存儲于臨時存儲本體概念的相關(guān)概念列
表中;ii)判斷所述相關(guān)概念列表是否有新增元素,若沒有則服務發(fā)現(xiàn)算法結(jié)束,轉(zhuǎn)入步驟vi);否則繼續(xù)進行步驟iii); iii)使用所述相關(guān)概念列表中新增元素 的統(tǒng)一資源定位符作為鍵值,査找所述映射表,獲得與所述統(tǒng)一資源定位符相關(guān) 的服務編號,存儲于所述相關(guān)服務列表中;iv)判斷所述相關(guān)概念列表中是否有 新增元素,若沒有說明當前已經(jīng)沒有需要搜索的服務,服務發(fā)現(xiàn)算法結(jié)束,轉(zhuǎn)步 驟vi);否則繼續(xù)進行步驟V); V)使用所述相關(guān)概念列表中新增元素的服務編號 作為鍵值,査找所述映射表,獲得與之相關(guān)的本體概念的統(tǒng)一資源定位符,再使 用所述統(tǒng)一資源定位符,在所述本體庫中獲得相應的本體概念信息,生成本體概 念,存儲于所述相關(guān)概念列表中,回到所述步驟ii); vi)服務發(fā)現(xiàn)算法結(jié)束,對
所述相關(guān)概念列表中的每一個元素,根據(jù)所述映射表中對應的服務編號,從所述 語義庫中獲得相應的服務細節(jié)信息,生成服務,存入用于存儲返回結(jié)果的最終服 務列表中。
所述步驟5)中的服務組合算法包括如下步驟a)使用所述步驟4)中得到 的所述最終服務列表構(gòu)造依賴圖,用來生成服務組合;所述依賴圖中包括服務結(jié) 點和數(shù)據(jù)結(jié)點,以及服務結(jié)點和數(shù)據(jù)結(jié)點之間的有向邊;b)清理所述依賴圖中的 無用結(jié)點;c)設置所述預期輸出為數(shù)據(jù)集,用于存放所述服務組合狀態(tài)下需要的 輸入數(shù)據(jù);d)判斷所述依賴圖的可用服務中是否存在一個未使用過的服務集合, 能夠提供所述數(shù)據(jù)集中的所有輸入數(shù)據(jù);若不存在,說明所述服務組合狀態(tài)不合 理,轉(zhuǎn)步驟e);否則繼續(xù)步驟f); e)判斷是否滿足回溯條件,若滿足,則進行 回溯繼續(xù)尋找新的服務組合;否則所述服務組合算法結(jié)束,轉(zhuǎn)到步驟k); f)使用 所述新的服務組合所需的輸入數(shù)據(jù)替換所述數(shù)據(jù)集,并且把所述新的服務組合標 記為己使用;h)判斷所述預期輸入是否包含所述數(shù)據(jù)集中的所有數(shù)據(jù);若是,則 找到一個合理的服務組合繼續(xù)步驟g);否則,轉(zhuǎn)到所述步驟d); g)將新的服務 組合加入服務組合結(jié)果集;轉(zhuǎn)到所述步驟e)。
所述步驟1)中的所述映射表的每條映射包含一個語義服務和一個本體概念; 每條映射僅記錄所述語義庫中語義服務的服務編號、所述本體概念的統(tǒng)一資源定 位符和描述所述語義服務和本體概念相關(guān)度的附加浮點數(shù)值。
所述步驟6)中所述最后得分依據(jù)服務組合包含的服務個數(shù)、每個服務的相關(guān) 度和每個服務的用戶評分計算。
本發(fā)明由于采取以上技術(shù)方案,其具有以下優(yōu)點1、在本發(fā)明的服務發(fā)現(xiàn)和 組合裝置中,提供一種基于語義的服務庫用于管理多種類型的服務,利用本體的 推理能力通過語義化服務,可以支持基于語義的服務搜索和服務組裝,可通過語 義化用戶的査詢條件搜索服務,使得搜索過程不同于以往。2、本系統(tǒng)提供了多種形式的客戶端,以適應于不同的使用環(huán)境。此外,本系統(tǒng)劃分了具有不同功能的 服務庫管理模塊與語義庫管理模塊,兩個模塊之間通過接口來通信,具有松耦合 的特性。本發(fā)明的裝置和算法可廣泛用于某特定領(lǐng)域內(nèi)(比如制造業(yè))的企業(yè)內(nèi)
部或企業(yè)之間,可以幫助企業(yè)管理發(fā)布的服務信息,但是又不同于UDDI方案,本 發(fā)明提供了服務組合的實現(xiàn),使得用戶可以高效地、快速地進行信息系統(tǒng)集成的 開發(fā)工作。
圖1是本發(fā)明的裝置結(jié)構(gòu)示意圖
圖2是本發(fā)明的服務庫模塊結(jié)構(gòu)示意圖
圖3是本發(fā)明的語義庫模塊結(jié)構(gòu)示意圖
圖4是本發(fā)明的本發(fā)明的服務發(fā)現(xiàn)和組合算法流程示意圖
圖5是本發(fā)明的映射表結(jié)構(gòu)示意圖
圖6是本發(fā)明的服務發(fā)現(xiàn)算法流程示意圖
圖7是本發(fā)明的服務組合算法流程示意圖
具體實施例方式
下面結(jié)合附圖和實施例對本發(fā)明進行詳細的描述。
本發(fā)明的服務發(fā)現(xiàn)和組合裝置利用本體所具有的推理能力,結(jié)合具體的服務 發(fā)現(xiàn)與組合算法,從而實現(xiàn)服務發(fā)現(xiàn)與組合的搜索過程。
如圖1所示,本發(fā)明的服務發(fā)現(xiàn)和組合裝置包括客戶端1、服務器2和數(shù)據(jù)庫 3,其中客戶端1包括服務庫管理模塊訪問接口 11和語義庫管理模塊訪問接口 12, 服務器2包括服務庫管理模塊21和語義庫管理模塊22。其中,服務庫管理模塊訪 問接口 11有Web browser (網(wǎng)絡瀏覽器)禾B Web services API (Web services Application Programming Interface, Web服務應用編程接口)兩種方式;語義 庫管理模塊訪問接口 12有Web browser和Eclipse插件兩種方式,Eclipse插件 是一個開放源代碼的基于Java的可擴展開發(fā)平臺。服務庫管理模塊訪問接口 11 與服務庫管理模塊21進行信息交換,Web browser方式是開發(fā)人員用來手動搜尋 服務的窗口;而Web services API方式,對允許開發(fā)人員以編程的方式來訪問服 務庫管理模塊21提供的功能。語義庫管理訪問接口 12與語義庫管理模塊22進行 信息交換,Web browser方式同樣是服務于開發(fā)人員訪問語義庫管理模塊22提供 的功能;而Eclipse插件方式則是另一種形式的功能提供方式,基于Eclipse插 件這個開源的平臺,使本發(fā)明的裝置可擴展性更強。服務器2中的服務庫管理模 塊21是用于對普通服務的管理,即那些不帶有語義信息的服務,服務庫管理模塊21還是利用關(guān)鍵字匹配的方式來進行服務査詢。語義庫管理模塊22,用于對語義 標注的服務進行搜索與組合,基于本體的支持,通過服務發(fā)現(xiàn)算法與組合算法, 從而實現(xiàn)服務的發(fā)現(xiàn)與組合,提高了發(fā)明裝置的査全率、査準率;本發(fā)明的裝置 中,本體是對某一個特定領(lǐng)域的建模,如制造業(yè)領(lǐng)域。
數(shù)據(jù)庫3用于發(fā)布和存儲服務信息以及本體文件,即數(shù)據(jù)庫3包括語義庫31、 本體庫32和服務庫33。其中,語義庫31用于存儲帶有語義信息的服務,存儲介 質(zhì)是數(shù)據(jù)庫軟件;服務庫33用于存儲不帶有語義信息的服務,存儲介質(zhì)也是數(shù)據(jù) 庫軟件;本體庫32是本體文件的集合,如對制造業(yè)領(lǐng)域的本體概念進行定義和描 述,本體庫32存儲在磁盤上。
服務器2包括服務庫管理模塊21和語義庫管理模塊22, 二者相輔相成。服務 庫管理模塊21是服務的一個注冊中心,服務提供者可以把自己的服務描述信息注 冊到服務庫33,服務庫33會對外發(fā)布這些不含語義的服務,同時還支持對服務的 增、刪、改、査等操作。語義庫管理模塊22從服務庫33中獲取服務描述信息, 利用工具Prot6g6 (—種本體編輯器和知識査詢系統(tǒng))對服務信息進行語義標注, 并存儲到語義庫31中。擁有了語義標注后的服務,再結(jié)合本體的推理能力,就可 以為用戶提供功能強大的服務發(fā)現(xiàn)與組合能力。語義庫管理模塊22最核心的功能 就是對外提供服務發(fā)現(xiàn)與組合接口 。
如圖2所示,服務庫管理模塊21包括用戶管理模塊211、服務管理模塊212、 管理員平臺213三個部分。用戶管理模塊211的主要功能包括用戶注冊和用戶登 錄、登出。其中用戶包括服務使用者、服務發(fā)布者和管理員,其中服務使用者可 以通過關(guān)鍵字匹配的方式在服務庫33中査詢目標服務;服務發(fā)布者可以在服務庫 33中注冊新服務、査詢目標服務、對自己發(fā)布的服務進行修改或刪除;管理員負 責對服務庫33進行維護、管理用戶信息和服務信息。
服務管理模塊212的主要功能包括服務注冊功能、服務査詢功能、服務修 改功能和服務刪除功能。其中服務注冊功能的注冊信息包括服務的名稱、版本信 息、描述等服務屬性信息和服務描述文檔;服務注冊功能提供了通過Web browser 和Web services API這兩種訪問方式。服務査詢功能提供了基于關(guān)鍵字匹配的服 務査詢功能,可以查找到服務庫33中相關(guān)服務的物理文檔以及邏輯文檔。服務修 改功能可允許服務發(fā)布者對已保存的注冊信息的更改,以實現(xiàn)注冊信息的準確性 和版本升級。服務刪除功能是對已廢棄的服務的注冊信息予以刪除,以保證服務 信息的可用性與準確性。管理員平臺213的功能主要包括1)服務分類管理, 即可以添加或刪除服務分類目錄的信息。2)用戶信息管理,即對注冊用戶的功能權(quán)限進行管理。
如圖3所示,語義庫管理模塊22主要由服務搜索模塊221、本體管理模塊222 和語義標注模塊223構(gòu)成。語義庫管理模塊22提供對語義化服務的發(fā)現(xiàn)與組合功 能,不同于服務庫管理模塊21的服務發(fā)現(xiàn)功能。服務搜索模塊221用于實現(xiàn)核心 算法,即服務發(fā)現(xiàn)與組合的功能實現(xiàn),它包括服務發(fā)現(xiàn)、服務組合和本體代理三 個部分。服務發(fā)現(xiàn)部分是服務搜索模塊221的第一個步驟,用于接受來自于客戶 端1的服務査詢條件信息。服務査詢條件信息作為輸入?yún)?shù),利用的服務發(fā)現(xiàn)算 法,結(jié)合本體代理部分提供的功能,可以返回滿足用戶需求的服務。服務組合部 分基于服務發(fā)現(xiàn)部分,其需求也來自于客戶端l的服務査詢條件,當服務庫33中 已有的服務不能滿足用戶的需求時,就需要利用服務組合部分對服務庫33中現(xiàn)有 服務進行組合,從而滿足用戶的需求;服務組合部分通過實現(xiàn)服務組合算法,利 用服務搜索模塊221提供的服務搜索結(jié)果,可以把多個服務進行組合,并作為一 個服務組合結(jié)果返回給客戶端1。本體代理部分是服務搜索模塊221的基礎(chǔ)模塊, 調(diào)用本體管理模塊222中的本體推理功能。
語義庫管理模塊22的服務發(fā)現(xiàn)功能不同于服務庫管理模塊21的服務査詢功 能服務査詢功能是基于關(guān)鍵字匹配的,不涉及語義推理功能,而服務發(fā)現(xiàn)功能 屬于本發(fā)明核心算法的一部分,基本用于處理當服務庫管理模塊21無法找到滿足 用戶需求的單一服務,其返回結(jié)果為空或者返回結(jié)果中包含的服務無法直接被用 戶使用,需要通過服務組合部分進行組合后才能作為返回結(jié)果。在查詢的結(jié)果上, 本部分的査詢結(jié)果要更豐富、更精確。
本體管理模塊222用于對本體的管理,包括本體信息提取、本體推理和本體 庫維護三個部分。本體信息提取部分用于提取本體庫32中經(jīng)過語義標注的注冊服 務的語義信息,語義標注是指對服務庫33中的服務進行處理的過程。具體來說, 就是用本體庫32中定義的本體概念來標注服務中的一些信息項。本發(fā)明的實施例 中,利用卡耐基梅隆大學提供的API (Application Programming Interface,應 用程序編程接口)來操作。本體推理部分提供本體推理功能,為服務搜索模塊221 服務,被本體代理部分調(diào)用;本體推理部分的推理結(jié)果是根據(jù)用戶的查詢條件, 利用本體的推理能力,對用戶的輸入信息進行豐富,產(chǎn)生的本體概念。本體庫維 護部分維護與更新本體庫32中的現(xiàn)有本體。語義標注模塊223用于對已有服務進 行語義標注,即通過本體庫32,對服務庫33中的未進行標注的服務進行語義標注。
如圖4所示,本發(fā)明裝置中語義庫模塊22的服務發(fā)現(xiàn)部分中服務發(fā)現(xiàn)算法, 以及服務組合部分中服務組合算法步驟如下1) 在數(shù)據(jù)庫3中構(gòu)建映射表,根據(jù)語義庫31中的經(jīng)過語義標注后的注冊服 務的語義信息,構(gòu)建出語義服務和本體概念之間的映射關(guān)系,存入數(shù)據(jù)庫3中的 映射表。映射表是用于服務發(fā)現(xiàn)算法的一個數(shù)據(jù)結(jié)構(gòu),其中的每一條映射對應一 個語義服務-本體概念的關(guān)聯(lián)關(guān)系,其中的本體概念是從語義服務的語義信息中提 取得到。由于語義信息是使用本體庫32中的本體概念對服務進行語義標注得到的, 因此本體概念也存在于本體庫32內(nèi)。
如圖5所示,本發(fā)明的映射表包括如下特征每條映射包含一個語義服務和
一個本體概念,本體概念出現(xiàn)在注冊服務的語義信息中;每條映射僅記錄語義服
務的唯一標識即服務編號,以及本體概念的唯一標識即本體概念的URL (Uniform Resource Locator,統(tǒng)一資源定位符),以減少存儲空間,其中不包含語義服務和 本體概念的細節(jié)信息;每條映射還包含一個附加浮點數(shù)值,描述該語義服務和本 體概念的相關(guān)度;映射表包括兩個索引, 一個以服務編號為鍵值,另一個以本體 概念的URL為鍵值,在査找服務庫33時可以使用任何一個索引進行査找;構(gòu)建好 的映射表存入數(shù)據(jù)庫3中,映射表是持久化和可重用的,進行新査詢時不需要重 新構(gòu)建,但是會隨著語義庫的更新而更新。
2) 在本體管理模塊222中加載本體庫32,通過后臺常駐程序讀取本體中的信 息,為算法提供本體查詢支持。
3) 査詢條件處理,在服務搜索模塊221中對客戶端1輸入的査詢條件進行處 理,抽取出査詢條件中的關(guān)鍵字、預期輸入和預期輸出信息。關(guān)鍵字是用戶對預 期得到服務的文字性描述,可以為空;預期輸入是用戶能夠提供給預期得到服務 的輸入?yún)?shù),實現(xiàn)服務管理模塊212中的服務注冊功能需要若干輸入?yún)?shù)才能實 現(xiàn),因此不能為空;預期輸出是用戶希望預期得到服務的返回值,因此不能為空。 若預期輸入和預期輸出均為空,即表示査詢條件不合法,轉(zhuǎn)步驟7);否則繼續(xù)進 行服務發(fā)現(xiàn),進入步驟4)。
4) 服務發(fā)現(xiàn),根據(jù)步驟3)抽取的查詢條件,利用數(shù)據(jù)庫3中的映射表從語 義庫31中搜索到與査詢條件相關(guān)的服務。如圖6所示,服務發(fā)現(xiàn)算法包括以下步 驟
i) 使用步驟3)中抽取的査詢條件,通過本體代理在本體庫32中査找并返回 對應本體概念,存儲于臨時存儲本體概念的RTL (Related Terms List,相關(guān)概念 列表)中。
ii) 判斷RTL是否有新增元素,若沒有則說明當前已經(jīng)沒有需要搜索的相關(guān) 本體概念,服務發(fā)現(xiàn)算法結(jié)束,轉(zhuǎn)步驟vi);否則繼續(xù)進行步驟iii)。iii) 使用RTL中新增元素的URL作為鍵值,查找映射表,獲得與該URL相關(guān) 的服務編號,存儲于臨時存儲語義服務的RSL(Related Services List,相關(guān)服務 列表)中。
iv) 判斷RSL中是否有新增元素,若沒有說明當前已經(jīng)沒有需要搜索的相關(guān) 服務,服務發(fā)現(xiàn)算法結(jié)束,轉(zhuǎn)步驟vi);否則繼續(xù)進行步驟v)。
v) 使用RSL中新增元素的服務編號作為鍵值,査找映射表,獲得與之相關(guān)的 本體概念URL,再使用這些URL,在本體庫32中獲得相應的本體概念信息,生成 本體概念,存儲于RTL中,回到步驟ii)。
vi) 服務發(fā)現(xiàn)算法結(jié)束,對RSL中的每一個元素,根據(jù)映射表中對應的服務 編號,從語義庫31中獲得相應的服務細節(jié)信息,生成服務,存入用于存儲返回結(jié) 果的FSL(Final Services List,最終服務列表)中。若FSL為空,說明未搜索到 可用的服務,算法失敗,轉(zhuǎn)步驟7);否則繼續(xù)進行服務組合,進入步驟5)。
5)服務組合,根據(jù)查詢條件中的預期輸入和預期輸出,使用步驟4)中得到 的可用服務進行服務組合,找出合理的組合方案。如圖7所示,服務組合算法包 括如下步驟
a) 使用步驟4)中得到的FSL構(gòu)造依賴圖,用來生成當前服務組合。依賴圖 中包括服務結(jié)點和數(shù)據(jù)結(jié)點,以及服務結(jié)點和數(shù)據(jù)結(jié)點之間的有向邊。 一個服務 結(jié)點連接到一個數(shù)據(jù)結(jié)點表示該服務提供該數(shù)據(jù)作為輸出,同樣, 一個數(shù)據(jù)結(jié)點 連接到一個服務結(jié)點表示該服務需要該數(shù)據(jù)作為輸入。
b) 清理依賴圖中的無用結(jié)點。無用結(jié)點包括不可達結(jié)點和對預期輸出沒有貢 獻的結(jié)點??蛇_(Firable)指某服務所需要的所有輸入數(shù)據(jù)都能由査詢條件中的 預期輸入或其他服務的輸出獲得,該服務可以執(zhí)行;不可達(Unfirable)指某服 務的部分輸入無法獲得,導致服務不可執(zhí)行;對預期輸出沒有貢獻的結(jié)點指不存 在由該服務結(jié)點出發(fā),到達預期輸出的通路,這類結(jié)點不會為產(chǎn)生預期輸出做出 貢獻。以上無用結(jié)點不可能出現(xiàn)在最終的組合結(jié)果中,需要在服務組合前進行清 理以降低開銷。
c) 設置預期輸出為當前數(shù)據(jù)集。當前數(shù)據(jù)集存放當前服務組合狀態(tài)下需要的 輸入數(shù)據(jù)。
d) 判斷可用服務中是否存在一個未使用過的服務集合,能夠提供當前數(shù)據(jù)集 中的所有輸入數(shù)據(jù)。若不存在,說明當前服務組合狀態(tài)不合理,轉(zhuǎn)步驟e);否則 繼續(xù)步驟f)。
e) 判斷是否滿足回溯條件。若滿足,則進行回溯繼續(xù)尋找新的服務組合;否則服務組合算法結(jié)束,轉(zhuǎn)到步驟k)。
f) 使用新的服務組合所需的輸入數(shù)據(jù)替換當前數(shù)據(jù)集,并且把新的服務組合 標記為已使用。
h)判斷預期輸入是否包含當前數(shù)據(jù)集中的所有數(shù)據(jù)。若是,則找到一個合理 的服務組合,繼續(xù)步驟g);否則,轉(zhuǎn)到步驟d)。
g) 將當前的服務組合狀態(tài)加入服務組合結(jié)果集。轉(zhuǎn)步驟e)。
k)服務組合算法結(jié)束。如果服務組合結(jié)果集為空,說明未找到合理的服務組
合方案,轉(zhuǎn)步驟7);否則,繼續(xù)對服務組合結(jié)果進行排序。
6) 服務組合結(jié)果排序,計算出每個服務組合的最后得分,按照最后得分對服 務組合的結(jié)果進行排序,將排序結(jié)果返回給客戶端1進行顯示。最后得分的計算 依據(jù)包括服務組合包含的服務個數(shù)、每個服務的相關(guān)度和每個服務的用戶評分。
7) 異常處理,根據(jù)異常的情況,生成對應的失敗信息,并返回給客戶端l顯示。
現(xiàn)以一個己有的電子商務購物平臺為例,說明本發(fā)明的基于本體的服務發(fā)現(xiàn)
和組合裝置。本實施例中提到的服務是經(jīng)過語義標注后,語義庫31中的服務,因 此其輸入輸出為本體庫32中的本體概念。上述電子商務購物平臺中,包括有銷售 部門服務器B1,其包括服務選購商品服務、生成訂單服務和審核訂單服務;庫 存管理部門服務器B2,其包括服務生成出庫單服務。
選購商品服務需要提供商品編號、選購數(shù)量作為輸入、輸出所選商品信息, 商品信息包括編號,庫存量,選購數(shù)量等。生成訂單服務需要所選商品信息以及 顧客信息作為輸入,輸出所選商品的一個訂單,顧客信息包括編號,姓名,地址 等。審核訂單服務需要所選商品的一個訂單作為輸入,輸出審核完成的訂單。生 成出庫單服務需要審核完成的訂單作為輸入,輸出商品的出庫單。
現(xiàn)某客戶需要該電子商務購物平臺提供采購相關(guān)的業(yè)務,客戶希望提供商品 編號,選購數(shù)量,顧客信息作為輸入,最后得到商品的出庫單這個輸出。但是, 在銷售部門服務器Bl和庫存管理部門服務器B2上存在的服務都無法單獨滿足客 戶要求的業(yè)務??蛻魬斣阡N售部門服務器B1上選擇選購商品服務、生成訂單服 務、審核訂單服務這三個服務后,再在庫存管理部門服務器B2上選擇生成出庫單 服務,加以組合以生成自己所需要的業(yè)務。
使用本發(fā)明的服務發(fā)現(xiàn)和組合裝置,客戶不必知道各個服務器上存在的服務 具體信息,只需要提供所需業(yè)務的輸入和輸出條件,通過本發(fā)明的裝置在服務器 上進行服務的發(fā)現(xiàn)和組合工作,最終就可以得到需要的服務組合??蛻粼诳蛻舳薼輸入査詢條件
Query= {Inputs:商品編號,選購數(shù)量,顧客信息;Outputs:商品的出庫單} 經(jīng)過本發(fā)明的服務發(fā)現(xiàn)算法,依次從銷售部門服務器B1上搜索到選購商品服 務、生成訂單服務、審核訂單服務這三個服務,又從庫存管理部門服務器B2上搜 索到生成出庫單服務。之后經(jīng)過本發(fā)明的服務組合算法,得到選購商品服務-〉生 成訂單服務-〉審核訂單服務-〉生成出庫單服務的服務組合,返回給客戶,即可滿
足客戶的需要。
權(quán)利要求
1、一種服務發(fā)現(xiàn)和組合裝置,其特征在于它包括客戶端、服務器和數(shù)據(jù)庫,其中所述客戶端包括服務庫管理模塊訪問接口和語義庫管理模塊訪問接口,所述服務器包括服務庫管理模塊和語義庫管理模塊;所述數(shù)據(jù)庫包括語義庫、本體庫和服務庫,所述語義庫用于存儲帶有語義信息的服務,所述本體庫對本體概念進行定義和描述,所述服務庫用于存儲不帶有語義信息的服務;所述服務庫管理模塊包括用戶管理模塊、服務管理模塊,所述語義庫管理模塊包括服務搜索模塊、本體管理模塊和語義標注模塊;所述用戶管理模塊對用戶的注冊和登錄進行管理;所述服務管理模塊根據(jù)所述服務庫管理模塊訪問接口輸入的信息,在所述服務庫中查詢目標服務、注冊服務、對服務的注冊信息進行修改或刪除;所述服務搜索模塊接受所述語義庫管理模塊訪問接口輸入的服務查詢條件,通過服務發(fā)現(xiàn)算法向所述客戶端返回滿足所述服務查詢條件的服務;當所述服務庫中的服務不能滿足所述服務查詢條件時,所述服務搜索模塊通過服務組合算法結(jié)合所述本體管理模塊中的本體推理功能,對所述服務庫中的服務進行組合,將服務組合結(jié)果返回所述客戶端;所述本體管理模塊提取所述語義庫中經(jīng)過語義標注的服務的語義信息,根據(jù)所述查詢條件產(chǎn)生本體概念供所述服務搜索模塊調(diào)用,并維護與更新所述本體庫中的現(xiàn)有本體;所述語義標注模塊通過所述本體庫中定義的本體概念,對所述服務庫中的服務進行語義標注。
2、 如權(quán)利要求l所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述服務庫 管理模塊訪問接口有網(wǎng)頁瀏覽器和網(wǎng)絡服務應用編程接口兩種方式;所述語義庫 管理模塊訪問接口有網(wǎng)頁瀏覽器和可擴展開發(fā)平臺兩種方式。
3、 如權(quán)利要求1所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述服務庫 管理模塊使用關(guān)鍵字匹配的方式在所述服務庫中査詢目標服務。
4、 如權(quán)利要求1所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述語義庫 模塊的服務發(fā)現(xiàn)和組合算法步驟包括1) 在所述數(shù)據(jù)庫中構(gòu)建映射表,所述映射表中的每一條映射對應一個語義服 務-本體概念的關(guān)聯(lián)關(guān)系;2) 在所述本體管理模塊中讀取本體中的信息,提供本體査詢支持;3) 査詢條件處理,在所述服務搜索模塊中抽取出所述査詢條件中的關(guān)鍵字、 預期輸入和預期輸出信息;若所述預期輸入和預期輸出均為空,即表示査詢條件不合法,轉(zhuǎn)步驟7);否則繼續(xù)進入步驟4);4) 進行服務發(fā)現(xiàn)算法,若所述最終服務列表為空,則說明未搜索到可用的服 務,所述服務發(fā)現(xiàn)算法失敗轉(zhuǎn)步驟7);否則繼續(xù)進行服務組合算法,進入步驟5);5) 服務組合算法,如果服務組合結(jié)果集為空,說明未找到合理的服務組合, 轉(zhuǎn)步驟7);否則,繼續(xù)對服務組合結(jié)果進行排序;6) 組合結(jié)果排序,按照每個服務組合的最后得分對服務組合的結(jié)果進行排序,將排序結(jié)果返回所述客戶端進行顯示;7) 異常處理,根據(jù)異常的情況,生成對應的失敗信息,并返回給所述客戶端顯示。
5、 如權(quán)利要求1或2或3或4所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述步驟4)中所述服務發(fā)現(xiàn)算法的步驟包括i) 使用所述查詢條件,在所述本體庫中查找并返回對應的本體概念,存儲于臨時存儲本體概念的相關(guān)概念列表中;ii) 判斷所述相關(guān)概念列表是否有新增元素,若沒有則服務發(fā)現(xiàn)算法結(jié)束,轉(zhuǎn)入步驟vi);否則繼續(xù)進行步驟iii);iii) 使用所述相關(guān)概念列表中新增元素的統(tǒng)一資源定位符作為鍵值,査找所 述映射表,獲得與所述統(tǒng)一資源定位符相關(guān)的服務編號,存儲于所述相關(guān)服務列表中;iv) 判斷所述相關(guān)概念列表中是否有新增元素,若沒有說明當前已經(jīng)沒有需要搜索的服務,服務發(fā)現(xiàn)算法結(jié)束,轉(zhuǎn)步驟vi);否則繼續(xù)進行步驟v);v) 使用所述相關(guān)概念列表中新增元素的服務編號作為鍵值,查找所述映射表, 獲得與之相關(guān)的本體概念的統(tǒng)一資源定位符,再使用所述統(tǒng)一資源定位符,在所 述本體庫中獲得相應的本體概念信息,生成本體概念,存儲于所述相關(guān)概念列表中,回到所述步驟ii);vi) 服務發(fā)現(xiàn)算法結(jié)束,對所述相關(guān)概念列表中的每一個元素,根據(jù)所述映 射表中對應的服務編號,從所述語義庫中獲得相應的服務細節(jié)信息,生成服務, 存入用于存儲返回結(jié)果的最終服務列表中。
6、 如權(quán)利要求1或2或3或4所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于: 所述步驟5)中的服務組合算法包括如下步驟a)使用所述步驟4)中得到的所述最終服務列表構(gòu)造依賴圖,用來生成服務 組合;所述依賴圖中包括服務結(jié)點和數(shù)據(jù)結(jié)點,以及服務結(jié)點和數(shù)據(jù)結(jié)點之間的 有向邊;b) 清理所述依賴圖中的無用結(jié)點;c) 設置所述預期輸出為數(shù)據(jù)集,用于存放所述服務組合狀態(tài)下需要的輸入數(shù)據(jù);d) 判斷所述依賴圖的可用服務中是否存在一個未使用過的服務集合,能夠提 供所述數(shù)據(jù)集中的所有輸入數(shù)據(jù);若不存在,說明所述服務組合狀態(tài)不合理,轉(zhuǎn) 步驟e);否則繼續(xù)步驟f);e) 判斷是否滿足回溯條件,若滿足,則進行回溯繼續(xù)尋找新的服務組合;否 則所述服務組合算法結(jié)束,轉(zhuǎn)到步驟k);f) 使用所述新的服務組合所需的輸入數(shù)據(jù)替換所述數(shù)據(jù)集,并且把所述新的 服務組合標記為已使用;h)判斷所述預期輸入是否包含所述數(shù)據(jù)集中的所有數(shù)據(jù);若是,則找到一個 合理的服務組合繼續(xù)步驟g);否則,轉(zhuǎn)到所述步驟d);g) 將新的服務組合加入服務組合結(jié)果集;轉(zhuǎn)到所述步驟e)。
7、 如權(quán)利要求5所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述步驟5) 中的服務組合算法包括如下步驟a) 使用所述步驟4)中得到的所述最終服務列表構(gòu)造依賴圖,用來生成服務 組合;所述依賴圖中包括服務結(jié)點和數(shù)據(jù)結(jié)點,以及服務結(jié)點和數(shù)據(jù)結(jié)點之間的 有向邊;b) 清理所述依賴圖中的無用結(jié)點;c) 設置所述預期輸出為數(shù)據(jù)集,用于存放所述服務組合狀態(tài)下需要的輸入數(shù)據(jù);d) 判斷所述依賴圖的可用服務中是否存在一個未使用過的服務集合,能夠提 供所述數(shù)據(jù)集中的所有輸入數(shù)據(jù);若不存在,說明所述服務組合狀態(tài)不合理,轉(zhuǎn) 步驟e);否則繼續(xù)步驟f);e) 判斷是否滿足回溯條件,若滿足,則進行回溯繼續(xù)尋找新的服務組合;否 則所述服務組合算法結(jié)束,轉(zhuǎn)到步驟k);f) 使用所述新的服務組合所需的輸入數(shù)據(jù)替換所述數(shù)據(jù)集,并且把所述新的 服務組合標記為已使用;h) 判斷所述預期輸入是否包含所述數(shù)據(jù)集中的所有數(shù)據(jù);若是,則找到一個 合理的服務組合繼續(xù)步驟g);否則,轉(zhuǎn)到所述步驟d);g) 將新的服務組合加入服務組合結(jié)果集;轉(zhuǎn)到所述步驟e)。
8、 如權(quán)利要求1或2或3或4或7所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述步驟l)中的所述映射表的每條映射包含一個語義服務和一個本體概念;每條映射僅記錄所述語義庫中語義服務的服務編號、所述本體概念的統(tǒng)一資源定 位符和描述所述語義服務和本體概念相關(guān)度的附加浮點數(shù)值。
9、 如權(quán)利要求5所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述步驟l) 中的所述映射表的每條映射包含一個語義服務和一個本體概念;每條映射僅記錄 所述語義庫中語義服務的服務編號、所述本體概念的統(tǒng)一資源定位符和描述所述 語義服務和本體概念相關(guān)度的附加浮點數(shù)值。
10、 如權(quán)利要求6所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述步驟1) 中的所述映射表的每條映射包含一個語義服務和一個本體概念;每條映射僅記錄 所述語義庫中語義服務的服務編號、所述本體概念的統(tǒng)一資源定位符和描述所述 語義服務和本體概念相關(guān)度的附加浮點數(shù)值。
11、 如權(quán)利要求l或2或3或4或7或9或10所述的一種服務發(fā)現(xiàn)和組合裝 置,其特征在于所述步驟6)中所述最后得分依據(jù)服務組合包含的服務個數(shù)、每 個服務的相關(guān)度和每個服務的用戶評分計算。
12、 如權(quán)利要求5所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述步驟6) 中所述最后得分依據(jù)服務組合包含的服務個數(shù)、每個服務的相關(guān)度和每個服務的 用戶評分計算。
13、 如權(quán)利要求6所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述步驟6) 中所述最后得分依據(jù)服務組合包含的服務個數(shù)、每個服務的相關(guān)度和每個服務的 用戶評分計算。
14、 如權(quán)利要求8所述的一種服務發(fā)現(xiàn)和組合裝置,其特征在于所述步驟6) 中所述最后得分依據(jù)服務組合包含的服務個數(shù)、每個服務的相關(guān)度和每個服務的 用戶評分計算。
全文摘要
本發(fā)明涉及一種服務發(fā)現(xiàn)和組合裝置,其特征在于它包括客戶端、服務器和數(shù)據(jù)庫,其中客戶端包括服務庫管理模塊訪問接口和語義庫管理模塊訪問接口,服務器包括服務庫管理模塊和語義庫管理模塊;數(shù)據(jù)庫包括語義庫、本體庫和服務庫,語義庫用于存儲帶有語義信息的服務,本體庫對本體概念進行定義和描述,服務庫用于存儲不帶有語義信息的服務;服務庫管理模塊包括用戶管理模塊、服務管理模塊,語義庫管理模塊包括服務搜索模塊、本體管理模塊和語義標注模塊;本發(fā)明的裝置和算法可廣泛用于某特定領(lǐng)域內(nèi)的企業(yè)內(nèi)部或企業(yè)之間,可以幫助企業(yè)管理發(fā)布的服務信息,但是又不同于UDDI方案,本發(fā)明提供了服務組合的實現(xiàn),使得用戶可以高效地、快速地進行信息系統(tǒng)集成的開發(fā)工作。
文檔編號G06F17/30GK101634994SQ200910091698
公開日2010年1月27日 申請日期2009年8月28日 優(yōu)先權(quán)日2009年8月28日
發(fā)明者李偉平, 褚偉杰 申請人:北京大學