# US 10,375,644 B2 · Method and apparatus for optionally running mobile applications locally or virtually

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

- Number: US 10,375,644 B2
- Document ID: US10375644B2
- Status: Granted
- Kind: B2
- Application number: 15/434,723
- Filed: 2017-02-16
- Published: 2018-08-16
- Granted: 2019-08-06
- Earliest claimed: 2017-02-16
- Assignees: AT&T Intellectual Property I, L.P.
- Applicants: At&T Intellectual Property I, L.P.
- Inventors: Sheldon Kent Meredith; Brandon B. Hilliard; William Cottrill; Ivan Rasnik; Radhika Gouni
- Web page: https://patentgrep.com/patent/US10375644B2

## CPC

- H04W 52/0261: {managing power supply demand, e.g. depending on battery level}
- H04L 43/0811: by checking connectivity
- H04L 43/0817: by checking functioning
- H04L 43/0847: {Transmission error}
- H04L 43/0852: Delays
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04W 4/80: Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
- H04W 52/0245: {according to signal strength}
- H04W 84/12: WLAN [Wireless Local Area Networks]
- Y02D 30/70: in wireless communication networks
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Aspects of the subject disclosure may include, for example, a system and method, for determining whether to run a local application or a remote application, including retrieving, by a processor of a mobile device, metadata for a remote application that executes on the mobile device, determining power requirements from the metadata for a data connection with a remote server that provides services to support execution of the remote application, calculating if the power requirements for the data connection exceeds a remaining charge of a battery of the mobile device, and executing the remote application responsive to the power requirements for the data connection being less than the remaining charge of the battery. Other embodiments are disclosed.

## Claims

### Claim 1

A device, comprising:
a processing system including a processor; and
a memory that stores executable instructions that, when executed by the processing system, facilitate performance of operations, the operations comprising:
retrieving metadata for a remote application corresponding to a local application, wherein processing for the remote application executes at least in part on a remote server communicatively coupled to a mobile device via a data connection, wherein the metadata includes memory requirements for a size of program code and a size of program data, anticipated utilization for a mobile processor of the mobile device and a rate of data transmission over the data connection;
determining an operating condition of the mobile device, wherein the operating condition includes available memory of the mobile device, available utilization of the mobile processor, and a percentage of battery charge of the mobile device;
determining a state of the data connection between the mobile device and the remote server, wherein the state of the data connection includes signal strength, latency and error rate;
calculating an expected rate of battery discharge based on the metadata and the state of the data connection; and
selecting one of the local application or, alternatively, the remote application corresponding to the local application for execution based on the state of the data connection, the operating condition and the expected rate of battery discharge.

### Claim 2 (depends on 1)

The device of claim 1, wherein the selecting further comprises determining whether the data connection is available.

### Claim 3 (depends on 2)

The device of claim 2, wherein the selecting further comprises determining whether the latency is greater than a first threshold value.

### Claim 4 (depends on 3)

The device of claim 3, wherein the selecting further comprises determining whether the available utilization of the mobile processor is greater than the anticipated utilization of the mobile processor.

### Claim 5 (depends on 4)

The device of claim 4, wherein the selecting further comprises determining whether the available memory is greater than the size of the program code plus the size of the program data.

### Claim 6 (depends on 5)

The device of claim 5, wherein the expected rate of battery discharge is proportional to the rate of data transmission and inversely proportional to signal strength.

### Claim 7 (depends on 6)

The device of claim 6, wherein the selecting further comprises determining whether the percentage of battery charge divided by the expected rate of battery discharge is greater than a second threshold value.

### Claim 8 (depends on 1)

The device of claim 1, wherein the processing system comprises the mobile processor, and wherein the local application executes on the mobile device without requiring computational resources of the remote server.

### Claim 9 (depends on 1)

The device of claim 1, wherein the processing system comprises a plurality of processors operating in a distributed processing environment.

### Claim 10

A non-transitory, machine-readable storage medium, comprising executable instructions that, when executed by a processing system including a processor of a machine comprising memory, facilitate performance of operations, the operations comprising:
receiving a request to execute a local application to obtain a requested local application;
determining, responsive to the request to execute the local application, whether a remote application corresponding to the local application is available;
responsive to a remote application being available, determining whether a data connection with a remote server is present;
responsive to a data connection being present, determining whether latency of the data connection exceeds a maximum latency value for the remote application;
responsive to the latency being less than the maximum latency value, determining whether memory requirements for the remote application exceeds an amount of free memory in the machine;
responsive to the memory requirements being less than the amount of free memory, determining whether processing requirements for the remote application exceeds a maximum available utilization value; and
responsive to the processing requirements being less than the maximum available utilization value, executing the remote application in lieu of the requested local application.

### Claim 11 (depends on 10)

The non-transitory, machine-readable storage medium of claim 10, wherein the operations further comprise determining whether power requirements for the data connection exceeds a remaining charge of a battery; and wherein executing the remote application is responsive to the power requirements for the data connection being less than the remaining charge of the battery.

### Claim 12 (depends on 11)

The non-transitory, machine-readable storage medium of claim 11, wherein the operations further comprise executing the requested local application responsive to not executing the remote application.

### Claim 13 (depends on 10)

The non-transitory, machine-readable storage medium of claim 10, wherein the maximum latency value depends is set by the remote application.

### Claim 14 (depends on 10)

The non-transitory, machine-readable storage medium of claim 10, wherein the maximum available utilization value is an available utilization of the processing system.

### Claim 15 (depends on 10)

The non-transitory, machine-readable storage medium of claim 10, wherein the operations further comprise, responsive to the data connection being absent, delaying execution and rechecking for the data connection.

### Claim 16 (depends on 15)

The non-transitory, machine-readable storage medium of claim 15, wherein the delay is set by the remote application.

### Claim 17

A method, comprising:
retrieving, by a processing system that includes a processor of a mobile device, metadata for a remote application that corresponds to a local application that executes on the mobile device;
determining, by the processing system, power requirements from the metadata for a data connection with a remote server that provides services to support execution of the remote application;
calculating, by the processing system, if the power requirements for the data connection exceeds a remaining charge of a battery of the mobile device; and
executing, by the processing system, the remote application, in lieu of the local application that executes on the mobile device, responsive to the power requirements for the data connection being less than the remaining charge of the battery.

### Claim 18 (depends on 17)

The method of claim 17, wherein the power requirements depends upon a type of data connection.

### Claim 19 (depends on 18)

The method of claim 18, wherein the type of data connection comprises a Wi-Fi connection, a Bluetooth connection, a WAN connection, a mobile communication network data connection.

### Claim 20 (depends on 17)

The method of claim 17, wherein executing the remote application is further responsive to a priority of the remote application compared to a priority of other applications executing on the mobile device.
