IP Library Granted Patent US 10,596,907
Granted Patent B2
US 10,596,907 · App. 16/357,324 · Granted Mar 24, 2020

Dynamic application execution for automobile and cloud hybrid environments

Inventor: Ira Snyder (Bellevue, WA)
Assignee: Xevo Inc.
B60K35/00B60K2370/52B60K2370/569B60K2370/573B60K2370/58B60K2370/589B60K2370/5899B60K2370/592B60K2370/595B60K2370/5911
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,596,907
App. No.
16/357,324
Granted
Mar 24, 2020
Kind
B2
Abstract

Embodiments are directed towards providing a dynamic application environment where separate components of an application can execute on separate processing hardware at any given point in time. A host device monitors current operating characteristics associated with a computing device, such a head unit of an automobile, and based on those characteristics selects which components of one or more applications to execute on the computing device and which components to execute on the host device, if any. The host device provides the selected components to the computing device for execution by the computing device and the host device executes any other components that are not executed by the computing device. The host device monitors the current operating characteristics associated with the computing device, and modifies the selection of which components are executing on which device based on changes in current operating characteristics.

Claims (35)

1. A method of dynamically allocating components of an application for execution on separate devices, wherein the application includes a plurality of components, the method comprising:

identifying current operating characteristics associated with a head unit, wherein one of the current operating characteristics is network availability associated with the head unit;

allocating a view component of the application to the head unit for execution by the head unit, wherein the view component is for providing a visual representation of the operation of the application to a user of the head unit;

allocating one or more remaining components of the application to a cloud resource for execution by the cloud resource in coordination with the execution of the view component by the head unit, wherein the remaining components of the application are for providing operational aspects of the application;

identifying a degradation of the network availability associated with the head unit; and

based on identifying the degradation of the network availability associated with the head unit, dynamically allocating the components for providing operational aspects of the application from the cloud resource to the head unit for execution by the head unit in coordination with the execution of the view component by the head unit.

2. The method of claim 1 , wherein the network availability associated with the head unit is network coverage available to the head unit, network connectivity available to the head unit, or network bandwidth available to the head unit.

3. The method of claim 1 , wherein the components for providing operational aspects of the application include a model component, a controller component, or an operations component.

4. The method of claim 1 , further comprising:

identifying a reversal in the degradation of the network availability associated with the head unit; and

based on identifying the reversal in the degradation of the network availability associated with the head unit, dynamically allocating the components for providing operational aspects of the application from the head unit back to the cloud resource for execution by the cloud resource in coordination with the execution of the view component by the head unit.

5. The method of claim 4 , further comprising, based on identifying the reversal in the degradation of the network availability associated with the head unit, notifying the head unit to stop executing the components for providing operational aspects of the application.

6. The method of claim 1 , further comprising emitting events to and listening for events from the head unit when the cloud resource is executing the components for providing operational aspects of the application and the head unit is executing the view component of the application.

7. The method of claim 1 , further comprising:

allocating one or more of the components for providing operational aspects of the application to a mobile device in communication with the head unit for execution by the mobile device in coordination with the execution of the view component by the head unit and the execution of the components for providing operational aspects of the application by the cloud resource; and

based on identifying the degradation of the network availability associated with the head unit, dynamically allocating the components for providing operational aspects of the application from the cloud resource to the head unit for execution by the head unit in coordination with the execution of the view component by the head unit or to the mobile device for execution by the mobile device in coordination with the execution of the view component by the head unit.

8. The method of claim 1 , wherein the cloud resource is a host device responsible for the allocation of the components of the application.

9. A system, comprising:

a host device, including:

a memory configured to store instructions; and

a processor configured to execute the instructions to:

detect a state of network availability associated with a head unit of an automobile;

allocate a view component of an application to the head unit for execution by the head unit, wherein the view component is for providing a visual representation of the operation of the application to a user of the head unit;

allocate one or more other components of the application to the host device for execution by the host device in coordination with the execution of the view component by the head unit, wherein the other components of the application are for providing operational aspects of the application;

detect a change in the state of network availability associated with the head unit; and

based on the detection of the change in the state of network availability associated with the head unit, allocate the components for providing operational aspects of the application from the host device to the head unit for execution by the head unit.

10. The system of claim 9 , wherein the change in the state of network availability associated with the head unit is an impending loss of network coverage for the head unit or an impending limit on an amount of data that can be transmitted to or received from the head unit.

11. The system of claim 9 , wherein the processor is further configured to execute the instructions to:

detect a second change in the state of network availability associated with the head unit; and

based on the detection of the second change in the state of network availability associated with the head unit, allocate the components for providing operational aspects of the application from the head unit back to the host device for execution by the host device.

12. The system of claim 11 , wherein the second change in the state of network availability associated with the head unit is an impending reestablishment of network coverage for the head unit or an impending removal or resetting of the limit on the amount of data that can be transmitted to or received from the head unit.

13. The system of claim 9 , wherein the processor is further configured to execute the instructions to:

detect a new user of the head unit;

allocate a view component of a second application to the head unit for execution by the head unit, wherein the view component of the second application is for providing a visual representation of the operation of the second application to the new user of the head unit; and

allocate one or more other components of the second application to the host device for execution by the host device in coordination with the execution of the view component of the second application by the head unit, wherein the other components of the second application are for providing operational aspects of the second application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2019
From: SNYDER, IRA
To: UIEVOLUTION, INC.
Reel/Frame 048900/0864 →
CHANGE OF NAME Recorded Apr 16, 2019
From: UIEVOLUTION, INC.
To: XEVO INC.
Reel/Frame 048921/0385 →
Continuity (2)
Continuation 15048385 · Feb 19, 2016
Related Publication 20190210463A1 · Jul 11, 2019