IP Library Granted Patent US 10,003,672
Granted Patent B2
US 10,003,672 · App. 13/759,514 · Granted Jun 19, 2018

Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures

Inventors: Tianying Fu (San Jose, CA); Gaurav Manglik (Mountain View, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L67/42G06F9/452G06F9/54G06F9/45533
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,003,672
App. No.
13/759,514
Granted
Jun 19, 2018
Kind
B2
Abstract

Embodiments disclosed facilitate adaptation of interactive desktop applications (IDAs) for deployment and execution on distributed systems including clouds. In some embodiments, the method comprises: executing a cloud-based IDA on a dedicated elastic Virtual Machine (VM) running on at least one of a plurality of cloud infrastructures using a remote client device; and invoking an application on the remote client device comprising a remote desktop protocol (RDP) to connect to the VM on the at least one cloud infrastructure to facilitate remote user interaction with the at least one cloud-based IDA using functionality provided by the RDP. In some embodiments, the remote client application may be a web browser and RDP may be implemented using browser plugins. Further, the remote client application may sync data with cloud infrastructure before and after IDA execution, and the VM running the IDA may be terminated when user exits the IDA.

Claims (73)

1. A method comprising:

at a device including one or more processors and a non-transitory memory:

receiving a request from a remote client device to launch a cloud-based interactive desktop application (IDA) on a Virtual Machine (VM) running on at least one of a plurality of cloud infrastructures;

in response to receiving the request, deploying an implementation of a cloud-agnostic template on the VM for the cloud-based IDA, wherein the cloud-agnostic template is agnostic of the plurality of cloud infrastructures, and the implementation is deployed using one or more cloud-specific libraries for the VM, the one or more cloud-specific libraries are derived from the cloud-agnostic template, including a representation of an underlying pattern of resource utilization of the cloud-based IDA;

dynamically building clusters on the VM to execute the cloud-based IDA, including, without user interaction, adjusting the number of nodes supporting the VM to run the cloud-based IDA, wherein the cloud-based IDA is an interactive application program run locally on the VM, and one of the nodes is responsible for a control and operation of at least a portion of the VM; and

directing an application on the remote client device to connect to the VM on the at least one of the plurality of cloud infrastructures to facilitate a remote interaction with the cloud-based IDA, wherein the application on the remote client device comprises a remote desktop protocol suite, which facilitates the remote interaction with the cloud-based IDA, and provides a cloud-based application Graphical User Interface (GUI) different from a virtual desktop associated with the VM.

2. The method of claim 1 , wherein the remote interaction comprises:

displaying the cloud-based application GUI associated with the cloud-based IDA on the remote client device; and

sending at least one input associated with the cloud-based IDA from the remote client device to the cloud-based IDA, the at least one input comprising input obtained through the cloud-based application GUI.

3. The method of claim 2 , wherein the remote interaction occurs through a web browser on the remote client device.

4. The method of claim 1 , wherein the application on the remote client device is a web browser and the remote desktop protocol suite is provided by a browser plugin.

5. The method of claim 1 , wherein the remote desktop protocol suite comprises at least one of:

a presentation layer protocol,

a framebuffer protocol,

a terminal services protocol, or

a proprietary desktop sharing protocol.

6. The method of claim 1 , further comprising synchronizing one or more data files between the remote client device and the cloud-based IDA.

7. The method of claim 6 , wherein the one or more data files comprise at least one of: one or more input data files or, one or more output data files, and synchronizing the one or more data files between the remote client device and the cloud-based IDA further comprises at least one of:

copying the one or more input data files from the remote client device to cloud-based storage used by the cloud-based IDA as part of an initialization routine associated with the cloud-based IDA, wherein the one or more input data files are used by the cloud-based IDA during execution; or,

copying the one or more output data files from the cloud-based storage used by the cloud-based IDA to the remote client device as part of a termination routine associated with the cloud-based IDA, wherein the one or more output data files are output by the cloud-based IDA.

8. The method of claim 1 , wherein the remote client device is at least one of:

a tablet computer,

a handheld computer;

a smartphone,

a netbook, or

a laptop.

9. The method of claim 1 , further comprising:

dynamically tearing down the VM immediately following termination of the cloud-based IDA.

10. An apparatus comprising:

a processor and a non-transitory memory;

a communications interface operable to communicatively link the apparatus to a remote client device;

wherein the non-transitory memory includes program instructions that when executed by the processor cause the apparatus to:

receive a request from the remote client device to launch a cloud-based interactive desktop application (IDA) on a Virtual Machine (VM) running on at least one of a plurality of cloud infrastructures;

in response to receiving the request, deploy an implementation of a cloud-agnostic template on the VM for the cloud-based IDA, wherein the cloud-agnostic template is agnostic of the plurality of cloud infrastructures, and the implementation is deployed using one or more cloud-specific libraries for the VM, the one or more cloud-specific libraries are derived from the cloud-agnostic template, including a representation of an underlying pattern of resource utilization of the cloud-based IDA;

dynamically build clusters on the VM to execute the cloud-based IDA, including, without user interaction, adjusting the number of nodes supporting the VM to run the cloud-based IDA, wherein the cloud-based IDA is an interactive application program run locally on the VM, and one of the nodes is responsible for a control and operation of a fraction of the VM; and

cause a software agent on the remote client device to connect to the VM on the at least one of the plurality of cloud infrastructures to facilitate a remote interaction with the cloud-based IDA, wherein the software agent comprises a remote desktop protocol suite to facilitate the remote interaction with the cloud-based IDA and provides a cloud-based application Graphical User Interface (GUI) different from a virtual desktop associated with the VM.

11. The apparatus of claim 10 , wherein the remote interaction comprises:

displaying the cloud-based application GUI associated with the cloud-based IDA on a display of the remote client device; and

sending at least one input associated with the cloud-based IDA GUI from the apparatus to the cloud-based IDA, the at least one input comprising input obtained through the the cloud-based application GUI.

12. The apparatus of claim 10 , wherein the remote client device is at least one of:

a tablet computer,

a handheld computer;

a smartphone,

a netbook, or

a laptop.

13. The apparatus of claim 10 , wherein the one or more processors are further configured to:

synchronize one or more data files stored on the remote client device and the cloud-based IDA.

14. The apparatus of claim 13 , wherein the one or more data files comprise at least one of: one or more input data files or, one or more output data files, and to synchronize the one or more data files, the one or more processors are configured to perform at least one of:

instruct the software agent to initiate the copying of the one or more input data files stored on the apparatus to cloud-based storage used by the cloud-based IDA as part of an initialization routine associated with the cloud-based IDA, wherein the one or more input data files are used by the cloud-based IDA during execution; or

instruct the software agent to initiate the copying of the one or more output data files from the cloud-based storage used by the cloud-based IDA to storage on the apparatus as part of a termination routine associated with the cloud-based IDA, wherein the one or more output data files are output by the cloud-based IDA.

15. The apparatus of claim 10 , wherein the remote desktop protocol suite comprises at least one of:

a presentation layer protocol,

a framebuffer protocol,

a terminal services protocol, or

a proprietary desktop sharing protocol.

16. A non-transitory computer-readable medium comprising instructions, which when executed by a processor cause the processor to perform steps in a method comprising:

receiving a request from the remote client device to launch a cloud-based interactive desktop application (IDA) on a Virtual Machine (VM) running on at least one of a plurality of cloud infrastructures;

in response to receiving the request, deploying an implementation of a cloud-agnostic template on the VM for the cloud-based IDA, wherein the cloud-agnostic template is agnostic of the plurality of cloud infrastructures, and the implementation is deployed using one or more cloud-specific libraries for the VM, the one or more cloud-specific libraries are derived from the cloud-agnostic template, including a representation of an underlying pattern of resource utilization of the cloud-based IDA;

dynamically building clusters on the VM to execute the cloud-based IDA, including, without user interaction, adjusting the number of one or more nodes supporting the VM to run the cloud-based IDA, wherein the cloud-based IDA is an interactive application program run locally on the VM, and one of the nodes is responsible for a control and operation of a fraction of the VM; and

causing an application on the remote client device to connect to the VM on the at least one of the plurality of cloud infrastructures to facilitate a remote interaction with the cloud-based IDA, wherein the application on the remote client device comprises a remote desktop protocol suite, which facilitates the remote interaction with the cloud-based IDA and provides a cloud-based application Graphical User Interface (GUI) different from a virtual desktop associated with the VM.

17. The computer-readable medium of claim 16 , wherein the remote interaction comprises:

displaying the cloud-based application GUI associated with the cloud-based IDA on the remote client device; and

sending at least one input associated with the cloud-based IDA from the remote client device to the cloud-based IDA, the at least one input comprising input obtained through the cloud-based application GUI.

18. The computer-readable medium of claim 16 , wherein the application on the remote client device is a web browser and the remote desktop protocol functionality is provided by a browser plugin.

19. The computer-readable medium of claim 16 , wherein the remote desktop protocol suite comprises at least one of:

a presentation layer protocol,

a framebuffer protocol,

a terminal services protocol, or

a proprietary desktop sharing protocol.

20. The computer-readable medium of claim 16 , further comprising:

dynamically tearing down the VM immediately following termination of the cloud-based IDA.

21. The apparatus of claim 10 , wherein the one or more processors are further configured to:

dynamically tear down the VM immediately following termination of the cloud-based IDA.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2017
From: CLIQR TECHNOLOGIES LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 043310/0258 →
CHANGE OF NAME Recorded Aug 16, 2017
From: CLIQR TECHNOLOGIES, INC.
To: CLIQR TECHNOLOGIES LLC
Reel/Frame 043576/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2013
From: FU, TIANYING; MANGLIK, GAURAV
To: CLIQR TECHNOLOGIES, INC.
Reel/Frame 029880/0809 →
Continuity (4)
Continuation In Part 13489223 · Jun 5, 2012
Continuation In Part 13024302 · Feb 9, 2011
Provisional Application 61501726 · Jun 27, 2011
Related Publication 20130151598A1 · Jun 13, 2013