IP Library Granted Patent US 9,811,326
Granted Patent B2
US 9,811,326 · App. 14/859,439 · Granted Nov 7, 2017

Techniques for deploying virtual software applications on computers

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 9,811,326
App. No.
14/859,439
Granted
Nov 7, 2017
Kind
B2
Abstract

A method for bridging between virtual applications and an operating system of a host computer. The method comprises retrieving virtual applications and settings of the virtual applications assigned to a user logged onto the host computer, wherein each of the virtual applications includes the following files: a virtual engine, a user data file, and an application-on-demand (AOD) file; downloading shadow files of the virtual applications assigned to the user; integrating each of the virtual applications with an operating system shell of the host computer; and causing a virtual application to be executed over the host computer when the virtual application is launched by the user.

Claims (51)

1. A method for bridging between virtual applications and an operating system of a host computer, comprising:

downloading a bridge agent to the host computer as an uninstalled executable file, not integrated within the host computer's operating system shell, the bridge agent being configured to bridge between the virtual applications and the operating system of the host computer;

retrieving, by the bridge agent, virtual applications and settings of the virtual applications assigned to a user logged onto the host computer, wherein each of the virtual applications includes the following files: a virtual engine, a user data file, and an application-on-demand (AOD) file;

downloading, to the bridge agent, shadow files of the virtual applications assigned to the user, wherein the shadow files comprise connectivity layers of virtual applications assigned to the user, wherein a connectivity layer defines integration functions with an operating system shell of the host computer enabling display of interface elements of a respective virtual application;

binding interface elements of each of the virtual applications to the operating system shell by injecting, via a dynamic link library (DLL) process with the bridge agent, the connectivity layer to a host process of the operating system shell, wherein integration of the virtual applications does not modify the registry keys and files in the operating system; and

causing a virtual application to be executed over the host computer when the virtual application is launched by the user.

2. The method of claim 1 , wherein retrieving the virtual applications and the settings of the virtual applications comprises:

enquiring a file server as to virtual applications assigned to the user;

retrieving file names of files of each of the virtual applications assigned to the user; and

retrieving settings of each of the virtual applications assigned to the user.

3. The method of claim 1 , wherein the settings of a virtual application include at least a virtual application mode and security permissions.

4. The method of claim 3 , wherein the virtual application mode is an online mode wherein files of the virtual application are loaded into a memory of the host computer post launch of the virtual application.

5. The method of claim 3 , wherein the virtual application mode is an offline mode wherein files of the virtual application are downloaded to host computer prior to the launch of the virtual application.

6. The method of claim 1 , wherein the interface elements include at least one of: start menu items, desktop items, file type associations, right-click menu options, and integration with native folders of the operating system.

7. The method of claim 1 , wherein causing the virtual application to be executed over the host computer when the virtual application is launched by the user comprises and the settings of the virtual applications comprises:

capturing a system call to execute a launched application;

checking if the launched application is a virtual application;

when the launched application is not a virtual application, transferring the system call to the operating system; and

when the launched application is a virtual application, executing the virtual engine of the launched application if the virtual application is set to an offline mode.

8. The method of claim 7 , further comprising:

when the launched application is a virtual application, downloading files of the launched application if the virtual application is set to an online mode and executing the virtual engine of the launched application.

9. The method of claim 7 , wherein the files of virtual applications set to an offline mode are loaded to a memory of the host computer when the operating system shell integration is completed.

10. The method of claim 9 , wherein downloaded files of virtual applications are not installed in the host computer.

11. The method of claim 9 , wherein retrieving application files further comprises streaming application files from a file server to the host computer.

12. The method of claim 11 , further comprising streaming user data from the host computer to the file server.

13. The method of claim 1 , wherein the virtual applications and the settings of the virtual applications are assigned to the user by a system administrator.

14. A non-transitory computer readable medium having stored thereon computer executable code which, when executed, causes a processor of a host computer to perform a process for bridging between virtual applications and an operating system of the host computer, the process comprising:

downloading a bridge agent to the host computer as an uninstalled executable file, not integrated within the host computer's operating system shell, the bridge agent being configured to bridge between the virtual applications and the operating system of the host computer

retrieving, by the bridge agent, virtual applications and settings of the virtual applications assigned to a user logged onto the host computer, wherein each of the virtual applications includes the following files: a virtual engine, a user data file, and an application-on-demand (AOD) file;

downloading, to the bridge agent, shadow files of the virtual applications assigned to the user, wherein the shadow files comprise connectivity layers of virtual applications assigned to the user, wherein a connectivity layer defines integration functions with an operating system shell of the host computer enabling display of interface elements of a respective virtual application;

binding interface elements of each of the virtual applications to the operating system shell by injecting, via a dynamic link library (DLL) process with the bridge agent, the connectivity layer to a host process of the operating system shell, wherein integration of the virtual applications does not modify the registry keys and files in the operating system; and

causing a virtual application to be executed over the host computer when the virtual application is launched by the user.

15. The non-transitory computer readable medium of claim 14 , wherein retrieving the virtual applications and the settings of the virtual applications comprises:

enquiring a file server as to virtual applications assigned to the user;

retrieving file names of files of each of the virtual applications assigned to the user; and

retrieving settings of each of the virtual applications assigned to the user.

16. The non-transitory computer readable medium of claim 14 , wherein causing the virtual application to be executed over the host computer when the virtual application is launched by the user comprises and the settings of the virtual applications comprises:

capturing a system call to execute a launched application;

checking if the launched application is a virtual application;

when the launched application is not a virtual application, transferring the system call to the operating system;

when the launched application is a virtual application, executing the virtual engine of the launched application if the virtual application is set to an offline mode; and

when the launched application is a virtual application, downloading files of the launched application if the virtual application is set to an online mode and executing the virtual engine of the launched application.

17. The non-transitory computer readable medium of claim 16 , wherein downloaded files of virtual applications are not installed in the host computer.

18. A host computer for bridging between virtual applications and an operating system, the host computer comprising:

a memory configured to store a program including instructions; and

a processor configured to execute the program to cause the host computer to:

download a bridge agent to the host computer as an uninstalled executable file, not integrated within the host computer's operating system shell, the bridge agent being configured to bridge between the virtual applications and the operating system of the host computer;

retrieve, by the bridge agent, virtual applications and settings of the virtual applications assigned to a user logged onto the host computer, wherein each of the virtual applications includes the following files: a virtual engine, a user data file, and an application-on-demand (AOD) file;

download, to the bridge agent, shadow files of the virtual applications assigned to the user, wherein the shadow files comprise connectivity layers of virtual applications assigned to the user, wherein a connectivity layer defines integration functions with an operating system shell of the host computer enabling display of interface elements of a respective virtual application;

bind interface elements of each of the virtual applications to the operating system shell by injecting, via a dynamic link library (DLL) process with the bridge agent, the connectivity layer to a host process of the operating system shell, wherein integration of the virtual applications does not modify the registry keys and files in the operating system; and

cause a virtual application to be executed over the host computer when the virtual application is launched by the user.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2021
From: SHLOMAI, NETZER; LAHAV, AMOS; ENTIN, UZI
To: INSTALLFREE, INC.
Reel/Frame 057266/0895 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2021
From: INSTALLFREE, INC.
To: WATCHDOX LTD.
Reel/Frame 057266/0957 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2015
From: WATCHDOX LTD
To: BLACKBERRY LIMITED
Reel/Frame 037342/0257 →