IP Library Granted Patent US 10,733,005
Granted Patent B1
US 10,733,005 · App. 15/728,873 · Granted Aug 4, 2020

Providing access to mobile applications by heterogeneous devices

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,733,005
App. No.
15/728,873
Granted
Aug 4, 2020
Kind
B1
Abstract

Systems and methods for providing access to mobile applications by heterogeneous devices. An example method comprises: initializing, by a host computer system, a virtual machine running a mobile operating system (OS); intercepting, by a host agent running on the host computer system, a video output associated with a window of an application running on the virtual machine; forwarding the video output to a client device; receiving, from the client device, a user interface input directed to the application; and forwarding the user interface input to the virtual machine.

Claims (56)

1. A method, comprising:

initializing, by a host computer system, a virtual machine utilizing one or more virtual processors to run a mobile operating system (OS), wherein each virtual processor of the virtual machine is emulated by a respective processing thread of a host virtualization application running in a non-privileged execution mode of the host computer system;

intercepting, by a host agent running on the host computer system, a video output associated with a window of a mobile application running on the virtual machine;

forwarding the video output to a client device;

causing the client device to utilize the video output for displaying a client window associated with the mobile application, wherein the client window is displayed on a client screen which is shared with windows of local client applications;

receiving, from the client device, a user interface input directed to the mobile application; and

forwarding the user interface input to the virtual machine.

2. The method of claim 1 , wherein the client device is provided by one of:

a mobile device, a desktop computer, or a portable personal computer.

3. The method of claim 1 , further comprising:

forwarding, to the virtual machine, a screen setting of the client device; and

causing the virtual machine to adjust a parameter of the window based on the screen setting.

4. The method of claim 1 , further comprising:

authenticating a user of the client device.

5. The method of claim 1 , further comprising:

receiving, from the client device, sensor data produced by a sensor associated with the client device;

forwarding the sensor data to the mobile application.

6. The method of claim 5 , wherein the sensor is provided by at least one of: a motion sensor, a position sensor, an environmental sensor, a medical information sensor, or a voltage sensor.

7. The method of claim 1 , wherein the host agent is running in a context of a virtual machine monitor (VMM) managing the virtual machine.

8. The method of claim 1 , wherein the host agent is running in a non-privileged context of the host computer system.

9. The method of claim 1 , further comprising:

adjusting a parameter of the window based a screen setting of the client device.

10. The method of claim 1 , further comprising:

suspending the virtual machine upon expiration of a specified period of inactivity.

11. A host computer system, comprising:

a memory; and

a processor, coupled to the memory, the processor configured to:

initialize a virtual machine utilizing one or more virtual processors to run running a mobile operating system (OS), wherein each virtual processor of the virtual machine is emulated by a respective processing thread of a host virtualization application running in a non-privileged execution mode of the host computer system;

intercept, by a host agent running on the host computer system, a video output associated with a window of a mobile application running on the virtual machine;

forward the video output to a client device;

cause the client device to utilize the video output for displaying a client window associated with the mobile application, wherein the client window is displayed on a client screen which is shared with windows of local client applications;

receive, from the client device, a user interface input directed to the mobile application; and

forward the user interface input to the virtual machine.

12. The system of claim 11 , wherein the processor is further configured to:

forward, to the virtual machine, a screen setting of the client device; and

cause the virtual machine to adjust a parameter of the window based on the screen setting.

13. The system of claim 11 , wherein the processor is further configured to:

receive, from the client device, sensor data produced by a sensor associated with the client device;

forward the sensor data to the mobile application.

14. The system of claim 11 , wherein the processor is further configured to:

adjust a parameter of the window based a screen setting of the client device.

15. The system of claim 11 , wherein the processor is further configured to:

suspend the virtual machine upon expiration of a specified period of inactivity.

16. A non-transitory computer-readable storage medium comprising executable instructions that, when executed by a processor of a host computer system, cause the processor to:

initialize a virtual machine utilizing one or more virtual processors to run running a mobile operating system (OS), wherein each virtual processor of the virtual machine is emulated by a respective processing thread of a host virtualization application running in a non-privileged execution mode of the host computer system;

intercept, by a host agent running on the host computer system, a video output associated with a window of a mobile application running on the virtual machine;

forward the video output to a client device;

cause the client device to utilize the video output for displaying a client window associated with the mobile application, wherein the client window is displayed on a client screen which is shared with windows of local client applications;

receive, from the client device, a user interface input directed to the mobile application; and

forward the user interface input to the virtual machine.

17. The non-transitory computer-readable storage medium of claim 16 , further comprising executable instructions causing the processor to:

forward, to the virtual machine, a screen setting of the client device; and

cause the virtual machine to adjust a parameter of the window based on the screen setting.

18. The non-transitory computer-readable storage medium of claim 16 , further comprising:

receive, from the client device, sensor data produced by a sensor associated with the client device;

forward the sensor data to the mobile application.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: ZELENOV, ANTON; DOBROVOLSKIY, NIKOLAY; BELOUSSOV, SERGUEI M.
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 043825/0486 →