IP Library Granted Patent US 10,601,633
Granted Patent B2
US 10,601,633 · App. 15/938,224 · Granted Mar 24, 2020

Virtual window screen renderings using application connectors

Inventors: Amos Lahav (Tel Mond, IL); Ehud Lavin (Ra'anana, IL); Netzer Shlomai (Ra'anana, IL); Adi Ruppin (Los Altos, CA)
Assignee: BlackBerry Limited
H04L29/08081G06F9/452H04L29/0809H04L67/00H04L67/02
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,601,633
App. No.
15/938,224
Granted
Mar 24, 2020
Kind
B2
Abstract

A method and system for capturing and transmitting screen content and input/output events from a server to a client device are provided. The method includes transmitting, to the client device, a screen output rendered by the server respective of a first instance of a first application; and transmitting, to the client device, the screen output rendered by the server respective of a second instance of a second application, wherein the first instance is contained in a first securable object associated with the first application and the second instance is contained in a second securable object associated with the second application, wherein the first instance and the second instance are simultaneously executed by the server under a single logon session.

Claims (27)

1. A non-transitory computer readable medium storing instructions which, when executed by a processing unit, configure a server:

to transmit, to a client device, a screen output rendered by a first rendering engine of the server respective of a first instance of a first application, the first rendering engine rendering the screen output based on data received from a first virtual user interface (UI) subsystem, the first virtual UI subsystem configured to receive, from a first application connector, information relevant to a change in screen content associated with the first instance of the first application; and

to transmit, to the client device, the screen output rendered by a second rendering engine of the server respective of a second instance of a second application, the second rendering engine rendering the screen output based on data received from a second virtual UI subsystem, the second virtual UI subsystem configured to receive, from a second application connector, information relevant to a change in screen content associated with the second instance of the second application,

wherein the first instance is contained in a first securable object associated with the first application and the second instance is contained in a second securable object associated with the second application,

wherein the first instance and the second instance are executed by the server under a single logon session.

2. The non-transitory computer readable medium of claim 1 , wherein the first securable object is a first non-interactive Windows Station and the second securable object is a second non-interactive Windows Station.

3. The non-transitory computer readable medium of claim 2 , wherein the first application and the second application are the same application.

4. The non-transitory computer readable medium of claim 2 , wherein the first and second non-interactive Windows Stations are isolated from each other.

5. The non-transitory computer readable medium of claim 1 , wherein the instructions, when executed by the processing unit, further configure the server:

to receive notifications from the client device about input events triggering screen changes, wherein the input events include any one of mouse movements and keyboard inputs.

6. The non-transitory computer readable medium of claim 1 , wherein the transmission of the screen content to the client device is performed over a hypertext transfer protocol (HTTP).

7. The non-transitory computer readable medium of claim 1 , wherein the transmission of the screen content to the client device is performed over a secured hypertext transfer protocol (HTTPS).

8. The non-transitory computer readable medium of claim 1 , the instructions, when executed by the processing unit, further configure the server:

to transmit image differences between iterations of the screen content captured at a first time and a second time.

9. The non-transitory computer readable medium of claim 8 , the instructions, when executed by the processing unit, further configure the server:

to transmit modified pixels as an array of non-intersecting rectangles, wherein each of the non-intersecting rectangles bounds all pixels modified between a first image and a second image respective of the screen content captured at the first time and the second time.

10. The non-transitory computer readable medium of claim 9 , wherein a single modified pixel with no adjacent modified pixel is represented as a single rectangle to be transmitted; wherein at least two adjacent modified pixels are represented as a single rectangle to be transmitted; wherein pixels that are not adjacent are each represented as standalone rectangles to be transmitted; and wherein if the number of rectangles required exceeds a predetermined threshold, a full screen image is taken.

11. The non-transitory computer readable medium of claim 9 , wherein one or more non-intersecting rectangles contain a number of unmodified pixels.

12. The non-transitory computer readable medium of claim 9 , the instructions, when executed by the processing unit, further configure the server:

to detect at least one of a horizontal shift and a vertical shift between the first image and the second image; and

to encode the changed shift as an offset vector and rectangle coordinates.

13. The non-transitory computer readable medium of claim 8 , wherein the content of each of the non-intersecting rectangle is further compressed.

14. The non-transitory computer readable medium of claim 8 , wherein a rectangle of the non-intersecting rectangles containing a uniform color is encoded as the rectangle coordinates and value of the color only.

15. The non-transitory computer readable medium of claim 8 , wherein a rectangle under a certain size threshold is encoded as an HTML Base64 object.

16. The non-transitory computer readable medium of claim 1 , wherein the first application is a virtualized cloud version of a first legacy application and the second application is a virtualized cloud version of a second legacy application.

17. The non-transitory computer readable medium of claim 16 , wherein the screen outputs are rendered using at least an HTML5 web standard.

18. The non-transitory computer readable medium of claim 1 , wherein the first securable object is a first Windows Desktop contained in a first Windows Station and rendered on a first logical display; and the second securable object is a second Windows Desktop contained in a second Windows Station rendered on a second logical display.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: LAHAV, AMOS; LAVIN, UDI; SHLOMAI, NETZER; RUPPIN, ADI
To: WATCHDOX, LTD.
Reel/Frame 045386/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: WATCHDOX, LTD.
To: BLACKBERRY LIMITED
Reel/Frame 045386/0150 →