# US 8,788,316 B1 · Usage license

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

- Number: US 8,788,316 B1
- Document ID: US8788316B1
- Status: Granted
- Kind: B1
- Application number: 13/312,628
- Filed: 2011-12-06
- Granted: 2014-07-22
- Earliest claimed: 2011-06-07
- Assignees: The MathWorks, Inc.
- Applicants: Amol M. Karnik; Christopher Hallgren; Loren Dean; Jocelyn Luke Martin
- Inventors: Amol M. Karnik; Christopher Hallgren; Loren Dean; Jocelyn Luke Martin
- Web page: https://patentgrep.com/patent/US8788316B1

## CPC

- G06Q 30/0206: {Price or cost determination based on market factors}
- 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]}
- G06Q 10/06316: {Sequencing of tasks or work}
- G06Q 30/04: Billing or invoicing
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- G06Q 30/0283: Price estimation or determination
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system is configured to receive a task. The task is received over a first network, includes authentication credentials, and is processed using an application. The system is further configured to send the authentication credentials to a licensing server. The authentication credentials are sent over a second network, and are sent prior to processing the task using the application. The system is also configured to receive an authorization. The authorization is received over the second network, and authorizes the application to process the task.

## Claims

### Claim 1

A method comprising:
receiving a task,
the task being received over a first network,
the task including authentication credentials,
the task being processed using an application, and
the receiving the task being performed by a computing device;
sending the authentication credentials to a licensing server,
the authentication credentials being sent over a second network, the second network being different than the first network,
the authentication credentials being sent prior to processing the task using the application, and
the sending the authentication credentials being performed by the computing device;
receiving authorization information,
the authorization information being received over the second network,
the authorization information authorizing the application to process the task, and
the receiving the authorization information being performed by the computing device;
generating, at a first time and based on receiving the authorization information, one or more heartbeat messages,
the generating the one or more heartbeat messages being performed by the computing device;
periodically transmitting, over the second network and to the licensing server, the one or more heartbeat messages,
the periodically transmitting the one or more heartbeat messages being performed by the computing device;
receiving, over the second network and at a second time, an indication from the licensing server that the task is to be terminated,
the second time occurring after the first time,
the indication being based on the one or more heartbeat messages, and
the receiving the indication being performed by the computing device; and
terminating, based on the received indication, the task,
the terminating being performed by the computing device.

### Claim 2 (depends on 1)

The method of claim 1, where
the one or more heartbeat messages are transmitted while the application is processing the task, and
the one or more heartbeat messages are used to determine whether the application remains authorized to continue processing the task.

### Claim 3 (depends on 1)

The method of claim 1, where the one or more heartbeat messages are used to determine billing information for the application.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
using application startup information in conjunction with the one or more heartbeat messages to determine the billing information for the application.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving, at a third time, a response from the licensing server, where
the response indicates whether the application remains authorized, and
the third time occurs before the second time.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
producing a result based on the processing of the task.

### Claim 7 (depends on 1)

The method of claim 1, where the authentication credentials include at least one of:
a user name,
a password,
a token,
a digital certificate, or
a biometric identifier.

### Claim 8 (depends on 1)

The method of claim 1, where the application requires a valid license to process the task.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
sending the authentication credentials when the application is initialized.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
sending the authentication credentials prior to initializing the application.

### Claim 11 (depends on 8)

The method of claim 8, where the license identifies one or more rights.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
processing the authorization information,
where, when generating the one or more heartbeat messages, the method includes:
a generating the one or more heartbeat messages when the processing indicates that the application is authorized to process the task.

### Claim 13 (depends on 1)

The method of claim 1, where the task is included in a job.

### Claim 14 (depends on 13)

The method of claim 13, where the task is one of a plurality of tasks included in the job.

### Claim 15 (depends on 14)

The method of claim 14, where
the task is associated with a first license, and another of the plurality of tasks is associated with a second license.

### Claim 16 (depends on 1)

The method of claim 1, where the task is received from a scheduler operating on behalf of a client.

### Claim 17 (depends on 1)

The method of claim 1, where the authorization includes license information.

### Claim 18 (depends on 1)

The method of claim 1, further comprising:
providing the authorization to the application.

### Claim 19 (depends on 1)

The method of claim 1, further comprising:
checking the authorization using the application; and
commencing billing subsequent to the checking.

### Claim 20

A device comprising:
a memory to store instructions; and
a processor to execute the instructions to:
receive a task,
the task being received over a first network,
the task including authentication credentials, and
the task being processed using an application;
send the authentication credentials to a licensing server,
the authentication credentials being sent over a second network, the second network being different than the first network, and
the authentication credentials being sent prior to processing the task using the application;
receive authorization information,
the authorization information being received over the second network, and
the authorization information authorizing the application to process the task;
generate, at a first time and based on receiving the authorization information, one or more heartbeat messages;
periodically transmit, over the second network and to the licensing server, the one or more heartbeat messages;
receive, over the second network and at a second time, an indication from the licensing server that the task is to be terminated,
the second time occurring after the first time, and
the indication being based on the one or more heartbeat messages; and
terminate, based on the received indication, the task.

### Claim 21 (depends on 20)

The device of claim 20, where
the one or more heartbeat messages are transmitted while the application is processing the task, and
the one or more heartbeat messages are used to determine whether the application remains authorized to continue processing the task.

### Claim 22 (depends on 20)

The device of claim 20, where the one or more heartbeat messages are used to determine billing information for the application.

### Claim 23 (depends on 22)

The device of claim 22, where the processor is further to:
use application startup information in conjunction with the one or more heartbeat messages to determine the billing information for the application.

### Claim 24 (depends on 20)

The device of claim 20, where the processor is further to:
receive, at a third time, a response from the licensing server, where
the response indicates whether the application remains authorized, and
the third time occurs before the second time.

### Claim 25 (depends on 20)

The device of claim 20, where the processor is further to:
produce a result based on the processing of the task.

### Claim 26 (depends on 20)

The device of claim 20, where the authentication credentials include at least one of:
a user name,
a password,
a token,
a digital certificate, or
a biometric identifier.

### Claim 27 (depends on 20)

The device of claim 20, where the application requires a valid license to process the task,
the license identifying one or more rights.

### Claim 28 (depends on 20)

The device of claim 20, where the processor is further to:
send the authentication credentials when the application is initialized.

### Claim 29 (depends on 20)

The device of claim 20, where the processor is further to:
send the authentication credentials prior to initializing the application.

### Claim 30 (depends on 20)

The device of claim 20, where the processor is further to:
process the authorization information,
where the processor, when generating the one or more heartbeat messages, is further to:
generate the one or more heartbeat messages when the processing indicates that the application is authorized to process the task.

### Claim 31 (depends on 20)

The device of claim 20, where
the task is associated with a first license, and
another task is associated with a second license.

### Claim 32 (depends on 20)

The device of claim 20, where the task is received from a scheduler operating on behalf of a client.

### Claim 33 (depends on 20)

The device of claim 20, where the authorization includes license information.

### Claim 34 (depends on 20)

The device of claim 20, where the processor is further to:
provide the authorization to the application.

### Claim 35 (depends on 20)

The device of claim 20, where the processor is further to:
check the authorization using the application; and
commence billing subsequent to the checking.

### Claim 36

A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions which, when executed by a processor, cause the processor to:
receive a task,
the task being received over a first network,
the task including authentication credentials, and
the task being processed using an application;
send the authentication credentials to a licensing server,
the authentication credentials being sent over a second network, the second network being different than the first network, and
the authentication credentials being sent prior to processing the task using the application;
receive authorization information,
the authorization information being received over the second network, and
the authorization information authorizing the application to process the task;
generate, at a first time and based on receiving the authorization information, one or more heartbeat messages;
periodically transmit, over the second network and to the licensing server, the one or more heartbeat messages;
receive, over the second network and at a second time, an indication from the licensing server that the task is to be terminated,
the second time occurring after the first time, and
the indication being based on the one or more heartbeat messages; and
terminate, based on the received indication, the task.

### Claim 37 (depends on 36)

The non-transitory computer-readable medium of claim 36, where
the one or more heartbeat messages are transmitted while the application is processing the task, and
the one or more heartbeat messages are used to determine whether the application remains authorized to continue processing the task.

### Claim 38 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the one or more heartbeat messages are used to determine billing information for the application.

### Claim 39 (depends on 38)

The non-transitory computer-readable medium of claim 38, where the one or more instructions include:
one or more instructions to use application startup information in conjunction with the one or more heartbeat messages to determine the billing information for the application.

### Claim 40 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the one or more instructions include:
one or more instructions to receive, at a third time, a response from the licensing server, where
the response indicates whether the application remains authorized, and
the third time occurs before the second time.

### Claim 41 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the one or more instructions include:
one or more instructions to produce a result based on the processing of the task.

### Claim 42 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the authentication credentials include at least one of:
a user name,
a password,
a token,
a digital certificate, or
a biometric identifier.

### Claim 43 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the application requires a valid license to process the task,
the license identifying one or more rights.

### Claim 44 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the one or more instructions include:
one or more instructions to send the authentication credentials when the application is initialized.

### Claim 45 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the one or more instructions include:
one or more instructions to send the authentication credentials prior to initializing the application.

### Claim 46 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the one or more instructions include:
one or more instructions to process the authorization information,
where the one or more instructions to generate the one or more heartbeat messages include:
one or more instructions to generate the one or more heartbeat messages when the processing indicates that the application is authorized to process the task.

### Claim 47 (depends on 36)

The non-transitory computer-readable medium of claim 36, where
the task is associated with a first license, and
another task is associated with a second license.

### Claim 48 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the task is received from a scheduler operating on behalf of a client.

### Claim 49 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the one or more instructions include:
one or more instructions to provide the authorization to the application.

### Claim 50 (depends on 36)

The non-transitory computer-readable medium of claim 36, where the one or more instructions include:
one or more instructions to check the authorization using the application; and
one or more instructions to commence billing subsequent to the checking.
