IP Library Granted Patent US 10,540,160
Granted Patent B2
US 10,540,160 · App. 15/804,922 · Granted Jan 21, 2020

Techniques for deploying virtual software applications on computers

Inventors: Netzer Shlomai (Ra'anana, IL); Amos Lahav (Zoran, IL); Uzi Entin (Ra'anana, IL)
Assignee: BlackBerry Limited
G06F8/61G06F9/44G06F9/455G06Q10/10H04L67/40G06F8/60G06F21/121
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,540,160
App. No.
15/804,922
Granted
Jan 21, 2020
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:

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.

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

inquiring 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 shadow files comprise connectivity layers of virtual applications assigned to the user, wherein a connectivity layer defines integration functions with the operating system shell enabling to display interface elements of a respective virtual application.

7. The method of claim 6 , 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.

8. The method of claim 6 , wherein integrating each of the virtual applications with the operating system shell of the host computer further comprises binding interface elements of virtual applications with a non-virtual environment of the operating system shell.

9. 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:

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.

10. The method of claim 9 , 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.

11. The method of claim 9 , 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.

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

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

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

15. 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.

16. 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:

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.

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

inquiring 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.

18. The non-transitory computer readable medium of claim 16 , wherein integrating each of the virtual applications with the operating system shell of the host computer further comprises binding interface elements of virtual applications with a non-virtual environment of the operating system shell.

19. The non-transitory computer readable medium of claim 16 , wherein causing the virtual application to be executed over the host computer when the virtual application is launched by the user 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.

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

21. 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:

retrieve 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 shadow files of the virtual applications assigned to the user;

integrate each of the virtual applications with an operating system shell of the host computer; 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 Nov 7, 2019
From: SHLOMAI, NETZER; LAHAV, AMOS; ENTIN, UZI
To: INSTALLFREE, INC.
Reel/Frame 050949/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2019
From: WATCHDOX LTD
To: BLACKBERRY LIMITED
Reel/Frame 050949/0984 →
NUNC PRO TUNC ASSIGNMENT Recorded Nov 7, 2019
From: INSTALL FREE, INC.
To: WATCHDOX LTD.
Reel/Frame 050949/0853 →
Continuity (4)
Continuation 14859439 · Sep 21, 2015
Continuation 12419165 · Apr 6, 2009
Provisional Application 61123370 · Apr 7, 2008
Related Publication 20180060056A1 · Mar 1, 2018