# US 10,375,154 B2 · Interchangeable retrieval of content

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

- Number: US 10,375,154 B2
- Document ID: US10375154B2
- Status: Granted
- Kind: B2
- Application number: 15/365,733
- Filed: 2016-11-30
- Published: 2018-02-01
- Granted: 2019-08-06
- Earliest claimed: 2016-07-29
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Yauhen Shnitko; Victor Magidson
- Web page: https://patentgrep.com/patent/US10375154B2

## CPC

- H04L 67/1001: for accessing one among a plurality of replicated servers
- G06F 16/955: using information identifiers, e.g. uniform resource locators [URL]
- G06F 16/957: Browsing optimisation, e.g. caching or content distillation
- H04L 61/30: Managing network names, e.g. use of aliases or nicknames (name-to-address mapping H04L61/45)
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- 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

The present disclosure provides for improved computational efficiency in systems used to provide content over a network. Hybrid content sourcing is enabled to provide content via a Content Distribution System (CDN) and a centralized service in conjunction with one another via a single URL provided to client devices. A hash map is updated and provided to the client devices to allow a tenant to control and change how content is distributed without needing to modify the applications or multiple content items that are used by the client devices. Tenants are thereby enabled to include or exclude the CDN as an available source of content without disrupting operation of the centralized service or the client devices. Individual content assets or libraries of content assets may thereby be interchangeably provisioned via a single Uniform Resource Locator.

## Claims

### Claim 1

A method performed by a cloud service for improving computational efficiency in interchangeably sourcing content for retrieval when providing a single address, comprising:
identifying content hosted by the cloud service to be distributed via a content distribution network (CDN), the cloud service hosting the content at a provided uniform resource locator (URL);
creating a hash value based on the provided URL;
hosting a child content asset of the content at a source URL, wherein the source URL includes the hash value;
creating a hash map comprising a CDN URL, wherein the CDN URL points to an address for the CDN to provide the child content asset to a client device and the CDN URL includes the hash value;
configuring the CDN to serve the child content asset from the CDN URL and use the source URL as a source from which to cache the child content asset in the CDN; and
providing the hash map to the client device associated with an authenticated client to enable the client device to derive the CDN URL such that the child content asset is provided from the CDN to the client device according to the CDN URL.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
identifying content hosted by the cloud service to not be distributed via the CDN; and
providing the provided URL to the client device such that the content hosted by the cloud service to not be distributed via the CDN is provided from the cloud service to the client device according to the provided URL.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
rejecting requests for the child content asset via the source URL that are received from requesting parties other than the CDN.

### Claim 4 (depends on 1)

The method of claim 1, wherein configuring the CDN further comprises setting a retention policy for how long the child content asset is to remain cached by the CDN.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
identifying a given child content asset that is currently distributed via the CDN but is no longer to be distributed via the CDN;
removing the given child content asset from being hosted at a given source URL associated with the given child content asset;
sending a cache clear command to the CDN;
updating the hash map to remove a given hash value associated with the given child content asset from the hash map; and
providing the updated hash map to the client device.

### Claim 6 (depends on 5)

The method of claim 5, further comprising providing the updated hash map to the client device in response to a request for the content.

### Claim 7 (depends on 1)

The method of claim 1, wherein the provided URL comprises:
a protocol identifier;
a host value;
a provided internal file path; and
an asset identifier.

### Claim 8 (depends on 7)

The method of claim 7, wherein the source URL comprises:
the protocol identifier;
the host value;
a cloud file path;
the hash value; and
the asset identifier.

### Claim 9 (depends on 7)

The method of claim 7, wherein the CDN URL comprises:
the protocol identifier;
a CDN address;
the host value;
the hash value; and
the asset identifier.

### Claim 10

A computing device associated with a cloud service for improving computational efficiency in interchangeably sourcing content for retrieval when providing a single address, the computing device comprising:
a communication connection between at least the cloud service, a content distribution network (CDN), and a client device;
a memory storing instructions; and
a processing unit coupled to the memory, wherein upon execution of the instructions stored in the memory, the processing unit is configured to:
identify content hosted by the cloud service to be distributed via the CDN, the cloud service hosting the content at a provided uniform resource locator (URL);
create a hash value based on the provided URL;
host a child content asset of the content at a source URL, wherein the source URL includes the hash value;
create a hash map comprising a CDN URL, wherein the CDN URL points to an address for the CDN to provide the child content asset to the client device and the CDN URL includes the hash value;
configure the CDN to serve the child content asset from the CDN URL and use the source URL as a source from which to cache the child content asset in the CDN; and
provide the hash map to the client device associated with an authenticated client to enable the client device to derive the CDN URL such that the child content asset is provided from the CDN to the client device according to the CDN URL.

### Claim 11 (depends on 10)

The computing device of claim 10, wherein to configure the CDN to serve the child content asset from the CDN URL and use the source URL as the source from which to cache the child content asset in the CDN, the processing unit is configured to:
provide the CDN with the source URL and logic to convert the source URL to the CDN URL.

### Claim 12 (depends on 10)

The computing device of claim 10, wherein to configure the CDN to serve the child content asset from the CDN URL and use the source URL as the source from which to cache the child content asset in the CDN, the processing unit is configured to:
provide the CDN with the hash value and logic to construct the provided URL, the source URL, and the CDN URL.

### Claim 13 (depends on 10)

The computing device of claim 10, wherein the processing unit is further configured to store the child content asset within the cloud service according to an access permission level associated with the child content asset.

### Claim 14 (depends on 13)

The computing device of claim 13, wherein the processing unit is further configured to:
in response to receiving a request from the client device for the child content asset and prior to providing the hash map to the client device, determine the client is associated with the access permission level to access the child content asset to authenticate the client.

### Claim 15 (depends on 10)

The computing device of claim 10, wherein to create the hash value based on the provided URL, the processing unit is configured to:
normalize character encodings of the provided URL; and
run a hash function on at least a portion of the provided URL.

### Claim 16 (depends on 15)

The computing device of claim 15, wherein the hash value includes an output of the hash function, a version of hash construction rules, a signature or a checksum for the hash value, and a length of a portion of the provided URL that was hashed.

### Claim 17 (depends on 15)

The computing device of claim 15, wherein the hash function is run on an entirety of the provided URL to create a unique hash value for the child content asset.

### Claim 18 (depends on 15)

The computing device of claim 15, wherein the hash function is run on a portion of the provided URL including a host value and at least a portion of an internal file path of the provided URL to create a shared hash value for the child content asset and one or more other content assets having a same internal file path.

### Claim 19

Computer storage media with instructions stored thereon for improving computational efficiency in interchangeably sourcing content for retrieval when providing a single address, the instructions comprising:
identifying content hosted by a cloud service to be distributed via a content distribution network (CDN), the cloud service hosting the content at a provided uniform resource locator (URL);
creating a hash value based on the provided URL;
hosting a child content asset of the content at a source URL, wherein the source URL includes the hash value;
creating a hash map comprising a CDN URL, wherein the CDN URL points to an address for the CDN to provide the child content asset to a client device and the CDN URL includes the hash value;
configuring the CDN to serve the child content asset from the CDN URL and use the source URL as a source from which to cache the child content asset in the CDN; and
providing the hash map to a client device associated with an authenticated client to enable the client device to derive the CDN URL such that the child content asset is provided from the CDN to the client device according to the CDN URL.
