# US 2017/0257461 A1 · Method and system for content closures in a content centric network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0257461 A1
- Document ID: US20170257461A1
- Status: Published application
- Kind: A1
- Application number: 15/063,250
- Filed: 2016-03-07
- Published: 2017-09-07
- Earliest claimed: 2016-03-07
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Christopher A. Wood; Glenn C. Scott
- Web page: https://patentgrep.com/patent/US20170257461A1

## CPC

- H04L 67/63: Routing a service request depending on the request content or context
- G06F 9/54: Interprogram communication
- H04L 69/22: Parsing or analysis of headers
- G06F 2209/509: Offload
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

One embodiment provides a system that facilitates content closures in a CCN. During operation, the system generates, by a client computing device, an initial interest with a name that is a hierarchically structured variable length identifier which comprises contiguous name components ordered from a most general level to a most specific level, wherein the initial interest indicates a request for a result of a computation. The system receives from a content producing device a content object which indicates a function that outputs the requested result and data to be used as input to the function. The system performs the function based on the indicated data, which outputs the requested result, thereby facilitating a content producing device to offload computation of the function to the client computing device.

## Claims

### Claim 1

A computer system for facilitating content closures, the system comprising:
a processor;
a storage device coupled to the processor and storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:
generating, by a client computing device, an initial interest with a name that is a hierarchically structured variable length identifier which comprises contiguous name components ordered from a most general level to a most specific level, wherein the initial interest indicates a request for a result of a computation;
receiving from a content producing device a content object which indicates a function that outputs the requested result and data to be used as input to the function; and
performing the function based on the indicated data, which outputs the requested result, thereby facilitating a content producing device to offload computation of the function to the client computing device.

### Claim 2 (depends on 1)

The computer system of claim 1, wherein the content object further indicates names for the data, and wherein the method further comprises:
obtaining the indicated data based on the names for the data.

### Claim 3 (depends on 2)

The computer system of claim 2, wherein obtaining the indicated data further comprises:
generating interests for the data based on the data names; and
in response to the interests, receiving corresponding content objects based on the data names.

### Claim 4 (depends on 1)

The computer system of claim 1, wherein the data is indicated in the content object as one or more of:
embedded directly in the content object; and
included as a link in the content object.

### Claim 5 (depends on 1)

The computer system of claim 1, wherein the function indicated in the content object is further based on an encoding of logic that allows the client computing device to decode and perform the function.

### Claim 6 (depends on 1)

The computer system of claim 1, wherein the content object includes a payload that indicates the function and a link to the function, and wherein the payload further indicates the data as a list of content objects and a link to a respective content object.

### Claim 7 (depends on 1)

The computer system of claim 1, wherein the content object is a manifest which indicates a set of member content objects and their corresponding names and digests, wherein the set of member content objects comprises the data to be used as input to the function as indicated in the content object.

### Claim 8

A computer system for facilitating content closures, the system comprising:
a processor;
a storage device coupled to the processor and storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:
receiving, by a content producing device, an initial interest with a name that is a hierarchically structured variable length identifier which comprises contiguous name components ordered from a most general level to a most specific level, wherein the initial interest indicates a request by a client computing device for a result of a computation;
generating a content object which indicates a function that outputs the requested result and data to be used as input to the function; and
transmitting the content object to the client computing device, which causes the client computing device to obtain the data indicated in the content object and perform the function based on the obtained data, thereby facilitating the content producing device to offload computation of the function to the client computing device.

### Claim 9 (depends on 8)

The computer system of claim 8, wherein the method further comprises:
in response to determining that a previous content object corresponding to the initial interest is stored by the content producing device, wherein the previous content object indicates the function that outputs the requested result and the data to be used as input to the function:
transmitting the previous content object to the client computing device, which causes the client computing device to obtain the data indicated in the previous content object and perform the function indicated in the previous content object based on the obtained data.

### Claim 10 (depends on 8)

The computer system of claim 8, wherein generating the content object further comprises:
determining data needed to compute the requested result, wherein the data includes data names;
indicating in the content object the determined data names as names for the data to be used as input to the function; and
identifying the function that outputs the requested result.

### Claim 11 (depends on 10)

The computer system of claim 10, wherein the method further comprises:
in response to detecting changes to the data needed to compute the requested result, generating the content object which indicates the function that outputs the requested result and the data to be used as input to the function.

### Claim 12 (depends on 8)

The computer system of claim 8, wherein the method further comprises:
indicating the data in the content object by one or more of:
embedding the data directly in the content object; and
included a link to the data in the content object; and
indicating the function in the content object based on an encoding of logic that allows the client computing device to decode and perform the function.

### Claim 13 (depends on 8)

The computer system of claim 8, wherein the method further comprises:
including in the content object a payload that indicates the function and a link to the function, wherein the payload further indicates the data as a list of content objects and a link to a respective content object.

### Claim 14

A computer-implemented method for facilitating content closures, comprising:
generating, by a client computing device, an initial interest with a name that is a hierarchically structured variable length identifier which comprises contiguous name components ordered from a most general level to a most specific level, wherein the initial interest indicates a request for a result of a computation;
receiving from a content producing device a content object which indicates a function that outputs the requested result and data to be used as input to the function; and
performing the function based on the indicated data, which outputs the requested result, thereby facilitating a content producing device to offload computation of the function to the client computing device.

### Claim 15 (depends on 14)

The method of claim 14, wherein the content object further indicates names for the data, and wherein the method further comprises:
obtaining the indicated data based on the names for the data.

### Claim 16 (depends on 15)

The method of claim 15, wherein obtaining the indicated data further comprises:
generating interests for the data based on the data names; and
in response to the interests, receiving corresponding content objects based on the data names.

### Claim 17 (depends on 14)

The method of claim 14, wherein the data is indicated in the content object as one or more of:
embedded directly in the content object; and
included as a link in the content object.

### Claim 18 (depends on 14)

The method of claim 14, wherein the function indicated in the content object is further based on an encoding of logic that allows the client computing device to decode and perform the function.

### Claim 19 (depends on 14)

The method of claim 14, wherein the content object includes a payload that indicates the function and a link to the function, and wherein the payload further indicates the data as a list of content objects and a link to a respective content object.

### Claim 20 (depends on 14)

The method of claim 14, wherein the content object is a manifest which indicates a set of member content objects and their corresponding names and digests, wherein the set of member content objects comprises the data to be used as input to the function as indicated in the content object
