專利名稱:內容節點雙向聚類的系統、裝置及方法
技術領域:
本發明涉及通信領域,尤其涉及一種內容節點雙向聚類的系統、裝置及方法。
背景技術:
對等網絡P2P (Peer-to-Peer)提供了一種分布式內容共享的有效途徑,可以根據 所需內容的關鍵屬性,找到所需的內容,并可以獲得擁有所需內容的一組節點。但隨著用戶 的不斷增加,網絡中的節點數、內容數以及內容的副本數也在不斷增加,內容查找和副本管 理的復雜度也在加大。目前主要通過降低內容查找的通信量,縮短內容查找所需的時間,來 優化分布式網絡的拓撲結構。比如基于DHT (Distributed Hash Table,分布式哈希表)結 構的Chord、 Pastry等P2P網絡結構,還有基于混合結構的P2P網絡,如SWOP,這些模型都 通過構建額外的路由表優化拓撲,提高內容查找的效率。 例如,現有方案一中,基于語義或本體論的模型首先通過語義或本體論的方式對 內容或興趣進行劃分,構建成一個語義網絡或一個本體樹,預定義兩點之間的關聯和邊的 權重,或者直接使用已有的詞典或本體樹,并將這些知識存儲在所有的節點上或放置在一 個所有節點都可以查詢的位置。這樣每個節點都可以根據這些知識對內容和節點的興趣 進行描述和關聯,并計算節點之間的關聯度,然后根據興趣形成聚類。在這種聚類結構中, 由于關聯的內容一般位于相同的聚類之內,所以這種方式一定程度可以提高內容查找的效 率,特別是關聯內容查找的效率。 又如,現有方案二中,基于行為或歷史信息的方式使用用戶的行為或歷史記錄進 行分析,獲取內容和節點之間的關聯,在此基礎上形成聚類,加速查找。 在實現本發明的過程中,發明人發現現有技術至少存在以下缺陷現有的方案雖 然在一定程度上提高了內容查找的效率,但并沒有充分利用用戶之間以及內容之間的固有 關聯,在動態變化的網絡和不斷更新的內容下,內容的查找效率依然不高,也無法適應多副 本的應用環境。
發明內容
有鑒于此,有必要提供一種內容節點雙向聚類的系統、裝置及方法,以便在當前網
絡規模不斷增加的情況下,仍能進行高效的內容查詢、關聯列表更新或內容更新。
本發明實施例提供一種內容節點雙向聚類系統,包括節點層和內容層;所述節點
層中,請求同一內容的節點之間通過節點對內容的查詢形成節點松散聚類;所述內容層中,
被同一個節點請求的內容之間根據節點的需求形成內容松散聚類。 本發明實施例還提供一種查詢獲取內容的方法,包括 請求節點向自身關聯列表中的節點發送對某內容的第一查詢請求; 所述接收所述第一查詢請求的第一 目標節點根據所述第一查詢請求進行處理; 如果所述請求節點接收到所述第一目標節點反饋查詢成功,則為所述查詢的內容
建立一個臨時的下載地址列表并下載所述查詢的內容;
6
如果所述請求節點接收到所述第一目標節點反饋查詢失敗,則向自身當前鄰居中
距離所述第一目標節點鍵值最近的節點發送第二查詢請求。 本發明實施例還提供一種關聯列表更新的方法,包括 獲取關聯列表中某節點當前的內容列表; 計算請求節點與所述關聯列表中某節點的關聯相似度; 根據計算得到的關聯相似度更新請求節點的關聯列表。 本發明實施例還提供一種內容更新的方法,包括 請求內容更新的節點向產生和發布內容的節點發送更新請求; 所述產生和發布內容的節點對接收的更新請求進行審核,并根據審核結果進行處理; 所述產生和發布內容的節點在更新后發布更新結果和新的版本號。
本發明實施例還提供一種查詢獲取內容的系統,包括 請求節點,用于向關聯列表中的第一目標節點發送第一查詢請求、在接收到所述第一查詢請求查詢失敗的反饋時向鍵值距離所述第一目標節點鍵值最近的第二目標節點發送第二查詢請求,以及根據所述第一或第二目標節點反饋的內容列表為查詢的內容建立臨時的下載地址列表并下載所述內容; 目標節點,包括第一目標節點或第二目標節點,分別用于接收所述第一或第二查詢請求,并根據所述查詢請求進行處理。 本發明實施例還提供一種關聯列表更新的裝置,包括 獲取單元,用于獲取關聯列表中某節點當前的內容列表; 計算單元,用于計算請求節點與所述關聯列表中某節點的關聯相似度; 更新單元,用于根據計算得到的關聯相似度更新請求節點的關聯列表。 通過本發明實施例提供的技術方案,在當前網絡規模不斷增加的情況下,通過第
一查詢提高關聯內容的查詢效率,增加返回的滿足查詢的節點數;并通過第二查詢提高普
通內容的查詢效率,并保證在第一查詢失敗時至少能返回一個滿足查詢的節點,這樣使得
即使用戶的關聯內容集處于動態變化之中,也能夠迅速的找到符合查詢條件的節點。此外,
能夠適合當前多內容副本的應用環境,能在動態變化的網絡和不斷更新的內容下,保證副
本的一致性和有效性。
圖1是本發明實施例一一種內容節點雙向聚類的系統的原理示意2是本發明實施例一中一個內容的關聯節點之間關系示意圖;圖3是本發明實施例一中關聯列表的數據結構示意圖;圖4是本發明實施例一中節點的數據結構示意圖;圖5是本發明實施例二一種查詢獲取內容的方法的具體流程示意6是本發明實施例二中查詢請求的數據結構示意圖;圖7是本發明實施例三一種關聯列表更新的方法的流程示意圖;圖8是本發明實施例三中獲取當前內容列表的具體流程示意圖;圖9是本發明實施例四一種內容更新的方法的流程示意 圖10是本發明實施例五一種查詢獲取內容的系統的結構示意 圖11是本發明實施例六一種關聯列表更新的裝置的結構示意圖。
具體實施例方式
在實際網絡中,用戶的需求是有趨向性的,用戶在一段時間內頻繁需求的內容可以視為用戶在該時刻的關聯內容集,也就是節點的興趣集。這些內容彼此之間會存在相似性或其他的關聯,可以視為一個內容間的松散聚類。而同一內容也會被需求它的用戶緩存,從而在網絡中擁有很多副本。存儲了這些副本的用戶由于請求了同一內容,所以他們的關聯內容集在不同程度上有所交叉,從而在這些用戶之間形成了關聯,可以視為一個節點間的松散聚類。這兩種聚類分別描述了內容之間的關聯和用戶之間的關聯,而內容和用戶之間的需求關系則在這兩種松散聚類之間建立了連接。 內容是存儲在節點之上,內容之間的松散聚類客觀上形成了存儲內容節點之間的
松散聚類,這些節點之間的關聯是建立在關聯內容集相似的基礎上。因此可以利用這種關
聯提高內容查找的效率。另一方面,節點間的松散聚類是建立在對同一內容的需求之上,這
個聚類可以被用來對內容的副本進行管理,在盡量低的通信量之下保證內容的更新發布以及副本的有效性和一致性。 以下結合附圖對本發明實施例進行詳細描述。 如圖1所示,本發明實施例一內容節點雙向聚類系統包括節點層和內容層,所述節點層中,請求同一內容的節點之間通過節點對內容的查詢形成節點松散聚類;所述內容層中,被同一個節點請求的內容之間根據節點的需求形成內容松散聚類。例如,節點P1,P2,P3, P4, P6形成了針對內容A的節點松散聚類;而內容A, D, E則是由節點P4的需求而形成的內容松散聚類。 節點之間采用CAN(Content-Addressable Network,內容尋址網絡)路由構建了 d維空間;而內容則根據DHT機制分配到鍵值最接近的節點之上。 每個內容通過DHT映射到一個鍵值最接近的節點上,這個節點稱為該內容的CAN
負責節點(CAN Peer:CP),如圖l中的節點Pl是內容A的CP。 CP本身并不負責內容的管
理和更新,而是作為一個備份節點保存內容的信息,并作為查詢時的索引節點。 每個內容可能會被其他節點需要,這些節點對內容進行訪問,存儲了內容的副本,
并可能對內容進行操作或更新,這些節點稱為該內容的復制節點(R印lica Peer :RP),如圖
1中,節點P2、P3、P4、P6都是內容A的RP。 RP之間通過建立層次結構完成對內容以及副本
的維護和更新。RP分為三類虛擬服務器(Virtual Server :VS)、強一致節點(Consistent
R印lica Peer :CRP)、弱一至文節點(Inconsistent R印lica Peer:IRP)。 VS是產生和發布內容的節點,負責對內容進行更新并發布。VS和CP保持雙向連
接,并周期性的探測存活。 CRP是和VS保持強一致的節點,CRP上存儲的內容副本一直保持最新的版本,在內容更新后,CRP會接收到VS發布的更新信息。CRP和VS之間保持雙向連接,并保持定時器,在一定周期內若沒有交互信息,則會主動發送信息探測存活。 IRP是和VS保持弱一致的節點,IRP上存儲的副本可能是陳舊的版本,在內容發生更新后,不會接收到VS發布的更新信息。在IRP使用內容前,需要先向VS驗證版本信息來
8保持內容的一致性。 本發明實施例根據節點對內容的需求以及歷史信息,在內容之間以及節點之間建 立了兩種松散聚類結構,并利用節點對內容的需求在兩種松散聚類之間建立了連接,從而 形成了內容節點的雙向聚類拓撲結構。在這個雙向松散聚類拓撲下,具有相似關聯內容集 的節點之間以較大的概率建立連接。本發明實施例通過利用這些連接提高了內容查找的能 力范圍和響應速度,特別是關聯內容的查詢效率。此外,本發明實施例還可通過利用請求同 一個內容的節點之間形成的松散聚類對副本進行管理,在內容更新的情況下保證了副本的 一致性和有效性。 同一內容的關聯節點之間的關系如圖2所示,節點根據自身的需求和性能決定是 成為CRP還是IRP。 CP和VS之間、VS和CRP之間的連接是雙向的,VS和IRP之間的連接是 單向的,從IRP指向VS。此外,網絡中還隨機存在著若干在查詢路由時建立的由IRP或CRP 發起的指向CRP的單向連接。這些連接都是遠程連接。 由于VS、 CRP、 IRP這三種節點存儲內容或其副本這個行為都是建立在節點本身對 這個內容的需求之上,所以這些節點的關聯內容集包含了這個內容,即它們的興趣具有相 似性。 可以使用節點上存儲的內容作為節點的關聯內容集,用兩個節點共同存儲的內容 數表示這兩個節點當前的關聯內容相似度,即 節點的關聯內容相似度=兩個節點重復存儲的內容個數 (1) 每個節點保持一個關聯列表,存儲了和自己當前關聯內容相似度最高的Nm個節
點。在關聯列表中,對于每個節點都記載了該節點的標識符、IP地址、關聯內容相似度、該節
點關聯內容相似度最近一次更新的時間、該節點擁有的內容總數、最近一段時間通過該節
點進行路由成功召回結果的次數以及節點的綜合性能。關聯列表的數據結構如圖3所示。 關聯列表中節點的綜合性能和節點當前的關聯內容相似度、擁有的內容總數、以
及最近一段時間滿足查詢的次數相關。節點當前的關聯內容相似度越高、擁有的內容數越
多、最近一段時間滿足查詢的次數越多,則該節點在以后的查詢中能夠返回所需內容的可
能性越大,則該節點當前的綜合性能越好。 可以使用下列公式來計算節點的綜合性能 <formula>formula see original document page 9</formula>
其中Pf(Px)是節點Px的綜合性能,Ns(P》是節點Px和節點自身的關聯內容相似 度(由公式(1)可得),NT(PX)是節點Px擁有的內容數,NK(PX)是節點Px在最近一段時間 滿足查詢的次數。a 、 P 、 x是人工設置的常量。應當理解,如果調整上述三個因素(節點 關聯內容相似度、擁有的內容數,以及最近一段時間滿足查詢的次數)之間的權重比例,或 選擇其中一到兩個因素使用,作為綜合性能計算公式,原理仍是相同,仍然屬于本發明的保 護范圍。 對任意普通節點而言,只要它所負責的鍵值空間內有內容存在,它即作為CP負責 這些內容。當它需要其他內容并需要持續保持這些內容時,它將成為內容的RP。所以,一個 普通節點對于相關內容有且僅有以下CP、VS、CRP、 IRP這些身份中的一個。
普通節點中存儲的信息可以包括自身的鍵值、鍵值空間范圍、CAN路由表、需求 內容表和關聯列表,其中
CAN路由表由CAN協議產生,記錄所有與本節點邏輯鄰接的節點的鍵值和地址信 息; 需求內容表記錄了該節點所需的所有內容的鍵值,內容的具體信息,該內容所在 的CP和VS的鍵值和地址信息; 關聯列表存儲了和自己關聯內容相似度最高的Nm個節點的相關屬性。
本發明實施例二 由實施例一可知,節點上不僅在CAN路由表中存儲了 CAN鄰居節點的信息,還因為
節點對內容的需求而在需求內容列表中存儲了一些遠處節點的信息,此外在關聯列表中還
存儲了 一些和自身關聯內容相似度較高的節點。 節點對內容的查詢可以分為3類 1、一個節點查詢一個指定內容; 2、一個節點查詢兩個相互關聯的內容; 3、兩個節點查詢同一個內容; 本實施例利用實施例一所述的內容節點雙向聚類系統,采用"二元查詢"實現對內 容的查找和獲取。二元查詢包括(l)第一查詢即向位于關聯列表中的節點并行的發送 "一步"查詢作為"關聯查詢",用于加速關聯內容查詢效率,增加返回的滿足查詢的節點數, 從而以較高的概率實現了第2類、第3類查詢;(2)第二查詢即通過將遠程連接和CAN路
由相結合作為小世界模型中的"捷徑",采用"貪心查詢",提高普通內容的查詢效率,從而保 證了第1類查詢的高效性,并保證在關聯查詢失敗時至少能返回一個滿足查詢的節點。 具體的,關聯查詢是并發的向關聯列表中的若干個節點發送查詢信息,關聯列表 中的節點在接收到消息之后會檢索自身存儲的內容如果有滿足查詢的內容則返回;如果 沒有,則直接丟棄查詢信息,而不會進一步轉發。由于關聯列表中的節點和查詢節點自身在 關聯內容集上具有相似性,所以關聯列表中的節點會以較高概率擁有滿足查詢的內容,通 過查詢關聯列表中的節點可以加速關聯內容的查詢速度,并可以在較短的時間內返回盡量 多的滿足查詢請求的節點。而在關聯查詢失敗時,不繼續轉發信息查詢,則可以避免查詢信 息在網絡中呈指數增長。此外,由于關聯列表中節點的關聯列表所存儲的節點和查詢節點 的關聯內容相似度會進一步降低,再繼續轉發查詢信息,成功的概率只會進一步降低,所以 關聯查詢信息在查詢失敗的情況下不會被轉發。 貪心查詢是從CAN路由表中的節點信息以及需求列表中的節點信息中,選擇節點 鍵值距離目標鍵值最近的節點發送貪心查詢請求,如此反復,直到找到擁有滿足查詢請求 內容的節點。這種查找過程不同于CAN在鍵值空間連續的逼近目的地,而是通過利用網絡 中的遠程連接作為"捷徑"的跳躍式逼近,可以在最初一兩跳(hop)內迅速地跳到目標節點 附近,然后再通過局部的精確定位找到目標節點。 請參照圖5所示,本實施例查詢獲取內容的方法的具體流程如下 步驟51,請求節點PA向關聯列表中性能較好的NK個節點發送第一查詢請求——
關聯查詢請求,如圖6所示,查詢請求包括目標內容的鍵值,請求節點標識符,請求節點生
成的隨機數,請求節點IP地址,關聯路由和貪心路由的標識位。可以通過一個布爾值標識
一個查詢請求是關聯路由還是貪心路由。其中,請求節點標識符和請求節點生成的隨機數
可以唯一標示一個查詢請求。
步驟52,接收所述第一查詢請求的節點,根據所述查詢請求進行處理。 每個節點擁有一個請求緩存棧,用于暫存最近一段時間接收到的查詢請求。該請
求緩存棧記錄了查詢請求的請求節點標識符和請求節點生成的隨機數,根據先進先出FIFO
原則替換。 進一步的,步驟52具體包括 步驟521,當一個節點接收到查詢請求之后,首先根據查詢請求中的請求節點標識 符以及請求節點生成的隨機數檢索請求緩存棧,判斷自身是否已經接收過這個查詢請求 如果已經接收過,則丟棄;否則,轉入步驟522。 步驟522,所述節點查看自身的需求內容列表中是否有節點PA所查詢的內容如 果有滿足查詢的內容,則轉入步驟523 ;否則轉入步驟524。 步驟523,所述節點擁有滿足查詢的內容,根據自身相對于所述內容的身份決定發 送的信息 a、如果是CP或CRP,則自身存儲的內容本身就是最新的版本,可以直接將自身的 地址信息以及所述內容VS的地址作為可用下載地址,并攜帶上自身當前的內容列表發送 給節點PA ; b、如果是VS,則直接將自身的地址信息以及存儲的所述內容所有CRP地址作為可 用下載地址,并攜帶上自身當前的內容列表發送給節點PA ; c、如果是IRP,由于自身存儲的內容可能不是最新的版本,則將所述內容的VS地
址作為可用下載地址,并攜帶上自身當前的內容列表發送給節點PA。 步驟524,所述節點沒有滿足查詢的內容,則直接丟棄查詢信息,反饋查詢失敗。
步驟53,如果節點PA接收到查詢成功的反饋,則為所述查詢的內容建立一個臨時 的下載地址列表并下載內容。 節點PA在接收到其他節點的反饋信息后,將反饋信息中的可用下載地址存儲到下 載地址列表中。下載地址列表中已經包含的地址,不會重復存儲。此后,節點PJ吏用下載 地址列表中的地址建立連接,開始下載。本實施例中節點PA接收到查詢成功的反饋即是指 接收到反饋的所查詢內容的可用下載地址。 CP、 VS或CRP作為反饋節點向請求節點返回查詢信息時,會主動捎帶自身的內容 列表,如果CP、 VS或CRP并不在請求節點PA的關聯列表中,則請求節點PA將計算反饋節點 綜合性能,如果反饋節點的綜合性能優于當前關聯列表中綜合性能最差的節點,則用反饋 節點替換該節點。 步驟54,如果節點PA接收到查詢失敗的反饋,則請求節點PA將向當前鄰居中鍵值 距離目標鍵值最近的節點發出第二查詢請求——貪心查詢請求。 例如上述步驟524中,該節點沒有滿足查詢的內容,則向節點PA反饋查詢失敗,此 時節點PA將再發起第二查詢請求,以保障第一查詢請求失敗時能返回至少一個滿足查詢的 節點。 步驟55,接收所述查詢請求的節點,根據所述查詢請求進行處理。
與步驟52類似,步驟55具體包括 步驟551,當一個節點接收到查詢請求之后,首先根據查詢請求中的請求節點標識 符以及請求節點生成的隨機數檢索請求緩存棧,判斷自身是否已經接收過這個查詢請求如果已經接收過,則丟棄;否則,轉入步驟552。 步驟552,所述節點查看自身的需求內容列表中是否有節點PA所查詢的內容如 果有滿足查詢的內容,則轉入步驟553 ;否則轉入步驟554。 步驟553,所述節點擁有滿足查詢的內容,根據自身相對于所述內容的身份決定發 送的信息 a、如果是CP或CRP,則自身存儲的內容本身就是最新的版本,可以直接將自身的 地址信息以及所述內容VS的地址作為可用下載地址,并攜帶上自身當前的內容列表發送 給節點PA ; b、如果是VS,則直接將自身的地址信息以及存儲的所述內容所有CRP地址作為可 用下載地址,并攜帶上自身當前的內容列表發送給節點PA ; c、如果是IRP,由于自身存儲的內容可能不是最新的版本,則將所述內容的VS地
址作為可用下載地址,并攜帶上自身當前的內容列表發送給節點PA。 步驟554,所述節點沒有滿足查詢的內容,則根據鍵值最近的原則進一步轉發。
步驟56,節點PA為所述查詢的內容建立一個臨時的下載地址列表。 節點PA在接收到其他節點的反饋信息后,將反饋信息中的可用下載地址存儲到下
載地址列表中。下載地址列表中已經包含的地址,不會重復存儲。此后,節點PJ吏用下載 地址列表中的地址建立連接,開始下載。 CP、 VS或CRP作為反饋節點向請求節點返回查詢信息時,會主動捎帶自身的內容 列表,如果CP、 VS或CRP并不在請求節點PA的關聯列表中,則請求節點PA將計算反饋節點 綜合性能,如果反饋節點的綜合性能優于當前關聯列表中綜合性能最差的節點,則用反饋 節點替換該節點。 本實施例提高了內容的查詢能力,可以同時解決前述第1、2、3三類查詢,例如
對于第2類查詢,一個節點查詢兩個相互關聯的內容如節點Pl查詢兩個相互關 聯的內容A和B。在節點P1查詢第一個內容A時,節點P1通過節點P2獲得了內容A。如 果節點Pl和P2的內容列表具有較高的相似性,則節點Pl會將節點P2添加到關聯列表中。 在節點P1要尋找和內容A相互關聯的內容B時,由于內容A和內容B相互關聯,所以節點 P2很可能同時存儲內容A和B。節點Pl通過向關聯列表中的P2發送關聯查詢請求,就可 以僅通過一個hop就直接獲得內容B。 對于第3類查詢,兩個節點查詢同一個內容如節點Pl和P2都查詢內容A。在節 點Pl查詢了內容A后,內容A會緩存在節點Pl的內容列表中。當節點P2查詢內容A時, 由于節點Pl和P2請求了同一個內容,節點Pl和P2可能是相互關聯的節點,可能在彼此的 關聯列表中,節點P2通過向節點Pl發送關聯查詢請求,即可以僅通過一個hop就直接獲得 內容A。 通過本實施例的二元查詢中的第一查詢,本實施例可以在第1個hop之后就返回 一部分滿足查詢請求的節點,從而開始下載;此時,二元查詢中的第二查詢繼續在網絡中路 由,直到找到內容的VS,從而返回VS以及所有的CRP節點,增加可以下載的源節點。也就是 說,本實施例內容的下載分為兩步先在第1個hop找到少量的節點開始下載,再通過第二 查詢增加下載源。 本實施例可以以更快的速度開始下載,從而減少用戶的等待時間。特別是當網絡
12中的節點數很多的時候,這種差異更加明顯。比如網絡中有10000個節點時,CAN模型的平 均查詢路徑長度是16. 49,本實施例是2. 63。也就是說,CAN模型要在平均16. 49跳之后才 能返回第一個滿足查詢的節點,而本實施例在第1個hop之后就可以返回一小部分節點開 始下載,而在2.63跳之后,進一步增加下載源。本實施例的反應速度比CAN快了 13.49瑕L 可以大幅降低用戶的等待時間。 并且,隨著網絡中節點數目的增加,本實施例這種第1跳就能夠返回一部分節點 開始下載的能力并不會發生變化,本實施例可以提高查詢響應速度的能力反而會更加明顯。 由于本實施例在二元查詢的第一查詢中并發地發送了 ~個關聯查詢消息,但這~
個通信量只是從請求節點發送到關聯列表中的節點,并不會在網絡中轉發,不會增加中轉
節點的通信量,而是僅僅增加了客戶端的通信量。而客戶的請求并不是一個頻繁的過程,而
是相對稀疏的,對于每次查詢多承擔一點通信量并不會對客戶的性能產生影響。所以,第一
查詢所增加的通信量并不會對本實施例的性能帶來負面的影響,是可以忽略的。 本發明實施例三 為了保證實施例二中第一查詢能夠以較高的概率獲得滿足查詢請求的節點,關聯 列表中的節點應該和請求節點自身保持較高的關聯內容相似度。由于節點的需求處于動態 變化之中,節點上存儲的內容也在動態變化,此外網絡上的內容也隨著節點的加入離開而 不斷變化,所以節點之間的關聯內容相似度也是處于變化中的,需要對關聯列表進行更新, 以便能夠精確的描述節點當前的需求,使得節點之間能根據需求形成較好的聚類。
請參照圖7所示,本實施例關聯列表更新的方法,包括
步驟71,獲取關聯列表中某節點當前的內容列表;
具體的獲取方式有兩種 1、在例如實施例二的查詢內容的流程中獲取; 由實施例二可知,在CP、VS或CRP向請求節點返回查詢信息時,會主動捎帶自身的 內容列表,這種在網絡中現有消息的基礎上有選擇的附帶上節點自身的內容列表,可以盡 量減少增加的通信量。 由于只有CP、VS或CRP有最新版本的內容信息,所以當請求節點PA發送查詢請求 之后,經過若干次轉發,查詢信息最終會落到這三種節點上。這三種節點在返回內容信息 時,會捎帶上自身的內容列表。內容列表僅包括一個節點上存儲內容的標識符,不包括具體 內容信息。此處,在請求節點發送查詢信息時,并不會捎帶自身的內容列表,原因有兩點 (1)由于查詢請求需要經過若干次轉發才能到達目標節點,如果捎帶了內容列表,會增加所 有轉發節點的通信量;(2)由于請求節點此時還沒有所需內容的信息,內容列表在請求信 息返回之后還會發生變化,所以此時的內容列表并不準確。
2、定時獲取;請參照圖8所示,具體流程如下 步驟81,設置關聯內容相似度的有效期為T,檢測到節點PA的關聯列表中的某一 節點(例如P》最近一次更新時間距離當前時間的間隔超過了有效期T;
步驟82,節點PA向節點PB發送詢問節點PB當前內容列表的請求;
步驟83,節點PA接收節點Pe返回的其自身當前的內容列表。 這種方式可以周期性的定時檢測并獲取關聯列表中的某一節點最新的內容列表。
通過上述兩種方式,請求節點即可獲取關聯列表中某節點當前的內容列表。 步驟72,請求節點計算自身與所述節點的關聯相似度; 步驟73,請求節點根據計算得到的關聯相似度更新自身關聯列表。 具體的,請求節點將根據計算得到的關聯相似度更新自身關聯列表中所述節點
(例如Pb)的相關屬性。 本實施例中,根據節點當前存儲的內容描述節點的關聯內容集以及計算節點之間 的關聯內容相似度,從而避免了語義和本體論的方式所需的龐大知識庫所消耗的存儲空 間。 本發明實施例四 由于所有內容的RP上都會保存一份該內容的副本,所以整個網絡中會存在內容 的多個副本。為了保證所有節點都能在較低的通信量下,獲得新鮮有效的內容并能對內容 進行合法的操作,本實施例通過對內容及其副本所在節點進行松散節點聚類,實現對副本 的控制和更新。 產生和發布內容的節點作為內容的VS負責內容的更新和發布。CP作為索引和備 份節點,和VS建立雙向連接保持強一致。其他節點在請求內容之后,根據自身的需求和性 能選擇成為內容的CRP或IRP。如果查詢節點需要經常訪問該內容,且自身性能較好(例 如帶寬較大,處理速度較快等),則可以選擇成為CRP,和VS建立雙向連接保持強一致。如 果查詢節點并不需要經常訪問該內容,或自身性能并不太好,也可以選擇成為IRP,和VS建 立單向連接保持弱一致。VS、CP、CRP以及IRP通過這些連接形成針對同一內容的一個松散 聚類,并在這個聚類的基礎上根據節點的類型采用不同的內容更新和更新發布模式,以降 低通信量。 為了能在內容更新之后區分內容的不同版本,每個內容都有一個版本號,由該內
容的VS在每次合法更新之后對版本號進行操作。 請參照圖9所示,本實施例內容更新的方法,包括 步驟91,請求內容更新的節點(例如CRP或IRP)向產生和發布內容的節點(例如 VS)發送更新請求; 具體的,當一個RP要對內容進行操作及更新時,首先會判斷自身的類型 如果是CRP,則該節點本身就存儲了內容的最新版本,可以直接內容進行操作,并
向VS發送更新請求,該請求包括操作結果和當前的版本號; 如果是IRP,則該節點上存儲的副本可能是陳舊版本,需要先向VS發送當前版本 號來檢測版本信息,如果該版本號和VS上存儲的當前版本一致,則VS返回確認信息,如果 不一致,則VS返回當前最新版本的內容信息。此后IRP采用和CRP同樣的方式對內容進行 操作并向VS發送更新請求。 步驟92, VS對接收的更新請求進行審核,并根據審核結果進行處理; VS接收到更新請求后,先判斷內容的版本號是否是最新的版本號,如果是,則接受
更新并修改版本號,同時返回確認信息;否則,拒絕更新,并返回最新版本信息。如果有兩個
RP同時提交更新結果,VS根據更新請求的時間戳判定更新的有效性,接受時間戳較早的更新。 步驟93, VS在更新后發布更新結果和新的版本號;
14
在VS接受更新之后,會將更新結果和新的版本號發送給CP和所有CRP。由于IRP 和VS之間是弱一致,所以并不需要向IRP發布更新信息。 本實施例中,VS、CP、CRP以及IRP通過它們之間的雙向或單向的連接,形成了針對
同一內容的節點松散聚類,并在這個聚類的基礎上根據節點的類型采用不同的內容更新和
更新發布模式,以降低通信量。本實施例通過主動向所有CRP發布更新,避免了 CRP頻繁訪
問內容所帶來的大量詢問信息;通過IRP在使用內容前主動向VS詢問內容的最新版本,從
而避免了向訪問內容頻率較低的IRP頻繁發布更新所帶來的通信量。基于這個節點松散聚
類,本實施例在較低的通信量下實現了對內容及其副本的管理和控制,保證了所有節點在
對內容進行訪問時都能獲得最新鮮的版本,并保證了所有更新操作都是在最新版本的基礎
上累計遞增的,而不會出現對陳舊版本的更新操作。此外還有效地降低了系統通信量,并能
適應動態變化環境的需求。 本發明實施例五 請參照圖10所示,本發明實施例五提供一種查詢獲取內容的系統,包括 請求節點101,用于向關聯列表中的節點發送第一查詢請求、在接收到所述第一查
詢請求查詢失敗的反饋時向鍵值距離目標節點鍵值最近的節點發送第二查詢請求,以及根
據目標節點反饋的內容列表為查詢的內容建立臨時的下載地址列表并下載所述內容; 目標節點102,用于接收所述第一或第二查詢請求,并根據所述查詢請求進行處理。
進一步的,所述目標節點102包括 第一判斷單元1021,用于根據查詢請求中的請求節點標識符以及請求節點生成的 隨機數檢索請求緩存棧,判斷目標節點是否已經接收過所述查詢請求,如果已經接收過,則 丟棄所述查詢請求; 第二判斷單元1022,用于當第一判斷單元1021判斷目標節點未接收過所述查詢
請求時,進一步判斷目標節點需求內容列表中是否有所述查詢的內容; 第一控制單元1023,用于當所述第二判斷單元1022判斷目標節點的需求內容列
表中有滿足查詢的內容時,根據目標節點相對于所述內容的身份決定發送的信息; 具體的,如果目標節點是CP或CRP,則其自身存儲的內容本身就是最新的版本,可
以直接將自身的地址信息以及所述內容VS的地址作為可用下載地址,并攜帶上自身當前
的內容列表發送給請求節點; 如果目標節點是VS,則直接將自身的地址信息以及存儲的所述內容所有CRP地址 作為可用下載地址,并攜帶上自身當前的內容列表發送給請求節點; 如果目標節點是IRP,則將所述內容的VS地址作為可用下載地址,并攜帶上自身 當前的內容列表發送給請求節點。 第二控制單元1024,用于當所述第二判斷單元1022判斷目標節點的需求內容列 表中沒有滿足查詢的內容時,根據查詢的類型進行不同的處理
如果是第一查詢,則直接丟棄查詢信息,不做任何處理;
如果是第二查詢,則根據鍵值最近的原則進一步轉發。
本發明實施例六 請參照圖11所示,本發明實施例六提供一種關聯列表更新的裝置,包括
15
獲取單元lll,用于獲取關聯列表中某節點當前的內容列表; 計算單元112,用于計算請求節點與所述關聯列表中某節點的關聯相似度; 更新單元113,用于根據計算得到的關聯相似度更新請求節點的關聯列表。 進一步的,所述獲取單元111可以通過查詢獲取內容的流程獲取關聯列表中某節
點反饋的當前的內容列表;也可以通過對關聯列表中某節點周期性的定時檢測獲取所述內
容列表。 本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟可以通過 程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序 在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、 RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質。 以上所述,僅為本發明的具體實施方式
,但本發明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換,都應 涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。
權利要求
一種內容節點雙向聚類系統,其特征在于包括節點層和內容層;所述節點層中,請求同一內容的節點之間通過節點對內容的查詢形成節點松散聚類;所述內容層中,被同一個節點請求的內容之間根據節點的需求形成內容松散聚類。
2. 根據權利要求1所述的系統,其特征在于根據對某內容的需求,所述節點層的節點 包括內容尋址網絡CAN負責節點CP,用于作為備份節點保存所述內容的信息,并作為查詢 所述內容時的索引節點;復制節點RP,用于存儲所述內容的副本,和/或對所述內容進行操作或更新。
3. 根據權利要求2所述的系統,其特征在于所述復制節點RP包括虛擬服務器vs,所述VS和所述CP雙向連接,用于產生和發布所述內容,負責對所述內容進行更新并發布;強一致節點CRP,與所述VS雙向連接,當所述VS更新內容時,接收所述VS發布的更新 信息;弱一致節點IRP,與所述VS形成由所述IRP指向所述VS的單向連接,在使用內容前,先 向所述VS驗證自身版本信息以保持內容的一致性。
4. 根據權利要求1所述的系統,其特征在于所述節點存儲的信息包括 自身的鍵值、鍵值空間范圍、CAN路由表和/或關聯列表。
5. 根據權利要求1所述的系統,其特征在于所述關聯列表記載的信息包括所述節點的標識符、IP地址、關聯內容相似度、所述關聯內容相似度最近一次更新的時 間、所述節點擁有的內容總數、最近一段時間通過所述節點進行路由成功召回結果的次數 和/或所述節點的綜合性能。
6. —種利用如權利要求1-5任一項所述的系統查詢獲取內容的方法,包括請求節點向自身關聯列表中的節點發送對某內容的第一查詢請求,以使得接收所述第一查詢請求的第一 目標節點根據所述第一查詢請求進行處理;如果所述請求節點接收到所述第一 目標節點反饋查詢成功,則為所述查詢的內容建立 一個臨時的下載地址列表并下載所述查詢的內容;如果所述請求節點接收到所述第一目標節點反饋查詢失敗,則向自身當前鄰居中距離 所述第一 目標節點鍵值最近的節點發送第二查詢請求。
7. 根據權利要求6所述的方法,其特征在于所述接收所述第一查詢請求的節點根據 所述第一查詢請求進行處理,具體包括所述第一目標節點根據所述第一查詢請求中的請求節點標識符以及請求節點生成的 隨機數檢索請求緩存棧,判斷自身是否已經接收過所述第一查詢請求,如果已經接收過,則 丟棄所述第一查詢請求;如果判斷自身未接收過所述第一查詢請求,則所述第一目標節點進一步查看自身的需 求內容列表中是否有所述請求節點所查詢的內容;如果所述第一目標節點擁有滿足查詢的內容,則根據自身相對于所述內容的身份決定 發送的信息;如果所述第一 目標節點沒有滿足查詢的內容,則直接丟棄查詢信息,反饋查詢失敗。
8. 根據權利要求7所述的方法,其特征在于所述接收所述第一查詢請求的第一目標節點根據自身相對于所述內容的身份決定發送的信息,具體包括如果所述第一 目標節點是CP或CRP,則可以直接將自身的地址信息以及所述內容VS的 地址作為可用下載地址,并攜帶上自身當前的內容列表發送給所述請求節點;如果所述第一 目標節點是VS,則直接將自身的地址信息以及存儲的所述內容所有CRP 地址作為可用下載地址,并攜帶上自身當前的內容列表發送給所述請求節點;如果所述第一 目標節點是IRP,則將所述內容的VS地址作為可用下載地址,并攜帶上 自身當前的內容列表發送給所述請求節點。
9. 根據權利要求6所述的方法,其特征在于還包括所述接收所述第二查詢請求的第二目標節點根據所述第二查詢請求進行處理。
10. 根據權利要求9所述的方法,其特征在于所述接收所述第二查詢請求的第二目標 節點根據所述第二查詢請求進行處理,具體包括所述第二目標節點根據所述第二查詢請求中的請求節點標識符以及請求節點生成的 隨機數檢索請求緩存棧,判斷自身是否已經接收過所述查詢請求,如果已經接收過,則丟棄 所述第二查詢請求;如果判斷自身未接收過所述查詢請求,則所述節點進一步查看自身的需求內容列表中 是否有所述請求節點所查詢的內容;如果所述第二目標節點擁有滿足查詢的內容,則根據自身相對于所述內容的身份決定 發送的信息;如果所述第二目標節點沒有滿足查詢的內容,則根據鍵值最近原則進一步轉發所述第 二查詢請求。
11. 根據權利要求IO所述的方法,其特征在于所述接收所述第二查詢請求的第二目 標節點根據自身相對于所述內容的身份決定發送的信息,具體包括如果所述第二目標節點是CP或CRP,則可以直接將自身的地址信息以及所述內容VS的 地址作為可用下載地址,并攜帶上自身當前的內容列表發送給所述請求節點;如果所述第二目標節點是VS,則直接將自身的地址信息以及存儲的所述內容所有CRP 地址作為可用下載地址,并攜帶上自身當前的內容列表發送給所述請求節點;如果所述第二目標節點是IRP,則將所述內容的VS地址作為可用下載地址,并攜帶上 自身當前的內容列表發送給所述請求節點;
12. —種利用如權利要求l-5任一項所述的系統進行關聯列表更新的方法,包括獲取關聯列表中某節點當前的內容列表; 計算請求節點與所述關聯列表中某節點的關聯相似度;根據計算得到的關聯相似度更新請求節點的關聯列表。
13. 根據權利要求12所述的方法,其特征在于所述獲取關聯列表中某節點當前的內 容列表,具體包括通過查詢獲取內容的流程獲取關聯列表中某節點反饋的當前的內容列表;或通過對關 聯列表中某節點周期性的定時檢測獲取所述內容列表。
14. 根據權利要求13所述的方法,其特征在于所述通過對關聯列表中某節點周期性 的定時檢測獲取所述內容列表,具體包括設置關聯內容相似度的有效期為T,檢測到關聯列表中的所述某節點最近一次更新時間距離當前時間的間隔超過了有效期T ;向所述某節點發送詢問其當前內容列表的請求; 接收所述某節點返回的其自身當前的內容列表。
15. —種利用如權利要求1-5任一項所述的系統進行內容更新的方法,包括 接收請求內容更新的節點向產生和發布內容的節點發送更新請求; 所述產生和發布內容的節點對接收的更新請求進行審核,并根據審核結果進行處理; 所述產生和發布內容的節點在更新后發布更新結果和新的版本號。
16. 根據權利要求15所述的方法,其特征在于所述請求內容更新的節點向產生和發 布內容的節點發送更新請求,具體包括所述請求內容更新的節點判斷自身的類型如果是CRP,則可以直接內容進行操作,并向所述產生和發布內容的節點發送更新請 求,所述請求包括操作結果和當前的版本號;如果是IRP,則先向所述產生和發布內容的節點發送當前版本號來檢測版本信息,如果 該版本號和所述產生和發布內容的節點上存儲的當前版本一致,則所述產生和發布內容的 節點返回確認信息,如果不一致,則所述產生和發布內容的節點返回當前最新版本的內容 信息;此后所述IRP向所述產生和發布內容的節點發送更新請求。
17. 根據權利要求15所述的方法,其特征在于所述產生和發布內容的節點對接收的 更新請求進行審核,并根據審核結果進行處理,具體包括所述產生和發布內容的節點判斷內容的版本號是否是最新的版本號,如果是,則接受 更新并修改版本號,同時返回確認信息;否則,拒絕更新,并返回最新版本信息。
18. 根據權利要求15所述的方法,其特征在于如果有兩個同時提交的更新請求,則所 述產生和發布內容的節點根據所述更新請求的時間戳來判定更新的有效性,接受時間戳較 早的更新。
19. 根據權利要求15所述的方法,其特征在于所述產生和發布內容的節點在更新后 發布更新結果和新的版本號,具體包括所述產生和發布內容的節點接受更新之后,將更新結果和新的版本號發送給CP和所 有CRP。
20. —種查詢獲取內容的系統,其特征在于包括請求節點,用于向關聯列表中的第一目標節點發送第一查詢請求、在接收到所述第一 查詢請求查詢失敗的反饋時向距離第一目標節點鍵值最近的第二目標節點發送第二查詢 請求,以及根據所述第一或第二目標節點反饋的內容列表為查詢的內容建立臨時的下載地 址列表并下載所述內容;目標節點,包括第一目標節點或第二目標節點,分別用于接收所述第一或第二查詢請 求,并根據所述查詢請求進行處理。
21. 根據權利要求20所述的系統,其特征在于所述目標節點進一步包括 第一判斷單元,用于根據第一查詢請求或第二查詢請求中的請求節點標識符以及請求節點生成的隨機數檢索請求緩存棧,判斷所述目標節點是否已經接收過所述查詢請求,如 果已經接收過,則丟棄所述查詢請求;第二判斷單元,用于當所述第一判斷單元判斷目標節點未接收過所述查詢請求時,進一步判斷目標節點需求內容列表中是否有所述查詢的內容;第一控制單元,用于當所述第二判斷單元判斷目標節點的需求內容列表中有滿足查詢 的內容時,根據目標節點相對于所述內容的身份決定發送的信息;第二控制單元,用于當所述第二判斷單元判斷目標節點的需求內容列表中沒有滿足查 詢的內容時,根據查詢的類型進行不同的處理。
22. —種關聯列表更新的裝置,其特征在于包括 獲取單元,用于獲取關聯列表中某節點當前的內容列表; 計算單元,用于計算請求節點與所述關聯列表中某節點的關聯相似度; 更新單元,用于根據計算得到的關聯相似度更新請求節點的關聯列表。
23. 根據權利要求22所述的裝置,其特征在于所述獲取單元可以通過查詢獲取內容 的流程獲取關聯列表中某節點反饋的當前的內容列表;也可以通過對關聯列表中某節點周 期性的定時檢測獲取所述內容列表。
全文摘要
本發明實施例提供一種內容節點雙向聚類系統,包括節點層和內容層;所述節點層中,請求同一內容的節點之間通過節點對內容的查詢形成節點松散聚類;所述內容層中,被同一個節點請求的內容之間根據節點的需求形成內容松散聚類。本發明實施例還提供一種查詢獲取內容的方法、關聯列表更新的方法以及內容更新的方法。通過本發明實施例提供的技術方案,在當前網絡規模不斷增加的情況下,仍能進行高效的內容查詢,特別是一個節點查詢兩個相互關聯的內容或者兩個相互關聯的節點查詢同一個內容時,能夠迅速的找到擁有符合查詢條件的節點,即使用戶的關聯內容集也處于動態變化之中。
文檔編號H04L29/08GK101729387SQ20081021862
公開日2010年6月9日 申請日期2008年10月24日 優先權日2008年10月24日
發明者劉姍姍, 張進, 李金龍, 沈靜波, 王鐵英 申請人:華為技術有限公司;中國科學技術大學