新四季網

使用信息中心網絡的表述性狀態轉移操作的製作方法

2023-10-18 00:18:59 2


本申請要求遞交於2015年2月27日的美國專利申請序列號14/633,580的權益,其要求遞交於2014年7月13日的美國臨時申請序列號62/023,883的35U.S.C§119(e)的優先權。所有前述申請的內容通過引用全部結合於此。

技術領域

本公開與信息中心網絡(ICN)系統架構有關。更具體地,本公開涉及在ICN系統架構中的表述性狀態轉移(REST)操作的方法和系統。

技術背景

許多網站、網絡服務(諸如網站服務)、以及網絡應用(諸如網站應用)採用被稱為表述性狀態轉移(REST)的事務範式。採用REST範式的網絡或系統架構可以被稱為REST架構。用REST範式的操作和/或事務可以被稱作REST操作和/或REST事務。

REST範式可以包括當計算設備(諸如伺服器與客戶端)執行操作和/或事務的時候可以遵循的條件。一個條件可以是:在兩個操作之間的客戶端狀態不可以存儲在伺服器上。例如,如果伺服器用客戶端狀態執行REST操作,那麼伺服器可以刪除客戶端狀態和/或可以將客戶端狀態作為返回REST操作的結果的一部分傳輸回客戶端設備。另一條件可以是客戶端啟動REST操作。例如,除非從客戶端設備接收對於執行REST操作的請求,否則伺服器不可以執行REST操作。另一個條件可以是:來自客戶端設備的(執行REST操作的)請求包括可以用於執行REST操作的信息。例如,請求可以標識REST操作,並且還可以表明應該怎樣來表示REST操作的結果。

附圖說明

為使本領域普通技術人員能夠理解本公開,參考某些示例性實現方式的一些方面進行了更詳細的描述,附圖示出了這些方面中的一些。

圖1是根據一些實施例,示出系統架構的框圖;

圖2是根據一些實施例,示出用於執行REST操作的示例的處理的時序圖;

圖3A是根據一些實施例,示出示例的興趣消息的框圖;

圖3B是根據一些實施例,示出示例的興趣消息的框圖;

圖4A到4D是根據一些實施例,示出的示例的未決興趣表(PIT)的框圖;

圖5是根據一些實施例,請求REST操作的方法的流程圖;

圖6是根據一些實施例,請求REST操作的方法的流程圖;

圖7是根據一些實施例,轉發興趣對象和/或數據對象的方法的流程圖;

圖8是根據一些實施例的計算設備的框圖;

圖9是根據一些實施例的計算設備的框圖;

圖10是根據一些實施例的計算設備的框圖。

示例的實施例

本文描述了大量細節,從而提供附圖中所示出的示例性實現方式的透徹的理解。然而,附圖僅僅示出了本公開的一些示例的方面,並且因此不應被認為是限制性的。本領域技術人員會從本公開中理解,其他有效的方面和/或變化並非包括本文所描述的所有的細節。此外,眾所周知的系統、方法、組件、設備以及電路沒有以非常詳盡的方式描述,以免不必要地模糊本文所描述實現的更多有關的方面。

概述

本文所公開的各種實現方式包括用於執行REST操作的裝置、系統、以及方法。例如,在一些客戶端實現方式中,一種方法包括傳輸第一興趣消息到伺服器。第一興趣消息包括對於表述性狀態轉移(REST)操作的請求以及用於REST操作的第一狀態的第一名稱。該方法還包括從伺服器接收第二興趣消息。第二興趣消息包括用於REST操作的第一狀態的第一名稱。該方法還包括基於第二興趣消息傳輸第一狀態到伺服器,以及從伺服器接收對於REST操作的響應。

在其他伺服器實現方式中,方法包括從客戶端設備接收第一興趣消息。第一興趣消息包括對於表述性狀態轉移(REST)操作的請求以及用於REST操作的第一狀態的第一名稱。該方法還包括傳輸第二興趣消息到客戶端設備。第二興趣消息包括用於REST操作的第一狀態的第一名稱。該方法還包括從客戶端設備接收第一狀態,以及傳輸對於REST操作的響應到客戶端設備。

在其他的路由器實現方式中,一種方法包括在多個網絡接口的第一網絡接口上接收第一興趣消息。第一興趣消息包括對於表述性狀態轉移(REST)操作的請求以及用於REST操作的第一狀態的第一名稱。該方法還包括在未決興趣表(PIT)中生成第一條目。第一條目包括第一數據,該第一數據表明請求和第一名稱。該方法還包括在多個網絡接口的第二網絡接口上轉發第一興趣消息。

詳細描述

信息中心網絡(ICN)系統架構越來越流行。ICN系統架構的示例包括命名數據網絡(NDN)系統架構以及內容中心網絡(CCN)系統架構。ICN系統架構(諸如NDN系統架構)可以允許消費者(諸如客戶端設備)用興趣消息來請求數據,該興趣消息標識所請求的數據的名稱。生產者(例如所請求的數據的生產者,諸如伺服器計算設備)可以接收興趣消息,並且可以響應於興趣消息傳輸數據對象到消費者。通過ICN系統架構,用興趣消息中的名稱與數據對象來路由和/或轉發興趣消息和/或數據對象。

用普通的ICN系統架構(諸如普通的NDN架構或普通的CCN架構),REST操作可能是難以執行的。例如,採用REST範式的服務和/或應用可能在客戶端設備與伺服器之間使用雙向數據流。然而,許多客戶端設備可能沒有伺服器可以用來與客戶端設備通信的可路由的名稱。此外,ICN架構一般可能對於伺服器(諸如生產者)隱藏客戶端設備(諸如消費者)的標識符,這可能對雙向數據流造成問題。

在一些實施例中,系統架構可以用NDN系統架構。在本文所公開的NDN系統架構中,興趣消息可以包括第一名稱以及一個或多個附加名稱。一個或多個附加名稱可以允許伺服器從客戶端設備請求客戶端狀態,並且可以允許由REST操作所使用的雙向數據流。一個或多個附加名稱可以是不可路由的(例如可能不是NDN系統架構中全局可路由的),並且可以允許客戶端設備對於除了生產者/伺服器以及兩者之間的路徑上的路由器之外的各方隱藏其身份。

儘管本公開可以涉及NDN系統架構,但應當理解NDN系統架構僅僅是可能被採用的示例的架構。其他實施例可以用其他類型的系統架構(諸如CCN、Pursuit、NetInf等等),並且本文所描述的示例、實現方式、和/或實施例可以與其他類型的架構一起被採用。

圖1根據一些實施例示出了系統架構100。系統架構包括伺服器110、客戶端設備130、網絡105、以及路由器140。系統架構100可以是NDN系統架構。例如,系統架構100中的消費者(諸如客戶端設備130)可以用興趣包(interest packet)請求數據,並且生產者(諸如伺服器110)可以用數據對象(諸如NDN數據對象)傳輸所請求的數據。伺服器110可以被稱為生產者,並且客戶端設備130可以被稱為消費者或請求者。

伺服器110可以是一個或多個計算設備(諸如機架式伺服器、路由器計算機、伺服器計算機、個人計算機、大型計算機、智慧型電話、個人數字助手(PDA)、膝上型計算機、平板電腦、以及臺式計算機等等)。客戶端設備130也可以是計算設備(諸如個人計算機、智慧型電話、個人數字助手(PDA)、膝上型計算機、平板電腦、以及臺式計算機等等)。網絡105可以包括以下一個或多個:公共網絡(諸如網際網路)、專用網絡(諸如區域網(LAN)或廣域網(WAN))、有線網絡(諸如乙太網)、無線網絡(諸如802.11網絡或Wi-Fi網絡)、蜂窩網絡(諸如長期演進(LTE)網絡)、路由器、集線器、交換機、伺服器計算機、和/或它們的組合。

在一個實施例中,系統架構100可以是REST架構。如上所討論的,REST架構可以是滿足下列的條件中一項或多項的系統架構:1)客戶端設備(諸如客戶端設備130)可以啟動對於伺服器的操作;2)在請求之間,客戶端狀態或上下文不可以儲存在伺服器上;和/或3)客戶端的請求/消息包括用來執行操作的狀態或上下文信息。由伺服器模塊111所執行的(以及由客戶端設備130所請求的)操作可以是REST操作。如以上所討論的,REST操作可以是滿足上述條件的操作。REST操作還可以被稱為REST事務、REST風格的(RESTful)操作、和/或REST風格的事務。

伺服器110包括伺服器模塊111。在一些實施例中,伺服器模塊111可以是應用、服務、守護進程、處理、組件等等,其可以為客戶端設備執行REST操作。例如,伺服器模塊111可以是銀行系統的一部分,其允許用戶管理銀行帳戶、存款、取款、轉帳、付款等。伺服器模塊111可以從客戶端設備130(例如從客戶端模塊131)接收對於執行REST操作(諸如取款)的請求,並且伺服器模塊111可以執行所請求的REST操作。

在一個實施例中,伺服器模塊111可以是用針對伺服器模塊111的名稱可到達的。例如,伺服器模塊111可以是用第一興趣消息可到達的,該第一興趣消息包括伺服器模塊111的第一名稱(諸如「bank_name/online_banking/」)。第一名稱(用來到達伺服器模塊111)還可以包括數據/信息,該數據/信息可以表明和/或標識由客戶端設備(諸如客戶端設備130)所請求的操作。例如,在興趣消息中的第一名稱可以是「bank_name/online_banking/deposit」,並且(興趣消息的)第一名稱的部分可以包括值「deposit(存)」來表明和/或標識由客戶端設備所請求的REST操作(例如存款到帳戶)。伺服器模塊111可以從客戶端設備130接收第一興趣消息(諸如興趣包)來請求伺服器模塊111執行REST操作。第一興趣消息可以包括第二名稱,或者可以包括多個附加名稱(如下面將詳細討論的)。第二名稱可以是客戶端狀態的名稱,該名稱是客戶端設備130可以提供給伺服器模塊111的。伺服器模塊111可以傳輸第二興趣消息(或多個興趣消息)到客戶端設備130(用第二名稱或多個附加名稱),來請求客戶端狀態,並且客戶端設備130可以傳輸客戶端狀態到伺服器110(例如可以傳輸諸如NDN數據對象或CCN數據對象的一個或多個數據對象)。伺服器模塊111可以用客戶端狀態執行在第一興趣消息中所請求的REST操作,並且可以傳輸響應(例如REST操作的結果)到客戶端設備130。客戶端狀態還可以被稱為應用狀態。

在一個實施例中,伺服器模塊111可以傳輸客戶端狀態到客戶端設備130。例如,當客戶端設備130第一次與伺服器111交互(例如通信)的時候,客戶端設備130可以從伺服器110請求初始客戶端狀態(以在後續的REST操作中應用)(如下面將詳細討論的)。在另一個實施例中,當伺服器模塊111執行(由客戶端設備130所請求的)REST操作之後,客戶端狀態可以被改變和/或更新。伺服器模塊111可以傳輸所更新的客戶端狀態到客戶端設備130。在一個實施例中,伺服器模塊111可以籤名和/或加密數據對象(諸如NDN數據對象、CNN數據對象等等),該數據對象包括在傳輸數據對象到客戶端設備130之前的客戶端狀態。

客戶端設備130包括客戶端模塊131。在一個實施例中,客戶端模塊131可以是應用、服務、守護進程、處理、組件等等,其可以請求伺服器110(諸如伺服器模塊111)執行一個或多個REST操作(諸如從伺服器110請求一個或多個REST操作)。例如,客戶端模塊131可以是網頁瀏覽器,其允許用戶請求網頁操作(諸如REST操作)。在另一個實施例中,客戶端模塊可以是應用(諸如在線銀行應用),其允許用戶請求REST操作。客戶端模塊121可以傳輸(請求REST操作的)第一興趣消息到伺服器模塊111。如以上所討論的,第一興趣操作可以包括伺服器模塊111的名稱和/或可以表明/標識REST操作。第一興趣消息還可以包括一個或多個附加名稱(如下面將詳細討論的)。伺服器模塊111的名稱和/或REST操作可以先驗地由客戶端模塊121所知。例如客戶端模塊121可以訪問資料庫、表格等等,上述資料庫、表格等等可以包括伺服器模塊111的名稱。客戶端模塊121可以從伺服器110接收第二興趣消息,並且可以基於(例如響應於)第二興趣消息傳輸(可以被用來執行REST操作的)客戶端狀態到伺服器110。如果客戶端狀態被更新(例如作為REST操作的結果被修改或改變)過,那麼客戶端模塊121還可以接收所更新的客戶端狀態。

系統架構100還包括路由器140。路由器140可以是通信設備(諸如路由器、交換機等等的計算設備),其可以在伺服器110與客戶端設備130之間路由和/或轉發數據。例如,路由器140可以從客戶端設備130接收第一興趣消息,並且可以轉發第一興趣消息到伺服器110。伺服器110可以通過路由器140傳輸客戶端狀態到客戶端設備130。每一個路由器140可以包括緩存141。如以上所討論的,系統架構100可以是NDN系統架構。NDN系統架構可以允許路由器140在它們相應的緩存141中儲存(諸如緩存)NDN數據對象(諸如客戶端狀態、響應等等)。當路由器140從客戶端設備130接收對於NDN數據對象的請求(諸如興趣包)並且路由器140在它的緩存中儲存有NDN數據對象的時候,路由器140可以響應於請求向客戶端設備130傳輸NDN數據對象,而不是轉發請求到伺服器110。這可以改善延遲並且可以減少在網絡105中網絡擁堵的量。在一個實施例中,緩存141還可以允許多路徑以及多目的地的路由,而無需用域名系統(DNS)查找、負載平衡器、以及代理伺服器。

每一個路由器140包括路由器模塊142。在一個實施例中,路由器模塊142可以是應用、服務、守護進程、處理、組件等等,其可以通過網絡105轉發興趣消息和/或數據對象。路由器模塊142可以在客戶端設備130與伺服器110之間轉發興趣消息、客戶端狀態、和/或響應。路由器模塊142可以確定興趣消息或數據對象(諸如客戶端狀態、響應)是否具有可路由的名稱。在一個實施例中,路由器模塊142可以用轉發信息庫(FIB)來路由具有可路由的名稱的興趣消息和/或數據對象(如下面將詳細討論的)。在另一個實施例中,路由器模塊142可以用未決興趣表(PIT)來路由具有不可路由的名稱的興趣消息和/或數據對象(如以下將詳細討論的)。

在一個實施例中,系統架構100可以允許伺服器110為客戶端設備130執行REST操作。在興趣消息中的第二名稱(和/或附加名稱)可以允許伺服器110從客戶端設備130請求(可以在REST操作中應用的)客戶端狀態。通過發送(包括第二名稱的)興趣消息,伺服器110能夠實現雙向數據流以執行REST操作。如以上所討論的,客戶端設備130可以不具有可路由的名稱,並且第二名稱可以允許伺服器110從不具有可路由的名稱的客戶端設備130請求狀態信息。

儘管圖1可以涉及NDN系統架構,但應當理解NDN系統架構僅僅是可能被採用的示例的架構。其他實施例可以採用其他類型的系統架構(諸如CCN、Pursuit、NetInf等等)。

圖2根據一些實施例示出了用於執行REST操作的示例的處理的時序圖200。如上文結合圖1中所討論的,客戶端設備130可能希望請求伺服器110來執行REST操作。例如,客戶端設備130可能希望從用戶帳戶中取款。

如圖2中所示的,客戶端設備130可以傳輸興趣消息205以請求來自伺服器110的初始客戶端狀態。例如,在請求一個或多個REST操作之前,客戶端設備130可以通過傳輸興趣消息205請求初始客戶端狀態,該初始客戶端狀態可以用於與伺服器110的後續的REST交互。興趣消息205可以包括名稱,該名稱標識伺服器模塊與初始客戶端狀態。伺服器模塊的名稱可以允許路由器140轉發(例如路由)興趣消息205到伺服器110(諸如到伺服器110的伺服器模塊)。在一個實施例中,用於伺服器模塊的名稱與初始客戶端狀態可以先驗地由伺服器110和/或客戶端設備130所知。例如,在興趣消息中的名稱(用於伺服器模塊與客戶端狀態)可以遵守客戶端模塊和/或伺服器模塊所知的預先定義的命名約定。在另一個實施例中,用於初始客戶端狀態的名稱可以包括信息,該信息可以標識和/或表明以下一個或多個:客戶端設備130、客戶端模塊(例如圖1中所示出的客戶端模塊131)、以及客戶端設備的用戶。例如,用於初始客戶端狀態的名稱的一部分可以包括用戶登錄名、用於客戶端設備130的名稱/標識符等等。這可以允許伺服器110提供初始客戶端狀態,該初始客戶端狀態特定於客戶端設備130、客戶端模塊、和/或客戶端設備130的用戶。在另一個實施例中,興趣消息205可以包括單獨的有效載荷和/或附加的欄位,其可以被用來標識客戶端狀態(例如興趣消息205可以包括伺服器模塊的名稱,和標識初始客戶端狀態的單獨欄位)。

路由器140可以接收(例如在第一網絡接口或者第一網絡埠處接收)興趣消息205,並且路由器140可以轉發消息到伺服器110(例如用第二網絡接口或第二網絡埠轉發消息)。儘管圖2中示出了一個路由器140,在其他實施例中,伺服器110與客戶端設備130之間可以存在多個路由器。伺服器110與客戶端設備130之間的每一個路由器都可以轉發興趣消息和/或數據對象到沿著路徑的下一個路由器。伺服器110可以接收興趣消息205,並且可以生成初始狀態(諸如初始客戶端狀態)。伺服器110可以通過路由器140傳輸初始狀態210到客戶端設備130。在一個實施例中,伺服器110可以在傳輸初始狀態210到客戶端設備130之後刪除初始狀態。初始狀態210可以滿足興趣消息205。如以上所討論的,初始狀態210可以用伺服器110的私有密鑰籤名。初始狀態還可以用客戶端設備130與伺服器110兩者已知的密鑰(諸如共享的密鑰)加密。初始狀態還可以用客戶端設備130的公共密鑰加密。這允許伺服器110避免對於初始狀態210的未被認證的訪問,並且允許客戶端設備130核實初始狀態210是否來自伺服器110。在一個實施例中,興趣消息205與初始狀態210可以是可選的。例如,客戶端設備130可以在此前從伺服器110接收了初始狀態210,並且客戶端伺服器130可以不傳輸興趣消息205以請求初始狀態210。

在(可選地)接收初始狀態210之後,客戶端設備130可以傳輸興趣消息215。興趣消息215可以由路由器140所接收(例如在第一網絡接口或第一網絡埠處接收),並且路由器140可以轉發消息到伺服器110(例如可以用第二網路埠或第二網絡接口轉發消息)。興趣消息215可以包括伺服器110的伺服器模塊的第一名稱(例如伺服器模塊111的名稱)。第一名稱還可以表明由客戶端設備130所請求的REST操作,或者可以用興趣消息216中的有效載荷/數據欄位來標識REST操作。伺服器模塊的名稱可以允許路由器140轉發(例如路由)興趣消息215到伺服器110(例如到伺服器110的伺服器模塊)。如以上所討論的,伺服器模塊的名稱可以對於客戶端設備130是先前已知的。

在一個實施例中,興趣消息215還可以包括第二名稱(例如單獨的第二名稱)。第二名稱可以是客戶端設備130希望提供給伺服器110的狀態225的名稱。如以上所討論的,在REST架構中伺服器110不可以儲存客戶端狀態。因此客戶端設備130可以提供客戶端狀態到伺服器110,使得伺服器110可以執行所請求的REST事務。在興趣消息215中包括第二名稱(例如狀態225的名稱)可以允許客戶端設備130提供狀態225的名稱(諸如第二名稱)到伺服器110,使得如果伺服器110確定狀態225將被用來執行所請求的REST操作,那麼伺服器110能夠從客戶端設備130請求狀態225(例如使得伺服器110能夠傳輸興趣消息220)。如果伺服器110確定狀態225將不被用來執行所請求的REST操作,那麼伺服器110可以忽略第二名稱(例如,如以下所討論的,可以不傳輸興趣消息220),並且客戶端設備130可以不傳輸狀態230。這可以允許客戶端設備130避免提供不必要的數據(例如狀態225)到伺服器110。第二名稱可以被稱為反身名稱或數據對象定位符。

在一個實施例中,客戶端設備130的客戶端狀態可能太大而無法在單個數據對象(例如在NDN數據對象或CCN數據對象)中被傳輸。客戶端狀態可以被劃分(例如被分開、分段)到多個片、段、或塊。例如,客戶端狀態可以被分到多個NDN數據對象或多個CCN數據對象中。除了第一名稱之外,興趣消息215還可以包括多個名稱以允許伺服器110請求這多個數據對象(例如允許伺服器110針對客戶端狀態傳輸多個興趣消息)。例如,多個數據對象的每一個都可以具有名稱,並且多個數據對象的名稱可以被包括在興趣消息215中。興趣消息215可以包括第一名稱以及這多個名稱。在多個名稱中的每一個名稱可以與多個數據對象中的一個相關聯。在多個名稱中的名稱數量可以根據客戶端狀態的大小和/或數據對象的大小(例如數據對象的有效載荷的大小)。在另一個實施例中,伺服器110、路由器140、以及客戶端設備130可以採用公共的方案或約定,用於把客戶端狀態劃分到多個數據對象。這可以允許客戶端狀態的每一個部分的名稱(例如每一片、段、或塊等等)被推斷出來。例如,方案/約定可以把狀態劃分到三個數據對象,並且可以如下命名每一個數據對象:狀態-名稱_部分-X(STATE-NAME_Part-X),其中「X」可以是值1、2或3。這可以允許伺服器110、路由器140、和/或客戶端設備130推斷狀態的第二部分可以被命名為STATE-NAME_Part-2。

在一個實施例中,第二名稱可以是不可路由的名稱。不可路由的名稱可以是在NDN網絡架構中不被全局所知的和/或所認可的名稱。不可路由的名稱還可以是這樣的名稱:該名稱的前綴/部分不存在於路由器140的轉發信息庫(FIB)中。例如,不可路由的名稱可以是這樣的名稱:路由器140的FIB中沒有該名稱的前綴/部分。當第二名稱是不可路由的名稱的時候,路由器140可以不用FIB來確定轉發(例如路由)興趣消息的方式和/或目的地。路由器140可以用未決興趣表(PIT)來轉發包括第二名稱的興趣消息,以及轉發滿足包括第二名稱的興趣消息的數據對象。PIT與FIB將在下面結合圖4A到圖4D被詳細討論。

在一個實施例中,興趣消息220可以被標識為尋址到不可路由的名稱的興趣消息(例如正在用不可路由的名稱請求數據的興趣消息)。尋址到不可路由的名稱的興趣消息可以被稱為反身興趣消息。反身興趣消息可以包括標記、欄位、標識符等等,其表明興趣消息被尋址到不可路由的名稱。在另一個示例中,反身興趣消息的不可路由的名稱可以包括表明名稱不可路由的標識符、關鍵字、值、命名空間等等。將興趣消息220標識為尋址到不可路由的名稱的興趣消息(諸如反身興趣消息)可以允許路由器140確定應當用FIB還是PIT來轉發(例如路由)興趣消息220與狀態225。例如,尋址到可路由的名稱的興趣消息可以用FIB來轉發,並且尋址到不可路由的名稱的興趣消息(例如反身興趣消息)可以用PIT來轉發(如以下將詳細討論的)。

當伺服器110接收興趣消息215的時候,伺服器110可以傳輸興趣消息220以請求狀態225。路由器150可以接收興趣消息220並且可以轉發(例如路由)興趣消息220到客戶端設備130。客戶端設備130可以基於(例如響應於)興趣消息220來傳輸狀態225。例如,客戶端設備130可以傳輸包括狀態225的NDN數據對象或CCN數據對象。狀態225可以用客戶端的私有密鑰來籤名、和/或可以用客戶端設備130與伺服器110之間共享的密鑰來加密。狀態225還可以用伺服器110的公共密鑰來加密。路由器150可以接收狀態225並且可以轉發(例如路由)狀態225到伺服器110。在一個實施例中,伺服器可以不傳輸興趣消息220。例如,伺服器110可以不需要狀態225來執行在興趣消息215中所請求的REST操作。如果伺服器110不需要狀態225來執行在興趣消息215中所請求的REST操作,那麼伺服器110可以不傳輸興趣消息220並且可以不接收狀態225。在一個實施例中,狀態225可以與初始狀態210相同。狀態225可以被稱為反身數據對象,因為狀態225可以是具有不可路由的名稱的數據對象。

當伺服器110接收狀態225的時候,在塊226處,伺服器110可以執行興趣消息215中請求的REST操作(例如在興趣消息215中所表明的REST操作)(例如存錢到銀行帳戶)。伺服器110可以在執行REST操作之後傳輸響應230。在一個實施例中,響應230可以包括REST操作的結果。例如,響應230可以表明REST操作是被成功地完成、故障、還是被部分地完成。在另一示例中,響應230還可以表明REST操作故障和/或被部分地完成的原因。在一個實施例中,響應230可以被包裹在NDN數據對象中,該NDN數據對象具有與興趣消息215的第一名稱相同的名稱。例如,響應230可以被包括在NDN數據對象中,和/或可以是其一部分。在另一個實施例中,響應230可以被包裹在CCN數據對象中。例如,響應230可以被包括在CCN數據對象中,和/或可以是其一部分。響應230可以滿足興趣消息215。

在一個實施例中,響應230還可以表明狀態225是否由於REST操作而已被修改(例如被更新和/或改變)。例如,響應230可以表明在執行REST操作之後(例如在從用戶帳戶中取款之後)所更新的客戶端狀態(例如所更新的帳戶餘額)是可用的。如果響應230表明所更新的狀態是可用的(例如表明狀態225已經被修改),那麼客戶端設備130可以傳輸興趣消息235。興趣消息235可以包括用於所更新的狀態的名稱。路由器140可以接收興趣消息235並且可以轉發(例如路由)興趣消息235到伺服器110。伺服器110可以傳輸狀態240(例如所更新的狀態),並且路由140可以轉發狀態240(例如所更新的狀態)到客戶端設備130。

在一個實施例中,狀態240(例如所更新的狀態)可以被伺服器110籤名。例如,伺服器110可以對狀態240籤名從而允許計算設備(例如伺服器110、客戶端設備130等等)核實狀態240是由伺服器110所提供的。這還可以允許伺服器110核實當客戶130把所更新的狀態240(例如提供所更新的狀態240到伺服器110)用於後續的REST操作的時候,狀態240尚未被修改。在另一個實施例中,伺服器110可以加密狀態240來幫助避免對於狀態240的未經認證的訪問。例如,伺服器110可以用密鑰(諸如伺服器110的私有密鑰、客戶端130的公共密鑰、伺服器110與客戶端130都已知的密鑰等等)加密狀態240。在另一個實施例中,狀態240可以被伺服器110籤名以及加密。

在一個實施例中,系統架構(諸如NDN、CCN、Pursuit、NetInf等等)可以允許響應於興趣消息的多個數據對象。例如多個數據對象可以被用來滿足興趣消息。這可以允許伺服器110將狀態240(例如所更新的狀態)與響應230一起返回。因此,客戶端設備130可以不需要傳輸興趣消息235來得到來自伺服器110的狀態240。

如以上所討論的,興趣消息220可以是請求(例如指定和/或標識)具有不可路由的名稱的數據對象的興趣消息(例如,興趣消息220可以是反身興趣消息)。在一個實施例中,興趣消息220以及(滿足興趣消息220的)狀態225可以不獨立於興趣消息215以及(滿足興趣消息215的)響應230。例如,路由器可以將興趣消息215以及220與超時值或周期(例如有效周期、生命期等等)相關聯。超時值可以表明路由器140應該對滿足興趣消息215以及興趣消息220的數據對象等待多久。例如,具有15秒的超時值的興趣消息可以對路由140表明:路由140應該等待滿足興趣消息的數據對象15秒的時間。在15秒後,興趣消息可以到期並且路由140可以從PIT中移除數據對象的名稱。

在一個實施例中,與興趣消息220相關聯的超時值可以小於或等於與興趣消息215相關聯的超時值。興趣消息215的超時值可以表明路由器應該等待響應230多久,並且響應230可以包括興趣消息215中所請求的REST操作的結果。因為狀態225可以被用來執行REST操作,在興趣消息215到期之後(例如,在超時值或周期已經過去之後)返回狀態225可能是不合適的。此外,因為狀態225具有不可路由的名稱,所以狀態225(例如反身數據對象)可以用路由器140的PIT來轉發(例如路由)。路由器140(以及在伺服器110與客戶端設備130之間的任何其他的路由器)可以用PIT沿著興趣消息220的反向的路徑來轉發狀態225。在超時值到期之後,興趣消息215與220的超時值可以允許從PIT中移除針對興趣消息215和220的PIT條目。

在另一個實施例中,客戶端設備130可以用其他消息、功能、和/或操作來提供狀態225給伺服器。例如,客戶端設備130可以不使用在興趣消息215中的第二名稱(諸如反身名稱/數據定位符)。客戶端設備130可以傳輸包括有效載荷的不同類型的興趣消息205到伺服器110。客戶端設備130可以在興趣消息215的有效載荷中包括狀態225。因為狀態225可以是從用戶端設備130所接收的興趣消息215的一部分,所以伺服器110可以接收狀態225而無需傳輸興趣消息220。

圖3A是根據一些實施例,示出示例的興趣消息300的框圖。興趣消息300可以是在圖2中所示出的興趣消息215的示例。興趣消息300包括名稱305(諸如「名稱1」)以及名稱310(諸如「名稱2」)。如上面所討論的,客戶端設備可以傳輸興趣消息300以從伺服器請求REST操作(例如請求伺服器執行REST操作)。名稱305可以包括伺服器/伺服器模塊的名稱,和/或可以標識由客戶端設備所請求的REST操作(如以上所討論)。名稱310可以是用於客戶端狀態的名稱,該客戶端狀態是客戶端設備願意提供給伺服器的(如以上所討論)。例如,伺服器可以用客戶端狀態執行FEST操作,並且如果伺服器請求客戶端狀態,那麼客戶端設備可以願意提供狀態到伺服器。如以上所討論的,名稱310(例如第二名稱或反身名稱)允許伺服器從客戶端設備請求客戶端狀態。同樣如以上所討論的,第二名稱可以是不可路由的名稱或反身名稱(例如在NDN網絡架構中不是全局所知的和/或所認可的名稱,或者名稱的前綴/部分不存在於FIB之中)。

在NDN系統架構(或其他ICN系統架構,諸如CCN)中,路由器可以將從不同的網絡接口(諸如不同的埠)接收的具有相匹配的名稱的興趣消息集合。當路由器集合興趣消息的時候,路由器可以在具有匹配PIT中的條目的名稱的興趣消息被接收的時候不在PIT中創建分別的項目。替代地,路由器可以更新匹配的條目來表明興趣消息是從哪一個網絡埠所接收的。在一個實施例中,路由器可以集合包括匹配的(例如相同的)名稱與反身名稱的興趣消息。例如,路由器可以集合包括名稱「名稱1」與反身名稱「名稱2」的興趣消息。在一個實施例中,客戶端設備可能不希望興趣消息被集合。客戶端設備可以添加值、部分等等到反身名稱,使得反身名稱更加獨特。例如,客戶端設備可以在反身名稱中包括隨機值(諸如隨機數、隨機的字母數字值等等)。在其他示例中,客戶端設備可以包括由反身名稱所命名的對象的散列(例如通過對由反身名稱所命名的對象應用哈希函數(例如SHA-1)而生成的散列值)。

圖3B根據一些實施例示出了示例的興趣消息350的框圖。興趣消息350可以是在圖2中所示出的興趣消息220的示例。興趣消息350包括名稱355(諸如「名稱2」)以及可選的標識符365。名稱355可以是不可路由的名稱(例如可以是反身名稱)。名稱355可以由客戶端設備通過先前的興趣消息(例如通過在圖3A中的興趣消息300)提供給伺服器。名稱355可以允許伺服器從客戶端設備請求客戶端狀態。

如以上所討論的,伺服器可以傳輸興趣消息350到客戶端設備來從客戶端設備請求客戶端狀態。在一個實施例中,興趣消息350可以基於標識符365被標識為尋址到不可路由的名稱的興趣消息(例如可以被標識為反身興趣消息)。例如,標識符365可以是表明興趣消息350是反身興趣消息的頭部、標記、欄位、值等等(例如表明興趣消息350尋址到不可路由的名稱)。在另一個實施例中,興趣消息350可以基於名稱355被標識為反身興趣消息。例如,名稱355可以包括標識符、值、和/或命名空間,表明名稱是不可路由的(例如名稱355可以包括值「反身(reflexive)」)。把興趣消息350標識為反身興趣消息可以允許路由器140確定應該用FIB還是PIT來轉發(例如路由)興趣消息350與滿足興趣消息350的數據對象(如下文將被詳細討論的)。

圖4A到4D根據一些實施例示出了示例的未決興趣表(PIT)400A到400D的框圖。如以上所討論的,路由器(例如在圖中所示出的路由器140)可以包括多個網絡接口(例如多個網絡埠和/或網絡連接)。路由器可以接收興趣消息(諸如NDN興趣消息、CNN興趣消息等等),並且在計算設備之間(例如在客戶端設備與伺服器之間)轉發/路由興趣消息。例如,路由器可以在第一網絡接口(諸如第一埠)處接收興趣消息,並且可以用第二網絡接口(例如第二埠)轉發/路由興趣消息。路由器還可以響應於興趣消息而接收數據對象,並且可以在計算設備之間轉發/路由數據對象(例如NDN數據對象、CCN數據對象)。例如,路由器可以在第二網絡接口處接收數據對象,並且可以用第一網絡接口轉發/路由數據對象。

路由器可以包括轉發信息庫(FIB)。FIB(未在圖中示出)可以由基於名稱的路由協議填充。FIB可以基於在興趣消息中的名稱的前綴和/或部分,來表明應該用路由器的哪一個網絡接口來轉發/路由興趣消息。例如,興趣消息可以包括名稱「/公司1/視頻/視頻1」。FIB可以表明具有「/公司1」前綴的興趣消息應該被轉發/路由到第一網絡接口(諸如通過第一網絡接口所傳輸)。路由器還可以被靜態地配置以將名稱的不同的前綴和/或部分路由到不同的網絡接口。路由器還可以包括PIT。PIT可以儲存興趣消息的列表(例如尚未被滿足的興趣消息的列表),該興趣消息正在等待返回的數據對象。

如在圖4A中所示出的,PIT 400A包括條目405。條目405可以表明具有第一名稱「/公司1/操作1」的第一興趣消息從路由器的第一網絡接口(例如進接口「1」)所接收。條目405還可以表明第一興趣消息包括第二名稱「/客戶端/狀態」(例如反身名稱或不可路由的名稱)。條目405還可以表明第一興趣消息被轉發(例如路由)到路由器的第四網絡接口(例如出接口「4」)。參考回圖2,在路由器接收興趣消息215之後,條目405可以被創建。路由器可以用FIB來確定應該用哪一個網絡接口轉發/路由興趣消息215。路由器還可以創建索引(或其他數據結構,諸如散列數據結構、Trie數據結構等等),該索引允許路由器基於第二名稱(例如基於反身名稱或不可路由的名稱)訪問在PIT中的條目。

如圖4B所示,PIT 400B包括條目405以及條目410。條目410可以表明從路由器的第四網絡接口接收了具有名稱「/客戶端/狀態」的第二興趣消息。參考回圖2,在興趣消息220由路由器所接收之後,條目410可以被創建。如上文結合圖4A所討論的,第一興趣消息(對應於條目405)可以包括第二名稱(例如反身名稱或數據對象定位符)。在第二興趣消息與第二條目410中的名稱可以是第一興趣消息的第二名稱。在一個實施例中,路由器可以確定第二興趣消息是否尋址到不可路由的名稱(例如第二興趣消息是否為正在請求數據對象的反身興趣消息,該數據對象具有不可路由的名稱)。例如,路由器可以確定第二興趣消息是否具有標識符、欄位、頭部等等,上述標識符、欄位、頭部等等表明第二興趣消息是反身興趣消息。在另一個實施例中,路由器可以分析在第二興趣消息中的名稱來確定名稱是否包括值、關鍵字、命名空間等等,上述值、關鍵字、命名空間等等表明名稱是不可路由的名稱。如以上所討論的,在第二興趣消息中的名稱「客戶/狀態」可以是不可路由的名稱(例如可以是反身名稱)。

在一個實施例中,當第二名稱是不可路由的名稱的時候,路由器可以分析PIT 400B來標識包括不可路由的名稱的條目。例如,路由器可以分析PIT 400B並且可以確定條目405包括不可路由的名稱「客戶端/狀態」。路由器可以確定第二興趣消息是否到達了在條目405中的出接口之一(例如第二興趣消息是否到達出接口「4」)。如果第二興趣消息沒有到達條目405中的出接口之一,那麼第二興趣消息可能被丟棄了(例如,路由器可能沒有轉發第二興趣消息)。如果第二消息確實到達了條目405中的出接口之一,那麼路由器可以分析緩存來確定在第二興趣消息中命名的數據對象(例如反身數據對象)是否出現在緩存中(例如被儲存在緩存中)。在一個實施例中,如果數據對象出現在緩存中,那麼路由器可以通過出接口(第二興趣消息在該出接口上到達)轉發在第二興趣消息中所命名的數據對象。在一個實施例中,如果數據對象沒有出現在緩存中,那麼路由器可以用PIT 400B來標識入接口的集合(例如入接口「1」),並且可以轉發第二興趣消息到這些入接口之一。路由器還可以創建條目410來表明第二興趣消息已經被轉發到入接口之一。在一個實施例中,當確定轉發反身消息的方式和/或目的地的時候,路由器可以不使用FIB。

如以上所討論的,每一個興趣消息可以與超時周期(例如有效期、生命期等等)相關聯。超時周期可以表明路由器可能等待滿足興趣消息的數據對象的時長(例如路由器將對興趣消息中所命名的數據對象等待多久)。在一個實施例中,路由器可以設置第二興趣消息的超時周期少於或等於第一興趣消息的超時周期。路由器可以在PIT中儲存針對興趣消息的超時周期(未在圖中示出)。例如,在PIT 400C中的每一個條目可以包括超時值或欄位,以表明針對條目的興趣消息的超時周期。

如上述所討論的,如果客戶端狀態太大而無法在單個數據對象中傳輸,那麼伺服器110可以傳輸多個反身興趣消息來從客戶端設備請求客戶端狀態。在一個實施例中,用於路由器的PIT可以包括用於多個反身興趣消息中每一個消息的條目(未在圖中示出)。隨著每一個反身數據對象被路由器接收,路由器可以用PIT路由反身數據對象,並且可以對於來自PIT的相應反身興趣消息移除PIT條目。例如,隨著客戶端狀態的每一個部分、塊、段、片等等被接收,路由器可以路由該部分、塊、段、片等等。在另一個實施例中,用於路由器的PIT可以包括一個條目,該條目可以被用於多個反身數據對象。例如,用於將數據對象的名稱匹配到在PIT中的名稱的規則可以被放寬,使得當匹配名稱的時候,用於數據對象的名稱的塊號碼可以被忽略(例如,塊號碼或其他標識符表明數據對象包括客戶端狀態的部分,該塊號碼或其他標識符不用於在PIT中查找條目)。在另一個示例中,部分、塊、段、片等等的號碼可以被包括在第一興趣消息中(例如在第一興趣消息中作為單獨的欄位或作為第二名稱的一部分而被包括)。部分的號碼可以允許路由器把具有塊號碼(或其他標識符)的名稱與PIT中的條目進行匹配。

如在圖4C中所示,PIT 400包括條目405。PIT 400C可以由從PIT 400B中移除條目410所得到。例如,參考回圖2,客戶端設備可以傳輸狀態225到伺服器。路由器可以接收狀態225並且可以訪問條目410。路由器可以確定請求狀態225的第二興趣消息是從路由器的第四網絡接口所接收,並且可以用路由器的第一網絡接口來路由或轉發狀態225。在路由或轉發狀態225之後,路由器可以移除條目410(如圖4C中所示出的)。可選地,路由器可以在緩存(或某個其他存儲器)中儲存狀態225。

如在圖4D中所示出的,PIT 400D不包括條目。PIT 400D可以通過從PIT 400C中移除條目405而得到。例如,參考回圖2,在執行在第一興趣消息中所請求的REST操作之後,伺服器可以傳輸響應230到客戶端設備(在圖4A到4C中由條目410所代表)。路由器可以接收響應230。路由器可以訪問條目405來確定請求響應230的興趣消息是從路由器的第一網絡接口所接收,並且可以用路由器的第一網路接口來路由或轉發響應230。在路由或轉發響應230之後,路由器可以移除條目405(如在圖4D中所示出的)。可選地,路由器可以在路由器的緩存(或某個其他存儲器)中儲存響應230。

圖5是根據一些實施例,請求REST操作的方法500的流程圖。在一些實現方式中,方法500可以由客戶端設備和/或客戶端模塊(例如在圖1與圖2中所示出的客戶端設備130和/或客戶端模塊131)所執行。簡單地,方法500包括傳輸對於初始狀態的請求並且接收初始狀態,傳輸對於伺服器執行REST操作的請求、以及接收對請求的響應。方法500在塊505處開始,在塊505處方法500傳輸初始興趣消息,以對客戶端設備和/或客戶端模塊請求第一狀態(例如客戶端狀態)。例如,客戶端設備可以請求第一狀態來用於後續的REST操作(如以上所討論的)。在塊510處,方法500接收第一狀態。例如,客戶端設備可以從伺服器接收第一狀態(如以上所討論的)。在一個實施例中,塊505以及塊510可以是可選的(例如可以不被執行)。例如,第一狀態可能已由客戶端設備所接收,並且方法500可以不執行塊505與510。

在塊515處,方法500可以傳輸第一興趣消息以從伺服器請求REST操作(例如請求伺服器執行REST操作)。例如,方法500可以傳輸第一興趣消息到伺服器(如以上所討論的)。第一興趣消息可以包括名稱,該名稱標識伺服器/伺服器模塊和/或標識所請求的REST操作(如以上所討論的)。第一消息還可以包括第二名稱(例如不可路由的名稱或反身的名稱),該第二名稱標識客戶端設備願意提供給伺服器的第一狀態(例如客戶端狀態)。方法500在塊520處接收第二興趣消息,該第二興趣消息包括第二名稱。例如,方法500可以從伺服器接收第二興趣消息,該第二興趣消息請求第一狀態。方法500在塊525處傳輸第一狀態到伺服器。在塊530處,方法500接收對於REST操作的請求的響應。如以上所討論的,響應可以包括請求的結果(例如可以表明REST操作發生故障還是被成功地執行)。

在一個實施例中,響應還可以表明作為REST操作的結果,所更新的狀態可用。例如,響應可以表明REST操作已更新了(例如修改了和/或改變了)第一狀態。在塊535處,方法500可以傳輸第三興趣消息來請求所更新的狀態。例如方法500可以傳輸第三興趣消息,該第三興趣消息包括客戶端狀態的名稱。在塊540處,方法500可以從伺服器接收所更新的狀態。如以上所討論的,所更新的狀態可以由伺服器所籤名並且可選地被加密(例如使得所更新的狀態避免被未認證的訪問,和/或允許核實所更新的狀態未被修改)。在另一個實施例中,如果響應不表明所更新的狀態是可用的,那麼方法500可以不執行塊535和540(例如塊535和540是可選的)。在另一個實施例中,在塊530處所接收的響應還可以包括所更新的狀態。例如,除了響應之外,附加數據對象可以被接收,並且附加數據對象可以包括所更新的狀態。當響應中包括所更新的狀態的時候,塊535與塊540可以是可選的。

圖6是根據一些實施例,執行REST操作的方法600的流程圖。在一些實現方式中,方法600可以由伺服器和/或伺服器模塊所執行(例如在圖1與圖2中所示出的伺服器110和/或伺服器模塊111)。簡單地,方法600包括接收對於初始狀態的請求以及傳輸初始狀態、接收對於伺服器執行REST操作的請求、執行REST操作、以及傳輸對請求的響應。方法600從塊605開始,其中方法600接收初始興趣消息以從客戶端設備(或客戶端模塊)請求第一狀態(例如客戶端狀態)。例如,該方法可以從客戶端設備接收對於第一狀態的請求(如以上所討論的)。在塊610處,方法600傳輸第一狀態到客戶端設備。在一個實施例中,塊605與塊610可以是可選的(例如可以不執行)。例如,客戶端設備可能已經具有來自先前REST操作的第一狀態,並且方法600可以不執行塊605以及塊610。

在塊615處,方法600可以接收第一興趣消息以從伺服器請求REST操作(例如請求伺服器執行REST操作)。例如,方法600可以從客戶端設備接收第一興趣消息(如以上所述的)。第一興趣消息可以包括名稱,該名稱標識伺服器/伺服器模塊、和/或標識所請求的REST操作(如以上所討論的)。第一興趣消息還可以包括第二名稱(例如不可路由的名稱或反身名稱),該名稱標識客戶端設備願意提供給伺服器的第一狀態(例如客戶端狀態)。在塊620處,方法600傳輸包括第二名稱的第二興趣消息。例如,方法600可以傳輸第二興趣消息來從伺服器請求第一狀態。在塊625處,方法600從客戶端設備接收第一狀態。在塊627處,方法600執行在第一興趣消息中所請求的REST操作。例如,方法600可以從用戶支票帳戶中取款或轉帳。在塊630處,方法600傳輸對於REST操作的請求的響應。如以上所討論的,響應可以包括請求的結果(例如可以表明REST操作是發生故障還是被成功地執行)。

在一個實施例中,響應還可以表明作為REST操作的結果,所更新的狀態可用。例如,響應可以表明REST操作已更新了(例如修改了和/或改變了)第一狀態。在塊635處,方法600可以接收請求所更新的狀態的第三興趣消息。例如,方法600可以接收包括客戶端狀態的名稱的第三興趣消息。在塊640處,方法600可以傳輸所更新的狀態到客戶端設備。如以上所討論的,在塊640處,所更新的狀態可以被籤名以及可選地加密(例如使得所更新的狀態避免未被認證的訪問,和/或允許核實所更新的狀態未被修改)。在另一個實施例中,如果響應未表明所更新的狀態是可用的,那麼塊635與640可以是可選的。例如,方法600可以不接收第三興趣消息(因為沒有更新的狀態可用)並且塊635與640可以不被執行。

圖7是根據一些實施例,轉發興趣對象和/或數據對象的方法700的流程圖。在一些實施例中,方法700可以由路由器和/或路由器模塊所執行(例如在圖1和圖2中所示出的路由器140和/或路由器模塊142)。簡單地,方法700包括接收興趣消息、接收數據對象、生成用於興趣消息的PIT條目、以及轉發興趣消息和/或數據對象。方法700從塊705開始,在塊705處方法700接收從伺服器請求REST操作的第一興趣消息(例如請求伺服器執行REST操作)。例如,方法700可以從客戶端設備接收第一興趣消息(如以上所描述的)。第一興趣消息可以包括名稱,該名稱標識伺服器/伺服器模塊和/或標識所請求的REST操作(如以上所討論的)。第一興趣消息還可以包括第二名稱(例如不可路由的名稱或反身名稱),該名稱標識客戶端設備願意提供給伺服器的第一狀態。方法700生成用於第一興趣消息的第一PIT條目(如以上結合圖4A到圖4D所討論的)。在塊715處,方法700轉發第一興趣消息到伺服器。例如,方法700可以用FIB轉發興趣消息到伺服器。

在塊720處,方法700接收包括第二名稱的第二興趣消息。方法700可以確定第二興趣消息是否尋址到不可路由的名稱(例如用不可路由的名稱請求數據)。例如,方法700可以確定第二名稱是否具有關鍵字、前綴、值等等,其表明第二名稱是不可路由的。在另一個實施例中,方法700可以確定第二興趣消息是否包括欄位、值、頭部等等,其表明第二名稱是不可路由的(例如表明第二興趣消息是反身興趣消息)。如果第二興趣消息尋址到可路由的名稱,那麼方法700可以在塊730處用FIB轉發第二興趣消息。例如,第二興趣消息可以是請求數據對象的標準興趣消息,並且FIB可以被用來轉發第二興趣消息。如果第二興趣消息尋址到不可路由的名稱,那麼方法700在塊735處創建第二PIT條目,並且用於第二PIT條目的超時周期可以小於或等於第一PIT條目的超時周期(如以上結合圖4A到圖4D所討論的)。在一個實施例中,第二PIT條目可以關聯和/或連結到第一PIT條目。在塊740處,方法700可以用PIT把第二興趣消息轉發到客戶端設備。例如,方法700可以用在PIT中的第一條目轉發第二興趣消息(如以上結合圖4A到4D所討論的)。

在塊745處,方法700可以從客戶端設備接收客戶端狀態並且可以轉發客戶端狀態到伺服器。方法700可以用PIT中的第二條目來轉發客戶端狀態到伺服器(如以上結合圖4A到4D所討論的)。在塊750處,在轉發客戶端狀態到伺服器之後,該方法可以從PIT中移除第二條目(如以上結合圖4A到4D所討論的)。在塊755處,方法700可以接收從伺服器接收對於REST操作的請求的響應,並且可以轉發響應到客戶端。在塊760處,在轉發響應到客戶端設備之後,方法700從PIT中移除第一條目(如以上結合圖4A到4D所討論的)。

圖8是根據一些實施例的計算設備800的框圖。儘管示出了某些具體的特性,本領域技術人員將從本公開中理解,出於簡化的目的沒有示出各種其他特性,以免模糊本文的實施例的更多相關的方面。為此,作為非限制的示例,在一些實施例中,計算設備800包括一個或多個處理單元(CPU)802(例如處理器)、一個或多個輸出接口803、存儲器806、編程接口808、以及用於將這些與各種其他組件互聯的一個或多個通信總線804。

在一些實施例中,通信總線804包括互聯和控制系統組件之間的通信的電路。存儲器806包括高速隨機存取存儲器,諸如動態隨機存取存儲器(DRAM)、靜態隨機存儲器(SRAM)、雙倍數據傳輸率存儲器(DDR RAM)、或其他隨機存取固態存儲器設備;並且可以包括非易失存儲器,諸如一個或多個磁碟存儲設備、光碟存儲設備、快閃記憶體設備、或其他非易失固態存儲設備。存儲器806可選地包括位於CPU 802遠程的一個或多個存儲設備。存儲器806包括非暫態計算機可讀存儲介質。此外,在一些實施例中,存儲器806或存儲器806的非暫態計算機可讀存儲介質儲存下文的程序、模塊以及數據架構,或其子集,包括可選的作業系統830以及伺服器模塊840。在一些實施例中,一個或多個指令被包括在邏輯存儲器與非暫態存儲器的組合之中。作業系統830包括用於運作各種基礎系統服務以及用於執行基於硬體的任務的過程。在一些實施例中,伺服器模塊840可以被配置以接收對於執行REST操作的請求、執行REST操作、傳輸客戶端狀態、以及請求客戶端狀態。為此,伺服器模塊840包括伺服器狀態模塊841以及操作模塊842。

在一些實施例中,伺服器狀態模塊841可以從客戶端設備接收對於客戶端狀態的請求,並且可以傳輸客戶端狀態到客戶端設備。伺服器狀態模塊841還可以被配置來對客戶端設備請求客戶端狀態。為此,伺服器狀態模塊841包括指令841a以及啟發和元數據(heuristics and metadata)841b的集合。在一些實施例中,操作模塊842可以接收執行REST操作的請求,並且可以執行REST操作。操作模塊842還可以被配置來傳輸對於請求的響應到客戶端設備。為此,操作模塊842包括指令842a以及啟發和元數據842b的集合。

儘管伺服器模塊840、伺服器狀態模塊841、以及操作模塊842被示出為位於單一計算設備800中,應當理解在其他實施例中,伺服器模塊840、伺服器狀態模塊841、以及操作模塊842的任何組合可以位於單獨的計算設備中。

圖9是根據一些實施例的計算設備900的框圖。儘管某些具體的特性被示出,本領域技術人員將從本公開中理解,出於簡化的目的而未示出的各種其他的特性,以免模糊本文所公開的實施例的更多的相關方面。為此,作為非限制性的示例,在一些實施例中,計算設備900包括一個或多個處理單元(CPU)902(例如處理器)、一個或多個輸出接口903、存儲器906、編程接口908、用於將這些與各種其他組件互聯的一個或多個通信總線904。

在一些實施例中,通信總線904包括互聯和控制系統組件之間的通信的電路。存儲器906包括高速隨機存取存儲器,諸如DRAM、SRAM、DDR RAM或其他隨機存取固態存儲器設備;並且可以包括非易失存儲器,諸如一個或多個磁碟存儲設備、光碟存儲設備、快閃記憶體設備、或其他非易失固態存儲設備。存儲器906可選地包括位於(一個或多個)CPU 902遠程的一個或多個存儲設備。存儲器906包括非暫態計算機可讀存儲介質。此外,在一些實施例中,存儲器906或存儲器906的非暫態計算機可讀存儲介質儲存下文的程序、模塊以及數據架構,或其子集,包括可選的作業系統930以及鏈路模塊940。在一些實施例中,一個或多個指令被包括在邏輯存儲器和非暫態存儲器的組合之中。作業系統930包括用於運作各種基礎系統服務以及用於執行基於硬體的任務的過程。在一些實施例中,客戶端模塊940可以被配置來傳輸對於執行REST操作的請求,傳輸客戶端狀態,以及請求客戶端狀態。為此,客戶端模塊940包括客戶端狀態模塊941以及請求模塊942。

在一些實施例中,客戶端狀態模塊941可以從伺服器接收對於客戶端狀態的請求,並且可以傳輸客戶端狀態到伺服器。客戶端狀態模塊941還可以被配置以從伺服器請求所更新的客戶端狀態。為此,客戶端狀態模塊941包括指令941a與啟發和元數據941b的集合。在一些實施例中,請求模塊942可以被配置來傳輸對於執行REST操作的請求到伺服器。請求模塊942還可以被配置從伺服器接收對於請求的響應。為此,請求模塊942包括指令942a與啟發和元數據942b的集合。

儘管客戶端模塊940、客戶端狀態模塊941、以及請求模塊942被示出為位於單一的計算設備900中,應當理解在其他實施例中,客戶端模塊940、客戶端狀態模塊941、以及請求模塊942的任何組合都可以位於單獨的計算設備中。例如,伺服器模塊、伺服器狀態模塊841、以及操作模塊842可以各自位於分別的計算設備中。

圖10是根據一些實施例示出的計算設備1000的框圖。儘管某些具體特性被示出,本領域技術人員從本公開中應當理解,出於簡化的目的而未示出各種其他特性,以免模糊本文所公開的實施例的更多的相關方面。為此,作為非限制性的示例,在一些實施例中,計算設備1000包括一個或多個處理單元(CPU)1002(例如處理器)、一個或多個輸出接口1003、存儲器1006、編程接口1008、以及用於互聯這些與各種其他組件的一個或多個通信總線1004。

在一些實施例中,通信總線1004包括互聯與控制系統組件之間通信的電路。存儲器1006包括高速隨機存取存儲器,諸如DRAM、SRAM、DDR RAM或其他隨機存取固態存儲器設備;並且包括非易失存儲器,諸如一個或多個磁碟存儲設備、光碟存儲設備、快閃記憶體設備、或者其他非易失固態存儲設備。存儲器1006可選地包括位於(一個或多個)CPU 1002遠程的一個或多個存儲器設備。存儲器1006包括非暫態計算機可讀存儲介質。此外,在一些實施例中,存儲器1006或存儲器1006的非暫態計算機可讀存儲介質儲存下文的程序、模塊和數據結構,或其子集,包括可選的作業系統1030與路由器模塊1040。在一些實施例中,一個或多個指令被包括在邏輯存儲器和非暫態存儲器的組合之中。作業系統1030包括運作各種基礎系統服務以及用於執行基於硬體的任務的過程。在一些實施例中,路由器模塊1040可以被配置來轉發興趣消息、轉發數據對象、以及維護FIB與PIT。為此,路由器模塊1040包括興趣模塊1041以及數據對象模塊1042。

在一些實施例中,興趣模塊1041被配置來用FIB或PIT接收興趣消息並且轉發興趣消息。為此,興趣模塊1041包括指令1041a與啟發和元數據1041b的集合。在一些實施例中,數據對象模塊1042被配置用FIB或PIT來接收數據對象(例如客戶端狀態、響應等等)並且轉發數據對象。為此,數據對象模塊1042包括指令1042a與啟發和元數據1042b的集合。

儘管路由器1040、興趣模塊1041、以及數據對象模塊1042被示出為位於單一的計算設備1000上,應當理解在其他實施例中,路由器模塊1040、興趣模塊1041、以及數據對象模塊1042的任何組合可以位於分別的計算設備上。例如,路由器模塊1040、興趣模塊1041、以及數據對象模塊1042的每一個可以位於分別的計算設備上。

此外,圖8到圖10更多地意在作為可能出現在特定實施例中的各種特性的功能性描述,而不是本文所描述的實施例的結構示意圖。如本領域技術人員所理解的,分別示出的項可以被組合,並且一些項可以被拆分。例如,圖8到圖10中分別地示出的一些功能性的模塊可以在單個模塊中被實現,並且單個功能性塊的各種功能可以在各種實施例中由一個或多個功能塊所實現。模塊的實際數量與具體功能的劃分、以及它們之間如何分配特性,從一個實施例到另一個會是不同的,並且可以部分地取決於針對特定實施例所選擇的硬體、軟體和/或固件的特定的組合。

本公開描述了各種特性,這些特性中沒有一個單獨負責本文所描述的優點。應當理解本文所描述的各種特性可以被組合、修改、或省略,這對本領域技術人員是顯然的。除了本文所具體描述之外的其他組合以及子組合對於本領域技術人員將是顯然的,並且意在組成本公開的一部分。本文結合各種流程圖步驟和/或階段描述了各種方法。應當理解在許多情境中,某些步驟和/或階段可以被組合在一起,使得在流程圖中示出的多個步驟和/或階段可以作為單個步驟和/或階段執行。同樣地,某些步驟和/或階段可以被分解為更多的子成分而被分別地執行。在一些示例中,步驟和/或階段的順序可以被重新安排,並且某些步驟和/或階段可以被完全省略。同樣地,本文所描述的方法應當被理解為開放性的,使得對於本文所示和所述的步驟和/或階段而言,還可以執行附加的步驟和/或階段。

本文所描述的系統與方法的一些方面可以用例如計算機軟體、硬體、固件或計算機軟體、硬體、固件的任何組合而有利地實現。計算機軟體可以包括儲存在計算機可讀介質(諸如非暫態計算機可讀介質)中的計算機可執行代碼,當其被執行時,執行本文所描述的功能。在一些實施例中,計算機可執行代碼由一個或多個通用計算機處理器所執行。根據本公開,技術人員將理解,可以用在通用計算機上所執行的軟體所實現的任何特性或功能也可以用硬體、軟體、或固件的不同組合實現。例如,這種模塊可以用集成電路的組合完全被實現在硬體中。替代地或此外,這種特性或功能可以用除通用計算機之外的專用計算機而完全或部分地實現,該專用計算機被設計來執行本文所描述的特定功能。

可以用多個分布式的計算設備來代替本文所描述的任何一個計算設備。在這種分布式實施例中,一個計算設備的功能被(例如通過網絡)分布,使得在每一個分布式計算設備上執行一些功能。

一些實施例可以參考公式、算法、和/或流程圖而被描述。這些方法可以用能夠在一個或多個計算機上執行的電腦程式指令而實現。這些方法還可以被實現為電腦程式產品,或者單獨實現,或是作為裝置或系統的組件而被實現。就此而言,每個公式、算法、塊、或流程圖的步驟以及它們的組合可以由硬體、固件、和/或軟體而被實現,該軟體包括存在於計算機可讀程序代碼邏輯中的一個或多個電腦程式指令。可以理解,任何這種電腦程式指令可以被裝載到一個或多個計算機(包括但不限於通用計算機或專用計算機)或其他可編程處理裝置上以產生一種機器,使得在這(一個或多個)計算機或(一個或多個)其他可編程處理設備上所執行的電腦程式指令實現由公式、算法、和/或流程圖所指定的功能。應當理解在流程圖中所示出的公式、算法、和/或塊、以及它們的組合,可以由專用的基於硬體的計算機系統所實現,該基於硬體的計算機系統執行所指定的功能或步驟,或由專用硬體與計算機可讀程序代碼邏輯手段的組合實現。

此外,(諸如在計算機可讀程序代碼邏輯中的)電腦程式指令可以被儲存在計算機可讀存儲器(例如非暫態計算機可讀介質)中,該計算機可讀存儲器可以指導一個或多個計算機或其他可編程處理設備以特定的方式工作,使得計算機可讀存儲器中儲存的指令實現在(一個或多個)流程圖中的(一個或多個)塊中指定的(一個或多個)功能。電腦程式指令還可以被裝載到一個或多個計算機或其他可編程計算設備上,使得一系列可操作的步驟在這一個或多個計算機上或其他可編程計算設備上執行以產生計算機實現的處理,使在計算機上或其他可編程處理設備上所執行的指令提供用於實現由流程圖的(一個或多個)公式、(一個或多個)算法、和/或(一個或多個)塊所指定的功能的步驟。

本文所描述的一些或全部的方法和任務可以由計算機系統所執行以及全自動化。在一些情境中,計算機系統可以包括多個不同的計算機或計算設備(例如物理伺服器、工作站、存儲設備陣列等等),其通過網絡通信以及交互操作來執行所描述的功能。每個這種計算設備通常包括處理器(或多個處理器),其執行在存儲器、其他非暫態的計算機可讀存儲設備介質或設備中儲存的程序指令或模塊。本文所公開的各種功能可以由這種程序指令實現,儘管一些或全部所公開的功能可以在專用電路(諸如專用集成電路(ASIC)或現場可編程門陣列(FPGA))中替代地實現。在計算機系統包括多個計算設備的情況下,這些設備可以但不必要在相同的位置。所公開的方法與任務的結果可以通過把物理存儲設備(諸如固態存儲器晶片和/或磁碟)轉換到另一狀態而被持久地儲存。

除非上下文另有明確要求,貫穿說明書和權利要求書,詞語「包括」等等應解釋為包容的意義,而不是排除的或窮舉的意義;即「包括但不局限於」的意義。本文中常用的詞語「耦接」指的是兩個或更多個元件可以被直接地連接或通過一個或多個中間元件所連接。此外,詞語「本文」「上文」「下文」以及相似含義的詞語當在本申請中使用時應當指的是本申請作為一個整體而不是本申請的任何特定的部分。在上下文允許的情況下,在以上詳細說明中使用單數或複數數量的詞語還可以包括相應的複數或單數數量。對於一系列兩個或更多個項所用的詞語「或」,該詞語涵蓋對該詞語的下列所有解釋:該系列中的任一項、該系列中的所有項、以及該系列中的項的任何組合。詞語「示例的」在本文僅僅意指「作為示例、實例或舉例」。本文描述為「示例的」任何實現方式不一定被認為比其他的實現方式更優選或更有利。

應當理解,儘管本文可能使用了術語「第一」「第二」等等來描述各種元件,這些元件不應該被這些術語所局限。這些術語僅僅被用來將一個元件與其他的元件區分開。例如,第一接點可以被叫做第二接點,並且相似地,第二接點可以被叫做第一接點,不改變說明書的意思,只要出現的所有「第一接點」被一致地重命名並且出現的所有第二接點也被一致地重命名。第一接點和第二接點都是接點,但是它們不是同一個接點。同樣地如在對實施例的說明以及所附權利要求書中所使用的,單數形式「一」、「該」意在也包括複數形式,除非上下文明確表明不包括。應當理解,本文所使用的術語「和/或」表示並且包含所列出的有關項中一個或多個的任何且所有可能的組合。

此外,取決於上下文,本文所使用的術語「如果」可以被解釋為「當...的時候」或「一旦...」或「響應於確定」或「根據確定」或「響應於檢測」所陳述的先決條件為真。相似地,取決於上下文,句子「如果確定[所陳述的先決條件為真]」、或「如果[所陳述的先決條件為真]」、或「當[所陳述的先決條件為真]的時候」可以被解釋意為「一旦確定」或「響應於確定」或「根據確定」或「一旦檢測到」或「響應於檢測到」所陳述的先決條件是真。

本公開不意在限於本文所示出的實施方式。對本公開中所描述的實現方式的各種修改對於本領域技術人員可能是顯然的,並且本文所定義的一般原則可以用於其他實現方式而不脫離本公開的精神或範圍。本文所提供發明的教導可以適用於其他方法和系統,並且不局限於以上所描述的方法和系統,並且以上所描述的各種實施例的元件與動作可以被組合來提供更多的實施例。相應地,本文所描述的新穎的方法與系統可以以多種其他形式實施;此外,在本文所描述的方法或系統的形式中可以做出各種省略、置換以及改變而不脫離本公開的精神。所附的權利要求書以及它們的等同含義意在覆蓋落在本公開的範圍與精神中的這些形式或修改。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀