CN106664298B - 用于表述性状态转移操作的方法和装置 - Google Patents

用于表述性状态转移操作的方法和装置 Download PDF

Info

Publication number
CN106664298B
CN106664298B CN201580037979.2A CN201580037979A CN106664298B CN 106664298 B CN106664298 B CN 106664298B CN 201580037979 A CN201580037979 A CN 201580037979A CN 106664298 B CN106664298 B CN 106664298B
Authority
CN
China
Prior art keywords
name
state
interest message
server
rest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580037979.2A
Other languages
English (en)
Other versions
CN106664298A (zh
Inventor
戴夫·奥兰
马克·斯旦波
伊利亚·莫伊森科
万·苏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN106664298A publication Critical patent/CN106664298A/zh
Application granted granted Critical
Publication of CN106664298B publication Critical patent/CN106664298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/808User-type aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

在一个实施例中,一种方法包括传输第一兴趣消息到服务器。第一兴趣消息包括对于表述性状态转移(REST)以及REST操作的第一状态的名称的请求。方法还包括从服务器接收第二兴趣消息。第二兴趣消息包括用于REST操作的第一状态的名称。方法还包括基于第二兴趣消息传输第一兴趣消息到服务器,以及从服务器接收对于REST操作的响应。

Description

用于表述性状态转移操作的方法和装置
相关申请
本申请要求递交于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中的名称可以是第一兴趣消息的第二名称。在一个实施例中,路由器可以确定第二兴趣消息是否寻址到不可路由的名称(例如第二兴趣消息是否为正在请求数据对象的反身兴趣消息,该数据对象具有不可路由的名称)。例如,路由器可以确定第二兴趣消息是否具有标识符、字段、头部等等,上述标识符、字段、头部等等表明第二兴趣消息是反身兴趣消息。在另一个实施例中,路由器可以分析在第二兴趣消息中的名称来确定名称是否包括值、关键字、命名空间等等,上述值、关键字、命名空间等等表明名称是不可路由的名称。如以上所讨论的,在第二兴趣消息中的名称“客户/状态”可以是不可路由的名称(例如可以是反身名称)。
在一个实施例中,当第二名称是不可路由的名称的时候,路由器可以分析PIT400B来标识包括不可路由的名称的条目。例如,路由器可以分析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)、双倍数据传输率存储器(DDRRAM)、或其他随机存取固态存储器设备;并且可以包括非易失存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备、或其他非易失固态存储设备。存储器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))中替代地实现。在计算机系统包括多个计算设备的情况下,这些设备可以但不必要在相同的位置。所公开的方法与任务的结果可以通过把物理存储设备(诸如固态存储器芯片和/或磁盘)转换到另一状态而被持久地储存。
除非上下文另有明确要求,贯穿说明书和权利要求书,词语“包括”等等应解释为包容的意义,而不是排除的或穷举的意义;即“包括但不局限于”的意义。本文中常用的词语“耦接”指的是两个或更多个元件可以被直接地连接或通过一个或多个中间元件所连接。此外,词语“本文”“上文”“下文”以及相似含义的词语当在本申请中使用时应当指的是本申请作为一个整体而不是本申请的任何特定的部分。在上下文允许的情况下,在以上详细说明中使用单数或复数数量的词语还可以包括相应的复数或单数数量。对于一系列两个或更多个项所用的词语“或”,该词语涵盖对该词语的下列所有解释:该系列中的任一项、该系列中的所有项、以及该系列中的项的任何组合。词语“示例的”在本文仅仅意指“作为示例、实例或举例”。本文描述为“示例的”任何实现方式不一定被认为比其他的实现方式更优选或更有利。
应当理解,尽管本文可能使用了术语“第一”“第二”等等来描述各种元件,这些元件不应该被这些术语所局限。这些术语仅仅被用来将一个元件与其他的元件区分开。例如,第一接点可以被叫做第二接点,并且相似地,第二接点可以被叫做第一接点,不改变说明书的意思,只要出现的所有“第一接点”被一致地重命名并且出现的所有第二接点也被一致地重命名。第一接点和第二接点都是接点,但是它们不是同一个接点。同样地如在对实施例的说明以及所附权利要求书中所使用的,单数形式“一”、“该”意在也包括复数形式,除非上下文明确表明不包括。应当理解,本文所使用的术语“和/或”表示并且包含所列出的有关项中一个或多个的任何且所有可能的组合。
此外,取决于上下文,本文所使用的术语“如果”可以被解释为“当…的时候”或“一旦…”或“响应于确定”或“根据确定”或“响应于检测”所陈述的先决条件为真。相似地,取决于上下文,句子“如果确定[所陈述的先决条件为真]”、或“如果[所陈述的先决条件为真]”、或“当[所陈述的先决条件为真]的时候”可以被解释意为“一旦确定”或“响应于确定”或“根据确定”或“一旦检测到”或“响应于检测到”所陈述的先决条件是真。
本公开不意在限于本文所示出的实施方式。对本公开中所描述的实现方式的各种修改对于本领域技术人员可能是显然的,并且本文所定义的一般原则可以用于其他实现方式而不脱离本公开的精神或范围。本文所提供发明的教导可以适用于其他方法和系统,并且不局限于以上所描述的方法和系统,并且以上所描述的各种实施例的元件与动作可以被组合来提供更多的实施例。相应地,本文所描述的新颖的方法与系统可以以多种其他形式实施;此外,在本文所描述的方法或系统的形式中可以做出各种省略、置换以及改变而不脱离本公开的精神。所附的权利要求书以及它们的等同含义意在覆盖落在本公开的范围与精神中的这些形式或修改。

Claims (27)

1.一种用于表述性状态转移操作方法,该方法包括在被配置为在信息中心网络ICN系统中进行通信的客户端设备处执行以下操作:
传输第一兴趣消息到服务器,其中所述第一兴趣消息包括对于表述性状态转移REST操作的请求以及用于REST操作的第一状态的第一名称;
从服务器接收第二兴趣消息,其中所述第二兴趣消息包括用于所述REST操作的第一状态的第一名称;
响应于接收到所述第二兴趣消息,传输由所述第一名称所表明的第一命名数据对象到服务器,所述第一命名数据对象包括用于所述REST操作的所述第一状态;以及
从服务器接收对于所述REST操作的响应,该响应表明所述REST操作是否被成功地完成以更新所述第一状态。
2.根据权利要求1所述的方法,该方法还包括:
传输初始兴趣消息到服务器,所述初始兴趣消息包括用于所述REST操作的第一状态的第一名称;以及
从服务器接收所述第一状态。
3.根据权利要求1所述的方法,其中所述第一兴趣消息还包括一个或多个附加名称。
4.根据权利要求3所述的方法,其中,传输包括所述第一状态的所述第一命名数据对象包括:
基于所述第一名称与所述一个或多个附加名称,传输多个命名数据对象到服务器,其中所述多个命名数据对象的每一个命名数据对象包括所述第一状态的部分。
5.根据权利要求1所述的方法,其中,所述第一命名数据对象包括以下各项中的一个或多个:
命名数据网络NDN数据对象或内容中心网络CCN数据对象。
6.根据权利要求1所述的方法,其中,所述REST操作包括第二名称,并且其中第二名称标识所述REST操作。
7.根据权利要求1所述的方法,其中,所述响应包括REST操作的结果。
8.根据权利要求1所述的方法,其中,所述响应包括数据,该数据表明所更新的第一状态是可用的。
9.根据权利要求8所述的方法,该方法还包括:
传输第三兴趣消息到服务器,其中第三兴趣消息包括用于所更新的第一状态的第二名称;以及
从服务器接收包括所更新的第一状态的第二命名数据对象。
10.根据权利要求1所述的方法,其中,所述第一名称包括不可路由的名称。
11.根据权利要求1所述的方法,其中,当所述第一状态用于所述REST操作的时候,所述第一名称使得服务器能够请求所述第一状态。
12.一种用于表述性状态转移操作的方法,该方法包括在被配置为在信息中心网络ICN系统中进行通信的服务器设备处执行以下操作:
从客户端设备接收第一兴趣消息,其中第一兴趣消息包括对于表述性状态转移REST操作的请求以及用于所述REST操作的第一状态的第一名称;
传输第二兴趣消息到客户端设备,其中第二兴趣消息包括用于所述REST操作的第一状态的第一名称;
响应于传输所述第二兴趣消息,从客户端设备接收由所述第一名称所表明的第一命名数据对象,所述第一命名数据对象包括用于所述REST操作的所述第一状态;以及
传输对于所述REST操作的响应到所述客户端设备,该响应表明所述REST操作是否被成功地完成以更新所述第一状态。
13.根据权利要求12所述的方法,该方法还包括:
从客户端设备接收初始兴趣消息,该初始兴趣消息包括用于所述REST操作的第一状态的第一名称;以及
传输所述第一状态到所述客户端设备。
14.根据权利要求12所述的方法,其中所述第一兴趣消息还包括一个或多个附加名称。
15.根据权利要求14所述的方法,其中接收包括所述第一状态的所述第一命名数据对象包括:
基于第一名称以及一个或多个附加名称接收多个命名数据对象,其中多个命名数据对象的每一个命名数据对象包括所述第一状态的部分。
16.根据权利要求12所述的方法,其中所述第一命名数据对象包括以下各项中的一个或多个:
命名数据网络NDN数据对象或内容中心网络CCN数据对象。
17.根据权利要求12所述的方法,其中所述REST操作包括第二名称,并且其中所述第二名称标识REST操作。
18.根据权利要求12所述的方法,该方法还包括:
基于所述第一状态执行REST操作。
19.根据权利要求12所述的方法,其中所述响应包括REST操作的结果。
20.根据权利要求12所述的方法,其中所述响应包括数据,该数据表明所更新的第一状态是可用的。
21.根据权利要求20所述的方法,该方法还包括:
从客户端设备接收第三兴趣消息,其中第三兴趣消息包括用于所更新的第一状态的第二名称;以及
传输包括所更新的第一状态的第二命名数据对象到客户端设备。
22.根据权利要求12所述的方法,其中所述第一名称包括不可路由的名称。
23.根据权利要求12所述的方法,其中当所述第一状态被用于所述REST操作的时候,所述第一名称使得所述第一状态能够被请求。
24.一种用于表述性状态转移操作的装置,该装置包括:
多个网络接口;
一个或多个处理器;以及
包括指令的存储器,该指令在被执行时使得一个或多个处理器执行操作,该操作包括:
在多个网络接口的第一网络接口上接收第一兴趣消息,其中所述第一兴趣消息包括对于表述性状态转移REST操作的请求以及用于所述REST操作的第一状态的第一名称;
在未决兴趣表PIT中生成第一条目,其中所述第一条目包括第一数据,所述第一数据表明所述请求以及所述第一名称;
在所述多个网络接口的第二网络接口上转发所述第一兴趣消息;
接收对于客户端状态的第二兴趣消息,其中所述第二兴趣消息包括所述第一名称;
确定所述第一名称是否包括不可路由的名称;
基于所述第一条目在所述PIT中生成第二条目,其中,当所述第一名称包括所述不可路由的名称的时候,所述第二条目包括第二数据,所述第二数据表明所述第一名称、所述第一网络接口、以及第二网络接口;
当所述第一名称包括所述不可路由的名称的时候,基于所述PIT在所述第一网络接口上转发所述第二兴趣消息;
在第二接口上接收对于所述REST操作的请求的响应,对于所述REST操作的响应表明所述REST操作是否被成功地完成以更新所述第一状态;
在第一接口上转发所述响应;以及
从所述PIT中移除所述第一条目。
25.根据权利要求24所述的装置,其中操作还包括:
接收所述客户端状态;
基于在所述PIT中的所述第二条目转发所述客户端状态;以及
从所述PIT中移除所述第二条目。
26.根据权利要求24所述的装置,其中,所述第一兴趣消息与第一超时周期相关联,其中所述第二兴趣消息与第二超时周期相关联,其中所述第二超时周期少于或等于所述第一超时周期。
27.根据权利要求24所述的装置,其中操作还包括:
当所述第一名称包括可路由的名称的时候,基于转发信息库FIB在所述第一网络接口上转发所述第二兴趣消息。
CN201580037979.2A 2014-07-13 2015-06-23 用于表述性状态转移操作的方法和装置 Active CN106664298B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462023883P 2014-07-13 2014-07-13
US62/023,883 2014-07-13
US14/633,580 US10742552B2 (en) 2014-07-13 2015-02-27 Representational state transfer operations using information centric networking
US14/633,580 2015-02-27
PCT/US2015/037097 WO2016010690A1 (en) 2014-07-13 2015-06-23 Representational state transfer operations using information centric networking

Publications (2)

Publication Number Publication Date
CN106664298A CN106664298A (zh) 2017-05-10
CN106664298B true CN106664298B (zh) 2020-06-30

Family

ID=55068414

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201580038000.3A Active CN106537880B (zh) 2014-07-13 2015-06-23 在信息中心网络架构中缓存数据
CN201580037979.2A Active CN106664298B (zh) 2014-07-13 2015-06-23 用于表述性状态转移操作的方法和装置
CN201580037991.3A Active CN106489258B (zh) 2014-07-13 2015-06-23 使用信息中心网络链接到内容

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201580038000.3A Active CN106537880B (zh) 2014-07-13 2015-06-23 在信息中心网络架构中缓存数据

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201580037991.3A Active CN106489258B (zh) 2014-07-13 2015-06-23 使用信息中心网络链接到内容

Country Status (4)

Country Link
US (3) US9979644B2 (zh)
EP (3) EP3167594B1 (zh)
CN (3) CN106537880B (zh)
WO (3) WO2016010695A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992281B2 (en) * 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9979644B2 (en) * 2014-07-13 2018-05-22 Cisco Technology, Inc. Linking to content using information centric networking
US20160164952A1 (en) * 2014-12-05 2016-06-09 Telefonaktiebolaget L M Ericsson (Publ) Systems and Methods For Information Centric Networking
US9462006B2 (en) * 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US9838243B2 (en) * 2015-03-24 2017-12-05 Telefonaktiebolaget Lm Ericsson (Publ) Transformative requests
US10757213B2 (en) * 2015-08-14 2020-08-25 Futurewei Technologies, Inc. Method and apparatus for pushing data in a content-centric networking (CCN) network
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US11616719B2 (en) * 2015-10-23 2023-03-28 Netflix, Inc Techniques for determining client-side effects of server-side behavior using canary analysis
EP3206348B1 (en) 2016-02-15 2019-07-31 Tata Consultancy Services Limited Method and system for co-operative on-path and off-path caching policy for information centric networks
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10264099B2 (en) 2016-03-07 2019-04-16 Cisco Technology, Inc. Method and system for content closures in a content centric network
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US10425503B2 (en) * 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
ES2703186T3 (es) 2016-05-13 2019-03-07 Koninklijke Kpn Nv Nodo de red, nodo terminal y procedimiento de recepción de un mensaje de interés
CN105870441B (zh) * 2016-06-01 2018-07-31 湖南杉杉能源科技股份有限公司 一种高倍率型钴酸锂正极材料及其制备方法
US10158570B2 (en) 2016-06-22 2018-12-18 Cisco Technology, Inc. Carrying TCP over an ICN network
US10148572B2 (en) * 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10164910B2 (en) * 2016-07-13 2018-12-25 Futurewei Technologies, Inc. Method and apparatus for an information-centric MAC layer
CN106211136B (zh) * 2016-08-31 2021-07-13 上海交通大学 一种智能电网中基于命名的安全通信方法
US10033642B2 (en) * 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10069672B2 (en) * 2016-10-07 2018-09-04 Bank Of America Corporation Real time event capture, analysis and reporting system
US10067994B2 (en) 2016-10-07 2018-09-04 Bank Of America Corporation Real time event capture and transformation of transient data for an information network
US10158737B2 (en) * 2016-10-07 2018-12-18 Bank Of America Corporation Real time event capture and analysis of transient data for an information network
KR101904436B1 (ko) 2016-10-17 2018-10-04 구글 엘엘씨 깨진 네트워크 연결들의 기계 학습 기반 식별
WO2018189352A1 (en) * 2017-04-14 2018-10-18 Koninklijke Kpn N.V. Transmitting and receiving an interest message specifying an aggregation parameter
JP6944820B2 (ja) * 2017-06-16 2021-10-06 パナソニック株式会社 ノード装置および該ノード装置におけるキャッシュ管理方法
WO2018236723A1 (en) * 2017-06-19 2018-12-27 Northeastern University JOINT CALLING AND ROUTING METHOD FOR CONTENT DELIVERY HAVING OPTIMALITY GUARANTEES FOR ARBITRARY NETWORKS
US20180367452A1 (en) * 2017-06-19 2018-12-20 Futurewei Technologies, Inc. Information centric networking over multi-access network interfaces
CN108093482B (zh) * 2017-12-11 2020-01-21 北京科技大学 一种无线信息中心网络资源分配的优化方法
US11144530B2 (en) 2017-12-21 2021-10-12 International Business Machines Corporation Regulating migration and recall actions for high latency media (HLM) on objects or group of objects through metadata locking attributes
EP3740890A4 (en) 2018-01-19 2022-01-12 Nasdaq, Inc. SYSTEMS AND METHODS FOR CERTIFYING AND VERIFYING DIGITAL CONTENT USING CRYPTOGRAPHY AND BLOCKCHAIN
CN108173965A (zh) * 2018-01-22 2018-06-15 广东技术师范学院 社团感知的icn缓存方法
US11245677B2 (en) * 2018-07-25 2022-02-08 Cisco Technology, Inc. Secure packet modification
WO2021003422A1 (en) 2019-07-02 2021-01-07 Northeastern University Network and method for servicing a computation request
CN110493136B (zh) * 2019-08-15 2021-10-29 赛尔网络有限公司 资源名称编码方法、装置、电子设备及存储介质
US20220014466A1 (en) * 2021-09-24 2022-01-13 Kshitij Arun Doshi Information centric network tunneling

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010042733A1 (en) * 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for connection management for asynchronous messaging over http
CN102143200A (zh) * 2010-10-20 2011-08-03 华为技术有限公司 一种soap api转换为rest api的公共消息头承载方法及装置
CN102469041A (zh) * 2010-11-19 2012-05-23 中兴通讯股份有限公司 聊天会话启动和获取会话列表的方法及系统
CN102970185A (zh) * 2012-11-26 2013-03-13 北京奇虎科技有限公司 网络应用的运行状态监控方法、客户端设备及通信系统
CN103399734A (zh) * 2013-07-10 2013-11-20 北京慧点科技股份有限公司 生成rest服务和rest实现的方法及对应的设备

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
US6687732B1 (en) * 1998-09-28 2004-02-03 Inktomi Corporation Adaptive traffic bypassing in an intercepting network driver
US7363361B2 (en) * 2000-08-18 2008-04-22 Akamai Technologies, Inc. Secure content delivery system
US6775709B1 (en) * 2000-02-15 2004-08-10 Brig Barnum Elliott Message routing coordination in communications systems
US6988280B2 (en) * 2001-06-29 2006-01-17 International Business Machines Corporation System and method for enhancing authorization request in a computing device
US7382637B1 (en) * 2002-02-01 2008-06-03 Netlogic Microsystems, Inc. Block-writable content addressable memory device
US7188216B1 (en) * 2002-12-13 2007-03-06 Vignette Corporation Method and system for an extensible caching framework
US8010670B2 (en) * 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
US20070204011A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Systems and methods for offline access to video content of a web-site
WO2007113163A1 (de) 2006-03-29 2007-10-11 Siemens Aktiengesellschaft Verbessertes digitales rechtemanagement für gruppen von geräten
US9208104B2 (en) * 2008-08-28 2015-12-08 Citrix Systems, Inc. Content replacement and refresh policy implementation for a content distribution network
US7953792B2 (en) * 2008-11-24 2011-05-31 At&T Intellectual Property I, Lp Method and system for content distribution network performance and quality measurement
US20100179984A1 (en) * 2009-01-13 2010-07-15 Viasat, Inc. Return-link optimization for file-sharing traffic
US20110029899A1 (en) * 2009-08-03 2011-02-03 FasterWeb, Ltd. Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
US20110289316A1 (en) * 2010-05-19 2011-11-24 Mtld Top Level Domain Limited User authentication
US8931034B2 (en) 2010-06-25 2015-01-06 Telefonaktiebolaget L M Ericsson (Publ) System, method, and policy engine for granting temporary access to electronic content
CN101860550B (zh) 2010-06-25 2013-02-27 复旦大学 一种基于路由器缓存的流媒体系统加速方法
US20120089781A1 (en) * 2010-10-11 2012-04-12 Sandeep Ranade Mechanism for retrieving compressed data from a storage cloud
US8650156B1 (en) * 2010-12-23 2014-02-11 Amazon Technologies, Inc. System and method for fetching the latest versions of stored data objects
US8849825B1 (en) * 2010-12-23 2014-09-30 Amazon Technologies, Inc. System and method for clustering distributed hash table entries
US8645702B2 (en) 2010-12-28 2014-02-04 Futurewei Technologies, Inc. Method and apparatus to use identity information for digital signing and encrypting content integrity and authenticity in content oriented networks
US9021552B2 (en) * 2011-04-05 2015-04-28 Sap Se User authentication for intermediate representational state transfer (REST) client via certificate authority
US8775555B2 (en) * 2011-05-13 2014-07-08 Sap Ag Rest interface interaction with expectation management
US9379970B2 (en) * 2011-05-16 2016-06-28 Futurewei Technologies, Inc. Selective content routing and storage protocol for information-centric network
US8667172B2 (en) * 2011-06-07 2014-03-04 Futurewei Technologies, Inc. Method and apparatus for content identifier based radius constrained cache flooding to enable efficient content routing
US9191459B2 (en) 2011-07-12 2015-11-17 Futurewei Technologies, Inc. Method and apparatus for seamless mobility techniques in content-centric network
US8694675B2 (en) 2011-09-01 2014-04-08 Futurewei Technologies, Inc. Generalized dual-mode data forwarding plane for information-centric network
US9378389B2 (en) 2011-09-09 2016-06-28 Microsoft Technology Licensing, Llc Shared item account selection
KR20130031660A (ko) 2011-09-21 2013-03-29 삼성전자주식회사 컨텐츠 이름 기반의 네트워크 장치 및 컨텐츠 이름 생성 방법, 그리고 인증 방법
CN103095470B (zh) * 2011-10-27 2016-02-10 阿尔卡特朗讯 一种向应用内容提供商的访客用户在线计费的方法
US9215204B2 (en) 2011-10-31 2015-12-15 Avaya Inc. Federation route cache based on dynamic domain name system server
JP2013113931A (ja) * 2011-11-25 2013-06-10 Canon Inc 画像形成装置
US10218756B2 (en) * 2012-01-06 2019-02-26 Comcast Cable Communications, Llc Streamlined delivery of video content
US9137152B2 (en) * 2012-02-16 2015-09-15 Futurewei Technologies, Inc. Method for scalable routing in content-oriented networks
US8762570B2 (en) 2012-02-21 2014-06-24 Futurewei Technologies, Inc. Method and apparatus for adaptive forwarding strategies in content-centric networking
US8762477B2 (en) 2012-02-28 2014-06-24 Futurewei Technologies, Inc. Method for collaborative caching for content-oriented networks
US9729669B2 (en) 2012-03-15 2017-08-08 Alcatel Lucent Method and system for fast and large-scale longest prefix matching
US8897806B2 (en) * 2012-03-27 2014-11-25 Toyota Jidosha Kabushiki Kaisha Dynamic data publication and dissemination
US9515920B2 (en) * 2012-04-20 2016-12-06 Futurewei Technologies, Inc. Name-based neighbor discovery and multi-hop service discovery in information-centric networks
CN103516606B (zh) 2012-06-25 2017-08-11 中兴通讯股份有限公司 一种cdn路由实现方法和系统
US8891541B2 (en) * 2012-07-20 2014-11-18 International Business Machines Corporation Systems, methods and algorithms for named data network routing with path labeling
US9426053B2 (en) * 2012-12-06 2016-08-23 International Business Machines Corporation Aliasing of named data objects and named graphs for named data networks
CN103874157B (zh) 2012-12-12 2017-07-07 华为技术有限公司 路由转发、建立路由表、和获取内容的方法及其装置
KR101355767B1 (ko) * 2012-12-13 2014-02-05 성균관대학교산학협력단 콘텐츠 중심 네트워크 환경에서의 동등 계층 간 그룹 통신 방법
KR102033999B1 (ko) 2012-12-21 2019-10-21 삼성전자주식회사 컨텐트 중심 네트워크에서의 통신 방법 및 장치
WO2014107602A1 (en) 2013-01-03 2014-07-10 Huawei Technologies Co., Ltd. An end-user carried location hint for content in information-centric networks
CN103023768B (zh) 2013-01-11 2015-11-04 中国科学院声学研究所 边缘路由节点以及其从多源预取内容的方法
CN103095710B (zh) 2013-01-17 2016-05-18 北京交通大学 以内容为中心的网络中基于身份的广播加密传输方法
KR20150071621A (ko) * 2013-12-18 2015-06-26 삼성전자주식회사 컨텐츠 중심 네트워크에서 라운드 트립 시간을 예측하는 방법
US9509793B2 (en) * 2013-11-22 2016-11-29 Verizon Patent And Licensing Inc. Content caching in a network for efficient user device access
CN103747083B (zh) 2014-01-02 2015-10-14 北京邮电大学 一种基于ccn的内容推送方法
US9930132B2 (en) * 2014-01-10 2018-03-27 Facebook, Inc. Content specific router caching
US9147051B2 (en) * 2014-03-03 2015-09-29 Palo Alto Research Center Incorporated Method and apparatus for maintaining content view statistics in a named data network
US20150281101A1 (en) * 2014-03-31 2015-10-01 Palo Alto Research Center Incorporated Multi-object interest using network names
US9673998B2 (en) * 2014-05-15 2017-06-06 Futurewei Technologies, Inc. Differential cache for representational state transfer (REST) API
US9979644B2 (en) * 2014-07-13 2018-05-22 Cisco Technology, Inc. Linking to content using information centric networking

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010042733A1 (en) * 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for connection management for asynchronous messaging over http
CN102143200A (zh) * 2010-10-20 2011-08-03 华为技术有限公司 一种soap api转换为rest api的公共消息头承载方法及装置
CN102469041A (zh) * 2010-11-19 2012-05-23 中兴通讯股份有限公司 聊天会话启动和获取会话列表的方法及系统
CN102970185A (zh) * 2012-11-26 2013-03-13 北京奇虎科技有限公司 网络应用的运行状态监控方法、客户端设备及通信系统
CN103399734A (zh) * 2013-07-10 2013-11-20 北京慧点科技股份有限公司 生成rest服务和rest实现的方法及对应的设备

Also Published As

Publication number Publication date
EP3167594A1 (en) 2017-05-17
EP3167596B1 (en) 2020-02-12
EP3167587B1 (en) 2020-02-12
CN106537880A (zh) 2017-03-22
EP3167596A1 (en) 2017-05-17
CN106537880B (zh) 2020-02-14
CN106664298A (zh) 2017-05-10
US10742552B2 (en) 2020-08-11
WO2016010695A1 (en) 2016-01-21
WO2016010696A1 (en) 2016-01-21
CN106489258A (zh) 2017-03-08
US9906447B2 (en) 2018-02-27
US20160014215A1 (en) 2016-01-14
CN106489258B (zh) 2021-02-02
US20160014234A1 (en) 2016-01-14
EP3167594B1 (en) 2019-05-22
EP3167587A1 (en) 2017-05-17
US20160014027A1 (en) 2016-01-14
WO2016010690A1 (en) 2016-01-21
US9979644B2 (en) 2018-05-22

Similar Documents

Publication Publication Date Title
CN106664298B (zh) 用于表述性状态转移操作的方法和装置
US10778684B2 (en) Systems and methods for securely and transparently proxying SAAS applications through a cloud-hosted or on-premise network gateway for enhanced security and visibility
US10565193B2 (en) Systems and methods for load balancing and connection multiplexing among database servers
US11102125B2 (en) Securing communications between services in a cluster using load balancing systems and methods
US8745266B2 (en) Transparent layer 2 redirection of request to single sign in service based on applying policy to content of request
US20160380986A1 (en) Communicating private data and data objects
US8484287B2 (en) Systems and methods for cookie proxy jar management across cores in a multi-core system
US10630758B2 (en) Method and system for fulfilling server push directives on an edge proxy
EP3170091B1 (en) Method and server of remote information query
US20150201033A1 (en) Content specific router caching
US20170149647A1 (en) Method and system for keeping interest alive in a content centric network
US20170134239A1 (en) Systems and methods for routing messages in distributed computing environments
US11128597B1 (en) Information passing for content-based source selection via DNS
US20140304325A1 (en) Systems and methods for etag persistency
US20200344205A1 (en) Intelligently routing a response packet along a same connection as a request packet
WO2017097092A1 (zh) 缓存集群服务的处理方法及系统
WO2018093425A1 (en) Enabling connections in a content centric network
US10122630B1 (en) Methods for network traffic presteering and devices thereof
TWI546688B (zh) 對網路位址進行處理的方法及相關的伺服器與非暫態電腦可讀取儲存媒體
JP2016005271A (ja) コンテンツ中心ネットワークにおけるインタレストによる消費者状態の割り当て
JP6258521B2 (ja) 分散コンピューティング環境においてメッセージをルーティングするシステム及び方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant