# US 11,442,835 B1 · Mobile and remote runtime integration

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

- Number: US 11,442,835 B1
- Document ID: US11442835B1
- Status: Granted
- Kind: B1
- Application number: 15/875,465
- Filed: 2018-01-19
- Granted: 2022-09-13
- Earliest claimed: 2014-06-16
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Marco Argenti; Khawaja Salman Shams
- Web page: https://patentgrep.com/patent/US11442835B1

## CPC

- G06F 11/34: Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation {; Recording or statistical evaluation of user activity, e.g. usability assessment}
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/3024: {where the computing system component is a central processing unit [CPU]}
- G06F 11/3037: {where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00)}
- G06F 11/3409: {for performance assessment}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An application program may be analyzed to identify candidate classes or methods that may be executed using a remote computing node. Candidate classes or methods may be translocated to the remote computing node based on performance characteristics of the device on which the application program is running, the environment in which the device operates, and on the performance and availability of the remote computing node. An application program publisher may be assigned instances of virtual machines that may be dedicated to hosting translocated classes and methods.

## Claims

### Claim 1

A system, comprising:
at least one processor;
at least one memory having stored thereon instructions that, upon execution by the at least one processor, cause the system at least to:
determine to execute a first portion of an application program remotely, based at least in part on analyzing a chain of dependencies of the first portion of the application program, the chain of dependencies comprising dependencies on other portions of the application program and dependencies external to the application program, wherein at least a second portion of the application program is executed on the system;
synchronize, with a computing node, to reconcile state changes of data referenced during execution of the first portion; and
cause the first portion of the application program to be executed on the computing node and not on the system.

### Claim 2 (depends on 1)

The system of claim 1, wherein the chain of dependencies comprises at least one of a dependency on a static library, a dependency on a dynamic link library, a dependency on a background service, a dependency on an operating system function, or a dependency on hardware.

### Claim 3 (depends on 1)

The system of claim 1, the at least one memory having stored thereon instructions that, upon execution by the at least one processor, cause the system at least to:
cause the first portion of the application program to execute on the computing node after shut down of a device on which the application program was running.

### Claim 4 (depends on 1)

The system of claim 1, wherein determining to execute the first portion of the application program remotely is based at least in part on data associated with the first portion of the application program.

### Claim 5 (depends on 1)

The system of claim 1, wherein analyzing the chain of dependencies comprises identifying a severability point in the application program for remote execution of the application program after the severability point.

### Claim 6 (depends on 1)

The system of claim 1, the at least one memory having stored thereon instructions that, upon execution by the at least one processor, cause the system at least to:
compute a score indicative of a suitability for remotely executing the first portion of the application program, wherein the score is based at least in part on the chain of dependencies.

### Claim 7

A method, comprising:
providing copies of an application program to a plurality of devices, wherein a plurality of portions of the application program are candidates for remote execution;
reserving computing resources for remotely executing the plurality of portions of the application program, based at least in part on a proportion of a first type of device, of the plurality of devices, to a second type of device; and
executing a portion, of the plurality of portions of the application program, on the reserved computing resources, wherein the portion is selected at runtime of the application program on one of the plurality of devices, the portion selected based at least in part on an analysis of a chain of dependencies on the portion of the application program.

### Claim 8 (depends on 7)

The method of claim 7, wherein executing the portion comprises synchronizing, between the one of the plurality of devices and one of the reserved computing resources, data referenced during execution of the portion of the application program.

### Claim 9 (depends on 7)

The method of claim 7, wherein instances of the application program running on the first type of device make greater use of the reserved computing resources than instances of the application program running on the second type of device.

### Claim 10 (depends on 7)

The method of claim 7, wherein the chain of dependencies comprises at least one of a dependency on a static library, a dependency on a dynamic link library, a dependency on a background service, a dependency on an operating system function, or a dependency on hardware.

### Claim 11 (depends on 7)

The method of claim 7, wherein the portion is selected based at least in part on a score indicative of a suitability for remotely executing the portion of the application program remotely.

### Claim 12 (depends on 11)

The method of claim 11, wherein the portion is selected based at least in part on comparing the score to an additional score of a second portion of the application program.

### Claim 13 (depends on 7)

The method of claim 7, wherein analyzing the chain of dependencies comprises analyzing severability of the dependency chain.

### Claim 14

A non-transitory computer-readable storage medium having stored thereon instructions that, upon execution by one or more computing devices, cause the one or more computing devices at least to:
determine to execute a portion of an application program remotely, based at least in part on analyzing a chain of dependencies of the portion of the application program, the chain of dependencies comprising dependencies on other portions of the application program and dependencies external to the application program;
synchronize, with a computing node, the state of data referenced during execution of the portion; and
receive information indicative of a result of executing the portion of the application program on the computing node; and
continue execution of the application program after the portion has been remotely executed based on the state of the synchronized state of the data.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein analyzing the chain of dependencies comprises determining a depth of the chain of dependencies.

### Claim 16 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein analyzing the chain of dependencies comprises analyzing severability of the dependency chain.

### Claim 17 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:
cause the portion of the application to be executed remotely in response to a shutdown event.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:
continue execution of the portion of the application program after the portion has been remotely executed, wherein continuing execution comprises transferring state information from a computing node.

### Claim 19 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:
compute a score indicative of a suitability for remotely executing the portion of the application program.

### Claim 20 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, comprising further instructions that, upon execution by the one or more computing devices, cause the one or more computing devices to at least:
determine that a hardware dependency of an application program is compatible with translocation.
