本申請一般涉及傳輸框架。更具體地,本申請涉及用于在內(nèi)容中心網(wǎng)絡中傳輸或復制堆棧的狀態(tài)的系統(tǒng)和方法。
背景技術:
移動計算裝置和互聯(lián)網(wǎng)無處不在,這使得人們可以從任何地方體驗數(shù)字內(nèi)容。人們可以使用移動計算裝置中的應用來消費來自互聯(lián)網(wǎng)上的服務提供商的內(nèi)容或與之交互,諸如以流形式播放電影或音樂或與別人玩游戲。移動計算裝置的這些先進之處還提高了可以被這些移動裝置再現(xiàn)的內(nèi)容的質(zhì)量,并大大提高了可以生成和捕獲數(shù)字內(nèi)容并通過互聯(lián)網(wǎng)與其它人分享的裝置的數(shù)量。如今,即便很小的移動裝置,諸如智能手機都可以產(chǎn)生具有高質(zhì)量顏色再現(xiàn)的全高清視頻,高速蜂窩和寬帶網(wǎng)絡使得用戶可以通過各種互聯(lián)網(wǎng)服務(諸如YouTube(來自Google公司)和Facebook(來自Facebook公司)內(nèi)容分享服務)與其它人分享此內(nèi)容。
許多計算機應用利用這些計算機網(wǎng)絡和互聯(lián)網(wǎng)服務向其用戶提供社交特征,這大大地提升了用戶體驗。當應用想要使用網(wǎng)絡時,他通過使用在計算裝置的操作系統(tǒng)上運行的一個或多個應用編程接口(API)來進行。這些API提供一種應用發(fā)送、接收、存儲、配置數(shù)據(jù)或另外與網(wǎng)絡上的其它計算機通信的方式。
例如,在應用可以使用API通過網(wǎng)絡發(fā)送或接收數(shù)據(jù)之前,應用實例化實現(xiàn)網(wǎng)絡API的協(xié)議堆棧。在基于例如開放系統(tǒng)互連(OSI)模型的傳統(tǒng)的協(xié)議堆棧中,每一層只可以與他之上或之下的層通信。在基于內(nèi)容中心網(wǎng)絡(CCN)的模型中,協(xié)議堆??梢员粍討B(tài)地創(chuàng)建以滿足各個應用使用的API的需求。盡管這些應用驅動的協(xié)議堆棧的創(chuàng)建可以提高系統(tǒng)的靈活性,但其它需求(例如故障轉移、負載平衡和其它網(wǎng)絡有關的需要)可能導致需要通過將堆棧狀態(tài)從一個位置傳輸?shù)搅硪晃恢脕硪苿印鬏敾驈椭贫褩!?/p>
技術實現(xiàn)要素:
一個實施例提供一種促進在CCN中傳輸堆棧的狀態(tài)的傳輸框架系統(tǒng)。操作中,所述系統(tǒng)通過通信組件從協(xié)調(diào)實體接收存儲組件的當前狀態(tài)的命令消息,其中,所述通信組件用在處理基于名稱的消息中,并且其中,名稱是分層結構可變長度標識符(HSVLI),其包括從最概括級到最具體級排序的連續(xù)名稱組件。所述系統(tǒng)確定所述通信組件的當前狀態(tài)。然后,所述系統(tǒng)在數(shù)據(jù)結構中存儲所述通信組件的當前狀態(tài)。
在一些實施例中,所述系統(tǒng)接收與興趣消息對應的第一包,其中,所述興趣消息指示對所述數(shù)據(jù)結構的請求,并包括所述數(shù)據(jù)結構的名稱。
在一些實施例中,所述第一包從以下的一個或多個接收:通信模塊的堆棧的管理器組件,其中,管理器組件用在處理所述協(xié)調(diào)實體和所述通信模塊之間的消息中,其中,堆棧不要求相應的通信模塊只與其上或其下的層通信,并且其中,所述通信組件屬于所述堆棧;以及協(xié)調(diào)實體,所述協(xié)調(diào)實體是以下的一個或多個:所述堆棧外部的實體或服務;以及與所述堆棧關聯(lián)的應用。
在一些實施例中,所述系統(tǒng)生成與內(nèi)容對象消息對應的第二包,其中,所述內(nèi)容對象消息包括所述數(shù)據(jù)結構和所述數(shù)據(jù)結構的名稱。
在一些實施例中,所述系統(tǒng)生成指示所述當前狀態(tài)存儲于所述數(shù)據(jù)結構中的通知消息,其中,所述通知消息包括所述數(shù)據(jù)結構的名稱。
在一些實施例中,所述數(shù)據(jù)結構指示由所述通信組件在處理所述消息時存儲的一個或多個興趣或內(nèi)容對象消息。
在一些實施例中,所述數(shù)據(jù)結構是清單,其中,清單指示一組內(nèi)容對象和其相應摘要,其中,相應的內(nèi)容對象是數(shù)據(jù)對象或另一清單,并且其中,清單和內(nèi)容對象各自指示名稱。
在一些實施例中,響應于接收對當前狀態(tài)的請求,所述系統(tǒng)發(fā)送所述當前狀態(tài)。
在又一變形中,所述通信組件是通信模塊的堆棧的組件,其中,所述堆棧不要求相應的通信模塊只與其上或其下的層通信。
在一些實施例中,所述系統(tǒng)確定堆棧的一個或多個其它通信組件的當前狀態(tài)。響應于確定所述其它通信組件的當前狀態(tài)是未決狀態(tài),所述系統(tǒng)等待其它通信組件的就緒狀態(tài)的指示符。
在一些實施例中,協(xié)調(diào)實體是以下的一個或多個:堆棧外部的實體或服務;以及與堆棧關聯(lián)的應用。
在一些實施例中,所述命令消息通過堆棧的管理器組件從協(xié)調(diào)實體接收,其中,管理器組件用在處理協(xié)調(diào)實體和通信模塊之間的消息中。
附圖說明
圖1A圖解說明根據(jù)本發(fā)明的實施例促進在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的示例性環(huán)境。
圖1B圖解說明根據(jù)本發(fā)明的實施例促進在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的示例性環(huán)境。
圖2A圖解說明根據(jù)本發(fā)明的實施例的示例性傳輸框架和傳輸堆棧。
圖2B圖解說明根據(jù)本發(fā)明的實施例與圖2A對應的示例性傳輸框架和傳輸堆棧。
圖3A呈現(xiàn)一流程圖,該流程圖圖解說明根據(jù)本發(fā)明的實施例用于在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的方法。
圖3B呈現(xiàn)一流程圖,該流程圖圖解說明根據(jù)本發(fā)明的實施例用于在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的方法,其中,協(xié)調(diào)器通過堆棧管理器與堆棧通信。
圖3C呈現(xiàn)一流程圖,該流程圖圖解說明根據(jù)本發(fā)明的實施例用于在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的方法,其中,協(xié)調(diào)器與另一應用通信。
圖4呈現(xiàn)一流程圖,該流程圖圖解說明根據(jù)本發(fā)明的實施例用于由堆棧組件促進堆棧的傳輸?shù)姆椒ā?/p>
圖5圖解說明根據(jù)本發(fā)明的實施例促進在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的示例性設備。
圖6圖解說明根據(jù)本發(fā)明的實施例促進在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的示例性計算機系統(tǒng)。
附圖中,相同的附圖標記指相同的附圖元件。
具體實施方式
給出以下描述使得本領域技術人員能夠制造和使用實施例,以下描述是在特定應用和其需求的背景下提供的。對所公開實施例的各種改進對本領域技術人員是非常顯然的,在不偏離本申請的精神和范圍下,本文中定義的一般原理可以應用于其它實施例和應用。因此,本發(fā)明不局限于所顯示的實施例,而是給予與本文中公開的原理和特征一致的最寬范圍。
概述
本發(fā)明的實施例提供一種促進在內(nèi)容中心網(wǎng)絡(CCN)中傳輸堆棧的狀態(tài)的傳輸框架系統(tǒng)。在CCN中,傳輸框架使高級別的API能夠對框架內(nèi)的一個或多個傳輸堆棧進行實例化。傳輸堆棧可以包括多個組件或通信模塊,并且不遵守傳統(tǒng)的分層模型(例如OSI),在傳統(tǒng)分層模型中,每個組件只與它之上或之下的組件通信。傳輸堆??梢员粍討B(tài)地創(chuàng)建,并在運行時配置,其中,傳輸堆棧內(nèi)的每個組件執(zhí)行特定功能。例如,傳輸堆棧的一個組件可以是驗證器組件,其負責驗證響應于通過網(wǎng)絡發(fā)送的興趣接收的內(nèi)容對象的數(shù)字簽名。CCN傳輸堆棧是可配置、可擴展的,如美國專利申請?zhí)?4/595,060中描述的。
應用可以通過向API發(fā)出呼叫來發(fā)起通過網(wǎng)絡的通信。在通信過程中,CCN傳輸堆棧和堆棧的每個組件更新其相應狀態(tài)。例如,流量控制器組件可以保持30個未完成興趣的運行窗大小和隊列中用于發(fā)布的未完成或未決興趣的列表。驗證器組件可以存儲當前使用的一組密鑰和未來使用的一組旋轉密鑰。在故障轉移、負載平衡或用于資源分配的其它需求的情況下,應用可能希望實例化不同位置的堆棧。為此,系統(tǒng)將堆棧狀態(tài)從一個傳輸框架傳送到另一傳輸框架(例如從一個裝置到駐存在不同物理位置的另一裝置)。系統(tǒng)可以從堆棧提取堆棧狀態(tài),使用提取的堆棧狀態(tài)實例化不同位置的另一堆棧,創(chuàng)建新“傳輸?shù)摹被颉皬椭频摹倍褩!?/p>
具體地,外部協(xié)調(diào)實體(“協(xié)調(diào)器”)可以觸發(fā)傳輸堆棧的過程。協(xié)調(diào)器通知堆棧(例如通過堆棧管理器組件)準備好傳輸,堆棧又通知每個組件準備好傳輸。每個組件存儲其狀態(tài),通知堆棧其就緒狀態(tài)。當所有組件都已經(jīng)通知堆棧其就緒狀態(tài)時,堆棧(例如堆棧管理器組件)又通知協(xié)調(diào)器就緒狀態(tài)。隨后,協(xié)調(diào)器可以從堆棧請求堆棧狀態(tài),向另一應用發(fā)送用于傳輸(例如實例化)的堆棧狀態(tài)。替代性地,協(xié)調(diào)器可以向另一應用發(fā)送就緒消息,允許另一應用直接從堆棧請求堆棧狀態(tài),而不用牽涉到協(xié)調(diào)器。協(xié)調(diào)器還可以向另一應用提供堆棧、堆棧組件和其相應狀態(tài)的唯一名稱。傳輸堆棧名稱方案和身份管理在美國專利申請?zhí)?4/746,490中描述。
在一些實施例中,傳輸框架在CCN架構下操作。在CCN中,每一項內(nèi)容是單獨命名的,每項數(shù)據(jù)綁定到將該數(shù)據(jù)與任何其它項數(shù)據(jù)相區(qū)分的唯一名稱,諸如同一數(shù)據(jù)的其它形式或來自其它源的數(shù)據(jù)。此唯一名稱允許網(wǎng)絡裝置通過傳播指示唯一名稱的請求或興趣來請求數(shù)據(jù),并且可以獲得與數(shù)據(jù)的存儲位置、網(wǎng)絡位置、應用和傳輸手段無關的數(shù)據(jù)。以下詞語用來描述CCN架構:
內(nèi)容對象(或“ContentObject”):單一一項命名數(shù)據(jù),其綁定到唯一名稱。內(nèi)容對象是“永久的”,這意味著內(nèi)容對象可以在計算裝置內(nèi)或者在不同的計算裝置中移動,但不會改變。如果內(nèi)容對象的任何組成變化,則出現(xiàn)變化的實體創(chuàng)建包括更新內(nèi)容的新內(nèi)容對象,將新內(nèi)容對象綁定到新唯一名稱。
唯一名稱(Unique Name):CCN中的名稱通常是與位置無關的,唯一地標識內(nèi)容對象。數(shù)據(jù)轉發(fā)裝置不管內(nèi)容對象的網(wǎng)絡地址或物理位置如何,可以使用名稱或名稱前綴將包向生成或存儲內(nèi)容對象的網(wǎng)絡節(jié)點轉發(fā)。在一些實施例中,名稱可以是分層結構的可變長度標識符(HSVLI)。HSVLI可以分成幾個分層組成,這些組成可以以各種方式構造。例如,個別的名稱組成parc,home,ccn,和test.txt可以以左對齊的前綴為主的方式構造,形成名稱“/parc/home/ndn/test.txt”。因此,名稱“/parc/home/ccn”可以是“/parc/home/ccn/test.txt”的“父”或“前綴”。附加組成可以用來區(qū)分內(nèi)容項目的不同形式,諸如合作文檔。
在一些實施例中,名稱可以包括標識符,諸如由內(nèi)容對象的數(shù)據(jù)(例如檢驗和值)和/或從內(nèi)容對象的名稱的組成導出的散列值。基于散列的名稱的描述在美國專利申請?zhí)?3/847,814中描述。名稱還可以是扁平標簽(flat label)。后面,“名稱”用來指在命名數(shù)據(jù)網(wǎng)絡中一條數(shù)據(jù)的任何名稱,諸如層次名稱或名稱前綴,扁平名稱(flat name),固定長度的名稱,任意長度的名稱,或者標簽(例如多協(xié)議標簽交換(MPLS)標簽)。
興趣(或“Interest”):指示對一條數(shù)據(jù)的請求的包,包括該條數(shù)據(jù)的名稱(或名稱前綴)。數(shù)據(jù)消費者可以在信息中心網(wǎng)絡中傳播請求或興趣,CCN/NDN路由器可以向可以提供請求數(shù)據(jù)的存儲裝置(例如緩存服務器)或數(shù)據(jù)生產(chǎn)者播送,以滿足請求或興趣。
本文中公開的方法不局限于CCN網(wǎng)絡,還可以應用于其它架構。CCN架構的描述在美國專利申請?zhí)?2/338,175中描述。
示例性網(wǎng)絡和通信
圖1A圖解說明根據(jù)本發(fā)明的實施例促進在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的示例性環(huán)境100。計算環(huán)境100可以包括計算機網(wǎng)絡102,諸如CCN。環(huán)境100還可以包括與本地計算裝置104關聯(lián)的用戶106和遠程計算裝置108和190。裝置104可以具有與傳輸框架130關聯(lián)的內(nèi)部傳輸堆棧131。在傳統(tǒng)的IP架構中,轉發(fā)器是基于IP的轉發(fā)器,其查看包的標題以確定包的源和目的地,并將包轉發(fā)到目的地。堆棧執(zhí)行TCP/UDP,應用通過套接字與堆棧交互。相反,本發(fā)明的裝置104不使用傳統(tǒng)的“堆棧”。而是,裝置104通過應用110可以請求與端口120對應的端口API實例,端口120對應于傳輸框架130。應用110可以產(chǎn)生檢索或創(chuàng)建與端口120關聯(lián)的端口API實例的請求。端口實例創(chuàng)建在美國專利申請?zhí)?4/746,490中描述。
裝置104可以包括耦連到網(wǎng)絡102的任何計算裝置,諸如智能手機104.1,平板電腦104.2和/或服務器或個人計算機104.3。特別地,裝置104可以包括通過端口120與傳輸框架130通信的應用110。傳輸框架130可以包括堆棧組件132、134、136和138。裝置104還可以包括轉發(fā)器140(例如局域網(wǎng)中的網(wǎng)絡接口卡或路由器),其可以在傳輸框架130的堆棧(和各個堆棧組件)和網(wǎng)絡102之間傳輸包。裝置108和190可以包括耦連到網(wǎng)絡102的任何計算裝置,諸如服務器或終端主機裝置。裝置108還可以包括應用150,裝置190還可以包括具有協(xié)調(diào)功能以確定并發(fā)起如本文中描述的堆棧傳輸?shù)娜魏斡嬎阊b置。
圖1B圖解說明根據(jù)本發(fā)明的實施例促進在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的示例性環(huán)境100。操作中,裝置或“協(xié)調(diào)器”190可以向傳輸堆棧131和堆棧組件132-138發(fā)布通知消息以準備好移動。堆棧組件132-138存儲其各自的狀態(tài),并通知堆棧131就緒狀態(tài)。堆棧131又通知協(xié)調(diào)器190就緒狀態(tài),協(xié)調(diào)器190然后可以從堆棧131請求堆棧的狀態(tài)(“堆棧狀態(tài)”)。堆棧狀態(tài)可以是對象,其指示由每個堆棧組件存儲的各個狀態(tài),如關于圖2A在下文描述的。一旦從堆棧131接收堆棧狀態(tài),協(xié)調(diào)器190可以通過向裝置108發(fā)送堆棧狀態(tài)來傳輸堆棧狀態(tài),這可以通過應用150實例化傳輸框架170的傳輸堆棧171。傳輸堆棧171可以基于從協(xié)調(diào)器190接收的堆棧131的堆棧狀態(tài)被實例化。傳輸堆棧171可以包括堆棧組件172、174、176和178,他們具有與堆棧131的堆棧組件132-138相同的狀態(tài)。因此,協(xié)調(diào)器190發(fā)起并處理堆棧131的狀態(tài)從框架130到框架170的傳輸。盡管堆棧狀態(tài)的傳輸可以出于故障轉移原因執(zhí)行(因此導致堆棧131的破壞),但傳輸還可以出于活動負載平衡目的執(zhí)行(因此可以使堆棧131完整)。在一些實施例中,一旦實例化堆棧171,裝置108的應用150可以向協(xié)調(diào)器190發(fā)送指示堆棧傳輸完成的消息。協(xié)調(diào)器190又可以向應用110發(fā)送指示堆棧傳輸完成的消息,并且還可以包括恢復堆棧的操作的命令消息。
示例性傳輸框架
圖2A圖解說明根據(jù)本發(fā)明的實施例的示例性傳輸框架230和傳輸堆棧231。協(xié)調(diào)器290可以與應用210通信,應用210可以駐存在通過網(wǎng)絡202通信的節(jié)點或裝置上。應用210可以使用API 212、214和216來通過網(wǎng)絡202通信,API 212-216可以通過端口220與傳輸框架230交互。傳輸框架230可以包括一個或多個傳輸堆棧,每個傳輸堆棧包括多個堆棧組件或通信模塊。在圖2A中,傳輸框架230描繪了包括堆棧組件232、234、236、238和242的一個傳輸堆棧(例如傳輸堆棧231)。API適配器232可以在API和特定的傳輸堆棧和傳輸框架230之間通信。流量控制器234可以形成和管理通信量、為興趣形成管道并發(fā)送興趣,預訂內(nèi)容對象。驗證器/簽名器236可以對目的地為網(wǎng)絡元件的內(nèi)容對象編碼和簽名,解碼并驗證目的地為關聯(lián)應用的內(nèi)容對象,編碼目的地為網(wǎng)絡元件的興趣和解碼目的地為關聯(lián)應用的興趣。轉發(fā)器/適配器238可以與轉發(fā)器240通信。轉發(fā)器240可以通過網(wǎng)絡202與其它轉發(fā)器通信。其它堆棧組件(未顯示)可以包括與安全(例如加密、解密、認證、數(shù)據(jù)簽名、簽名驗證、信任評估和過濾)、數(shù)據(jù)處理(例如編碼、解碼、封裝、解封裝、轉碼、壓縮、提取和解壓縮)和存儲(例如數(shù)據(jù)存儲、從存儲裝置檢索數(shù)據(jù)、刪除重復、分割和版本化)相關的功能。
協(xié)調(diào)器290可以通過應用210和API 212-216中的一個和端口220向堆棧231發(fā)送消息292。消息292可以是通知堆棧準備好傳輸?shù)拿钕?“傳輸命令消息”)。堆棧管理器組件242可以接收并向堆棧組件232-238傳送傳輸命令消息,堆棧組件232-238中的每一個確定并在數(shù)據(jù)結構中存儲其狀態(tài)。例如,流量控制器234可以確定并在組件狀態(tài)234.1數(shù)據(jù)對象中存儲其狀態(tài)。一旦存儲其狀態(tài),每個組件則可以向管理器242發(fā)送其就緒狀態(tài)的通知消息(“組件就緒消息”),并且一旦從每個堆棧組件接收組件就緒消息,管理器242可以向協(xié)調(diào)器290發(fā)送指示堆棧231處于就緒狀態(tài)的通知消息293(“堆棧就緒消息”)。在一些實施例中,管理器242可以組合堆棧狀態(tài)242.1內(nèi)容對象,這指示組件狀態(tài)232.1、234.1、236.1和238.1的每個數(shù)據(jù)對象。管理器242與其它堆棧組件一樣,可以確定并存儲其自己的堆棧狀態(tài)(未顯示),其還可以在堆棧狀態(tài)242.1中指示。隨后,協(xié)調(diào)器290可以向堆棧231發(fā)送從管理器242請求堆棧狀態(tài)242.1的興趣消息294。應用210可以向協(xié)調(diào)器290返回指示堆棧狀態(tài)242.1的內(nèi)容對象消息295(“堆棧狀態(tài)消息”)。
圖2B圖解說明根據(jù)本發(fā)明的實施例與圖2A對應的示例性傳輸框架270和傳輸堆棧271。一旦通過堆棧狀態(tài)消息295接收堆棧狀態(tài)242.1,協(xié)調(diào)器290可以通過向應用250發(fā)送包括堆棧狀態(tài)242.1的命令消息296來繼續(xù)傳輸,其中,命令消息296包括基于堆棧狀態(tài)242.1實例化新堆棧的命令。應用250可以實例化傳輸堆棧270中的傳輸框架271(通過應用252-256之一,端口260,在一些實施例中通過管理器272),使得堆棧271的每個組件具有如堆棧狀態(tài)242.1中指示的相同的組件狀態(tài)232.1-238.1。一旦成功完成堆棧271的實例化,應用250可以向協(xié)調(diào)器290發(fā)送通知消息297,指示堆棧傳輸?shù)耐瓿?。協(xié)調(diào)器290隨后可以向應用210發(fā)送通知消息298,指示以下的一個或兩者:成功完成傳輸,和向應用210指示相應的堆棧231可以恢復正常操作。
用于在CCN中傳輸堆棧狀態(tài)的示例性方法
圖3A呈現(xiàn)一流程圖300,該流程圖圖解說明根據(jù)本發(fā)明的實施例用于在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的方法。操作中,協(xié)調(diào)實體(“協(xié)調(diào)器”)向堆棧管理器發(fā)送命令消息,該消息指示堆棧準備好傳輸(“傳輸命令消息”)(操作302)。堆棧管理器向堆棧的所有組件發(fā)送傳輸命令消息(操作304)。每個堆棧組件接收傳輸命令消息(操作306),并確定其組件狀態(tài)(操作308)。每個堆棧組件確定其組件狀態(tài)是否取決于任何其它堆棧組件的狀態(tài)(操作310)。如果不是,則堆棧組件存儲其組件狀態(tài)(操作314)。如果是,則在繼續(xù)操作314之前,堆棧組件等待其它依賴的堆棧組件的就緒狀態(tài)的指示符(操作312)。每個堆棧組件然后通知堆棧管理器其就緒狀態(tài)(操作316)。堆棧管理器通知協(xié)調(diào)器堆棧的就緒狀態(tài)(操作318),操作如圖3B的標記A或圖3C的標記B描述的繼續(xù)。
圖3B呈現(xiàn)一流程圖330,該流程圖圖解說明根據(jù)本發(fā)明的實施例用于在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的方法,其中,協(xié)調(diào)器通過堆棧管理器與堆棧通信。操作中,協(xié)調(diào)器從堆棧管理器接收通知消息,此消息指示堆棧的就緒狀態(tài)(操作332)。協(xié)調(diào)器生成請求堆棧狀態(tài)的興趣消息(操作334),并向堆棧管理器發(fā)送興趣消息(操作336)。堆棧管理器向每個堆棧組件發(fā)送請求其各自的組件狀態(tài)的興趣(操作338)。每個堆棧組件將其組件狀態(tài)發(fā)送到堆棧管理器(操作340)。堆棧管理器接收每個組件的組件狀態(tài)(操作342),并生成指示堆棧狀態(tài)的內(nèi)容對象(操作344)。內(nèi)容對象還可以指示每個組件的狀態(tài)。堆棧管理器然后向協(xié)調(diào)器發(fā)送指示堆棧狀態(tài)的內(nèi)容對象(操作346)。協(xié)調(diào)器接收指示堆棧狀態(tài)的內(nèi)容對象(操作348)。隨后,協(xié)調(diào)器基于指示堆棧狀態(tài)的內(nèi)容對象發(fā)起堆棧到另一位置的傳輸(操作350)。在一些實施例中,傳輸可以是用于故障轉移、負載平衡或其它資源分配目的的復制。
圖3C呈現(xiàn)一流程圖360,該流程圖圖解說明根據(jù)本發(fā)明的實施例用于在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的方法,其中,協(xié)調(diào)器與另一應用通信。操作中,協(xié)調(diào)器從堆棧管理器接收通知消息,該消息指示堆棧的就緒狀態(tài)(操作362)。協(xié)調(diào)器向另一應用發(fā)送通知消息,并包括基于美國專利申請?zhí)?4/746,490中描述的命名方案的堆棧和其組件的唯一可路由(可到達的)名稱(操作364)。另一應用可以是在另一堆?;蛄硪欢褩5墓芾砥鹘M件上的應用,并且可以駐存在相同或不同裝置上。另一應用生成請求堆棧狀態(tài)的興趣消息(操作366),并向堆棧管理器發(fā)送興趣消息(操作368)。操作370與關于圖3B描述的操作338-344類似;堆棧管理器向每個堆棧組件發(fā)送請求其各自的組件狀態(tài)的興趣(操作338);每個堆棧組件向堆棧管理器發(fā)送其組件狀態(tài)(操作340);堆棧管理器接收每個組件的組件狀態(tài)(操作342);并生成指示堆棧狀態(tài)的內(nèi)容對象(操作344)。
隨后,堆棧管理器向另一應用發(fā)送指示堆棧狀態(tài)的內(nèi)容對象(操作372)。另一應用接收指示堆棧狀態(tài)的內(nèi)容對象(操作374),并基于指示堆棧狀態(tài)的內(nèi)容對象發(fā)起新堆棧的實例化(操作376)。
堆棧組件的角色
圖4呈現(xiàn)一流程圖400,該流程圖圖解說明根據(jù)本發(fā)明的實施例用于由堆棧組件促進堆棧的傳輸?shù)姆椒?。操作中,系統(tǒng)通過堆棧的組件從協(xié)調(diào)實體(“協(xié)調(diào)器”)接收存儲組件的當前狀態(tài)的命令消息(操作402)。組件可以是用于基于名稱處理消息的通信組件,名稱可以是包括從最概括級到最具體級排序的連續(xù)名稱組件的HSVLI。組件確定其當前狀態(tài)(操作404)。組件然后確定它是否取決于任何其它堆棧組件的狀態(tài),以輸入就緒狀態(tài)(判斷406)。如果不是,則組件在數(shù)據(jù)結構中存儲其當前狀態(tài)(操作410)。如果組件取決于任何其它堆棧組件,則組件等待依賴的堆棧組件的就緒狀態(tài)的指示符。在一些實施例中,依賴的堆棧組件可以基于由依賴的堆棧組件要求的就緒狀態(tài)或任何其它狀態(tài)給組件發(fā)信號。一旦接收所有依賴堆棧都處于就緒狀態(tài)的指示符,組件在數(shù)據(jù)結構中存儲其當前狀態(tài)(操作410)。組件還生成指示當前狀態(tài)存儲于數(shù)據(jù)結構中的通知消息,并包括數(shù)據(jù)結構的名稱(操作412)。數(shù)據(jù)結構可以是指示一組內(nèi)容對象和他們相應的摘要的清單,相應的內(nèi)容對象可以是數(shù)據(jù)對象或另一清單。清單(例如安全內(nèi)容目錄)在美國專利申請?zhí)?4/231,515中描述。
隨后,組件可以接收與興趣消息對應的包,其中,消息指示對數(shù)據(jù)結構的請求,數(shù)據(jù)結構指示當前狀態(tài)(操作414)。組件生成與內(nèi)容對象消息對應的包,其中,消息包括數(shù)據(jù)結構(操作416)。
示例性設備和計算機系統(tǒng)
圖5圖解說明根據(jù)本發(fā)明的實施例促進在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的示例性設備500。設備500可以包括可以通過有線或無線通信信道彼此通信的多個模塊。設備500可以使用一個或多個集成電路實現(xiàn),可以包括比圖5中所示的更多和更少的模塊。而且,設備500可以集成到計算機系統(tǒng)中,或者實現(xiàn)為能夠與其它計算機系統(tǒng)和/或裝置通信的單獨的裝置。具體地,設備500可以包括通信模塊502、狀態(tài)確定模塊504、消息存儲模塊506、包生成模塊508和協(xié)調(diào)器模塊510。
在一些實施例中,通信模塊502可以向計算機網(wǎng)絡諸如內(nèi)容中心網(wǎng)絡上的其它網(wǎng)絡節(jié)點發(fā)送數(shù)據(jù)包和/或從其接收數(shù)據(jù)包,其中,數(shù)據(jù)包可以對應于:通信組件的命令或通知消息;數(shù)據(jù)結構的興趣;以及包括數(shù)據(jù)結構的內(nèi)容對象。
狀態(tài)確定模塊504可以確定組件的當前狀態(tài),狀態(tài)存儲模塊506可以在數(shù)據(jù)結構中存儲組件的當前狀態(tài)。包生成模塊508可以生成與內(nèi)容對象消息對應的包,其包括數(shù)據(jù)結構和數(shù)據(jù)結構的名稱。包生成模塊508還可以生成指示當前狀態(tài)存儲于數(shù)據(jù)結構中的通知消息。通信模塊502可以響應于接收對當前狀態(tài)的請求,發(fā)送當前狀態(tài)。狀態(tài)確定模塊504還可以確定堆棧的一個或多個通信組件的當前狀態(tài)。響應于確定其它組件的當前狀態(tài)是未決狀態(tài),狀態(tài)確定模塊504可以等待其它組件就緒狀態(tài)的指示符。協(xié)調(diào)器模塊510可以生成堆棧的管理器組件的命令消息,其中,管理器組件用來處理協(xié)調(diào)器和堆棧的組件之間的消息。協(xié)調(diào)器模塊510還可以生成請求數(shù)據(jù)結構的興趣消息。
圖6圖解說明根據(jù)本發(fā)明的實施例促進在內(nèi)容中心網(wǎng)絡中傳輸堆棧的狀態(tài)的示例性計算機系統(tǒng)。計算機系統(tǒng)602包括處理器604、存儲器606和存儲裝置608。存儲器606可以包括充當管理存儲器的易失性存儲器(例如RAM),并且可以用來存儲一個或多個內(nèi)存池。而且,計算機系統(tǒng)602可以耦連到顯示裝置610、鍵盤612和定位裝置614。存儲裝置608可以存儲操作系統(tǒng)616、傳輸系統(tǒng)618和數(shù)據(jù)632。
傳輸系統(tǒng)618可以包括指令,這些指令在由計算機系統(tǒng)602執(zhí)行時,可以使計算機系統(tǒng)602執(zhí)行本申請中描述的方法和/或過程。具體地,傳輸系統(tǒng)618可以包括用于向計算機網(wǎng)絡諸如內(nèi)容中心網(wǎng)絡上的其它網(wǎng)絡節(jié)點發(fā)送數(shù)據(jù)包和/或從其接收數(shù)據(jù)包的指令(通信模塊620)。例如,傳輸系統(tǒng)618可以包括用于通過通信組件從協(xié)調(diào)實體接收存儲組件的當前狀態(tài)的命令消息的指令,其中,通信組件用在基于名稱處理消息中(通信模塊620)。傳輸系統(tǒng)618可以包括用于確定組件的當前狀態(tài)的指令(狀態(tài)確定模塊622)以及用于在數(shù)據(jù)結構中存儲組件的當前狀態(tài)的指令(狀態(tài)存儲模塊624)。
傳輸系統(tǒng)618還可以包括用于生成與內(nèi)容對象消息對應的包的指令,這包括數(shù)據(jù)結構和數(shù)據(jù)結構的名稱(包生成模塊626)。傳輸系統(tǒng)618可以包括用于生成通知消息的指令,通知消息指示當前狀態(tài)存儲于數(shù)據(jù)結構中(包生成模塊626)。傳輸系統(tǒng)618還可以包括用于響應于接收對當前狀態(tài)的請求發(fā)送當前狀態(tài)的指令(通信模塊620)。傳輸系統(tǒng)618可以包括用于確定堆棧的一個或多個其它通信組件的當前狀態(tài)的指令(狀態(tài)確定模塊622)。傳輸系統(tǒng)618還可以包括用于響應于確定其它組件的當前狀態(tài)是未決狀態(tài),等待其它組件的就緒狀態(tài)的指示符的指令(狀態(tài)確定模塊622)。
傳輸系統(tǒng)618另外可以包括用于生成堆棧的管理器組件的命令消息的指令,其中,管理器組件用于處理協(xié)調(diào)器和堆棧的組件之間的消息(協(xié)調(diào)器模塊628)。傳輸系統(tǒng)618還可以包括用于生成請求數(shù)據(jù)結構的興趣消息的指令(協(xié)調(diào)器模塊628)。
數(shù)據(jù)632可以包括通過本申請中描述的方法和/或過程作為輸入請求的或作為輸出生成的任何數(shù)據(jù)。具體地,數(shù)據(jù)632可以存儲至少:存儲組件的當前狀態(tài)的命令消息;名稱;為包括從最概括級到最具體級排序的連續(xù)名稱組成的HSVLI的名稱;組件的狀態(tài);組件的堆棧的狀態(tài);表示組件狀態(tài)的數(shù)據(jù)結構;表示堆棧狀態(tài)的數(shù)據(jù)結構;與興趣對應的包,其中,興趣指示對數(shù)據(jù)結構的請求;傳輸框架;堆棧;堆棧的一個或多個組件;協(xié)調(diào)實體;管理器組件;與包括數(shù)據(jù)結構的內(nèi)容對象消息對應的包;指示當前狀態(tài)存儲于數(shù)據(jù)結構中的通知消息;指示組件的狀態(tài)或堆棧的清單;以及就緒、未決或其它狀態(tài)的指示符。
在此詳細描述中描述的數(shù)據(jù)結構和代碼通常存儲于計算機可讀存儲介質(zhì)上,計算機可讀存儲介質(zhì)可以是可以存儲代碼和/或數(shù)據(jù)以由計算機系統(tǒng)使用的任何裝置或介質(zhì)。計算機可讀存儲介質(zhì)包括但不限于易失性存儲器、非易失性存儲器、磁和光存儲裝置(諸如磁盤驅動器、磁帶、CD(光盤)、DVD(數(shù)字通用盤或數(shù)字視頻盤))或能夠存儲現(xiàn)在已知或以后開發(fā)的計算機可讀介質(zhì)的其它介質(zhì)。
在詳細描述部分描述的方法和過程可以體現(xiàn)為代碼和/或數(shù)據(jù),這些代碼和/或數(shù)據(jù)可以存儲在如上文描述的計算機可讀存儲介質(zhì)中。當計算機系統(tǒng)讀、執(zhí)行計算機可讀存儲介質(zhì)上存儲的代碼和/或數(shù)據(jù)時,計算機系統(tǒng)執(zhí)行體現(xiàn)為數(shù)據(jù)結構和代碼并存儲于計算機可讀存儲介質(zhì)中的方法和過程。
而且,上面描述的方法和過程可以包括于硬件模塊中。例如,硬件模塊可以包括但不限于專用集成電路(ASIC)芯片、現(xiàn)場可編程門陣列(FPGA)、現(xiàn)在已知或以后開發(fā)的其它可編程邏輯器件。當硬件模塊被激活時,他們執(zhí)行硬件模塊中包括的方法和過程。