IP Library Granted Patent US 12,393,394
Granted Patent B2
US 12,393,394 · App. 18/145,506 · Granted Aug 19, 2025

Systems and method for publication of applications using server-side virtual screen change capture

Inventors: Francisco Aragón (Barcelona, ES); Raul Sánchez (Barcelona, ES); Jaime Crespo (Barcelona, ES); Oscar Santillana (Barcelona, ES)
Assignee: Rocket Software Technologies, Inc.
G06F3/147G06F3/1454G09G5/00G09G5/001H04L67/01H04L67/02H04L67/1001H04L67/125H04L67/141G09G2340/02G09G2340/16G09G2350/00G09G2370/022
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 12,393,394
App. No.
18/145,506
Granted
Aug 19, 2025
Kind
B2
Abstract

Provided are computer-implemented methods and systems for optimization of publication of an application to a web browser. An example method for optimization of publication of an application to a web browser may include capturing, by a server-side agent, a video frame of a virtual screen associated with the application. The method may further include comparing, by the server-side agent, the video frame to a previous video frame of the virtual screen to detect a change in the video frame. The method may continue with generating, by the server-side agent, an image of the change based on the detection. The method may further include sending, by the server-side agent, the image of the change to a client device. The virtual screen may be re-rendered on the client device based on the image of the change and the previous video frame.

Claims (46)

1. A method for optimization of publication of an application to a web browser, the method comprising:

capturing, by at least one server-side agent continuously monitoring a virtual screen associated with the application, a video frame of the virtual screen;

comparing, by the at least one server-side agent, the video frame to a previous video frame of the virtual screen to detect a change in the video frame;

based on the detection, generating, by the least one server-side agent, an image of the change; and

sending, by the server-side agent, the image of the change to a client device, wherein the virtual screen is re-rendered on the client device based on the image of the change and the previous video frame, the virtual screen being re-rendered by storing the image of the change in a back buffer, copying a changed portion of the back buffer into a front buffer, and merging the copied changed portion with the previous video frame.

2. The method of claim 1 , further comprising:

receiving, from the client device, a user action with respect to the virtual screen; and

in response to the user action, executing, on the application, a command corresponding to the user action, wherein the change in the video frame is caused by the execution of the command.

3. The method of claim 2 , wherein the user action includes one of a keyboard event, a mouse event, and a touchscreen event.

4. The method of claim 1 , wherein the virtual screen is re-rendered on the client device by merging a previous virtual screen and the image by a script running in the web browser of the client device.

5. The method of claim 1 , wherein the application is executed on an application server.

6. The method of claim 5 , wherein the image is sent via a channel of communication established between the client device and the application server.

7. The method of claim 6 , wherein the channel of communication includes a Hypertext Transfer Protocol (HTTP) session.

8. The method of claim 1 , wherein the virtual screen is re-rendered using Hypertext Markup Language (HTML) and a script running in the web browser.

9. The method of claim 1 , wherein the image is in one of the following formats: PNG and JPG.

10. The method of claim 9 , wherein the JPG is used for compression of the image.

11. The method of claim 1 , wherein the virtual screen is re-rendered inside a web portal associated with a workspace, the workspace including a plurality of applications.

12. The method of claim 11 , wherein the plurality of applications associated with the web portal are executed on an application server.

13. A system for optimization of publication of an application to a web browser, the system comprising:

a client device;

an application server configured to run the application; and

at least one server-side agent configured to:

capture by continuous monitoring a video frame of a virtual screen associated with the application;

compare the video frame to a previous video frame of the virtual screen to detect a change in the video frame;

based on the detection, generate an image of the change; and

send the image of the change to the client device, wherein the virtual screen is re-rendered on the client device based on the image of the change and the previous video frame, the virtual screen being re-rendered by storing the image of the change in a back buffer, copying a changed portion of the back buffer into a front buffer, and merging the copied changed portion with the previous video frame.

14. The system of claim 13 , wherein the application server is configured to: receive, from the client device, a user action with respect to the virtual screen; and

in response to the user action, execute, on the application, a command corresponding to the user action, wherein the change in the video frame is caused by the execution of the command.

15. The system of claim 14 , wherein the user action includes one of a keyboard event, a mouse event, and a touchscreen event.

16. The system of claim 13 , wherein the virtual screen is re-rendered on the client device by merging a previous virtual screen and the image by a script running in the web browser of the client device.

17. The system of claim 16 , wherein the application is executed on an application server.

18. A system for optimization of publication of an application to a web browser, the system comprising:

at least one server-side agent configured to:

capture by continuous monitoring a video frame of a virtual screen associated with the application;

compare the video frame to a previous video frame of the virtual screen to detect a change in the video frame; and

based on the detection, generate an image of the change; and

a client device configured to:

receive the image of the change from the at least one server-side agent; and

re-render the virtual screen based on the image of the change and the previous video frame, the virtual screen being re-rendered by storing the image of the change in a back buffer, copying a changed portion of the back buffer into a front buffer, and merging the copied changed portion with the previous video frame; and

an application server configured to:

run the application;

receive, from the client device, a user action with regard to the virtual screen, the user action including one of a keyboard event and a mouse event; and

in response to the user action, execute, on the application, a command corresponding to the user action, wherein the change in the video frame is caused by the execution of the command.

19. The method of claim 1 , wherein the at least one server-side agent resides in an application server disposed in a cloud computing environment.

20. The system of claim 13 , wherein the at least one server-side agent resides in an application server disposed in a cloud computing environment.

21. The system of claim 18 , wherein the at least one server-side agent resides in an application server disposed in a cloud computing environment.

Assignments (2)
CHANGE OF NAME Recorded May 17, 2024
From: ASG TECHNOLOGIES GROUP, INC.
To: ROCKET SOFTWARE TECHNOLOGIES, INC.
Reel/Frame 067456/0863 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2022
From: ARAGÓN, FRANCISCO; SÁNCHEZ, RAUL; CRESPO, JAIME; SANTILLANA, OSCAR
To: ASG TECHNOLOGIES GROUP, INC. DBA ASG TECHNOLOGIES
Reel/Frame 062238/0135 →
Continuity (3)
Continuation 17195857 · Mar 9, 2021
Continuation 15818160 · Nov 20, 2017
Related Publication 20230129887A1 · Apr 27, 2023
References Cited (30)
US 5528263A · Platzker et al. · 1996 [cited by applicant]
US 5742285A · Ueda · 1998 [cited by applicant]
US 6331855B1 · Schauser · 2001 [cited by examiner]
US 6597363B1 · Duluk · 2003 [cited by applicant]
US 7522167B1 · Diard · 2009 [cited by examiner]
US 11057500B2 · Aragón et al. · 2021 [cited by applicant]
US 11582284B2 · Aragón et al. · 2023 [cited by applicant]
US 20040177323A1 · Kaasila et al. · 2004 [cited by applicant]
US 20060031854A1 · Godwin · 2006 [cited by applicant]
US 20060039466A1 · Emerson et al. · 2006 [cited by applicant]
US 20070028286A1 · Greene et al. · 2007 [cited by applicant]
US 20090124387A1 · Perlman et al. · 2009 [cited by applicant]
US 20100225658A1 · Coleman · 2010 [cited by applicant]
US 20100226441A1 · Tung · 2010 [cited by examiner]
US 20100231599A1 · Tung et al. · 2010 [cited by applicant]
US 20100245563A1 · Golovchinsky et al. · 2010 [cited by applicant]
US 20110246904A1 · Pinto et al. · 2011 [cited by applicant]
US 20120075333A1 · Chen · 2012 [cited by examiner]
US 20120324358A1 · Jooste · 2012 [cited by applicant]
US 20130117662A1 · Shan · 2013 [cited by examiner]
US 20130177662A1 · Msika · 2013 [cited by examiner]
US 20140047011A1 · Lahav · 2014 [cited by examiner]
US 20140089388A1 · Curry · 2014 [cited by examiner]
US 20160234276A1 · Ouyang · 2016 [cited by applicant]
US 20170123751A1 · Sigurösson et al. · 2017 [cited by applicant]
US 20170154018A1 · Venkatesh · 2017 [cited by examiner]
US 20180167426A1 · Sigurdsson et al. · 2018 [cited by applicant]
US 20210194994A1 · Aragón et al. · 2021 [cited by applicant]
WO WO2013113191A1 · 2013 [cited by applicant]
Wikipedia, “Multiple buffering”, XP055348758, Retrieved from the Internet:URL:https:// en.wikipedia.org/w/index.php?title=Multiple_buffering&oldid=472463974 [retrieved on Feb. 22, 2017]; Jan. 21, 2012; 5 pages. [cited by applicant]