# US 10,311,237 B2 · Mechanism to synchronize clients in a digital rights management environment

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

- Number: US 10,311,237 B2
- Document ID: US10311237B2
- Status: Granted
- Kind: B2
- Application number: 13/839,765
- Filed: 2013-03-15
- Published: 2014-01-16
- Granted: 2019-06-04
- Earliest claimed: 2012-07-13
- Assignees: Adobe Inc.
- Applicants: Adobe Inc.
- Inventors: Kunal Shah; Nobuo Griffin
- Web page: https://patentgrep.com/patent/US10311237B2

## CPC

- G06F 21/60: Protecting data
- G06F 21/10: Protecting distributed programs or content, e.g. vending or licensing of copyrighted material (protection in video systems or pay television H04N7/16) {; Digital rights management [DRM]}
- G06F 2221/2137: Time limited access, e.g. to a computer or data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed are embodiments for determining where a license period for consuming content is expired. An exemplary embodiment involves receiving content for consumption on a client device, the content being associated with a license agreement defining a license period for consumption and determining whether the license period has expired based at least in part on a current time received from a server, the server being separate from the client device. The embodiment then involves terminating access to the content based on a determination that the license period has expired.

## Claims

### Claim 1

A method for implementing digital rights management for media content comprising:
receiving, at a client device from a publisher device via a data network, media content for consumption on the client device, wherein an electronic license and a license executable are embedded within the media content, the electronic license providing access to the media content during a license period;
executing, by the client device, the license executable, wherein execution of the license executable causes the license executable to:
send, via the data network, a request for a current time to a heartbeat server, the heartbeat server being separate from the client device,
receive, via the data network, the current time from the heartbeat server, and
determine whether the license period has expired based at least in part on the current time received via the data network from the heartbeat server; and
terminating, by the client device, access to the media content in response to the license executable determining that the license period has expired.

### Claim 2 (depends on 1)

The method of claim 1, wherein the license executable determines to send the request to the heartbeat server for the current time based on a locally-stored time.

### Claim 3 (depends on 2)

The method of claim 2, wherein the license executable determines to send the request to the heartbeat server based on:
identifying a start interval associated with the media content;
identifying a time of last communication by the license executable with the heartbeat server; and
based on determining, with reference to the locally-stored time, that a time period since the time of last communication with the heartbeat server exceeds the start interval, sending the request to the heartbeat server to receive the current time.

### Claim 4 (depends on 2)

The method of claim 2, wherein the client device terminates access to the media content in response to determining, with reference to the locally-stored time, that a time period since the time of last communication by the license executable with the heartbeat server exceeds a predetermined stop interval.

### Claim 5 (depends on 1)

The method of claim 1, wherein the license executable determines to send the request to the heartbeat server for the current time without reference to a locally-stored time.

### Claim 6 (depends on 5)

The method of claim 5, wherein the license executable determines to send the request to the heartbeat server to receive the current time based on a probability function.

### Claim 7 (depends on 6)

The method of claim 6, wherein the probability function causes the license executable to obtain a result and to send the request to the heartbeat server based on the result being within a predetermined range of values.

### Claim 8 (depends on 1)

The method of claim 1, wherein the current time from the heartbeat server is a timestamp provided to the client device.

### Claim 9 (depends on 1)

The method of claim 1, wherein the publisher device is separate from the heartbeat server.

### Claim 10 (depends on 1)

The method of claim 1, wherein:
the heartbeat server includes a time service;
the received current time is a trusted time received from the time service included on the heartbeat server; and
determining whether the license period has expired is based on the trusted time received from the time service.

### Claim 11

A non-transitory computer-readable medium on which is encoded program code for implementing digital rights management for media content, the program code comprising:
program code for receiving, at a client device from a publisher device via a data network, media content for consumption on the client device, wherein an electronic license and a license executable are embedded within the media content, the electronic license providing access to the media content during a license period;
program code for executing, by the client device, the license executable, wherein execution of the license executable causes the license executable to:
send, via the data network, a request for a current time to a heartbeat server, the heartbeat server being separate from the client device,
receive, via the data network, the current time from the heartbeat server, and
determine whether the license period has expired, based at least in part on the current time received via the data network from the heartbeat server; and
program code for terminating access to the media content, by the client device in response to the license executable determining that license period has expired.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, further comprising:
program code for identifying a start interval associated with the media content;
program code for determining, by the license executable and with reference to a locally-stored time, a time period since a last communication with the heartbeat server,
program code for determining, by the license executable, to send the request for the current time to the heartbeat server based on a locally-stored time, wherein sending the request to the heartbeat server to receive the current time is based at least in part on determining that the determined time period exceeds the start interval.

### Claim 13 (depends on 11)

The non-transitory computer-readable medium of claim 11, further comprising:
program code for determining, by the license executable and with reference to a locally-stored time, that a time period since a last communication with the heartbeat server exceeds a predetermined stop interval, and
program code for terminating, by the client device, access to the media content based at least in part on determining that the determined time period exceeds the stop interval.

### Claim 14 (depends on 11)

The non-transitory computer-readable medium of claim 11, further comprising:
program code for obtaining, by the license executable, a result from a probability function; and
program code for determining, by the license executable, to send the request to the heartbeat server is based at least in part on the result from the probability function.

### Claim 15 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the program code for sending the request to the heartbeat server further comprises:
program code for obtaining, by the license executable, a result from a probability function;
program code for determining that the result is within a predetermined numerical range;
program code for sending, based at least in part on determining that that the result is within the numerical range, the request to the heartbeat server to receive the current time.

### Claim 16

A system for implementing digital rights management for media content, the system comprising:
a processor for executing instructions stored in computer-readable medium on one or more devices,
the instructions comprising one or more modules configured to perform the steps comprising:
receiving, at a client device from a publisher device via a data network, media content for consumption on the client device, wherein an electronic license and a license executable are embedded within the media content, the electronic license providing access to the media content during a license period;
executing, by the client device, the license executable, wherein execution of the license executable causes the license executable to:
send, via the data network, a request for a current time to a heartbeat server, the heartbeat server being separate from the client device,
receive, via the data network, the current time from the heartbeat server, and
determine whether the license period has expired based at least in part on the current time received via the data network from the heartbeat server; and
terminating, by the client device, access to the media content in response to the license executable determining that the license period has expired.

### Claim 17 (depends on 16)

The system of claim 16, wherein communication between the client device and the heartbeat server is secure.
