本申請要求遞交于2015年6月8日的美國專利申請?zhí)?4/733,849的權(quán)益,其要求遞交于2014年7月13日的美國臨時申請?zhí)枮?2/023,883的35U.S.C§119(e)的優(yōu)先權(quán)。所有前述申請的內(nèi)容通過結(jié)合全部引用于此。
技術(shù)領(lǐng)域
本公開涉及信息中心網(wǎng)絡(luò)(ICN)系統(tǒng)架構(gòu)。更具體地,本公開涉及用于在ICN系統(tǒng)架構(gòu)中緩存數(shù)據(jù)對象的方法與系統(tǒng)。
技術(shù)背景
在ICN系統(tǒng)架構(gòu)中,客戶端設(shè)備(例如消費者或請求者)通常用興趣消息從服務(wù)器(諸如生產(chǎn)者)請求數(shù)據(jù)??蛻舳嗽O(shè)備通過一個或多個路由器向服務(wù)器傳輸興趣消息,并且服務(wù)器可以用數(shù)據(jù)對象(例如數(shù)據(jù)消息)向客戶端設(shè)備傳輸所請求的數(shù)據(jù)。興趣消息可以包括用于標(biāo)識數(shù)據(jù)的名稱。路由器可以用該名稱向可能具有該數(shù)據(jù)的一個或多個服務(wù)器傳輸(例如轉(zhuǎn)發(fā)或路由)興趣消息。數(shù)據(jù)對象還包括這些數(shù)據(jù)對象中所包括的數(shù)據(jù)的名稱。路由器還可以用名稱向客戶端設(shè)備傳輸(例如轉(zhuǎn)發(fā)或路由)數(shù)據(jù)對象。
附圖說明
為使本領(lǐng)域技術(shù)人員能夠理解本公開,更多細節(jié)描述可以參考示例的實現(xiàn)方式,附圖示出了它們中的一些。然而,附圖僅僅示出了本公開的示例的特性,并且因此不應(yīng)作為限制性的,因為說明書可以容許其他有效的特性。
圖1是根據(jù)一些實施例,示出系統(tǒng)架構(gòu)的框圖;
圖2是根據(jù)一些實施例,示出示例的數(shù)據(jù)對象的框圖;
圖3是根據(jù)一些實施例,示出示例的所轉(zhuǎn)發(fā)的興趣消息的框圖;
圖4是根據(jù)一些實施例,示出示例的數(shù)據(jù)消息的框圖;
圖5是根據(jù)一些實施例,生成和/或傳輸所轉(zhuǎn)發(fā)的興趣消息的方法的流程圖;
圖6是根據(jù)一些實施例,傳輸數(shù)據(jù)對象的方法的流程圖;
圖7是根據(jù)一些實施例,生成和/或傳輸數(shù)據(jù)消息的方法的流程圖;
圖8是根據(jù)一些實施例的計算設(shè)備的框圖;
圖9是根據(jù)一些實施例的計算設(shè)備的框圖。
根據(jù)慣例,附圖中所示出的各種特性可能并沒有按比例繪制在附圖中。相應(yīng)地,出于清晰的目的,各種特性的方面可能被任意擴大或縮小。此外,附圖中的一些可能沒有描繪給定系統(tǒng)、方法、或設(shè)備的全部組件。最后,相似的標(biāo)號可以被用來表示貫穿說明書以及附圖的相似的特征。
示例的實施例
本文描述了大量細節(jié),從而提供附圖中所示出的示例性實現(xiàn)方式的透徹的理解。然而,附圖僅僅示出了本公開的一些示例的方面,并且因此不應(yīng)被認為是限制性的。本領(lǐng)域技術(shù)人員會從本公開中理解,其他有效的方面和/或變化并非包括本文所描述的所有的細節(jié)。此外,眾所周知的系統(tǒng)、方法、組件、設(shè)備以及電路沒有以非常詳盡的方式描述,以免不必要地模糊本文所描述實現(xiàn)方式的更多有關(guān)的方面。
概括
本文所描述的各種實現(xiàn)方式包括用于在ICN系統(tǒng)架構(gòu)中緩存數(shù)據(jù)對象的裝置、系統(tǒng)、以及方法。例如,在一些路由器實現(xiàn)方式中,一種方法包括通過第一信息中心網(wǎng)絡(luò)(ICN)接口接收第一興趣消息,該第一興趣消息包括第一數(shù)據(jù)對象的第一名稱。該方法還包括基于第一興趣消息來確定第一數(shù)據(jù)對象是否被儲存在路由器的緩存中。該方法還包括當(dāng)?shù)谝粩?shù)據(jù)對象被儲存在路由器的緩存中的時候,用第一指示符更新第一興趣消息,該第一指示符表明第一數(shù)據(jù)對象被儲存在路由器的緩存中。該方法還包括當(dāng)?shù)谝粩?shù)據(jù)對象被儲存在路由器的緩存中的時候,通過第二ICN接口傳輸所更新的第一興趣消息。
在其他服務(wù)器實現(xiàn)方式中,一種方法包括通過信息中心網(wǎng)絡(luò)(ICN)接口接收第一興趣消息,該第一興趣消息包括儲存在服務(wù)器中的第一數(shù)據(jù)的第一名稱。該方法還包括基于第一興趣消息通過ICN接口傳輸?shù)谝粩?shù)據(jù)對象,其中第一數(shù)據(jù)對象包括第一數(shù)據(jù)以及第一參數(shù),該第一參數(shù)表明:當(dāng)路由器接收包括第一名稱的附加興趣消息并且當(dāng)?shù)谝粩?shù)據(jù)被儲存在路由器的緩存中的時候,路由器將會向服務(wù)器轉(zhuǎn)發(fā)附加興趣消息。
詳細描述
信息中心網(wǎng)絡(luò)(ICN)系統(tǒng)架構(gòu)越來越流行。ICN系統(tǒng)架構(gòu)的示例包括命名數(shù)據(jù)網(wǎng)絡(luò)(NDN)系統(tǒng)架構(gòu)以及內(nèi)容中心網(wǎng)絡(luò)(CCN)系統(tǒng)架構(gòu)。如以上所描述的,ICN系統(tǒng)架構(gòu)(諸如NDN系統(tǒng)架構(gòu))可以允許消費者(例如客戶端設(shè)備)用興趣消息請求數(shù)據(jù),該興趣消息標(biāo)識所請求的數(shù)據(jù)的名稱。生產(chǎn)者(例如所請求的數(shù)據(jù)的生產(chǎn)者或提供者,諸如服務(wù)器計算設(shè)備)可以接收興趣消息,并且可以(響應(yīng)于興趣消息)傳輸數(shù)據(jù)對象到客戶。通過ICN系統(tǒng)架構(gòu),路由器用在興趣消息與數(shù)據(jù)對象中的名稱來路由和/或轉(zhuǎn)發(fā)興趣消息和/或數(shù)據(jù)對象。傳輸興趣消息來請求數(shù)據(jù)對象以及接收數(shù)據(jù)對象可以被稱為興趣數(shù)據(jù)交換。
ICN系統(tǒng)架構(gòu)(諸如NDN系統(tǒng)架構(gòu))可以允許用來路由/轉(zhuǎn)發(fā)興趣消息和/或數(shù)據(jù)對象的路由器在它們相應(yīng)的緩存中儲存(例如緩存)NDN數(shù)據(jù)對象。當(dāng)路由器接收針對數(shù)據(jù)對象的請求(例如興趣包)并且路由器在它的緩存儲存有該數(shù)據(jù)對象的時候,路由器可以響應(yīng)于請求從緩存?zhèn)鬏擭DN數(shù)據(jù)對象,而不是向服務(wù)器轉(zhuǎn)發(fā)請求。因為沒有向服務(wù)器轉(zhuǎn)發(fā)興趣消息,所以服務(wù)器不能追蹤請求該數(shù)據(jù)對象的興趣消息的數(shù)量。這可能對于各種應(yīng)用和服務(wù)導(dǎo)致麻煩和/或問題。例如,廣告追蹤者(例如廣告追蹤應(yīng)用/服務(wù))將無法確定針對廣告的點擊的總數(shù)量。
在一些實施例中,系統(tǒng)架構(gòu)可以用NDN系統(tǒng)架構(gòu)。在本文所公開的NDN系統(tǒng)架構(gòu)中,數(shù)據(jù)對象可以包括各種參數(shù),該參數(shù)表明:當(dāng)匹配數(shù)據(jù)對象被儲存在路由器的緩存中的時候,路由器應(yīng)該繼續(xù)轉(zhuǎn)發(fā)興趣消息。所轉(zhuǎn)發(fā)的興趣消息可以包括指示符/值以表明數(shù)據(jù)對象在路由器的緩存中被找到了,該路由器位于連接到存有數(shù)據(jù)對象的一個或多個服務(wù)器的路徑上。這些參數(shù)、指示符、和/或值可以允許服務(wù)器追蹤/管理(從客戶端設(shè)備所接收的)興趣消息和/或(儲存在緩存中并且向客戶端設(shè)備傳輸?shù)?數(shù)據(jù)消息。
盡管本公開可以涉及NDN系統(tǒng)架構(gòu),但應(yīng)當(dāng)理解NDN系統(tǒng)架構(gòu)僅僅是可能被采用的示例的架構(gòu)。其他實施例可以用其他類型的系統(tǒng)架構(gòu)(諸如CCN、Pursuit、NetInf等等),并且本文所描述的示例、實現(xiàn)方式、和/或?qū)嵤├梢耘c其他類型的架構(gòu)一起被采用。
圖1是根據(jù)一些實施例示出系統(tǒng)架構(gòu)100的框圖。該系統(tǒng)架構(gòu)包括服務(wù)器110、客戶端設(shè)備130、網(wǎng)絡(luò)105、以及路由器140。系統(tǒng)架構(gòu)100可以是NDN系統(tǒng)架構(gòu)。例如,系統(tǒng)架構(gòu)110中的消費者(諸如客戶端設(shè)備130)可以用興趣消息請求數(shù)據(jù),并且生產(chǎn)者(諸如服務(wù)器110)可以用數(shù)據(jù)對象(諸如NDN數(shù)據(jù)對象)傳輸所請求的數(shù)據(jù)。服務(wù)器110可以被稱為生產(chǎn)者(或提供者),并且客戶端設(shè)備130可以被稱為消費者(或請求者)。
服務(wù)器110可以是一個或多個計算設(shè)備(諸如機架式服務(wù)器、路由器計算機、服務(wù)器計算機、個人計算機、大型計算機、智能電話、個人數(shù)字助手(PDA)、膝上型計算機、平板電腦、以及臺式計算機等等)。客戶端設(shè)備130也可以是計算設(shè)備(諸如個人計算機、智能電話、個人數(shù)字助手(PDA)、膝上型計算機、平板電腦、以及臺式計算機等等)。網(wǎng)絡(luò)105可以包括以下一個或多個:公共網(wǎng)絡(luò)(諸如因特網(wǎng))、專用網(wǎng)絡(luò)(諸如局域網(wǎng)(LAN)或廣域網(wǎng)(WAN))、有線網(wǎng)絡(luò)(諸如以太網(wǎng))、無線網(wǎng)絡(luò)(諸如802.11網(wǎng)絡(luò)或Wi-Fi網(wǎng)絡(luò))、蜂窩網(wǎng)絡(luò)(諸如長期演進(LTE)網(wǎng)絡(luò))、路由器、集線器、交換機、服務(wù)器計算機、和/或它們的組合。
如在圖1中所示出的,服務(wù)器110包括數(shù)據(jù)對象136。例如,數(shù)據(jù)對象136可以位于(例如可以被儲存在)服務(wù)器110的存儲器(例如硬盤、固態(tài)盤等等)中。在其他實施例中,數(shù)據(jù)對象136可以位于數(shù)據(jù)存儲庫(例如具有存儲器、硬盤、固態(tài)盤等等的單獨的計算設(shè)備)中,該數(shù)據(jù)存儲庫可以與服務(wù)器110是分離的。數(shù)據(jù)對象136可以是由服務(wù)器110所擁有、管理、和/或運營的內(nèi)容或數(shù)據(jù)。例如,數(shù)據(jù)對象136可以是文件、圖像、電影、電影的一部分、文件的一部分等等。服務(wù)器110可以向請求數(shù)據(jù)對象136(例如傳輸具有數(shù)據(jù)對象136的名稱的興趣消息)的客戶端設(shè)備(例如客戶端設(shè)備130)提供數(shù)據(jù)對象136。服務(wù)器還包括服務(wù)器模塊111。在一個實施例中,數(shù)據(jù)對象136可以是NDN數(shù)據(jù)對象、CCN數(shù)據(jù)對象等等。
系統(tǒng)架構(gòu)100還包括路由器140。路由器140可以是通信設(shè)備(例如計算設(shè)備,諸如路由器、交換器等等),該通信設(shè)備可以在服務(wù)器110與客戶端設(shè)備130之間路由和/或轉(zhuǎn)發(fā)數(shù)據(jù)。例如,路由器140可以從客戶端設(shè)備130接收興趣消息(例如對于數(shù)據(jù)/內(nèi)容的請求),并且可以向服務(wù)器110轉(zhuǎn)發(fā)興趣消息。通過路由器140,服務(wù)器110可以(響應(yīng)于興趣消息)向客戶端設(shè)備130傳輸數(shù)據(jù)對象。路由器140可以包括緩存141。路由器140還可以包括多個網(wǎng)絡(luò)接口(例如多個網(wǎng)絡(luò)端口和/或網(wǎng)絡(luò)連接)。路由器140可以接收興趣消息(例如NDN興趣消息、CCN興趣消息等等),并且可以在計算設(shè)備之間(例如在客戶端設(shè)備130與服務(wù)器110之間)轉(zhuǎn)發(fā)/路由興趣消息。例如,路由器140可以在第一網(wǎng)絡(luò)接口(例如第一端口)處接收興趣消息,并且用第二網(wǎng)絡(luò)接口(諸如第二端口)轉(zhuǎn)發(fā)/路由興趣消息。在一個實施例中,路由器140可以用多個網(wǎng)絡(luò)接口(例如多個端口)轉(zhuǎn)發(fā)/路由興趣消息。例如,除了接收興趣消息的那個網(wǎng)絡(luò)接口(例如第一網(wǎng)絡(luò)接口/端口)之外,路由器140可以用任何數(shù)量的網(wǎng)絡(luò)接口來轉(zhuǎn)發(fā)/路由興趣消息。路由器140還可以響應(yīng)于興趣消息接收數(shù)據(jù)對象,并且可以在計算設(shè)備之間轉(zhuǎn)發(fā)/路由數(shù)據(jù)對象(例如NDN數(shù)據(jù)對象、CCN數(shù)據(jù)對象)。例如,路由器140可以在第二網(wǎng)絡(luò)接口處接收數(shù)據(jù)對象,并且用第一網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)/路由數(shù)據(jù)對象。
路由器140可以包括轉(zhuǎn)發(fā)信息庫(FIB)。FIB(未在圖中示出)可以由基于名稱的路由協(xié)議來填充。FIB可以基于在興趣消息中的名稱的前綴和/或部分,表明路由器140的哪(一個或多個)網(wǎng)絡(luò)接口應(yīng)該被用來轉(zhuǎn)發(fā)/路由興趣消息。例如,興趣消息可以包括名稱“company1/video/video1”。FIB可以表明應(yīng)該向第一網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)/路由(諸如通過第一網(wǎng)絡(luò)接口傳輸)具有“/company1”的前綴的興趣消息。路由器還可以靜態(tài)地被配置來向不同的網(wǎng)絡(luò)接口路由名稱的不同的前綴和/或部分。路由器140還可以包括未決興趣表(PIT)。PIT(未在圖中示出)可以儲存正在等待返回的數(shù)據(jù)對象的興趣消息的列表(例如尚未被滿足的興趣消息的列表)。在一個實施例中,路由器140可以集合具有從不同網(wǎng)絡(luò)接口(諸如不同端口)所接收的匹配名稱的興趣消息。當(dāng)路由器140集合興趣消息的時候,當(dāng)具有與PIT中的條目匹配的名稱的興趣消息被接收之后,路由器140可以不在PIT中創(chuàng)建單獨的條目。替代地,路由器140可以更新匹配條目以表明興趣消息是從哪個網(wǎng)絡(luò)端口所接收的。
系統(tǒng)架構(gòu)100可以允許路由器140在緩存141中儲存(例如緩存)NDN數(shù)據(jù)對象。例如,當(dāng)路由器140從客戶端設(shè)備130(或其他客戶端設(shè)備)接收對于數(shù)據(jù)對象136的初始請求(諸如興趣包),并且路由器在緩存141中不具有數(shù)據(jù)對象136的時候,那么路由器140可以向服務(wù)器110轉(zhuǎn)發(fā)初始興趣消息。服務(wù)器110可以接收初始興趣消息并且可以向路由器140轉(zhuǎn)發(fā)數(shù)據(jù)對象136。當(dāng)路由器140(第一次)接收數(shù)據(jù)對象136的時候,路由器140可以在緩存141中儲存數(shù)據(jù)對象136,并且可以向客戶端設(shè)備130轉(zhuǎn)發(fā)數(shù)據(jù)對象136。當(dāng)路由器140接收針對數(shù)據(jù)對象136的后續(xù)的興趣消息的時候,路由器140可以已在緩存141中儲存有數(shù)據(jù)對象136。在通常的NDN系統(tǒng)架構(gòu)中,路由器140可以響應(yīng)于請求而向客戶端設(shè)備130傳輸儲存在緩存141中的數(shù)據(jù)對象136,而不是向服務(wù)器110轉(zhuǎn)發(fā)請求。這可以改善延遲并且可以減少網(wǎng)絡(luò)105中的網(wǎng)絡(luò)擁堵。在一個實施例中,緩存141還可以允許多路徑以及多目的地路由,而無需使用域名系統(tǒng)(DNS)查找、負載平衡器、以及代理服務(wù)器。
當(dāng)路由器在它們相應(yīng)的緩存中存儲有(由興趣消息所請求的)數(shù)據(jù)對象的時候,通常的NDN系統(tǒng)架構(gòu)對于服務(wù)器110追蹤和/或監(jiān)控由客戶端設(shè)備傳輸?shù)?對于數(shù)據(jù)對象的)興趣消息可能沒有規(guī)定。如上文所討論的,在通常的NDN架構(gòu)中,在緩存中儲存有數(shù)據(jù)對象的路由器可以向客戶端設(shè)備傳輸所請求的對象,而不是向服務(wù)器轉(zhuǎn)發(fā)興趣消息。這可能導(dǎo)致服務(wù)器110無法追蹤和/或監(jiān)控對于數(shù)據(jù)對象的興趣消息,因為一旦路由器將數(shù)據(jù)對象儲存在它們的緩存中,服務(wù)器將無法從路由器接收該興趣消息。例如,路由器140可能已經(jīng)將數(shù)據(jù)對象136儲存在它的緩存141中。數(shù)據(jù)對象136可能從(例如與客戶端設(shè)備130或其他客戶端設(shè)備的)先前的興趣數(shù)據(jù)交換中已經(jīng)被路由器140接收了。如圖1所示出的,服務(wù)器110包括服務(wù)器模塊111,并且路由器140包括路由器模塊142。在一個實施例中,即使路由器140可能在緩存中儲存有數(shù)據(jù)對象,服務(wù)器模塊111和/或路由器模塊142也可以允許服務(wù)器110追蹤和/或監(jiān)控對于該數(shù)據(jù)對象的興趣消息。
在一個實施例中,當(dāng)服務(wù)器模塊111響應(yīng)于興趣消息傳輸數(shù)據(jù)對象136的時候,服務(wù)器模塊111可以在數(shù)據(jù)對象136中包括一個或多個參數(shù)。服務(wù)器模塊111可以在數(shù)據(jù)對象136中包括第一參數(shù)(例如在圖2中示出的轉(zhuǎn)發(fā)參數(shù)),該第一參數(shù)可以對路由器140表明:當(dāng)路由器140接收對于數(shù)據(jù)對象136的興趣消息121的時候,以及當(dāng)路由器140在緩存141中儲存有數(shù)據(jù)對象136的時候,路由器140應(yīng)該向服務(wù)器110傳輸所轉(zhuǎn)發(fā)的興趣消息123。在一個實施例中,路由器140可以用多個網(wǎng)絡(luò)接口(例如多個端口)傳輸所轉(zhuǎn)發(fā)的興趣消息123。例如,除了那個接收興趣消息121的網(wǎng)絡(luò)端口(例如第一網(wǎng)絡(luò)接口/端口)之外,路由器140可以用任何數(shù)量的網(wǎng)絡(luò)接口來傳輸多個所轉(zhuǎn)發(fā)的興趣消息123。在一個實施例中,所轉(zhuǎn)發(fā)的興趣消息123包括值、字段、指示符、和/或數(shù)據(jù),表明路由器140在它的緩存141中儲存有數(shù)據(jù)對象136(如下文將被詳細討論的)。所轉(zhuǎn)發(fā)的興趣消息還可以包括其他值、字段、指示符、和/或數(shù)據(jù)(如下文將被詳細討論的)。所轉(zhuǎn)發(fā)的興趣消息123可以允許服務(wù)器110監(jiān)控和/或追蹤對于數(shù)據(jù)對象136的興趣消息。
服務(wù)器模塊111還可以在數(shù)據(jù)對象136中包括第二參數(shù)(例如在圖2中所示出的數(shù)據(jù)返回參數(shù)),該第二參數(shù)可以對路由器140表明路由器140應(yīng)該在什么時候向客戶端設(shè)備130傳輸由興趣消息121所請求的數(shù)據(jù)對象136。例如,第二參數(shù)可以表明,路由器140一旦接收了興趣消息121就可以傳輸數(shù)據(jù)對象136(如下文將被詳細討論的)。在另一個示例中,第二參數(shù)可以表明,路由器140在傳輸數(shù)據(jù)對象136之前應(yīng)該等待來自服務(wù)器110的響應(yīng)(例如數(shù)據(jù)消息125)(如下文將被詳細討論的)。在另一個示例中,第二參數(shù)可以表明,如果一段時間內(nèi)沒有從服務(wù)器110接收響應(yīng)(例如數(shù)據(jù)消息125),則路由器應(yīng)該傳輸數(shù)據(jù)對象136(如下文將被詳細討論的)。
在一個實施例中,當(dāng)服務(wù)器110接收所轉(zhuǎn)發(fā)的興趣消息123的時候,服務(wù)器模塊111還可以生成數(shù)據(jù)消息125并且可以向路由器140傳輸數(shù)據(jù)消息125。數(shù)據(jù)消息125可以允許路由器140遵循對于興趣消息121的興趣數(shù)據(jù)交換的約定(例如響應(yīng)于興趣消息而接收數(shù)據(jù)對象)。除了包括在數(shù)據(jù)消息125中的數(shù)據(jù)對象136之外,服務(wù)器模塊111可以在數(shù)據(jù)消息125中包括數(shù)據(jù)對象136的散列(例如用諸如SHA-1、MD5等等的散列函數(shù)所生成的散列值)。數(shù)據(jù)消息125還可以包括由服務(wù)器模塊111所生成的簽名。例如,服務(wù)器模塊111可以對數(shù)據(jù)消息125簽名(例如可以生成簽名,并且可以在數(shù)據(jù)消息125中包括該簽名)。在一個實施例中,數(shù)據(jù)消息125可以是數(shù)據(jù)對象(諸如NDN數(shù)據(jù)對象、CCN數(shù)據(jù)對象等等)。數(shù)據(jù)對象的名稱可以與所轉(zhuǎn)發(fā)的興趣消息123中的名稱相同,并且數(shù)據(jù)對象的內(nèi)容/有效載荷可以是數(shù)據(jù)對象的散列(例如數(shù)據(jù)對象136的散列),該數(shù)據(jù)對象由所轉(zhuǎn)發(fā)的興趣消息123中的名稱所標(biāo)識。
在一個實施例中,服務(wù)器模塊111還可以追蹤/監(jiān)控興趣消息、所轉(zhuǎn)發(fā)的興趣消息、和/或數(shù)據(jù)對象。例如,服務(wù)器模塊111可以對所接收的興趣消息進行計數(shù),以確定對于不同數(shù)據(jù)對象的請求的總數(shù)量。在另一個示例中,服務(wù)器模塊111可以分析所轉(zhuǎn)發(fā)的興趣消息中的跳(hop)數(shù)值或計數(shù)器。跳數(shù)值或計數(shù)器可以被用于確定在沿客戶端設(shè)備130與服務(wù)器110之間的路由器的路徑上的、在其緩存中儲存有數(shù)據(jù)對象136的第一個路由器(如下文將被詳細討論的)。在另一個示例中,服務(wù)器模塊111可以檢測在路由器的緩存中儲存的數(shù)據(jù)對象的錯誤。例如,如果在所轉(zhuǎn)發(fā)的興趣消息123中的散列不匹配由服務(wù)器模塊111所生成的數(shù)據(jù)對象136的散列,那么服務(wù)器模塊111可以確定在緩存141中儲存的數(shù)據(jù)對象136有錯誤(例如數(shù)據(jù)對象136被損壞、修改等等)。在一個實施例中,服務(wù)器模塊111可以向路由器140傳輸數(shù)據(jù)對象136的正確版本,使得路由器140可以更新儲存在緩存141中的數(shù)據(jù)對象136的不正確版本。
如上文所討論的,路由器140可以包括路由器模塊142。路由器模塊142可以在客戶端設(shè)備130與服務(wù)器110之間轉(zhuǎn)發(fā)興趣消息、數(shù)據(jù)消息、和/或數(shù)據(jù)對象。由于服務(wù)器110與客戶端設(shè)備130(或其他客戶端設(shè)備)之間的先前的興趣數(shù)據(jù)交換,路由器模塊142可以從服務(wù)器110接收數(shù)據(jù)對象136。數(shù)據(jù)對象136可以包括第一參數(shù),該第一參數(shù)表明:當(dāng)路由器140接收對于數(shù)據(jù)對象136的興趣消息的時候并且當(dāng)路由器140在它的緩存141中儲存有數(shù)據(jù)對象136的時候,路由器140應(yīng)該向服務(wù)器110轉(zhuǎn)發(fā)后續(xù)的興趣消息123。在一個實施例中,路由器模塊142可以用PIT以及FIB處理興趣消息121。例如路由器模塊142可以訪問FIB以確定應(yīng)該用哪個網(wǎng)絡(luò)接口(例如哪個網(wǎng)絡(luò)端口或網(wǎng)絡(luò)連接)來向服務(wù)器轉(zhuǎn)發(fā)興趣消息121。在另一個示例中,路由器模塊142可以更新PIT以表明路由器140正在等待對于興趣消息121的數(shù)據(jù)對象。
在一個實施例中,當(dāng)路由器模塊接收興趣消息121的時候,路由器模塊142可以基于數(shù)據(jù)對象136的第一參數(shù)來更新或修改興趣消息121,得到所轉(zhuǎn)發(fā)的興趣消息123。例如,路由器模塊142可以添加附加的字段、值、和/或數(shù)據(jù)到興趣消息121,得到所轉(zhuǎn)發(fā)的興趣消息123。在一個實施例中,所轉(zhuǎn)發(fā)的興趣消息123可以是由路由器140所生成的新的興趣消息(而不是修改或更新興趣消息121)。如上文所討論的,除了數(shù)據(jù)對象136的名稱之外,所轉(zhuǎn)發(fā)的興趣消息123還可以包括值、字段、指示符、和/或數(shù)據(jù)。在一個實施例中,所轉(zhuǎn)發(fā)的興趣消息123可以包括值、字段、指示符、和/或數(shù)據(jù),表明路由器在它的緩存141中儲存有數(shù)據(jù)對象136。例如,所轉(zhuǎn)發(fā)的興趣消息123可以包括具有值“1”的標(biāo)記,以表明路由器140在它的緩存中儲存有數(shù)據(jù)對象136。在另一個實施例中,所轉(zhuǎn)發(fā)的興趣消息123還可以包括數(shù)據(jù)對象136的散列。例如,路由器模塊142可以用散列函數(shù)/算法(諸如SHA-1、MD5等等)生成數(shù)據(jù)對象136的散列(諸如散列值),并且可以將散列包括在所轉(zhuǎn)發(fā)的興趣消息123中。在另一個示例中,路由器模塊142可以獲得數(shù)據(jù)對象136的先前所生成的散列值,并且可以將散列包括在所轉(zhuǎn)發(fā)的興趣消息123中。所轉(zhuǎn)發(fā)的興趣消息123還可以包括其他值、字段、指示符、和/或數(shù)據(jù)。例如,ICN協(xié)議系統(tǒng)架構(gòu)可以在興趣消息中包括跳限制字段/參數(shù),以控制循環(huán)以及限制傳播距離(例如興趣消息可以被轉(zhuǎn)發(fā)的次數(shù))。所轉(zhuǎn)發(fā)的興趣消息123可以包括字段、值、參數(shù)等等,它們可以表明在(沿著路由器的路徑的)第一個在其緩存中具有數(shù)據(jù)對象136的路由器處的跳限制字段/參數(shù)的值(例如可以被用來標(biāo)識具有數(shù)據(jù)對象136的、距離客戶端設(shè)備130最近的路由器)。這可以允許服務(wù)器110確定數(shù)據(jù)對象136離服務(wù)器設(shè)備130有多近,并且可以允許服務(wù)器110確定網(wǎng)絡(luò)105中的路由器在緩存數(shù)據(jù)對象方面的效率。
如上文所討論的,數(shù)據(jù)對象136還可以包括第二參數(shù),該第二參數(shù)可以表明路由器140應(yīng)該在什么時候向客戶端設(shè)備130傳輸數(shù)據(jù)對象136。在一個實施例中,第二參數(shù)可以表明:當(dāng)興趣消息121被接收的時候,路由器可以向客戶端設(shè)備130傳輸(例如轉(zhuǎn)發(fā))數(shù)據(jù)對象136。例如,在興趣消息121的接收之后,路由器140可以立即(或很快)向客戶端設(shè)備130傳輸數(shù)據(jù)對象136(例如,無需等待數(shù)據(jù)消息125)。在接收數(shù)據(jù)消息125之前傳輸數(shù)據(jù)對象136可以允許路由器140減少對興趣消息121進行響應(yīng)的延遲。
在另一個實施例中,第二參數(shù)可以表明:路由器140在向客戶端設(shè)備130傳輸數(shù)據(jù)對象136之前,應(yīng)該等待數(shù)據(jù)消息125。例如,除非在一段時間內(nèi)(例如5秒的時間段)路由器140接收到數(shù)據(jù)消息125,否則路由器140不可以被允許傳輸數(shù)據(jù)對象136(例如,可以制止傳輸數(shù)據(jù)對象136)。數(shù)據(jù)消息125可以包括數(shù)據(jù)對象136的散列而不是數(shù)據(jù)對象136(如上文所討論的)。由于各種原因和/或錯誤,路由器140可能未接收數(shù)據(jù)消息125。例如,網(wǎng)絡(luò)105中可能存在路由故障,該路由故障導(dǎo)致所轉(zhuǎn)發(fā)的興趣消息123無法到達服務(wù)器110。在另一個示例中,在網(wǎng)絡(luò)105中可能存在擁堵,該擁堵可能導(dǎo)致所轉(zhuǎn)發(fā)的興趣消息123被丟棄。在另一個示例中,服務(wù)器110可能發(fā)生故障(例如可能已被破壞、可能無法運行、可能在故障中等等)。
如果數(shù)據(jù)消息125在該段時間內(nèi)被接收,那么路由器模塊142可以用PIT與FIB處理數(shù)據(jù)消息125。例如,當(dāng)數(shù)據(jù)消息125被接收之后,路由器140可以更新和/或移除PIT中的條目。路由器140還可以向客戶端設(shè)備130傳輸(例如轉(zhuǎn)發(fā))數(shù)據(jù)對象136。如果數(shù)據(jù)消息125沒有在該段時間內(nèi)被接收,那么路由器模塊142可以向客戶端設(shè)備130傳播該錯誤(例如傳輸代表錯誤已發(fā)生的消息),而不是向客戶端設(shè)備130傳輸(儲存在緩存141中的)數(shù)據(jù)對象136。當(dāng)數(shù)據(jù)對象136沒有儲存在緩存141中的時候,等待數(shù)據(jù)消息125(在傳輸數(shù)據(jù)對象136之前)可以允許路由器140復(fù)現(xiàn)數(shù)據(jù)對象136的傳輸中的延遲。向客戶端設(shè)備130傳播錯誤可以允許路由器140像緩存141中沒有儲存過數(shù)據(jù)對象136那樣操作或運作。這使得當(dāng)服務(wù)器110故障或無法聯(lián)絡(luò)的時候(例如錯誤使得服務(wù)器110無法接收所轉(zhuǎn)發(fā)的興趣消息123或傳輸數(shù)據(jù)消息125),系統(tǒng)架構(gòu)可以避免向客戶端設(shè)備130傳輸數(shù)據(jù)對象136。
在另一個實施例中,第二參數(shù)可以表明路由器應(yīng)該等待數(shù)據(jù)消息125一段時間。如果數(shù)據(jù)消息125沒有在該段時間內(nèi)被接收,那么在該段時間(例如超時周期)到期之后,路由器140可以向客戶端設(shè)備130傳輸數(shù)據(jù)對象136。例如,如果數(shù)據(jù)消息125沒有在五秒(例如超時周期)之后被接收,那么路由器140可以向客戶端設(shè)備130傳輸數(shù)據(jù)對象136。如上文所討論的,由于各種原因和/或錯誤,路由器140可能未接收數(shù)據(jù)對象125。允許路由器140在該段時間到期之后傳輸數(shù)據(jù)對象136(而不是制止傳輸數(shù)據(jù)對象136)可以使得系統(tǒng)架構(gòu)100更加可靠地向客戶端設(shè)備提供數(shù)據(jù)對象,同時給服務(wù)器110提供追蹤和/或監(jiān)控成功地從客戶端設(shè)備所接收的興趣消息的能力。
在其他實施例中,系統(tǒng)架構(gòu)100可以在網(wǎng)絡(luò)105(例如在服務(wù)器110與客戶端設(shè)備130之間)中包括附加的路由器(未在圖中所示出)。如果附加的路由器接收所轉(zhuǎn)發(fā)的興趣消息123,那么該附加的路由器可以用PIT與FIB執(zhí)行所轉(zhuǎn)發(fā)興趣消息123的正常處理。例如,該附加的路由器可以在PIT中添加條目(或如果該附加的路由器被配置以集合興趣消息,則更新條目),并且可以用FIB來確定應(yīng)該用該附加的路由器的哪個網(wǎng)絡(luò)接口來傳輸所轉(zhuǎn)發(fā)的興趣消息123。如果附加的路由器接收數(shù)據(jù)消息125,那么附加的路由器還可以用PIT與FIB執(zhí)行數(shù)據(jù)消息125的正常的處理。例如,該附加的路由器可以用PIT確定應(yīng)該用附加的路由器的哪個網(wǎng)絡(luò)接口來傳輸數(shù)據(jù)消息125,并且當(dāng)數(shù)據(jù)消息125被接收的時候可以更新和/或移除PIT中的條目。附加的路由器還可以向客戶端設(shè)備130傳輸(例如轉(zhuǎn)發(fā))數(shù)據(jù)消息125。
在一個實施例中,系統(tǒng)架構(gòu)100可以允許服務(wù)器110追蹤/管理興趣消息和/或數(shù)據(jù)對象(就像路由器140的緩存141中沒有儲存該數(shù)據(jù)一樣),同時允許路由器140(以及附加的路由器)通過傳輸來自緩存141的數(shù)據(jù)對象(而不是從服務(wù)器110請求這些數(shù)據(jù)對象)來減少網(wǎng)絡(luò)105的擁堵或帶寬使用。系統(tǒng)架構(gòu)100可以允許路由器140在接收興趣消息121之后立即(或很快)返回數(shù)據(jù),由此來模仿通常的NDN表現(xiàn),并且仍舊能夠在可能的時候向服務(wù)器110告知每個將要到達的興趣消息。無論當(dāng)數(shù)據(jù)消息125到達或當(dāng)錯誤發(fā)生的時候,系統(tǒng)架構(gòu)100可以都允許數(shù)據(jù)對象136從緩存被返回。系統(tǒng)架構(gòu)100還可以僅當(dāng)服務(wù)器110能夠聯(lián)絡(luò)與響應(yīng)的時候,才允許數(shù)據(jù)對象136被返回。
盡管圖1可以涉及NDN系統(tǒng)架構(gòu),應(yīng)當(dāng)理解NDN系統(tǒng)架構(gòu)僅僅是可以被采用的示例的架構(gòu)。其他實施例可以采用其他類型的系統(tǒng)架構(gòu)(諸如CCN、Pursuit、NetInf等等)。例如,本文所描述的實施例、實現(xiàn)方式、和/或示例可以適用于這樣的任何ICN系統(tǒng)架構(gòu):該ICN系統(tǒng)架構(gòu)用興趣數(shù)據(jù)交換在客戶端(諸如消費者)與服務(wù)器(諸如生產(chǎn)者)之間傳輸數(shù)據(jù)。在另一個示例中,本文所描述的實施例、實現(xiàn)方式、和/或示例可以適用于這樣的任何ICN系統(tǒng)架構(gòu):該ICN系統(tǒng)架構(gòu)允許路由器緩存數(shù)據(jù)對象,以及允許路由器用緩存中的數(shù)據(jù)對象來響應(yīng)于興趣消息。
圖2是根據(jù)一些實施例示出了示例的數(shù)據(jù)對象136的框圖。如上文結(jié)合圖1所討論的,服務(wù)器(例如圖1所示出的服務(wù)器110或服務(wù)器模塊111)可以生成和/或儲存數(shù)據(jù)對象136。數(shù)據(jù)對象136包括名稱205、到期210、緩存參數(shù)215、轉(zhuǎn)發(fā)參數(shù)220、數(shù)據(jù)返回參數(shù)225、數(shù)據(jù)230、以及簽名235。在其他實施例中,數(shù)據(jù)對象136可以包括上述項的不同組合。
在一個實施例中,名稱205可以標(biāo)識數(shù)據(jù)230和/或數(shù)據(jù)對象136。在另一個實施例中,到期210可以表明數(shù)據(jù)對象136可以保持有效的時間(或一段時間)量。例如,到期210可以表明路由器應(yīng)該在一段時間之后(例如在一天之后)刪除數(shù)據(jù)對象136,和/或可以表明數(shù)據(jù)在該段時間之后不應(yīng)被視作有效。在一個實施例中,緩存參數(shù)215可以表明是否允許路由器緩存數(shù)據(jù)對象136。例如,緩存參數(shù)215可以是標(biāo)記,其中“0”值表明不允許路由器返回數(shù)據(jù)對象136的經(jīng)緩存的副本,而“1”值表明不允許路由器返回數(shù)據(jù)對象136經(jīng)緩存的副本。
在一個實施例中,簽名235可以安全地綁定以下一個或多個:名稱205、到期210、緩存參數(shù)215、轉(zhuǎn)發(fā)參數(shù)220、數(shù)據(jù)返回參數(shù)225、以及數(shù)據(jù)230。例如,簽名235可以使用私有密鑰(例如秘密的密鑰)以及以下一項或多項來生成:名稱205、到期210、緩存參數(shù)215、轉(zhuǎn)發(fā)參數(shù)220、數(shù)據(jù)返回參數(shù)225、以及數(shù)據(jù)230。簽名235可以允許路由器和/或客戶端設(shè)備確定和/或確認服務(wù)器的身份。
圖3是根據(jù)一些實施例,示出了示例的所轉(zhuǎn)發(fā)的興趣消息123的框圖。如上文結(jié)合圖1所討論的,路由器(例如圖1所示出的路由器140或路由器模塊142)可以生成和/或向服務(wù)器傳輸所轉(zhuǎn)發(fā)的興趣消息123。所轉(zhuǎn)發(fā)的興趣消息123包括名稱305、緩存指示符310、以及散列315。在另一個實施例中,所轉(zhuǎn)發(fā)的興趣消息123可以包括上述項的不同組合。例如,在所轉(zhuǎn)發(fā)的興趣消息123中,散列315可以是可選的。
在一個實施例中,名稱305可以標(biāo)識由客戶端設(shè)備所請求的數(shù)據(jù)和/或數(shù)據(jù)對象(例如數(shù)據(jù)對象136)。例如,參考圖1,名稱305可以標(biāo)識儲存在服務(wù)器110中的數(shù)據(jù)對象136。在一個實施例中,緩存指示符310可以表明由名稱305所標(biāo)識的數(shù)據(jù)對象被儲存在路由器的緩存中。緩存指示符310還可以向服務(wù)器表明和/或提供附加的信息。例如,緩存指示符310還可以被用來表明當(dāng)前的跳計數(shù)或跳值。在一個實施例中,散列315可以是由名稱305所標(biāo)識的數(shù)據(jù)對象的散列。例如散列315可以是用散列函數(shù)/算法(例如SHA-1)和由名稱305所標(biāo)識的數(shù)據(jù)對象所生成的散列值。
圖4是根據(jù)一些實施例,示出示例的數(shù)據(jù)消息125的框圖。如以上結(jié)合圖1所討論的,服務(wù)器(例如在圖1中示出的服務(wù)器110或服務(wù)器模塊111)可以生成和/或向客戶端設(shè)備傳輸數(shù)據(jù)消息125。數(shù)據(jù)消息125包括名稱405、散列410、以及簽名415。在其他實施例中,數(shù)據(jù)消息125可以包括上述項的不同組合。例如,在數(shù)據(jù)消息215中簽名415可以是可選的。
在一個實施例中,名稱405可以標(biāo)識由客戶端設(shè)備所請求的和/或在路由器的緩存中所儲存的數(shù)據(jù)和/或數(shù)據(jù)對象(諸如數(shù)據(jù)對象136)。例如,參考圖1,名稱405可以標(biāo)識儲存在服務(wù)器110以及路由器140的緩存141中的數(shù)據(jù)對象136。在一個實施例中,散列410可以是由名稱405所標(biāo)識的數(shù)據(jù)對象的散列。例如,散列410可以是用散列函數(shù)/算法(例如SHA-1)以及由名稱405所標(biāo)識的數(shù)據(jù)對象所生成的散列值。在一個實施例中,簽名415可以安全地綁定名稱405與散列410中的一個或多個。例如,簽名415可以用私有密鑰(例如秘密的密鑰)以及名稱405與散列410中的一個或多個所生成。簽名415可以允許路由器和/或客戶端設(shè)備確定和/或確認服務(wù)器的身份。
圖5是根據(jù)一些實施例,生成和/或傳輸所轉(zhuǎn)發(fā)的興趣消息的方法500的流程圖。在一些實現(xiàn)方式中,方法500可以由路由器和/或路由器模塊(例如圖1所示出的路由器140和/或路由器模塊142)所執(zhí)行。簡言之,方法500包括接收興趣消息、確定數(shù)據(jù)對象是否被儲存在緩存中、以及傳輸所轉(zhuǎn)發(fā)的興趣消息。方法500在塊501處開始,該處方法500接收數(shù)據(jù)對象。例如,方法500可以接收數(shù)據(jù)對象,作為與服務(wù)器此前的興趣數(shù)據(jù)交換的一部分(如上文所討論的)。在塊502處,方法500在路由器的緩存中儲存數(shù)據(jù)對象。在塊505處,方法500接收請求數(shù)據(jù)對象的興趣消息。例如,方法500可以從客戶端設(shè)備或從另一個路由器接收興趣消息。興趣消息可以包括數(shù)據(jù)對象的名稱(例如如上文所討論的)。在塊510處,方法500可以確定由興趣消息中的名稱標(biāo)識的數(shù)據(jù)對象是否被儲存在路由器的緩存中。
如果由興趣消息中的名稱所標(biāo)識的數(shù)據(jù)對象沒有被儲存在路由器的緩存中,那么方法500在塊512處可以向服務(wù)器傳輸(例如轉(zhuǎn)發(fā))興趣消息。如果由興趣消息中的名稱所標(biāo)識的數(shù)據(jù)對象被儲存在路由器的緩存中,那么方法500在塊515處更新(例如修改)興趣消息。例如,參考圖3,方法500可以更新興趣消息以包括一個或多個參數(shù)、值、字段等等(例如圖1所示出的,可以更新興趣消息121,得到所轉(zhuǎn)發(fā)的興趣消息123)。方法500在塊520處向服務(wù)器傳輸所更新的興趣消息。在一個實施例中,方法500可以用多個網(wǎng)絡(luò)接口(例如多個端口)向服務(wù)器傳輸所更新的興趣消息,例如,除了接收該興趣消息(在塊505處)的那個網(wǎng)絡(luò)接口之外,方法500可以用任何數(shù)量的網(wǎng)絡(luò)接口來傳輸所更新的興趣消息。
圖6是根據(jù)一些實施例,傳輸數(shù)據(jù)對象的方法600的流程圖。在一些實現(xiàn)方式中,方法600可以由路由器和/或路由器模塊(例如在圖1中所示出的路由器140和/或路由器模塊142)所執(zhí)行。簡言之,方法600包括確定數(shù)據(jù)消息是否被接收,以及確定是否傳輸數(shù)據(jù)對象。方法600在塊605處開始,該處方法600確定數(shù)據(jù)消息是否被接收。例如,參考圖4,方法600可以確定數(shù)據(jù)消息125是否被接收。數(shù)據(jù)消息可以包括數(shù)據(jù)對象的名稱。如果數(shù)據(jù)消息被接收,方法600(在塊630處)確定是否先前已經(jīng)向客戶端設(shè)備傳輸或發(fā)送數(shù)據(jù)消息中所標(biāo)識的數(shù)據(jù)對象。例如,參考回圖2,方法600可以分析數(shù)據(jù)返回參數(shù)225以確定數(shù)據(jù)對象是否已被傳輸而未等待數(shù)據(jù)消息。如果沒有在先前向客戶端設(shè)備傳輸或發(fā)送在數(shù)據(jù)消息中所標(biāo)識的數(shù)據(jù)對象,那么方法600可以在塊635處向客戶端設(shè)備傳輸數(shù)據(jù)對象。如果已經(jīng)在先前向客戶端設(shè)備傳輸或發(fā)送在數(shù)據(jù)消息中所標(biāo)識的數(shù)據(jù)對象,那么方法600可以更新路由器的PIT。例如,方法600可以更新在PIT中的條目以表明興趣消息已經(jīng)被滿足(如上文所討論的)。
如果數(shù)據(jù)消息沒有被接收,那么方法600在塊610處確定超時周期(例如一段時間)是否已經(jīng)到期。如果超時周期尚未到期,那么方法600可以繼續(xù)進行到605處。如果超時周期已經(jīng)到期,那么方法600在塊615處可以確定是否在超時周期已經(jīng)到期之后向客戶端設(shè)備傳輸數(shù)據(jù)對象。例如參考回圖2,方法600可以分析數(shù)據(jù)返回參數(shù)225,以確定是否在盡管超時周期已到期的情況下仍應(yīng)該向客戶端設(shè)備傳輸數(shù)據(jù)對象。如果在超時周期已到期之后,仍應(yīng)該向客戶端設(shè)備傳輸數(shù)據(jù)對象,方法600可以在塊625處向客戶端設(shè)備傳輸數(shù)據(jù)對象。如果在超時周期到期之后,不應(yīng)該向客戶端設(shè)備傳輸數(shù)據(jù)對象,那么方法600可以塊620處制止向客戶端設(shè)備傳輸數(shù)據(jù)對象。
圖7是根據(jù)一些實施例,生成和/或傳輸數(shù)據(jù)消息的方法的流程圖。在一些實現(xiàn)方式中,方法700可以由服務(wù)器和/或服務(wù)器模塊(例如圖1中所示出的服務(wù)器110和/或服務(wù)器模塊111)執(zhí)行。簡言之,方法600包括接收所轉(zhuǎn)發(fā)的興趣消息、生成數(shù)據(jù)消息、以及傳輸數(shù)據(jù)消息。方法700在塊705處開始,該處方法700接收對于數(shù)據(jù)對象的興趣消息并且響應(yīng)于興趣消息傳輸數(shù)據(jù)對象。例如,第一客戶端設(shè)備可以傳輸(具有數(shù)據(jù)對象的名稱的)興趣消息,并且方法700可以響應(yīng)于興趣消息向第一客戶端設(shè)備傳輸數(shù)據(jù)對象。如上文所討論以及在圖2中所示出的,數(shù)據(jù)對象可以包括各種數(shù)據(jù)、字段、值、和/或參數(shù)。
在塊710處,方法700接收所轉(zhuǎn)發(fā)的興趣消息。例如,參考圖1和圖3,方法700可以接收所轉(zhuǎn)發(fā)的興趣消息123。在塊715處,方法700可以確定與所轉(zhuǎn)發(fā)的興趣消息相關(guān)聯(lián)的信息。例如,方法700可以以1為單位遞增針對數(shù)據(jù)對象所接收的興趣消息的總數(shù)。在塊702處,方法700還可以確定與由所轉(zhuǎn)發(fā)的興趣消息所標(biāo)識的數(shù)據(jù)對象相關(guān)聯(lián)的信息。例如,方法700可以分析在所轉(zhuǎn)發(fā)的興趣消息中的散列,以確定儲存在路由器的緩存中的數(shù)據(jù)對象的副本是否有錯誤。在塊725處,方法700生成數(shù)據(jù)消息。例如,參考圖1與圖4,方法700可以生成數(shù)據(jù)消息125。如圖4中所示出與上文所討論的,數(shù)據(jù)消息125可以包括各種數(shù)據(jù)、字段、值、和/或參數(shù)。在塊730處,方法700可以向客戶端設(shè)備傳輸數(shù)據(jù)消息125。
圖8是根據(jù)一些實施例的計算設(shè)備800的框圖。盡管某些的具體特性被示出,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)從本公開中理解,出于簡化的目的而未示出各種其他特性,以免模糊本文所公開的實施例的更多相關(guān)的方面。為此,作為非限制性的示例,在一些實施例中,計算設(shè)備800包括一個或多個處理單元(CPU)802(例如處理器)、一個或多個輸出接口803、存儲器806、編程接口808、以及用于將它們與各種其他組件互聯(lián)的一個或多個通信總線804。
在一些實施例中,通信總線804包括互聯(lián)與控制系統(tǒng)組件之間的通信的電路。存儲器806包括高速隨機存取存儲器,諸如DRAM、SRAM、DDR RAM、或其他隨機存取固態(tài)存儲器設(shè)備;并且可以包括非易失存儲器,諸如一個或多個磁盤存儲設(shè)備、光盤存儲設(shè)備、閃存設(shè)備、或其他非易失固態(tài)存儲設(shè)備。存儲器806可選地包括位于CPU 802遠程的一個或多個存儲設(shè)備。存儲器806包括非暫態(tài)計算機可讀存儲介質(zhì)。此外,在一些實施例中,存儲器806或存儲器806的其他非暫態(tài)計算機可讀存儲介質(zhì)儲存下文的程序、模塊以及數(shù)據(jù)結(jié)構(gòu)、或其子集,包括可選的操作系統(tǒng)830與服務(wù)器模塊840。在一些實施例中,邏輯存儲器與非暫態(tài)存儲器的組合中包括一個或多個指令。操作系統(tǒng)830包括用于運作各種基礎(chǔ)系統(tǒng)服務(wù)以及用于執(zhí)行基于硬件的任務(wù)的過程。在一些實施例中,服務(wù)器模塊840可以被配置來生成數(shù)據(jù)對象、接收興趣消息、傳輸數(shù)據(jù)對象、接收所轉(zhuǎn)發(fā)的興趣消息、生成數(shù)據(jù)消息、和/或傳輸數(shù)據(jù)消息。為此,服務(wù)器模塊840包括興趣分析模塊841以及數(shù)據(jù)控制模塊842。
在一些實施例中,興趣分析模塊841可以接收興趣消息、接收所轉(zhuǎn)發(fā)的興趣消息、和/或確定信息(例如檢測在數(shù)據(jù)對象中的錯誤、確定跳值或計數(shù))。為此,興趣分析模塊841包括指令841a與啟發(fā)和元數(shù)據(jù)841b的集合。在一些實施例中,數(shù)據(jù)控制模塊842可以生成數(shù)據(jù)對象、傳輸數(shù)據(jù)對象、生成數(shù)據(jù)消息、和/或傳輸數(shù)據(jù)消息。為此,數(shù)據(jù)控制模塊842包括指令842a與啟發(fā)和元數(shù)據(jù)842b的集合。
盡管服務(wù)器模塊840、興趣分析模塊841、以及數(shù)據(jù)控制模塊842被圖示為存在于單一的計算設(shè)備800上,應(yīng)當(dāng)理解在其他實施例中,服務(wù)器模塊840、興趣分析模塊841、以及數(shù)據(jù)控制模塊842的每一個可以存在于單獨的計算設(shè)備上。
圖9是根據(jù)一些實施例的計算設(shè)備900的框圖。盡管示出了特定具體的特性,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)從本公開中理解,出于簡化的目的而未示出各種其他的特性,以免模糊本文所公開的實施例的更多的相關(guān)方面。為此,作為非限制性的示例,在一些實施例中,計算設(shè)備900包括一個或多個處理單元(CPU)902(例如處理器)、一個或多個輸出接口903、存儲器906、編程接口908、用于將這些與各種其他組件互聯(lián)的一個或多個通信總線904。
在一些實施例中,通信總線904包括互聯(lián)和控制系統(tǒng)組件之間的通信的電路。存儲器906包括高速隨機存取存儲器,諸如DRAM、SRAM、DDR RAM或其他隨機存取固態(tài)存儲器設(shè)備;并且可以包括非易失存儲器,諸如一個或多個磁盤存儲設(shè)備、光盤存儲設(shè)備、閃存設(shè)備、或其他非易失固態(tài)存儲設(shè)備。存儲器906可選地包括位于(一個或多個)CPU 902遠程的一個或多個存儲設(shè)備。存儲器906包括非暫態(tài)計算機可讀存儲介質(zhì)。此外,在一些實施例中,存儲器906或存儲器906的非暫態(tài)計算機可讀存儲設(shè)備介質(zhì)儲存下文的程序、模塊、以及數(shù)據(jù)結(jié)構(gòu)、或其子集,包括可選的操作系統(tǒng)930以及服務(wù)器模塊940。在一個實施例中,邏輯存儲器與非暫態(tài)存儲器的組合中包括一個或多個指令。操作系統(tǒng)930包括用于運作各種基礎(chǔ)系統(tǒng)服務(wù)以及用于執(zhí)行基于硬件的任務(wù)的步驟。在一些實施例中,路由器模塊940可以被配置來接收興趣消息、傳輸興趣消息、接收數(shù)據(jù)對象、傳輸數(shù)據(jù)對象、生成所轉(zhuǎn)發(fā)的興趣消息、傳輸所轉(zhuǎn)發(fā)的興趣消息、接收數(shù)據(jù)消息、以及傳輸數(shù)據(jù)消息。為此,路由器模塊940包括興趣轉(zhuǎn)發(fā)模塊941以及數(shù)據(jù)對象模塊942。
在一些實施例中,興趣轉(zhuǎn)發(fā)模塊941可以接收興趣消息、傳輸興趣消息、生成所轉(zhuǎn)發(fā)的興趣消息、以及傳輸所轉(zhuǎn)發(fā)的興趣消息。為此,興趣轉(zhuǎn)發(fā)模塊941包括指令941a以及啟發(fā)和元數(shù)據(jù)941b的集合。在一些實施例中,數(shù)據(jù)對象模塊942可以接收數(shù)據(jù)對象、傳輸數(shù)據(jù)對象、接收數(shù)據(jù)消息、以及傳輸數(shù)據(jù)消息。為此,數(shù)據(jù)對象模塊942包括指令942a與啟發(fā)和元數(shù)據(jù)942b的集合。
盡管路由器模塊940、興趣轉(zhuǎn)發(fā)模塊941、以及數(shù)據(jù)對象模塊942被示出為位于單一的計算設(shè)備900中,應(yīng)當(dāng)理解在其他實施例中,路由器模塊940、興趣轉(zhuǎn)發(fā)模塊941、以及數(shù)據(jù)對象模塊942的任何組合可以位于單獨的計算設(shè)備中。
此外,圖8到圖9更多地意在作為可能出現(xiàn)在特定實施例中的各種特性的功能性描述,而不是本文所描述的實施例的結(jié)構(gòu)示意圖。如本領(lǐng)域技術(shù)人員所理解的,分別示出的項可以被組合,并且一些項可以被拆分。例如,圖8到圖9中分別地示出的一些功能性的模塊可以在單個模塊中被實現(xiàn),并且單個功能性塊的各種功能可以在各種實施例中由一個或多個功能塊所實現(xiàn)。模塊的實際數(shù)量與具體功能的劃分、以及它們之間如何分配特性,從一個實施例到另一個會是不同的,并且可以部分地取決于針對特定實施例所選擇的硬件、軟件和/或固件的特定的組合。
本公開描述了各種特性,這些特性中沒有一個單獨負責(zé)本文所描述的優(yōu)點。應(yīng)當(dāng)理解本文所描述的各種特性可以被組合、修改、或省略,這對本領(lǐng)域技術(shù)人員是顯然的。除了本文所具體描述之外的其他組合以及子組合對于本領(lǐng)域技術(shù)人員將是顯然的,并且意在組成本公開的一部分。本文結(jié)合各種流程圖步驟和/或階段描述了各種方法。應(yīng)當(dāng)理解在許多情境中,某些步驟和/或階段可以被組合在一起,使得在流程圖中示出的多個步驟和/或階段可以作為單個步驟和/或階段執(zhí)行。同樣地,某些步驟和/或階段可以被分解為更多的子成分而被分別地執(zhí)行。在一些示例中,步驟和/或階段的順序可以被重新安排,并且某些步驟和/或階段可以被完全省略。同樣地,本文所描述的方法應(yīng)當(dāng)被理解為開放性的,使得對于本文所示和所述的步驟和/或階段而言,還可以執(zhí)行附加的步驟和/或階段。
本文所描述的系統(tǒng)與方法的一些方面可以用例如計算機軟件、硬件、固件或計算機軟件、硬件、固件的任何組合而有利地實現(xiàn)。計算機軟件可以包括儲存在計算機可讀介質(zhì)(諸如非暫態(tài)計算機可讀介質(zhì))中的計算機可執(zhí)行代碼,當(dāng)其被執(zhí)行時,執(zhí)行本文所描述的功能。在一些實施例中,計算機可執(zhí)行代碼由一個或多個通用計算機處理器所執(zhí)行。根據(jù)本公開,技術(shù)人員將理解,可以用在通用計算機上所執(zhí)行的軟件所實現(xiàn)的任何特性或功能也可以用硬件、軟件、或固件的不同組合實現(xiàn)。例如,這種模塊可以用集成電路的組合完全被實現(xiàn)在硬件中。替代地或此外,這種特性或功能可以用除通用計算機之外的專用計算機而完全或部分地實現(xiàn),該專用計算機被設(shè)計來執(zhí)行本文所描述的特定功能。
可以用多個分布式的計算設(shè)備來代替本文所描述的任何一個計算設(shè)備。在這種分布式實施例中,一個計算設(shè)備的功能被(例如通過網(wǎng)絡(luò))分布,使得在每一個分布式計算設(shè)備上執(zhí)行一些功能。
一些實施例可以參考公式、算法、和/或流程圖而被描述。這些方法可以用能夠在一個或多個計算機上執(zhí)行的計算機程序指令而實現(xiàn)。這些方法還可以被實現(xiàn)為計算機程序產(chǎn)品,或者單獨實現(xiàn),或是作為裝置或系統(tǒng)的組件而被實現(xiàn)。就此而言,每個公式、算法、塊、或流程圖的步驟以及它們的組合可以由硬件、固件、和/或軟件而被實現(xiàn),該軟件包括存在于計算機可讀程序代碼邏輯中的一個或多個計算機程序指令??梢岳斫?,任何這種計算機程序指令可以被裝載到一個或多個計算機(包括但不限于通用計算機或?qū)S糜嬎銠C)或其他可編程處理裝置上以產(chǎn)生一種機器,使得在這(一個或多個)計算機或(一個或多個)其他可編程處理設(shè)備上所執(zhí)行的計算機程序指令實現(xiàn)由公式、算法、和/或流程圖所指定的功能。應(yīng)當(dāng)理解在流程圖中所示出的公式、算法、和/或塊、以及它們的組合,可以由專用的基于硬件的計算機系統(tǒng)所實現(xiàn),該基于硬件的計算機系統(tǒng)執(zhí)行所指定的功能或步驟,或由專用硬件與計算機可讀程序代碼邏輯手段的組合實現(xiàn)。
此外,(諸如在計算機可讀程序代碼邏輯中的)計算機程序指令可以被儲存在計算機可讀存儲器(例如非暫態(tài)計算機可讀介質(zhì))中,該計算機可讀存儲器可以指導(dǎo)一個或多個計算機或其他可編程處理設(shè)備以特定的方式工作,使得計算機可讀存儲器中儲存的指令實現(xiàn)在(一個或多個)流程圖中的(一個或多個)塊中指定的(一個或多個)功能。計算機程序指令還可以被裝載到一個或多個計算機或其他可編程計算設(shè)備上,使得一系列可操作的步驟在這一個或多個計算機上或其他可編程計算設(shè)備上執(zhí)行以產(chǎn)生計算機實現(xiàn)的處理,使在計算機上或其他可編程處理設(shè)備上所執(zhí)行的指令提供用于實現(xiàn)由流程圖的(一個或多個)公式、(一個或多個)算法、和/或(一個或多個)塊所指定的功能的步驟。
本文所描述的一些或全部的方法和任務(wù)可以由計算機系統(tǒng)所執(zhí)行以及全自動化。在一些情境中,計算機系統(tǒng)可以包括多個不同的計算機或計算設(shè)備(例如物理服務(wù)器、工作站、存儲設(shè)備陣列等等),其通過網(wǎng)絡(luò)通信以及交互操作來執(zhí)行所描述的功能。每個這種計算設(shè)備通常包括處理器(或多個處理器),其執(zhí)行在存儲器、其他非暫態(tài)的計算機可讀存儲設(shè)備介質(zhì)或設(shè)備中儲存的程序指令或模塊。本文所公開的各種功能可以由這種程序指令實現(xiàn),盡管一些或全部所公開的功能可以在專用電路(諸如專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA))中替代地實現(xiàn)。在計算機系統(tǒng)包括多個計算設(shè)備的情況下,這些設(shè)備可以但不必要在相同的位置。所公開的方法與任務(wù)的結(jié)果可以通過把物理存儲設(shè)備(諸如固態(tài)存儲器芯片和/或磁盤)轉(zhuǎn)換到另一狀態(tài)而被持久地儲存。
除非上下文另有明確要求,貫穿說明書和權(quán)利要求書,詞語“包括”等等應(yīng)解釋為包容的意義,而不是排除的或窮舉的意義;即“包括但不局限于”的意義。本文中常用的詞語“耦接”指的是兩個或更多個元件可以被直接地連接或通過一個或多個中間元件所連接。此外,詞語“本文”“上文”“下文”以及相似含義的詞語當(dāng)在本申請中使用時應(yīng)當(dāng)指的是本申請作為一個整體而不是本申請的任何特定的部分。在上下文允許的情況下,在以上詳細說明中使用單數(shù)或復(fù)數(shù)數(shù)量的詞語還可以包括相應(yīng)的復(fù)數(shù)或單數(shù)數(shù)量。對于一系列兩個或更多個項所用的詞語“或”,該詞語涵蓋對該詞語的下列所有解釋:該系列中的任一項、該系列中的所有項、以及該系列中的項的任何組合。詞語“示例的”在本文僅僅意指“作為示例、實例或舉例”。本文描述為“示例的”任何實現(xiàn)方式不一定被認為比其他的實現(xiàn)方式更優(yōu)選或更有利。
應(yīng)當(dāng)理解,盡管本文可能使用了術(shù)語“第一”“第二”等等來描述各種元件,這些元件不應(yīng)該被這些術(shù)語所局限。這些術(shù)語僅僅被用來將一個元件與其他的元件區(qū)分開。例如,第一接點可以被叫做第二接點,并且相似地,第二接點可以被叫做第一接點,不改變說明書的意思,只要出現(xiàn)的所有“第一接點”被一致地重命名并且出現(xiàn)的所有第二接點也被一致地重命名。第一接點和第二接點都是接點,但是它們不是同一個接點。同樣地如在對實施例的說明以及所附權(quán)利要求書中所使用的,單數(shù)形式“一”、“該”意在也包括復(fù)數(shù)形式,除非上下文以其他方式明確表明。應(yīng)當(dāng)理解,本文所使用的術(shù)語“和/或”表示并且包含所列出的有關(guān)項中一個或多個的任何且所有可能的組合。
還如本文所使用的,術(shù)語“如果”可以被解釋為“當(dāng)...的時候”或“一旦...”或“響應(yīng)于確定”或“根據(jù)確定”或“響應(yīng)于檢測”,其根據(jù)上下文所陳述的先決條件為真。相似地,取決于上下文,句子“如果確定[所陳述的先決條件為真]”、或“如果[所陳述的先決條件為真]”、或“當(dāng)[所陳述的先決條件為真]的時候”可以被解釋意為“一旦確定”或“響應(yīng)于確定”或“根據(jù)確定”或“一旦檢測到”或“響應(yīng)于檢測到”所陳述的先決條件是真。
本公開不意在局限本文所示出的實現(xiàn)方式。對本公開中所描述的實現(xiàn)方式的各種修改對于本領(lǐng)域技術(shù)人員可能是顯然的,并且本文所定義的一般原則可以用于其他實現(xiàn)方式而不脫離本公開的精神或范圍。本文所提供發(fā)明的教導(dǎo)可以適用于其他方法和系統(tǒng),并且不局限于以上所描述的方法和系統(tǒng),并且以上所描述的各種實施例的元件與動作可以被組合來提供更多的實施例。相應(yīng)地,本文所描述的新穎的方法與系統(tǒng)可以以多種其他形式實施;此外,在本文所描述的方法或系統(tǒng)的形式中可以做出各種省略、置換以及改變而不脫離本公開的精神。所附的權(quán)利要求書以及它們的等同含義意在覆蓋落在本公開的范圍與精神中的這些形式或修改。