欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中并行匹配方法

文檔序號:6579076閱讀:175來源:國知局
專利名稱:一種多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中并行匹配方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種發(fā)布訂閱系統(tǒng)中的并行匹配算法,更具體地,涉及一種多核 架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中高效的并行匹配算法。
背景技術(shù)
隨著Internet的快速普及,極大地改變了分布式系統(tǒng)的規(guī)模,出現(xiàn)了基于 Internet的大規(guī)模分布式計(jì)算的新型計(jì)算環(huán)境?;贗nternet的分布式系統(tǒng)包 含上萬個分布于世界各地的參與者,在系統(tǒng)的整個生命周期中,參與者的位置 和行為都可能會改變。因此Internet計(jì)算既有傳統(tǒng)的分布式計(jì)算的異構(gòu)性等共 同特點(diǎn),也有大規(guī)模、分散控制、動態(tài)性、松耦合等特點(diǎn)。而發(fā)布訂閱系統(tǒng) (publish/subscribe系統(tǒng),簡稱pub/sub)能夠很好的滿足上述要求,因而受到 越來越多的關(guān)注。
Pub/sub系統(tǒng)的匹配問題的本質(zhì)在于,當(dāng)?shù)竭_(dá)一個事件以后,要能快速地找 到所有與之匹配的訂閱條件。從這一點(diǎn)來說,pub/sub系統(tǒng)與數(shù)據(jù)庫相比,數(shù)據(jù) 和査詢(訂閱)條件的角色正好顛倒過來了。在數(shù)據(jù)庫系統(tǒng)中,大量的數(shù)據(jù)被 保持并建立了索引,以便當(dāng)用戶發(fā)起一個查詢條件時,能夠快速到找到所需要 的數(shù)據(jù),而在pub/sub系統(tǒng)中,大量的訂閱條件被保存并建立索引,以便當(dāng)?shù)?達(dá)一個事件時,能夠快速地找到與之匹配的訂閱條件。
基于語義的發(fā)布訂閱系統(tǒng)更加靈活,不必受系統(tǒng)預(yù)先定義的主題的限制, 但是也使系統(tǒng)的設(shè)計(jì)復(fù)雜化, 一個核心問題就是如何實(shí)現(xiàn)大量事件與大量訂閱 之間基于語義的高速匹配,即匹配算法。在基于語義的發(fā)布訂閱系統(tǒng)中,事件的匹配是保證事件通知的高效性和正確性的關(guān)鍵,對于事件匹配的研究是基于語 義的發(fā)布訂閱系統(tǒng)的一個重要方面。
在設(shè)計(jì)發(fā)布訂閱系統(tǒng)的匹配算法時,追求的目標(biāo)有以下三個
(1) 匹配的時間效率
當(dāng)一個事件發(fā)布后,系統(tǒng)需要多長的時間才能知道能找出滿足所有條件的 所有訂閱。事件達(dá)到后,應(yīng)在最短時間內(nèi)將該事件能匹配成功的訂閱找出來, 通知相應(yīng)的訂閱。
(2) 匹配的空間效率
為實(shí)現(xiàn)事件與訂閱的高效匹配,用于維護(hù)訂閱索引結(jié)構(gòu)以及訂閱本身所需 要的空間情況。在大規(guī)模的發(fā)布/訂閱中,訂閱的數(shù)量非常大,不可能在節(jié)點(diǎn)的 內(nèi)存中維護(hù)全部訂閱,特別是對于具有上百萬個訂閱的節(jié)點(diǎn)。因此通常只保持 索引結(jié)構(gòu)和部分訂閱在內(nèi)存中,而把其他訂閱保存到磁盤中。
(3) 訂閱維護(hù)的效率
當(dāng)一個新的客戶加入訂閱或者一個已有的客戶取消訂閱時,系統(tǒng)需要對訂 閱的索引結(jié)構(gòu)進(jìn)行更新,以體現(xiàn)訂閱條件的變化。訂閱維護(hù)的效率是指系統(tǒng)對 訂閱索引結(jié)構(gòu)進(jìn)行更新時所需要的開銷情況,包括時間的開銷和空間的損耗。 就匹配算法而言,訂閱維護(hù)的時間效率則強(qiáng)調(diào)節(jié)點(diǎn)插入訂閱和刪除訂閱所消耗 的時間長短。而在單個節(jié)點(diǎn)上插入和刪除一個訂閱的效率主要取決于訂閱索引 結(jié)構(gòu)的復(fù)雜度。由于一個pub/sub系統(tǒng)中,事件的發(fā)布的頻率要遠(yuǎn)遠(yuǎn)高于客戶 增加和取消的訂閱頻率,所以這是一個次要的設(shè)計(jì)目標(biāo)。

發(fā)明內(nèi)容
發(fā)布訂閱系統(tǒng)的匹配算法的本質(zhì)就是當(dāng)一個事件到達(dá)后,在最快的時間內(nèi),準(zhǔn)確地找出事件滿足的約束條件的所有訂閱。 一種最簡單的方法就是將事 件與每個訂閱逐一比較,這是一種最原始最笨的解決辦法。然而在大規(guī)模分布 式Pub/Sub系統(tǒng)中,發(fā)布者和訂閱者的數(shù)量龐大,系統(tǒng)中的訂閱的數(shù)量數(shù)以百 萬計(jì),與此同時,發(fā)布者發(fā)布的事件的頻率也很頻繁。因此利用訂閱條件之間 的重復(fù)性,減少事件與訂閱直接的匹配次數(shù)。發(fā)布者發(fā)布的事件是頻繁的,系 統(tǒng)中又保存了大量的訂閱,所以首先應(yīng)該將所有訂閱條件組織成一個特定的數(shù) 據(jù)結(jié)構(gòu),這個數(shù)據(jù)結(jié)構(gòu)要充分考慮到訂閱之間的各種關(guān)系(如重復(fù)、包含等), 這個數(shù)據(jù)結(jié)構(gòu)稱為訂閱的索引。
發(fā)布者以RDF/XML語法表示事件,系統(tǒng)把事件轉(zhuǎn)化為RDF事件圖,并提交 到事件匹配器,而訂閱又被保存為訂閱圖模式。 本發(fā)明包括以下幾個部分
(1) 訂閱合并
當(dāng)一個新的訂閱添加進(jìn)來時,系統(tǒng)需要將它整合到訂閱總圖中。節(jié)點(diǎn)以訂 閱總圖的方式保存訂閱。
訂閱的加入分為兩步完成
a. 將訂閱按單個訂閱圖的結(jié)構(gòu)保存到磁盤;
b. 訂閱合并到訂閱總圖數(shù)據(jù)結(jié)構(gòu)中并統(tǒng)計(jì)訂閱的約束條件總數(shù)。在多核架 構(gòu)下,將單個訂閱的每個屬性信息隨機(jī)分配到一個處理單元上,該處理單元將 這個屬性合并到訂閱總圖中,同時修改該訂閱到約束條件數(shù)。對訂閱總圖結(jié)構(gòu) 的修改和對約束條件數(shù)的修改都需要在修改前加鎖,修改后解鎖。
(2) 訂閱退訂
當(dāng)訂閱者向系統(tǒng)提出對以前提交的訂閱進(jìn)行退訂時,系統(tǒng)要將該訂閱刪除, 并且將訂閱總圖中關(guān)于該訂閱的信息也刪除。訂閱的移除算法是訂閱的加入算法的逆過程,主要思路就是在訂閱總圖數(shù)據(jù)結(jié)構(gòu)中,找出所有含有該訂閱的引 用,并判斷該訂閱對于節(jié)點(diǎn)對或者約束條件來說是否為唯一引用,如果是,則 刪除掉引用,并刪除該節(jié)點(diǎn)對或約束條件;否則只刪除引用。査找約束條件的 過程用二分查找法提供査找效率。在多核架構(gòu)下,我們對訂閱總圖結(jié)構(gòu)進(jìn)行近 似平均分組,由多個處理器共同處理。在刪除引用時,也需要對相應(yīng)的結(jié)構(gòu)進(jìn) 行加鎖。
(3) 將事件轉(zhuǎn)化到特定的數(shù)據(jù)結(jié)構(gòu)
當(dāng)一個事件到達(dá)系統(tǒng),系統(tǒng)把將事件與訂閱總圖結(jié)構(gòu)進(jìn)行匹配,找出所有 感興趣的訂閱。事件的交換格式為RDF/XML,因此,系統(tǒng)首先需要把事件轉(zhuǎn)換成 相應(yīng)的數(shù)據(jù)結(jié)構(gòu),然后進(jìn)行匹配。
事件的轉(zhuǎn)化中,我們利用了 RDF API工具Jena,非常方便地實(shí)現(xiàn)RDF/XML 格式和RDF圖之間的轉(zhuǎn)換。因此可以利用Jena API從RDF/XML文檔中讀入事件 生成RDF圖,然后遍歷RDF圖的三元組生成事件的數(shù)據(jù)結(jié)構(gòu)。單個事件的轉(zhuǎn)換 并不復(fù)雜,因而我們隨機(jī)選擇一個處理單元處理。
(4) 事件與訂閱的匹配
事件與訂閱的匹配算法是整個算法的核心,也是整個算法效率的體現(xiàn)。事 件被轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)結(jié)構(gòu)后,系統(tǒng)執(zhí)行匹配算法找出所有被滿足的訂閱。 事件匹配算法分為三個階段
(I) 根據(jù)訂閱索引結(jié)構(gòu)過濾不相關(guān)的訂閱,找出可能匹配成功的訂閱,是語 法層次上的匹配;
(II) 對每個節(jié)點(diǎn)對進(jìn)行約束條件過濾,剔除不滿足的訂閱;
(ni)對第二個階段剩下的訂閱,利用概念模型中等價和繼承關(guān)系等,做進(jìn)
一步的檢査以發(fā)現(xiàn)匹配的訂閱,是語義層次上的匹配。其中涉及到修改數(shù)據(jù)結(jié)構(gòu)中的值時,都要先加鎖,修改后再解鎖。 匹配的第一個階段
將事件E的每個屬性隨機(jī)分配給一個處理單元;
該處理單元將屬性與訂閱總圖結(jié)構(gòu)SM的PartA的HMProp的同屬性的值比 較,并通過類型比較-,
如果節(jié)點(diǎn)對統(tǒng)一,則讀取出其SL結(jié)構(gòu),并將事件的節(jié)點(diǎn)對一一存入單個訂 閱的結(jié)構(gòu)PartA中的變量綁定表VT中。(iv)對每個S的Counter加鎖,對 Counter自增l,然后解鎖,并將這些訂閱加入到集合SubSet中。
節(jié)點(diǎn)對統(tǒng)一如果訂閱中節(jié)點(diǎn)為變量,且變量無類型約束,則其匹配事件 中任意節(jié)點(diǎn),如果變量有類型約束,則匹配和其類型相同節(jié)點(diǎn)。如果訂閱中節(jié) 點(diǎn)為URI引用(URIref)或文本,則該事件中與其匹配節(jié)點(diǎn)必須為相同的URI 引用或文本。
匹配的第二個階段-
對E的每個節(jié)點(diǎn)對NP的賓語Object,如果它是Literal,利用它的URIref 類型,在SM的PartB部分找出對應(yīng)的OPCL結(jié)構(gòu);
對0PCL結(jié)構(gòu)中的每個ConstraintList中的每個節(jié)點(diǎn)ConstraintNode進(jìn)行 check(由于鏈表的節(jié)點(diǎn)按照覆蓋規(guī)則存放,所以利用二分査找法査找鏈表, 一旦 找到一個不能滿足條件的訂閱,將它從SubSet中去掉,并且鏈表后面的結(jié)點(diǎn)也 都不滿足),找出不能滿足的訂閱,將它從SubSet中刪除。
匹配的第三個階段-
第二個階段結(jié)束后,對集合SubSet中的每個訂閱S,檢査S的計(jì)數(shù)器值是 否大于等于訂閱S的三元組個數(shù)。如果計(jì)數(shù)器值小于三元組的個數(shù),說明訂閱S 中至少存在一個三元組沒有被匹配,則訂閱必然不與該事件匹配,不必繼續(xù)檢查訂閱的約束是否被滿足。
遍歷計(jì)數(shù)器值等于三元組個數(shù)的訂閱的每張變量表《,拷貝相應(yīng)變量表集合 「7i'中變量綁定表的內(nèi)容到7;中,同時對s中的變量表進(jìn)行自然連接(natural
join)操作,把自然連接操作的結(jié)果存放在表"中。
利用推理機(jī)制,對變量進(jìn)行類型檢査TypeCheck,類型檢査需要比較變量的
值與變量的類型是否匹配,返回結(jié)果Result, Result為true,則匹配成功,將
訂閱S加入到ResultSet中。


圖l是本發(fā)明的系統(tǒng)模型圖2是本發(fā)明事件與訂閱匹配的整體過程圖; 圖3是本發(fā)明訂閱Sl, S2的結(jié)構(gòu)圖; 圖4是本發(fā)明訂閱Sl的數(shù)據(jù)結(jié)構(gòu)圖5是本發(fā)明S1、 S2合并后的結(jié)構(gòu)圖; 圖6是本發(fā)明S1、 S2合并后的數(shù)據(jù)結(jié)構(gòu)圖; 圖7是本發(fā)明0PCL數(shù)據(jù)結(jié)構(gòu)圖; 圖8是本發(fā)明事件的數(shù)據(jù)結(jié)構(gòu)圖9是本發(fā)明事件與訂閱匹配的流程圖,(a)為第一階段;(b)為第二階段;
(c)為第三階段。
具體實(shí)施例方式
下面結(jié)合附圖具體闡述本發(fā)明在一種多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)
中的并行匹配算法。圖1是本發(fā)明的系統(tǒng)模型圖;圖2是本發(fā)明事件與訂閱匹配的整體過程圖;總體顯示了本發(fā)明并行匹配算法的概念。本發(fā)明的并行匹配 算法具體包括如下步驟(1) 訂閱合并如圖3至圖6所示,當(dāng)一個新的訂閱添加進(jìn)來時,系統(tǒng)需要將它整合到訂 閱總圖中。節(jié)點(diǎn)以訂閱總圖的方式保存訂閱。 訂閱的加入分為兩步完成a. 將訂閱按單個訂閱圖的結(jié)構(gòu)保存到磁盤;b. 訂閱合并到訂閱總圖數(shù)據(jù)結(jié)構(gòu)中并統(tǒng)計(jì)訂閱的約束條件總數(shù)。在多核架 構(gòu)下,將單個訂閱的每個屬性信息隨機(jī)分配到一個處理單元上,該處理單元將這個屬性合并到訂閱總圖中,同時修改該訂閱到約束條件數(shù)。對訂閱總圖結(jié)構(gòu) 的修改和對約束條件數(shù)的修改都需要在修改前加鎖,修改后解鎖。(2) 訂閱退訂當(dāng)訂閱者向系統(tǒng)提出對以前提交的訂閱進(jìn)行退訂時,系統(tǒng)要將該訂閱刪除, 并且將訂閱總圖中關(guān)于該訂閱的信息也刪除。訂閱的移除算法是訂閱的加入算 法的逆過程,主要思路就是在訂閱總圖數(shù)據(jù)結(jié)構(gòu)中,找出所有含有該訂閱的引 用,并判斷該訂閱對于節(jié)點(diǎn)對或者約束條件來說是否為唯一引用,如果是,則 刪除掉引用,并刪除該節(jié)點(diǎn)對或約束條件;否則只刪除引用。査找約束條件的 過程用二分査找法提供査找效率。在多核架構(gòu)下,我們對訂閱總圖結(jié)構(gòu)進(jìn)行近 似平均分組,由多個處理器共同處理。在刪除引用時,也需要對相應(yīng)的結(jié)構(gòu)進(jìn) 行加鎖。(3) 將事件轉(zhuǎn)化到特定的數(shù)據(jù)結(jié)構(gòu)當(dāng)一個事件到達(dá)系統(tǒng),系統(tǒng)把將事件與訂閱總圖結(jié)構(gòu)進(jìn)行匹配,找出所有 感興趣的訂閱。事件的交換格式為RDF/XML,因此,系統(tǒng)首先需要把事件轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)結(jié)構(gòu)(如圖8所示),然后進(jìn)行匹配。
事件的轉(zhuǎn)化中,我們利用了 RDF API工具Jena,非常方便地實(shí)現(xiàn)RDF/XML 格式和RDF圖之間的轉(zhuǎn)換。因此可以利用Jena API從RDF/XML文檔中讀入事件 生成RDF圖,然后遍歷RDF圖的三元組生成事件的數(shù)據(jù)結(jié)構(gòu)。單個事件的轉(zhuǎn)換 并不復(fù)雜,因而我們隨機(jī)選擇一個處理單元處理。
(4)事件與訂閱的匹配
事件與訂閱的匹配算法是整個算法的核心,也是整個算法效率的體現(xiàn)。事 件被轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)結(jié)構(gòu)后,系統(tǒng)執(zhí)行匹配算法找出所有被滿足的訂閱。 如圖9所示,事件匹配算法分為三個階段
(I) 根據(jù)訂閱索引結(jié)構(gòu)過濾不相關(guān)的訂閱,找出可能匹配成功的訂閱,是語 法層次上的匹配;
(II) 對每個節(jié)點(diǎn)對進(jìn)行約束條件過濾,剔除不滿足的訂閱;
(ni)對第二個階段剩下的訂閱,利用概念模型中等價和繼承關(guān)系等,做進(jìn)
一步的檢査以發(fā)現(xiàn)匹配的訂閱,是語義層次上的匹配。其中涉及到修改數(shù)據(jù)結(jié) 構(gòu)中的值時,都要先加鎖,修改后再解鎖。
匹配的第一個階段
將事件E的每個屬性隨機(jī)分配給一個處理單元;
該處理單元將屬性與訂閱總圖結(jié)構(gòu)SM的PartA的HMProp的同屬性的值比 較,并通過類型比較;
如果節(jié)點(diǎn)對統(tǒng)一,則讀取出其SL結(jié)構(gòu),并將事件的節(jié)點(diǎn)對一一存入單個訂 閱的結(jié)構(gòu)PartA中的變量綁定表VT中。(iv)對每個S的Counter加鎖,對 Counter自增l,然后解鎖,并將這些訂閱加入到集合SubSet中。
節(jié)點(diǎn)對統(tǒng)一如果訂閱中節(jié)點(diǎn)為變量,且變量無類型約束,則其匹配事件中任意節(jié)點(diǎn),如果變量有類型約束,則匹配和其類型相同節(jié)點(diǎn)。如果訂閱中節(jié)點(diǎn)為URI引用(URIref)或文本,則該事件中與其匹配節(jié)點(diǎn)必須為相同的URI 引用或文本。匹配的第二個階段對E的每個節(jié)點(diǎn)對NP的賓語Object,如果它是Literal,利用它的URIref 類型,在SM的PartB部分找出對應(yīng)的OPCL結(jié)構(gòu)(如圖7所示);對0PCL結(jié)構(gòu)中的每個ConstraintList中的每個節(jié)點(diǎn)ConstraintNode進(jìn)行 check(由于鏈表的節(jié)點(diǎn)按照覆蓋規(guī)則存放,所以利用二分查找法査找鏈表, 一旦 找到一個不能滿足條件的訂閱,將它從SubSet中去掉,并且鏈表后面的結(jié)點(diǎn)也 都不滿足),找出不能滿足的訂閱,將它從SubSet中刪除。匹配的第三個階段第二個階段結(jié)束后,對集合SubSet中的每個訂閱S,檢查S的計(jì)數(shù)器值是 否大于等于訂閱^的三元組個數(shù)。如果計(jì)數(shù)器值小于三元組的個數(shù),說明訂閱^ 中至少存在一個三元組沒有被匹配,則訂閱必然不與該事件匹配,不必繼續(xù)檢 査訂閱的約束是否被滿足。遍歷計(jì)數(shù)器值等于三元組個數(shù)的訂閱的每張變量表、拷貝相應(yīng)變量表集合 f^'中變量綁定表的內(nèi)容到7;中,同時對s中的變量表進(jìn)行自然連接(natural join)操作,把自然連接操作的結(jié)果存放在表r中。利用推理機(jī)制,對變量進(jìn)行類型檢査TypeCheck,類型檢查需要比較變量的值與 變量的類型是否匹配,返回結(jié)果Result, Result為true,則匹配成功,將訂閱 S加入到ResultSet中。
權(quán)利要求
1.一種多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹配算法,所述系統(tǒng)將事件轉(zhuǎn)化為RDF事件圖,并將訂閱保存在訂閱總圖中,其特征在于,所述匹配算法包括以下階段訂閱合并,當(dāng)一個新的訂閱添加到所述系統(tǒng)中的時候,所述系統(tǒng)將所述新添加的訂閱整合到訂閱總圖中;訂閱退訂,當(dāng)訂閱者向所述系統(tǒng)提出對以前提交的訂閱進(jìn)行退訂時,所述系統(tǒng)要將所述退訂的訂閱刪除,并且將訂閱總圖中關(guān)于所述退訂訂閱的信息也刪除;將事件轉(zhuǎn)化到特定的數(shù)據(jù)結(jié)構(gòu),當(dāng)一個事件到達(dá)所述系統(tǒng),所述系統(tǒng)需要把事件轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)結(jié)構(gòu),然后進(jìn)行匹配;事件與訂閱的匹配,事件被轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)結(jié)構(gòu)后,系統(tǒng)執(zhí)行相應(yīng)算法找出所有被滿足的訂閱。
2. 如權(quán)利要求1所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹配算 法,其中所述系統(tǒng)包括多個處理器。
3.如權(quán)利要求1或2所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行 匹配算法,所述訂閱合并分為以下兩步完成a. 將訂閱按單個訂閱圖的結(jié)構(gòu)保存到磁盤;b. 訂閱合并到訂閱總圖數(shù)據(jù)結(jié)構(gòu)中并統(tǒng)計(jì)訂閱的約束條件總數(shù),在多核架 構(gòu)下,將單個訂閱的每個屬性信息隨機(jī)分配到一個處理單元上,該分配的處理單元將這個屬性合并到訂閱總圖中,同時修改該訂閱的約束條件數(shù),對訂閱總 圖結(jié)構(gòu)的修改和對約束條件數(shù)的修改要在修改前加鎖,修改后解鎖。
4.如權(quán)利要求1或2所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹 配算法,對于所述訂閱退訂的處理,在訂閱總圖數(shù)據(jù)結(jié)構(gòu)中,找出所有含有所述退訂 的訂閱的引用,并判斷所述退訂的訂閱對于節(jié)點(diǎn)對或者約束條件來說是否為唯 一引用,如果是,則刪除掉引用,并刪除該節(jié)點(diǎn)對或約束條件;否則只刪除引 用。
5. 如權(quán)利要求1或2所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹 配算法,對于所述將事件轉(zhuǎn)化到特定的數(shù)據(jù)結(jié)構(gòu)的處理,事件的交換格式為RDF/XML, 在事件的轉(zhuǎn)化中,利用RDF API工具Jena,實(shí)現(xiàn)RDF/XML格式和RDF圖之間的轉(zhuǎn)換。
6. 如權(quán)利要求1或2所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹 配算法,所述事件與訂閱的匹配分為以下三個階段第一階段,根據(jù)訂閱索引結(jié)構(gòu)過濾不相關(guān)的訂閱,找出可能匹配成功的訂閱,完成語法層次上的匹配;第二階段,對每個節(jié)點(diǎn)對進(jìn)行約束條件過濾,剔除不滿足的訂閱; 第三階段,對第二階段剩下的訂閱,利用概念模型中等價和繼承關(guān)系,做進(jìn)一歩的檢查以發(fā)現(xiàn)匹配的訂閱,完成語義層次上的匹配。
7. 如權(quán)利要求6所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹配算 法,其中涉及到修改數(shù)據(jù)結(jié)構(gòu)中的值時,均要先加鎖,修改后再解鎖。
8.如權(quán)利要求6所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹配 算法,所述第一階段包括以下步驟將事件的每個屬性隨機(jī)分配給一個處理單元;該分配的處理單元將屬性與訂閱總圖結(jié)構(gòu)的PartA的HMProp的同屬性的值 比較,并通過類型比較;如果節(jié)點(diǎn)對統(tǒng)一,則讀取出其SL結(jié)構(gòu),并將事件的節(jié)點(diǎn)對一一存入單個訂 閱的結(jié)構(gòu)PartA中的變量綁定表VT中,對每個訂閱的Counter加鎖,對Counter 自增`l,然后解鎖,并將這些訂閱加入到集合SubSet中,節(jié)點(diǎn)對統(tǒng)一如果訂閱中節(jié)點(diǎn)為變量,且變量無類型約束,則其匹配事件中 任意節(jié)點(diǎn),如果變量有類型約束,則匹配和其類型相同節(jié)點(diǎn),如果訂閱中節(jié)點(diǎn) 為URI引用(URIref)或文本,則該事件中與其匹配節(jié)點(diǎn)必須為相同的URI引 用或文本。
9. 如權(quán)利要求6所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹配算 法,所述第二階段包括以下步驟對時間的每個節(jié)點(diǎn)對NP的賓語Object,如果它是Literal,利用它的URIref 類型,在SM的PartB部分找出對應(yīng)的OPCL結(jié)構(gòu);對OPCL結(jié)構(gòu)中的每個ConstraintList中的每個節(jié)點(diǎn)ConstraintNode進(jìn)行 檢査,找出不能滿足的訂閱,將它從SubSet中刪除。
10. 如權(quán)利要求6所述的多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中的并行匹配 算法,所述第三階段包括以下步驟第二個階段結(jié)朿后,對集合SubSet中的每個訂閱S,檢査訂閱S的計(jì)數(shù)器 值是否大于等于訂閱S的三元組個數(shù),如果計(jì)數(shù)器值小于三元組的個數(shù),說明訂 閱S中至少存在一個三元組沒有被匹配,則訂閱S必然不與該事件匹配,不必 繼續(xù)檢査訂閱的約束是否被滿足;遍歷計(jì)數(shù)器值等于三元組個數(shù)的訂閱的每張變量表,拷貝相應(yīng)變量表集合 中變量綁定表的內(nèi)容到所述變量表中,同時對S中的變量表進(jìn)行自然連接操作, 把自然連接操作的結(jié)果存放在變量表中;利用推理機(jī)制,對變量進(jìn)行類型檢查,類型檢查需要比較變量的值與變量的類型是否匹配,返回結(jié)果,結(jié)果為true,則匹配成功,將訂閱加入到ResultSet中;對ResultSet進(jìn)行解鎖,完成所述并行匹配。
全文摘要
本發(fā)明公開了一種多核架構(gòu)下基于語義的發(fā)布訂閱系統(tǒng)中高效的并行匹配算法。其包括(1)訂閱合并、(2)訂閱退訂、(3)將事件轉(zhuǎn)化到特定的數(shù)據(jù)結(jié)構(gòu)、(4)事件與訂閱的匹配。該算法提高了匹配的時間效率和空間效率,以及訂閱的維護(hù)效率,保證了事件通知的高效性和正確性。
文檔編號G06F17/30GK101667202SQ200910153370
公開日2010年3月10日 申請日期2009年10月19日 優(yōu)先權(quán)日2009年10月19日
發(fā)明者健 吳, 吳朝暉, 尹建偉, 瑩 李, 勇 蘇, 鄧水光 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
玛曲县| 崇信县| 浙江省| 宜良县| 察雅县| 苍山县| 赤水市| 肥西县| 肇东市| 新野县| 抚顺县| 巩义市| 广安市| 青海省| 汝南县| 盖州市| 大名县| 阳原县| 农安县| 宁晋县| 乌恰县| 北海市| 梧州市| 凤冈县| 冀州市| 阳江市| 津南区| 益阳市| 新营市| 肥城市| 洪雅县| 崇文区| 宁明县| 沾益县| 五峰| 修水县| 柯坪县| 长葛市| 阳朔县| 伽师县| 富民县|