專利名稱::一種大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及Web服務(wù)
技術(shù)領(lǐng)域:
,尤其是指一種大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法。
背景技術(shù):
:發(fā)布訂閱是新一代的網(wǎng)絡(luò)計(jì)算,是一種以大規(guī)模、分散控制、動(dòng)態(tài)性、自治性和松耦合為主要特征的分布式計(jì)算。已成為分布式計(jì)算領(lǐng)域的重要支撐平臺(tái),進(jìn)入人們的生活、工作、科研等領(lǐng)域,是現(xiàn)代計(jì)算和應(yīng)用的研究熱點(diǎn)。支持復(fù)雜網(wǎng)絡(luò)的大規(guī)模發(fā)布/訂閱系統(tǒng),可以預(yù)見的應(yīng)用場景更是包括面向服務(wù)的計(jì)算、無線傳感器網(wǎng)絡(luò)、移動(dòng)計(jì)算、普適計(jì)算、協(xié)同環(huán)境、企業(yè)應(yīng)用集成等。如圖1所示,發(fā)布/訂閱模型一般由信息生產(chǎn)者(發(fā)布者)、信息消費(fèi)者(訂閱者)和事件通知服務(wù)組成。其流程為信息消費(fèi)者向事件通知服務(wù)注冊(cè)訂閱,表達(dá)對(duì)特定信息的興趣;信息生產(chǎn)者以事件形式發(fā)送信息到事件通知服務(wù),然后事件通知服務(wù)路由匹配的事件到相應(yīng)的信息消費(fèi)者。發(fā)布/訂閱系統(tǒng)的核心機(jī)制之一就是匹配算法。匹配算法負(fù)責(zé)高效地找到與給定事件相匹配的所有訂閱條件,其設(shè)計(jì)目標(biāo)主要包括匹配的時(shí)間效率、匹配的空間效率和訂閱維護(hù)的效率。數(shù)據(jù)模型是匹配算法的基礎(chǔ),不同數(shù)據(jù)模型的發(fā)布/訂閱系統(tǒng)的匹配算法都不一樣?;贛ap的發(fā)布訂閱系統(tǒng)匹配算法,時(shí)間復(fù)雜度較低,速度很快,但其空間復(fù)雜度為指數(shù)級(jí)。同時(shí),該算法的訂閱維護(hù)的成本很高,每當(dāng)客戶增加訂閱或取消訂閱時(shí),系統(tǒng)難以對(duì)該搜索樹進(jìn)行修改以反映訂閱的變化,而必須要重建搜索樹?;赬ML的發(fā)布/訂閱系統(tǒng),其表達(dá)能力比基于M即的系統(tǒng)有了很大的提高。雖然XML具有很強(qiáng)的表達(dá)能力,但是訂閱者必須預(yù)先知道被發(fā)布的XML文檔所遵從的XMLSchema,才能根據(jù)該Schema定義出相應(yīng)的訂閱條件。以上發(fā)布訂閱系統(tǒng)的事件/訂閱匹配屬于精確匹配,而語義匹配算法是一種支持模糊匹配的方法,即在沒有特定訂閱和發(fā)布的精確知識(shí),用戶發(fā)布或訂閱采用的是不精確詞匯的情況下,發(fā)布和訂閱之間仍然能夠得到有效匹配的算法。
發(fā)明內(nèi)容針對(duì)上述匹配算法的時(shí)間效率低、空間復(fù)雜度高及維護(hù)復(fù)雜的問題。本發(fā)明提供了一種空間復(fù)雜度低,時(shí)間復(fù)雜度低的大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法。一種大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法,包括如下步驟-1)為訂閱圖建立索引;2)轉(zhuǎn)化事件到特定的數(shù)據(jù)結(jié)構(gòu);3)把事件圖的數(shù)據(jù)結(jié)構(gòu)提交給事件匹配器;4)事件匹配器進(jìn)行事件圖同訂閱圖模式的匹配運(yùn)算,找出匹配的訂閱,由系統(tǒng)把事件分發(fā)給匹配的訂閱者。進(jìn)一步的,所述步驟1)為節(jié)點(diǎn)以訂閱總圖的方式保存訂閱,每個(gè)訂閱要被合并到訂閱總圖中,過濾不相關(guān)的訂閱條件,同時(shí)維護(hù)訂閱的插入和刪除。進(jìn)一步的,所述步驟2)為為直接從事件的原始格式生成事件的數(shù)據(jù)結(jié)構(gòu),或先把事件的原始格式轉(zhuǎn)換成RDF事件圖的結(jié)構(gòu),然后對(duì)圖進(jìn)行深度或?qū)挾葍?yōu)先搜索遍歷來生成事件的數(shù)據(jù)結(jié)構(gòu)。更進(jìn)一步的,所述RDF事件圖有三類節(jié)點(diǎn)空節(jié)點(diǎn)、類型節(jié)點(diǎn)和文本節(jié)點(diǎn)。進(jìn)一步的,所述步驟2)中所述特定的數(shù)據(jù)結(jié)構(gòu)由包含由屬性和節(jié)點(diǎn)對(duì)名的PartA和表示資源節(jié)點(diǎn)的類型PartB兩部分組成。進(jìn)一步的,所述步驟4)中事件圖同訂閱圖模式的匹配運(yùn)算為三個(gè)階段第一個(gè)階段根據(jù)訂閱索引結(jié)構(gòu)過濾不相關(guān)的訂閱;第二個(gè)階段根據(jù)匹配服務(wù)器內(nèi)核體系結(jié)構(gòu)設(shè)置并行方案;第三階段對(duì)過濾后的訂閱進(jìn)行匹配,以發(fā)現(xiàn)匹配成功的訂閱。本發(fā)明的有益效果為降低事件與訂閱匹配的時(shí)間,提高事件匹配效率,使得隨著訂閱和發(fā)布事件數(shù)目的增加,事件匹配效率不會(huì)受到嚴(yán)重的影響,系統(tǒng)性能不會(huì)惡化。同時(shí),根據(jù)匹配服務(wù)器的內(nèi)核體系結(jié)構(gòu)自適應(yīng)調(diào)整匹配算法,充分利用多核技術(shù)提高匹配效率。具體本發(fā)明具有以下優(yōu)點(diǎn)首先,空間復(fù)雜度低。節(jié)點(diǎn)的空間資源主要消耗在單個(gè)訂閱圖和合并訂閱圖的存儲(chǔ)上。假定單個(gè)訂閱圖的總數(shù)為n,圖索引結(jié)構(gòu)中的節(jié)點(diǎn)對(duì)數(shù)目為k,則所有單個(gè)訂閱圖的空間復(fù)雜度為O(n*k)。假定合并訂閱圖中的結(jié)點(diǎn)對(duì)數(shù)目為1,每個(gè)結(jié)點(diǎn)對(duì)所連接的訂閱列表的平均長度為m,則合并訂閱圖的空間復(fù)雜度為0(1+1*m)。因此總體空間復(fù)雜度為O(n*k+1+1*m)??紤]到當(dāng)插入訂閱S到合并訂閱圖時(shí),要么把S的結(jié)點(diǎn)對(duì)名(NPN)加入合并訂閱圖,然后再把S加入到訂閱列表,或者在NPN已經(jīng)存在的情況下,直接把S加入到訂閱列表中,因此n傘k是小于等于lHcm的。而1*m的大小取決與訂閱之間的重疊率。重疊率越高,1*m就越小并趨近于n*k。當(dāng)重疊率為零時(shí),即任意兩個(gè)訂閱圖之間沒有同樣的連接,1*m=2n*k。而k遠(yuǎn)遠(yuǎn)小于n,因此總體空間復(fù)雜度可表示為O(n),說明內(nèi)存的消耗基本上同訂閱的個(gè)數(shù)成線性關(guān)系。其次,時(shí)間復(fù)雜度低。訂閱插入算法的時(shí)間復(fù)雜度為0(k),只簡單依賴于訂閱S的結(jié)點(diǎn)對(duì)數(shù)目。事件轉(zhuǎn)換算法的時(shí)間復(fù)雜度也只取決于事件的三元組個(gè)數(shù),假定三元組的個(gè)數(shù)為t,即時(shí)間復(fù)雜度為O(t)。匹配算法的時(shí)間開銷主要是結(jié)點(diǎn)對(duì)匹配。假設(shè)i是事件數(shù)據(jù)結(jié)構(gòu)中屬性映射表的大小同每個(gè)屬性相關(guān)的結(jié)點(diǎn)對(duì)的平均個(gè)數(shù)的乘積,j是合并訂閱圖中每個(gè)屬性下面的平均結(jié)點(diǎn)對(duì)數(shù)目,則時(shí)間復(fù)雜度是O(i*j*m)。同時(shí)考慮到利用多核體系結(jié)構(gòu),消耗時(shí)間將會(huì)更低。圖1發(fā)布/訂閱系統(tǒng)模型圖圖2RDF事件圖圖3訂閱S1和S2的圖模式圖4訂閱圖的索引結(jié)構(gòu)圖5合并訂閱圖的索引結(jié)構(gòu)圖6事件圖的數(shù)據(jù)結(jié)構(gòu)具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,以下舉實(shí)例對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。在本系統(tǒng)中,發(fā)布者發(fā)布以RDF/XML語法表示的事件后,系統(tǒng)把事件轉(zhuǎn)化為RDF圖的數(shù)據(jù)結(jié)構(gòu)。本發(fā)明的RDF事件圖有三類節(jié)點(diǎn)空節(jié)點(diǎn)、類型節(jié)點(diǎn)和文本節(jié)點(diǎn)。圖2展示了一個(gè)RDF事件圖,它們的具體實(shí)現(xiàn)如下描述空節(jié)點(diǎn)沒有URI引用或者不需要URI引用,只是作為RDF事件圖中的"過渡"節(jié)點(diǎn)??展?jié)點(diǎn)在RDF事件圖中很常見,因?yàn)楹芏噘Y源可以使用豐富的屬性來說明,因此不需要URI引用;同時(shí)很多資源本身可能沒有URI引用。當(dāng)RDF事件圖表示為三元組時(shí),空節(jié)點(diǎn)的表示使用"一:name"形式的標(biāo)識(shí)符,其中name是由系統(tǒng)任意產(chǎn)生的能唯一標(biāo)識(shí)一個(gè)空節(jié)點(diǎn)的名字。把RDF事件圖序列化成XML格式時(shí),使用rdf:nodeID屬性來引用空節(jié)點(diǎn),其屬性值也為系統(tǒng)任意產(chǎn)生的能唯一標(biāo)志一個(gè)空節(jié)點(diǎn)的標(biāo)識(shí)符,但不必以"」"開頭??展?jié)點(diǎn)標(biāo)識(shí)符僅僅是在把RDF圖表示成三元組或者RDF/XML的時(shí)候,用來表示和區(qū)分RDF圖中的空節(jié)點(diǎn)。類型節(jié)點(diǎn)至少有一個(gè)rdf:type屬性聲明它是某個(gè)特定類型或類的實(shí)例。允許一個(gè)類型節(jié)點(diǎn)有多個(gè)rdf:type屬性,說明該類型節(jié)點(diǎn)同時(shí)是多個(gè)類的實(shí)例。把RDF事件圖表示為XML格式時(shí),RDF/XML提供了一種特殊的簡略形式以描述這些類型節(jié)點(diǎn)。在簡略形式中,rdf:type屬性及其值被移去,而節(jié)點(diǎn)對(duì)應(yīng)的rdf:Description元素被替換為一個(gè)QName(QualifiedN謙)元素。一個(gè)QName包括一個(gè)代表命名空間的前綴,其后是一個(gè)冒號(hào),然后是該命名空間內(nèi)的一個(gè)詞匯名(或者稱為局部名)。文本節(jié)點(diǎn),包括普通文本節(jié)點(diǎn)和類型文本節(jié)點(diǎn)。例如,以"notebook"和"new"為標(biāo)簽的節(jié)點(diǎn)是普通文本節(jié)點(diǎn),其隱含的類型為字符串,說明一個(gè)拍賣項(xiàng)的物品名稱為筆記本,其質(zhì)量較新。以"2008-2-29'、sd:date"為標(biāo)簽的節(jié)點(diǎn)是類型文本節(jié)點(diǎn),其中上標(biāo)符號(hào)指出文本的類型為日期型。由于系統(tǒng)把事件表示為RDF圖,所以訂閱被描述為創(chuàng)建在RDF圖語法之上的有向圖模式(directedgraphpatterns),圖模式規(guī)定了RDF事件圖的形狀以及對(duì)某些節(jié)點(diǎn)和弧的約束。訂閱圖模式如圖3所示,訂閱圖中除了rdf:type屬性以外,所有其他的屬性均以'》'"代替。每個(gè)空節(jié)點(diǎn)被分配一個(gè)獨(dú)一無二的標(biāo)識(shí)符,形如"-^"7?!?"。URI引用和文本分別被表示為""^e/」'"和""^"U"。所有的z'都滿足Ql。每個(gè)變量節(jié)點(diǎn)的標(biāo)簽均以"一打頭,表示這個(gè)節(jié)點(diǎn)是個(gè)變量,其后緊跟變量名"7/"。在系統(tǒng)中,規(guī)定變量名必須以""為前綴,其后為字符串。字符串由數(shù)字、下劃線和英文字母組成,不允許出現(xiàn)其他字符。用戶在作訂閱條件時(shí),可以按照上述規(guī)則給變量取任意的名字。每個(gè)變量資源節(jié)點(diǎn)都有一個(gè)rdf:type屬性指出變量所要滿足的類型。文本節(jié)點(diǎn)在其變量名之后跟隨變量約束的布爾表達(dá)式。發(fā)布訂閱通知服務(wù)首先為訂閱圖建立了索引。節(jié)點(diǎn)以訂閱總圖的方式保存訂閱,每個(gè)訂閱要被合并到訂閱總圖中,從而過濾不相關(guān)的訂閱條件。同時(shí)維護(hù)訂閱的插入和刪除。訂閱圖合并的特點(diǎn)是充分利用大規(guī)模發(fā)布訂閱系統(tǒng)訂閱的重復(fù)性,減少匹配次數(shù)。系統(tǒng)采用了RDF/XML格式表示事件,它既可以直接從事件的原始格式生成事件的數(shù)據(jù)結(jié)構(gòu),也可以先把它轉(zhuǎn)換成RDF圖的結(jié)構(gòu),然后對(duì)圖進(jìn)行深度(或?qū)挾?優(yōu)先搜索遍歷來生成事件的數(shù)據(jù)結(jié)構(gòu)。由于事件的交換格式是RDF/XML,因此首先要把事件轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。當(dāng)RDF事件圖的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建好后,把它提交給事件匹配器。事件匹配器進(jìn)行事件圖同訂閱圖模式的匹配運(yùn)算,找出匹配的訂閱,然后由系統(tǒng)把事件分發(fā)給匹配的訂閱者。圖模式匹配過程包括1.為訂閱圖建立索引,并不斷合并訂閱圖,以維持一個(gè)沒有冗余信息的訂閱總圖。2.當(dāng)事件到達(dá)時(shí),把事件轉(zhuǎn)化為適合匹配的特定數(shù)據(jù)結(jié)構(gòu)。3.在訂閱和事件都已建立特定數(shù)據(jù)結(jié)構(gòu)后,根據(jù)三元組成功匹配的數(shù)量,并利用多核體系結(jié)構(gòu),進(jìn)行具體匹配運(yùn)算。本發(fā)明在匹配訂閱計(jì)算中,充分利用了多核體系結(jié)構(gòu)。發(fā)布訂閱通知服務(wù)在獲取內(nèi)核體系結(jié)構(gòu)信息后,自適應(yīng)調(diào)節(jié)匹配算法,達(dá)到并行匹配計(jì)算的目的。本發(fā)明構(gòu)建在語義Web上,利用RDF圖和多核技術(shù)實(shí)現(xiàn)發(fā)布訂閱系統(tǒng)匹配的可靠性和快速性。這種圖模式匹配過程描述如下首先,為訂閱圖建立索引。節(jié)點(diǎn)以訂閱總圖的方式保存訂閱,每個(gè)訂閱要被合并到訂閱總圖中,訂閱總圖稱為合并訂閱圖(mergedsubscriptionsgraph)。為合并訂閱圖建立索引以過濾不相關(guān)的訂閱條件。訂閱圖的索引結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)由三部分組成VT:具有兩列的變量綁定表,字段名為訂閱中的變量名、URI引用或者文本;H麗PN:節(jié)點(diǎn)對(duì)哈希表(hashmap),映射結(jié)點(diǎn)對(duì)名NPN(nodepairname)到VTs對(duì)象,其中NPN是兩個(gè)節(jié)點(diǎn)標(biāo)簽的連接字符串,主體節(jié)點(diǎn)標(biāo)簽在前,客體節(jié)點(diǎn)標(biāo)簽在后,中間以連字符"_"隔開,VTs是包含至少一個(gè)變量表VT的對(duì)象。注意,對(duì)于變量節(jié)點(diǎn),只取標(biāo)簽中的"*"號(hào)生成NPN。HMProp:屬性哈希表,映射屬性名到H麗PN,屬性名為屬性的URIref。當(dāng)訂閱到達(dá)時(shí),根據(jù)上述三元組生成索引結(jié)構(gòu)。接著,這個(gè)訂閱被插入到合并訂閱圖中。訂閱圖及其合并訂閱圖數(shù)據(jù)結(jié)構(gòu)如圖4、圖5所示。對(duì)于到達(dá)訂閱圖中的每個(gè)屬性P,首先根據(jù)屬性P的名字從合并訂閱圖的屬性映射表HMProp中得到結(jié)點(diǎn)對(duì)哈希表HMNPN。如果H,PN為空,說明屬性P是第一次出現(xiàn)在合并訂閱圖中,因此創(chuàng)建一個(gè)新的H麗PN,把(P,H麗PN)放入合并訂閱圖的HMProp中。接著對(duì)到達(dá)訂閱圖中該屬性P下的每個(gè)結(jié)點(diǎn)對(duì)名NPN,根據(jù)NPN從H,PN屬性映射表中得到對(duì)象SC。如果SC為空,同樣創(chuàng)建一個(gè)新的SC對(duì)象,并把(NPN,SC)放入HMNPN映射表。SC有兩個(gè)重要的字段變量綁定表BT(variablebindingstable)和訂閱列表SL。然后從SC中得到訂閱列表SL,如果SL不包含訂閱S,則把SC中的變量綁定表BT的引用賦值給對(duì)應(yīng)的VTs中的BT,并把訂閱S加入訂閱列表SL。然后,轉(zhuǎn)化事件到特定的數(shù)據(jù)結(jié)構(gòu)。把以RDF/XML格式表示的事件(或者RDF事件圖)轉(zhuǎn)化為適合匹配的特定數(shù)據(jù)結(jié)構(gòu)。事件的數(shù)據(jù)結(jié)構(gòu)由PartA和PartB兩部分組成。圖6顯示了事件圖的數(shù)據(jù)結(jié)構(gòu)。PartA包含屬性和節(jié)點(diǎn)對(duì)名,對(duì)應(yīng)于三元組或者"節(jié)點(diǎn)-弧-節(jié)點(diǎn)"的連接。PartA的結(jié)構(gòu)與訂閱的索引結(jié)構(gòu)相似,也包含屬性映射表HMProp,但映射值是節(jié)點(diǎn)對(duì)名向量集VCNPN,向量集中可能包含多個(gè)節(jié)點(diǎn)對(duì)名。事件數(shù)據(jù)結(jié)構(gòu)中的結(jié)點(diǎn)對(duì)名NPN必須和訂閱數(shù)據(jù)結(jié)構(gòu)中的NPN結(jié)構(gòu)一致,即它是兩個(gè)節(jié)點(diǎn)標(biāo)簽的連接字符串,主體節(jié)點(diǎn)標(biāo)簽在前,客體節(jié)點(diǎn)標(biāo)簽在后,中間以連字符"-"隔開。注意,HMPrcDp中的屬性不包括rdf:type屬性。PartB表示資源節(jié)點(diǎn)的類型,對(duì)應(yīng)于包含rdf:type屬性的三元組。PartB是一個(gè)資源節(jié)點(diǎn)的類型映射表HMResourceType,其鍵為資源節(jié)點(diǎn)的標(biāo)簽,值為包含資源節(jié)點(diǎn)類型(類)URI引用列表URIList。使用URI引用列表的原因是一個(gè)資源節(jié)點(diǎn)可能具有多個(gè)類型。系統(tǒng)采用了RDF/XML格式表示事件,它既可以直接從事件的原始格式生成事件的數(shù)據(jù)結(jié)構(gòu),也可以先把它轉(zhuǎn)換成RDF圖的結(jié)構(gòu),然后對(duì)圖進(jìn)行深度(或?qū)挾?優(yōu)先搜索遍歷來生成事件的數(shù)據(jù)結(jié)構(gòu)。本專利對(duì)事件的轉(zhuǎn)換是先從RDF/XML文檔中讀入事件并轉(zhuǎn)化為RDF圖模型RDFModel,然后從RDFModel中得到聲明列表StmtList。接著對(duì)StmtList中的每個(gè)聲明Stmt,分別獲取它們的主體Subject、屬性Property和客體Object做以下處理如果Property是"rdf:type",說明這是一個(gè)類型聲明,則根據(jù)Subject從事件數(shù)據(jù)結(jié)構(gòu)的資源類型映射表HMResourceType中得到URI引用列表URIList。對(duì)為空的URIList做處理后,把代表資源節(jié)點(diǎn)類型的URI引用Object加入U(xiǎn)RIList;如果Property不是"rdf:type",則根據(jù)概念模型中的屬性關(guān)系計(jì)算出Property的等價(jià)屬性和袓先屬性,并把Property、等價(jià)屬性和祖先屬性一同加入屬性集Props。然后對(duì)Props中的每個(gè)屬性Prop,根據(jù)Prop從事件數(shù)據(jù)結(jié)構(gòu)的屬性映射表HMProp中得到結(jié)點(diǎn)對(duì)名向量集合VCNPN。對(duì)為空的VCNPN做處理后,把由Subject和Object連接而成的結(jié)點(diǎn)對(duì)名加入VCNPN,從而完成事件的轉(zhuǎn)換。最后根據(jù)事件圖的數(shù)據(jù)結(jié)構(gòu),從合并訂閱圖的索引中找到相關(guān)的訂閱條件進(jìn)行匹配,發(fā)現(xiàn)所有過濾條件被滿足的訂閱。事件匹配算法分為三個(gè)階段第一個(gè)階段根據(jù)訂閱索引結(jié)構(gòu)過濾不相關(guān)的訂閱;第二個(gè)階段根據(jù)匹配服務(wù)器內(nèi)核體系結(jié)構(gòu)設(shè)置并行方案;第三階段對(duì)過濾后的訂閱進(jìn)行匹配,以發(fā)現(xiàn)匹配成功的訂閱。在匹配的第一個(gè)階段,對(duì)事件圖的每個(gè)屬性P,根據(jù)P從合并訂閱圖的屬性映射表麗Prop中得到結(jié)點(diǎn)對(duì)名映射表H麗PN。如果H麗PN不為空,從事件圖的屬性映射表HMProp中得到結(jié)點(diǎn)對(duì)名向量集合VCNPN,并把VCNPN中的每個(gè)NPN同H麗PN中的NPN進(jìn)行比較。如果HMNPN的NPN匹配VCNPN的NPN,則從H麗PN中得到相應(yīng)的訂閱集合對(duì)象SCs。對(duì)SCs中的每個(gè)對(duì)象SC,把事件圖中的節(jié)點(diǎn)標(biāo)識(shí)符追加到其變量綁定表中。接著對(duì)SC的訂閱列表SL中的每個(gè)訂閱S做處理先增加S的計(jì)數(shù)器Counter,然后把S加入到訂閱集合SubSet中。訂閱計(jì)數(shù)器Counter的增加量是對(duì)應(yīng)結(jié)點(diǎn)對(duì)名下的變量表數(shù)目。訂閱集合SubSet中的每個(gè)訂閱至少有一個(gè)三元組在這個(gè)階段的匹配中被覆蓋到。在比較訂閱的節(jié)點(diǎn)標(biāo)識(shí)符是否與事件的節(jié)點(diǎn)標(biāo)識(shí)符匹配時(shí),如果訂閱中的節(jié)點(diǎn)標(biāo)識(shí)符是"*"號(hào),則它與事件的任意節(jié)點(diǎn)標(biāo)識(shí)符匹配,如果訂閱的節(jié)點(diǎn)標(biāo)識(shí)符是URI引用或者文本,則事件的節(jié)點(diǎn)標(biāo)識(shí)符必須是相同的URI引用或者文本才能匹配。對(duì)訂閱集合SubSet中的每個(gè)訂閱S,檢査S的計(jì)數(shù)器值是否大于等于訂閱S的三元組個(gè)數(shù)。如果計(jì)數(shù)器值小于三元組的個(gè)數(shù),說明訂閱S中至少存在一個(gè)三元組沒有被匹配,訂閱必然不與該事件匹配,不必繼續(xù)檢査訂閱的約束是否被滿足,訂閱過濾成功。在匹配的第二階段,根據(jù)內(nèi)核體系結(jié)構(gòu)動(dòng)態(tài)地決定并行度,以及進(jìn)行匹配任務(wù)分割。當(dāng)內(nèi)核數(shù)量只有一個(gè)時(shí),匹配從訂閱索引結(jié)構(gòu)的頭部開始。否則,根據(jù)內(nèi)核數(shù)量PRCNum決定任務(wù)分割,可以分為兩種情況情況一是PRCNum為奇數(shù),把訂閱索引結(jié)構(gòu)長度IndexLT分成PRCNum部分,每個(gè)內(nèi)核從分割索引結(jié)構(gòu)的起始部分開始執(zhí)行比較,直到該部分比較完成;情況二是PRCNum為偶數(shù),把訂閱索引結(jié)構(gòu)長度IndexLT分成PRCNum/2部分,每個(gè)分割索引結(jié)構(gòu)的起始部分和結(jié)尾部分都有一個(gè)內(nèi)核負(fù)責(zé)執(zhí)行,直到前后方向執(zhí)行的內(nèi)核任務(wù)相遇。在匹配的第三階段,按照第二階段所述的并行策略進(jìn)行比較。每個(gè)訂閱都有一個(gè)匹配成功計(jì)數(shù)器CounterSec,初始值為0。當(dāng)成功進(jìn)行一組屬性匹配時(shí),該訂閱對(duì)應(yīng)的CounterSec值加1。最后比較匹配成功計(jì)數(shù)器CounterSec和第一階段中的計(jì)數(shù)器Counter,如果相等,說明事件符合訂閱條件;否則,一定有屬性未滿足訂閱條件。權(quán)利要求1.一種大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法,包括如下步驟1)為訂閱圖建立索引;2)轉(zhuǎn)化事件到特定的數(shù)據(jù)結(jié)構(gòu);3)把事件圖的數(shù)據(jù)結(jié)構(gòu)提交給事件匹配器;4)事件匹配器進(jìn)行事件圖同訂閱圖模式的匹配運(yùn)算,找出匹配的訂閱,由系統(tǒng)把事件分發(fā)給匹配的訂閱者。2.根據(jù)權(quán)利要求1所述的大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法,其特征在于所述步驟1)為節(jié)點(diǎn)以訂閱總圖的方式保存訂閱,每個(gè)訂閱要被合并到訂閱總圖中,過濾不相關(guān)的訂閱條件,同時(shí)維護(hù)訂閱的插入和刪除。3.根據(jù)權(quán)利要求1所述的大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法,其特征在于所述步驟2)為直接從事件的原始格式生成事件的數(shù)據(jù)結(jié)構(gòu),或先把事件的原始格式轉(zhuǎn)換成RDF事件圖的結(jié)構(gòu),然后對(duì)圖進(jìn)行深度或?qū)挾葍?yōu)先搜索遍歷來生成事件的數(shù)據(jù)結(jié)構(gòu)。4.根據(jù)權(quán)利要求3所述的大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法,其特征在于-所述RDF事件圖有三類節(jié)點(diǎn)空節(jié)點(diǎn)、類型節(jié)點(diǎn)和文本節(jié)點(diǎn)。5.根據(jù)權(quán)利要求1所述的大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法,其特征在于所述步驟2)中所述特定的數(shù)據(jù)結(jié)構(gòu)由包含由屬性和節(jié)點(diǎn)對(duì)名的PartA和表示資源節(jié)點(diǎn)的類型PartB兩部分組成。6.根據(jù)權(quán)利要求1所述的大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法,其特征在于所述步驟4)中事件圖同訂閱圖模式的匹配運(yùn)算為三個(gè)階段第一個(gè)階段根據(jù)訂閱索引結(jié)構(gòu)過濾不相關(guān)的訂閱;第二個(gè)階段根據(jù)匹配服務(wù)器內(nèi)核體系結(jié)構(gòu)設(shè)置并行方案;第三階段對(duì)過濾后的訂閱進(jìn)行匹配,以發(fā)現(xiàn)匹配成功的訂閱。全文摘要本發(fā)明涉及Web服務(wù)
技術(shù)領(lǐng)域:
,尤其是指一種大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法。一種大規(guī)模發(fā)布訂閱系統(tǒng)的語義匹配算法,包括如下步驟1)為訂閱圖建立索引;2)轉(zhuǎn)化事件到特定的數(shù)據(jù)結(jié)構(gòu);3)把事件圖的數(shù)據(jù)結(jié)構(gòu)提交給事件匹配器;4)事件匹配器進(jìn)行事件圖同訂閱圖模式的匹配運(yùn)算,找出匹配的訂閱,由系統(tǒng)把事件分發(fā)給匹配的訂閱者。本發(fā)明降低事件與訂閱匹配的時(shí)間,提高事件匹配效率,使得隨著訂閱和發(fā)布事件數(shù)目的增加,事件匹配效率不會(huì)受到嚴(yán)重的影響,系統(tǒng)性能不會(huì)惡化。同時(shí),根據(jù)匹配服務(wù)器的內(nèi)核體系結(jié)構(gòu)自適應(yīng)調(diào)整匹配算法,充分利用多核技術(shù)提高匹配效率。文檔編號(hào)G06F17/30GK101295311SQ20081006226公開日2008年10月29日申請(qǐng)日期2008年6月17日優(yōu)先權(quán)日2008年6月17日發(fā)明者呂春旭,健吳,吳朝暉,尹建偉,瑩李,鄧水光申請(qǐng)人:浙江大學(xué)