專利名稱:一種顧及上下文的空間信息服務組合語義匹配方法
技術(shù)領域:
本發(fā)明屬于空間信息服務語義技術(shù)領域,特別是涉及一種新的顧及上下文的空間信息服務組合語義匹配方法。
背景技術(shù):
在全球網(wǎng)絡化、信息數(shù)字化的驅(qū)動下,web服務、語義網(wǎng)等新技術(shù)和應用不斷涌現(xiàn), 海量的空間數(shù)據(jù)、強大的計算資源,以及豐富的空間信息處理功能,正以服務的形式提供給用戶,使GIS面臨新的機遇和挑戰(zhàn)。隨著用戶需求的日益提高,單個的空間信息服務很難再滿足用戶,促使空間信息服務組合的出現(xiàn)成為必然??臻g信息服務組合是利用網(wǎng)絡上分布的空間信息服務,根據(jù)用戶的應用需求,在服務組合支撐平臺的支持下,選擇一系列符合要求的空間信息服務來組成滿足總需求的組合服務流程,通過流程中各個服務的協(xié)同來最終完成用戶的服務請求。 它主要分為三個階段第一階段是空間信息服務組合抽象模型的構(gòu)建,通過能夠描述服務功能的抽象原子服務及服務之間的數(shù)據(jù)流和控制流來構(gòu)建滿足用戶需求的抽象服務組合模型。第二階段是服務組合的匹配,將抽象的服務組合模型中各原子服務匹配成具體的服務,最終完成將整個服務組合模型實例化成可執(zhí)行的服務鏈。第三階段是服務鏈的執(zhí)行,利用支持網(wǎng)絡服務的工作流引擎執(zhí)行服務鏈。第二階段空間信息服務組合匹配是服務組合的核心部分及關鍵技術(shù),國內(nèi)外研究人員從不同的角度對空間信息服務組合匹配進行了研究Li Yan等人提出一種考慮QoS數(shù)據(jù)可信性的服務選擇方法,根據(jù)數(shù)據(jù)的來源對質(zhì)量屬性進行分類和統(tǒng)計Jue Peng提出一種基于語義的空間信息服務鏈自動組合方法,引入空間信息語義來完成空間信息服務功能的匹配,通過輸入輸出數(shù)據(jù)類型的匹配完成空間信息服務鏈的自動組合Jhang Jianting 提出一種評估空間信息服務性能而進行服務組合和調(diào)用的方法,在小規(guī)模的空間數(shù)據(jù)情況下,科學地應用Kepler工作流系統(tǒng)來進行性能評估最終完成分布式空間信息服務組合。這些研究主要是集中對服務組合中各原子服務功能的發(fā)現(xiàn),它們將服務組合的功能分成一個個子服務功能去發(fā)現(xiàn)匹配,最后通過各種質(zhì)量屬性參數(shù)來衡量服務鏈的好壞。這種將空間信息服務組合匹配轉(zhuǎn)換為一系列獨立的空間信息服務之間的語義匹配方法的流程一般為 首先從空間信息服務組合的模型中提取抽象原子服務,與注冊中心中具體服務進行語義匹配,再根據(jù)組合模型中各服務間的鏈接關系將各服務實例連接起來,形成可執(zhí)行的空間信息服務鏈,最后通過各種服務組合的參數(shù)屬性來衡量服務鏈的質(zhì)量。這種基于單個空間信息服務語義匹配方法忽略了服務組合匹配中的各種約束條件,主要包括抽象服務組合的輸入輸出對原子服務匹配的約束作用及原子服務之間的相互約束。
發(fā)明內(nèi)容
針對上述問題,本發(fā)明提出一種能夠顧及上下文的空間信息服務組合動態(tài)語義匹配方法。本發(fā)明提供的技術(shù)方案是一種顧及上下文的空間信息服務組合語義匹配方法,包括以下步驟步驟一、提取抽象空間信息組合服務模型中的各抽象原子服務,并存入抽象原子服務列表;步驟二、從抽象原子服務列表中依次讀取一個未匹配的抽象原子服務;步驟三、判斷抽象原子服務是否與組合服務的輸入相連接,是則執(zhí)行步驟四,否則直接執(zhí)行步驟五;步驟四、匹配組合服務輸入?yún)?shù)與抽象原子服務輸入?yún)?shù),使得組合服務的輸入對原子服務的輸入具有約束作用;如果匹配成功則執(zhí)行步驟五,否則說明抽象原子服務的輸入無法滿足組合服務的輸入要求,服務組合語義匹配失??;步驟五、以抽象原子服務為模板與注冊中心的具體服務進行單個空間信息服務語義匹配,如果匹配成功,表示找到了與抽象原子服務語義相似度在用戶設定閾值內(nèi)的服務實例,并根據(jù)語義相似度將找到的各服務實例存入服務實例列表,執(zhí)行步驟六;否則表示沒能找到語義相似度超過用戶設定閾值的服務實例,即返回空的服務實例類表,執(zhí)行步驟十二;步驟六、從抽象原子服務對應的服務實例列表中選取最佳服務實例,并將該服務實例在服務實例列表中刪除;步驟七、判斷最佳服務實例是否選取成功,如果選取成功,執(zhí)行步驟八,否則說明抽象原子服務需要重新匹配,執(zhí)行步驟十二 ;步驟八、從抽象原子服務列表中提取抽象原子服務的后繼服務,如果提取成功,執(zhí)行步驟九,否則直接執(zhí)行步驟十;步驟九、將最佳服務實例的輸出參數(shù)與后繼服務的輸入?yún)?shù)進行語義匹配,如果匹配成功,根據(jù)最佳服務實例的輸出參數(shù)類型修改后繼服務輸入?yún)?shù)的匹配條件,執(zhí)行步驟十;否則返回步驟六進行最佳服務實例的重新選擇;步驟十、判斷抽象原子服務的輸出是否與組合服務的輸出相連接,如果相連接,則執(zhí)行步驟十一,否則直接執(zhí)行步驟十五;步驟十一、進行抽象原子服務輸出參數(shù)與組合服務輸出參數(shù)的語義匹配,如果匹配成功,則執(zhí)行步驟十五,否則返回步驟六進行最佳服務實例的重新選?。徊襟E十二、將抽象原子服務存入重匹配服務列表;步驟十三、根據(jù)抽象原子服務列表,提取抽象原子服務的前置服務,如果提取成功,執(zhí)行步驟十四設置前置服務;如果不成功,則表示服務組合語義匹配失?。徊襟E十四、設置前置服務為實行操作的當前抽象原子服務,返回步驟六進行前置服務的重匹配;步驟十五、判斷重匹配服務列表是否為空,如果不為空,執(zhí)行步驟十六,否則直接執(zhí)行步驟十七;步驟十六、根據(jù)重匹配服務列表,依次讀取需要重新匹配的抽象原子服務,返回步驟五;步驟十七、判斷抽象原子服務列表是否匹配完成,如果匹配完成,則執(zhí)行步驟十八,否則返回步驟二讀取下一個抽象原子服務;步驟十八、根據(jù)抽象空間信息服務組合模型中抽象原子服務之間的鏈接關系,將各抽象原子服務的最佳服務實例組合起來構(gòu)建空間信息服務鏈。本發(fā)明的特點在單個空間信息服務語義匹配的基礎上,結(jié)合空間信息服務組合中服務上下文的情況,采用回溯算法思想對原子服務進行語義匹配,通過前置服務匹配結(jié)果的輸出參數(shù)與原子服務輸入?yún)?shù)的匹配,避免了原子服務匹配的服務實例并不適合服務組合的現(xiàn)象;通過原子服務的輸出與后繼服務輸入的語義匹配,有效地情況縮小后繼服務的輸入類型的范圍,為后繼服務匹配提供更加合適的模板。而且,本發(fā)明還通過單個空間信息服務語義匹配相似度的連續(xù)化及一值化處理,更準確地表現(xiàn)了服務相似度及更容易選擇最佳原子服務實例。本發(fā)明所提供方法準確、有效,適合空間信息服務組合匹配,可有效提供服務組合的匹配效率。
圖1為本發(fā)明原理圖;圖2為空間信息服務組合抽象模型圖;圖3為抽象原子服務存儲索引圖;圖4為本發(fā)明實施例流程圖。
具體實施例方式服務組合的輸入輸出是描述用戶功能需求的參數(shù),用戶通過服務組合的輸入約束開始的原子服務節(jié)點的輸入,及用服務組合的輸出約束結(jié)束的原子服務的輸出。服務組合中的抽象原子服務不是孤立存在的,因此在匹配過程中,它需要通過其前置服務匹配的服務實例的輸出參數(shù)來約束其輸入?yún)?shù),同時利用其匹配服務實例的輸出參數(shù)對其后繼服務的輸入?yún)?shù)進行約束。其中在服務組合模型中原子服務A的輸出參數(shù)與原子服務B的輸入?yún)?shù)具有直接的數(shù)據(jù)流傳遞關系時,在本發(fā)明中,稱服務A是服務B的前置服務,或稱服務 B是服務A的后繼服務。為了解決上述問題,本發(fā)明提出了一種顧及上下文的空間信息服務組合語義匹配方法,在空間信息服務組合匹配過程中,能夠根據(jù)原子服務的上下文關系及實際的匹配情況,動態(tài)地進行抽象服務組合模型中的各原子服務的語義匹配,準確有效地將抽象的空間信息服務模型轉(zhuǎn)換成可執(zhí)行的空間信息服務鏈。參見圖1,對于抽象空間信息服務組合模型中的單個抽象原子服務,首先進行組合服務輸入與原子服務輸入的語義匹配、前置服務輸出與原子服務輸入的語義匹配,然后進行原子服務輸入輸出的語義匹配,再進行組合服務輸出與原子服務輸出的語義匹配、后繼服務輸入與原子服務輸出的語義匹配,最后綜合模型所有抽象原子服務的匹配結(jié)果得到可執(zhí)行的空間信息服務鏈。以下結(jié)合理論和實施例詳細說明本發(fā)明技術(shù)方案1、理論基礎空間信息服務組合的性能特征是由內(nèi)部每個原子服務的性能特征及其之間的相互協(xié)作決定的。因此對抽象空間信息服務組合的語義匹配不僅僅是單獨對各抽象原子服務的語義匹配,還需要對各原子服務之間的關系進行相關的語義匹配。
從理論上可以發(fā)現(xiàn)正如單個空間信息服務有輸入輸出一樣,抽象空間信息服務組合模型也有其對應的服務組合輸入輸出;并且其內(nèi)部包括抽象原子服務,和各原子服務之間的控制流及數(shù)據(jù)流。服務組合的輸入輸出是描述用戶功能需求的參數(shù),用戶通過服務組合的輸入約束開始的原子服務節(jié)點的輸入,及用服務組合的輸出約束結(jié)束的原子服務的輸出,使得整個服務組合滿足用戶的需求。同時服務組合中的各抽象原子服務不是孤立存在的,它具有相應的前置服務和后繼服務,通過前置服務的輸出參數(shù)來約束其輸入?yún)?shù),而通過后繼服務的輸入?yún)?shù)對其輸出參數(shù)進行約束。如圖2所示的一個抽象空間信息服務組合模型具有兩個組合服務輸入和兩個組合服務輸出,內(nèi)部則由原子服務1和原子服務2… 原子服務η形成組合服務,各原子服務之間通過輸入輸出結(jié)合提供控制流及數(shù)據(jù)流。根據(jù)這一理論,本發(fā)明提出并實現(xiàn)了一個新的顧及上下文的空間信息服務組合語義方法。在對單個空間信息服務語義匹配的基礎上,將對空間信息服務組合的輸入輸出,及原子服務的輸入輸出等關系進行語義匹配。匹配種類如下 原子服務的輸入?yún)?shù)與組合服務的輸入?yún)?shù)間的語義匹配 原子服務的輸出參數(shù)與組合服務的輸出參數(shù)間的語義匹配 原子服務的輸入?yún)?shù)與前置服務的輸出參數(shù)間的語義匹配 原子服務的輸出參數(shù)與后繼服務的輸入?yún)?shù)間的語義匹配 單個空間信息原子服務的輸入/輸出參數(shù)的語義匹配2、服務的語義匹配本發(fā)明的服務匹配所涉及到的服務均為語義Web服務,即已經(jīng)標注好語義的Web 服務(同樣的,用戶請求也是語義標注好的),既然發(fā)布服務和請求服務的輸入和輸出都用本體概念標注,那么服務和請求之間的相似度就可以用它們所包含的輸入和輸出的相似度綜合得到,而語義相似度的計算一般先將其轉(zhuǎn)化為語義距離的計算,而語義距離實際上就是本體概念間的距離。現(xiàn)有技術(shù)中,經(jīng)典的相似度算法的匹配結(jié)果采用離散的度量方式,分為Excat, Plugln, Subsume 禾口 Fail。Exact 當outR與outA相同或outR是outA的直接子類(subClassOf)時,結(jié)果為 Exact。PlugIn 如果outA包含outR,也就是說outA可能完全滿足outR。Subsume 如果outR包含outA,即outA能部分滿足outR但不是完全滿足。Fail 在outR和outA之間沒有任何包含關系,匹配失敗。其中outR為請求輸出參數(shù),outA為發(fā)布服務輸出參數(shù)。由此可以看出,四種匹配關系從高到底排序結(jié)果為Exact、Plugln、Subsume、i^ail。該經(jīng)典方法可以用于本發(fā)明的技術(shù)方案,但對于這種離散評價的方法,有其優(yōu)點和不足優(yōu)點是該方法的算法簡便、易于實現(xiàn)、速度快;不足是對同一等級內(nèi)部的不同情況不能加以區(qū)分,這可能也是所有離散方法的共同缺點。根據(jù)這一理論,本發(fā)明提出可以采用一種新的空間信息服務語義相似度算法,進行相似度比較的精度更高。該方法對離散的語義距離進行賦值并進行一值化處理,使兩個服務的相似度能夠為
區(qū)間的連續(xù)值。算法式子為
Simlo (cl, c2)=,,丄’ c2)其中cl,c2是表示匹配服務之間的輸入輸出本體描述;Dist (cl,c2)是cl,c2兩個本體之間的語義距離,e為數(shù)學常數(shù)??梢钥闯觯攦蓚€本體之間的語義距離越大時,它們的相似度越小。該算法不僅能夠?qū)⒎罩g的語義距離進行一值化,更重要的是能夠區(qū)分語義距離都比較小,而相似度比較大的兩個服務之間的好壞程度。3、實施例實現(xiàn)過程為標示清晰起見,圖4中將步驟標為step和阿拉伯數(shù)字步驟一、按照抽象空間信息組合服務模型中的各種結(jié)構(gòu)的特點依次提取抽象空間信息組合服務模型中所含的各抽象原子服務,并存入抽象原子服務順序列表中。抽象空間信息組合服務模型在以下流程中簡稱為組合服務,后續(xù)匹配步驟需要考慮組合服務的輸入輸出參數(shù)。其中可能包括的控制結(jié)構(gòu)為順序結(jié)構(gòu)(kquence)、選擇結(jié)構(gòu)(Choice)、循環(huán)結(jié)構(gòu)(Loop)、平行分支結(jié)構(gòu)(Split)、同步結(jié)構(gòu)(Synchronization)等。例如讀取順序結(jié)構(gòu) sequence時,則按順序讀取其內(nèi)部的原子服務,而對于平行分支結(jié)構(gòu)split,則需要先將它劃分成多個sequence分支,然后再依次讀取各個分支中的原子服務。步驟二、從抽象原子服務列表中依次讀取某個未匹配的抽象原子服務,進行單個原子抽象空間信息服務匹配處理。后續(xù)步驟都針對該抽象原子服務進行處理,直到流程返回步驟二依次讀取下一個未匹配的抽象原子服務進行處理。實施例在在某個原子抽象空間信息服務匹配完成后,將其的匹配標志符matCh_flag設為true。從而避免出現(xiàn)重復匹配的情況。步驟三、讀取抽象原子服務所有的輸入?yún)?shù),然后逐一查看其是否與服務組合的開始節(jié)點start相連接,如果連接,則說明該抽象原子服務接收的參數(shù)為組合服務的輸入?yún)?shù),即該抽象原子服務與組合服務的輸入相連接,則執(zhí)行步驟四;如果其所有的輸入?yún)?shù)都沒有與start節(jié)點相連接則直接執(zhí)行步驟五。步驟四、根據(jù)步驟三的判斷,能夠發(fā)現(xiàn)該抽象原子服務的某一條或幾條輸入?yún)?shù)與組合服務的輸入相連接,則對這些服務輸入?yún)?shù)進行語義匹配,使得組合服務的輸入對原子服務的輸入具有約束作用。匹配成功的條件為當該抽象原子服務的輸入?yún)?shù)與組合服務的輸入?yún)?shù)的語義關系為Excat或Plugh時,匹配成功;否則匹配失敗。如果成功則執(zhí)行步驟五,而匹配失敗則說明該抽象原子服務的輸入無法滿足組合符合的輸入要求,服務組合匹配失敗。步驟五、以該抽象原子服務為模板,與注冊中心的具體服務進行輸入輸出的語義匹配。注冊中心的服務是發(fā)布者通過網(wǎng)絡發(fā)布的,因此本專業(yè)稱為廣告服務。實施例具體方法為對該抽象原子服務的輸入輸出進行一對一的匹配,匹配算法為
Sim10{c\,c2) 二嚴l,c2)。然后根據(jù)所有輸入輸出的語義匹配度,計算整個服務的語義相似
MN
度Sim g—ο(一》美職)其巾Μ,Ν·為··人輸出的
μ + Ν,
數(shù)量,reqi,adyi分別表示請求服務及廣告服務的某個輸入?yún)?shù)、req。,adV。分別表示請求服務及廣告服務的某個輸出參數(shù)。然后根據(jù)用戶設定的閾值,對服務進行過濾。返回一個相似度大于規(guī)定閾值的服務列表。如果返回的服務列表不為空,表示找到了與原子服務匹配的服務實例,并根據(jù)語義匹配相似度大小對各服務實例進行排序,然后執(zhí)行步驟六;否則表示沒能找到語義相似度超過用戶設定閾值的服務實例,即返回空的服務實例列表,執(zhí)行步驟十·~- ο步驟六、在默認的情況下,根據(jù)服務相似度的大小,從原子服務對應的服務實例列表中選取匹配相似度最大的服務實例作為最佳服務實例,并將該服務實例從服務實例列表中刪除,使得下次選擇時不再重復選取。具體實施時可以設計一個服務選擇模型,提供用戶設定他們更加關注的服務屬性,然后對服務的選擇模型中的各個服務屬性賦于不同的權(quán)值,計算服務的關注指數(shù)。然后根據(jù)用戶的關注指數(shù)和服務的語義相似度選擇最佳的原子服務實例。步驟七、當服務實例列表不為空時,總能從服務實例列表中選出相應的服務實例, 即最佳服務提取成功,然后執(zhí)行步驟八。但是當服務實例列表已經(jīng)為空,而不存在原子服務實例時,說明抽象原子服務需要重新匹配,執(zhí)行步驟十二。步驟八、根據(jù)組合服務中的各原子服務之間的關系,從抽象原子服務列表中提取該抽象原子服務的后繼服務,為了方便找到該原子服務相應的后繼服務,本發(fā)明實施例設計了一個索引的存儲方法。對原子服務的每個輸出參數(shù)和其連接的后繼服務進行建立索引映射,如圖3所示服務的服務名映射到輸入?yún)?shù)和輸出參數(shù)(其中輸入?yún)?shù)包括其相應的輸入?yún)?shù)名稱和輸入?yún)?shù)類型、輸出參數(shù)名次包括輸出參數(shù)名稱和輸出參數(shù)類型),如果該服務具有前置服務,相應的輸入?yún)?shù)指向該參數(shù)對應的前置服務的輸出參數(shù)(其中前置服務的輸出參數(shù)包含前置服務名稱和前置服務輸出參數(shù)名稱);如果該服務具有后繼服務,其相應的輸出參數(shù)指向該參數(shù)對應的后繼服務的輸入?yún)?shù)(其中后繼服務的輸入?yún)?shù)包含后繼服務名稱和后繼服務輸入?yún)?shù)名稱)。使得在查找后繼服務時,只需要根據(jù)原子服務的輸出參數(shù)直接映射到其相應的后繼服務。當該抽象原子服務存在后繼服務時,即后繼服務提取成功,執(zhí)行步驟九;否則說明該抽象原子服務不存在后繼服務,直接執(zhí)行步驟十。步驟九、將步驟六所得最佳服務實例的輸出參數(shù)與后繼服務的輸入?yún)?shù)進行語義匹配,確保后繼服務的匹配是在原子服務匹配結(jié)果上進行的;當該原子服務實例的輸出參數(shù)與后繼服務相應的輸入?yún)?shù)的語義關系為Excat或Subsume時,說明該原子服務實例的輸出條件能夠被后繼服務的輸入所接收,即與后繼服務的輸入匹配成功;然后根據(jù)原子服務實例的輸出參數(shù)類型修改后繼服務輸入?yún)?shù)的匹配條件,使得后繼服務匹配時能夠在注冊中心找到相似度更大的服務實例,執(zhí)行步驟十。如果原子服務的輸出與后繼服務的輸入匹配失敗,否則返回步驟六進行最佳服務實例的重新選擇。步驟十、判斷抽象原子服務的輸出是否與服務組合的輸出(結(jié)束節(jié)點end)相連接,如果連接,則說明該原子服務的輸出參數(shù)直接作為組合服務的輸出參數(shù),則需要進行與組合服務的輸出參數(shù)語義匹配,執(zhí)行步驟十一;如果該原子服務的所有輸出參數(shù)都沒有與 end節(jié)點相連接則直接執(zhí)行步驟十五。步驟十一、抽象原子服務輸出參數(shù)與組合服務輸出參數(shù)的進行語義匹配,確保匹配得到的服務輸出的結(jié)果符合服務組合的輸出要求。當該抽象該原子服務的輸出參數(shù)與組合服務相應的輸出參數(shù)的語義關系為Excat或Subsume時,說明該最佳服務實例的輸出滿足用戶對組合服務輸出的要求,即與組合服務的輸出匹配成功,則執(zhí)行步驟十五。否則匹配失敗,說明該服務實例的輸出無法滿足用戶的需求,則需要返回步驟六進行最佳服務實例的重新選擇;步驟十二、如果單個抽象原子服務匹配失敗,流程就會進入此步驟將該抽象原子服務存入重匹配服務列表。其中重匹配服務列表是用于當該抽象原子服務的前置服務實例重新選取成功,并且根據(jù)選擇的前置服務實例的輸出類型更改原子服務的輸入?yún)?shù)類型, 再從重匹配服務列表讀取該抽象原子服務進行重新匹配。如果失敗,則將前置服務再存入重匹配服務列表,如此循環(huán),直到原子服務匹配成功。然后根據(jù)匹配失敗的相應輸入?yún)?shù), 讀取該參數(shù)對應的前置抽象原子服務。步驟十三、根據(jù)原子服務匹配失敗對應的具體的輸入?yún)?shù),根據(jù)輸入?yún)?shù),從抽象原子服務列表中讀取該參數(shù)對應的前置的抽象原子服務。如果讀取成功,即存在前置服務, 執(zhí)行步驟十四設置前置服務,進行前置服務實例的重新選擇;如果讀取不成功,說明匹配失敗的原子服務是服務組合的開始節(jié)點,并不存在其相應的前置服務,因此無法通過對前置服務的重新匹配而使得原子服務匹配成功,則表示服務組合匹配失敗。步驟十四、將前置服務設置為實行操作的當前原子抽象服務,返回步驟六為抽象前置服務的重新選擇其最佳的服務實例。通過最佳前置服務實例的重新選擇,使用前置服務實例的輸出參數(shù)類型縮小其后繼服務的輸入?yún)?shù)的類型,促使后繼服務匹配成功。步驟十五、判斷重匹配服務列表是否為空,即判斷是否存在需要重新匹配的抽象服務,如果不為空則執(zhí)行步驟十六,否則說明該抽象原子服務匹配處理完成,直接執(zhí)行步驟十七。步驟十六、根據(jù)重匹配服務列表的內(nèi)容,依次讀取需要重新匹配的抽象原子服務, 返回步驟五進行抽象原子服務的重新匹配。步驟十七、判斷抽象原子服務列表的所有抽象原子服務是否全部匹配完成,即判斷服務組合是否匹配完成,如果抽象原子服務列表中的所有抽象原子服務的匹配標識符 matCn_flag全部為true時,說明服務組合匹配完成,則執(zhí)行步驟十八,否則返回步驟二讀取下一個未匹配的抽象原子服務。步驟十八、根據(jù)抽象空間信息組合服務模型中原子服務之間的鏈接關系,將各抽象原子服務相應的最佳實例服務組合起來形成能夠執(zhí)行的空間信息服務鏈。
權(quán)利要求
1. 一種顧及上下文的空間信息服務組合語義匹配方法,其特征是包括以下步驟 步驟一、提取抽象空間信息組合服務模型中的各抽象原子服務,并存入抽象原子服務列表;步驟二、從抽象原子服務列表中依次讀取一個未匹配的抽象原子服務; 步驟三、判斷抽象原子服務是否與組合服務的輸入相連接,是則執(zhí)行步驟四,否則直接執(zhí)行步驟五;步驟四、匹配組合服務輸入?yún)?shù)與抽象原子服務輸入?yún)?shù),使得組合服務的輸入對原子服務的輸入具有約束作用;如果匹配成功則執(zhí)行步驟五,否則說明抽象原子服務的輸入無法滿足組合服務的輸入要求,服務組合語義匹配失?。徊襟E五、以抽象原子服務為模板與注冊中心的具體服務進行單個空間信息服務語義匹配,如果匹配成功,表示找到了與抽象原子服務語義相似度在用戶設定閾值內(nèi)的服務實例, 并根據(jù)語義相似度將找到的各服務實例存入服務實例列表,執(zhí)行步驟六;否則表示沒能找到語義相似度超過用戶設定閾值的服務實例,即返回空的服務實例類表,執(zhí)行步驟十二 ;步驟六、從抽象原子服務對應的服務實例列表中選取最佳服務實例,并將該服務實例在服務實例列表中刪除;步驟七、判斷最佳服務實例是否選取成功,如果選取成功,執(zhí)行步驟八,否則說明抽象原子服務需要重新匹配,執(zhí)行步驟十二 ;步驟八、從抽象原子服務列表中提取抽象原子服務的后繼服務,如果提取成功,執(zhí)行步驟九,否則直接執(zhí)行步驟十;步驟九、將最佳服務實例的輸出參數(shù)與后繼服務的輸入?yún)?shù)進行語義匹配,如果匹配成功,根據(jù)最佳服務實例的輸出參數(shù)類型修改后繼服務輸入?yún)?shù)的匹配條件,執(zhí)行步驟十; 否則返回步驟六進行最佳服務實例的重新選擇;步驟十、判斷抽象原子服務的輸出是否與組合服務的輸出相連接,如果相連接,則執(zhí)行步驟十一,否則直接執(zhí)行步驟十五;步驟十一、進行抽象原子服務輸出參數(shù)與組合服務輸出參數(shù)的語義匹配,如果匹配成功,則執(zhí)行步驟十五,否則返回步驟六進行最佳服務實例的重新選??; 步驟十二、將抽象原子服務存入重匹配服務列表;步驟十三、根據(jù)抽象原子服務列表,提取抽象原子服務的前置服務,如果提取成功,執(zhí)行步驟十四設置前置服務;如果不成功,則表示服務組合語義匹配失??;步驟十四、設置前置服務為實行操作的當前抽象原子服務,返回步驟六進行前置服務的重匹配;步驟十五、判斷重匹配服務列表是否為空,如果不為空,執(zhí)行步驟十六,否則直接執(zhí)行步驟十七;步驟十六、根據(jù)重匹配服務列表,依次讀取需要重新匹配的抽象原子服務,返回步驟五;步驟十七、判斷抽象原子服務列表是否匹配完成,如果匹配完成,則執(zhí)行步驟十八,否則返回步驟二讀取下一個抽象原子服務;步驟十八、根據(jù)抽象空間信息服務組合模型中抽象原子服務之間的鏈接關系,將各抽象原子服務的最佳服務實例組合起來構(gòu)建空間信息服務鏈。
全文摘要
本發(fā)明提供了一種顧及上下文的空間信息服務組合語義匹配方法,屬于空間信息服務技術(shù)。本發(fā)明充分考慮空間信息服務組合對內(nèi)部抽象原子服務匹配的約束,以及匹配過程中抽象原子服務上下文之間的相互影響,動態(tài)地匹配抽象服務組合模型中的各原子服務,準確有效地將抽象的空間信息服務模型轉(zhuǎn)換成可執(zhí)行的空間信息服務鏈。
文檔編號G06F17/30GK102255929SQ20101018140
公開日2011年11月23日 申請日期2010年5月18日 優(yōu)先權(quán)日2010年5月18日
發(fā)明者王艷東, 羅安 申請人:武漢大學