IP Library Granted Patent US 10,540,136
Granted Patent B2
US 10,540,136 · App. 15/163,002 · Granted Jan 21, 2020

Faster frame buffer rendering over a network

Inventors: Ankit Singh (Bangalore, IN); Rohitkumar Arehalli (Bangalore, IN); Aniruddha Suresh Herekar (Bangalore, IN); Sreenivasula Reddy G (Proddatur, IN); Guru Prasad Yadav (Proddatur, IN)
Assignee: Dell Products, L.P.
G06F3/1454
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,136
App. No.
15/163,002
Granted
Jan 21, 2020
Kind
B2
Abstract

A method and an information handling system (IHS) renders a graphical user interface (GUI) from a remote device using a local storage. An interface controller detects a first event used to initiate access to the GUI at the remote device. The controller requests GUI frame buffer data corresponding to the first event, and GUI change data from the remote device. The GUI change data correspond to respective events that can trigger changes to the GUI. In response to receiving the requested data, the controller provides a first locally-rendered GUI using the GUI frame buffer data. The controller stores the GUI change data in local storage. The controller then detects a second event/interaction via the first locally-rendered GUI and retrieves from local storage a relevant portion of the GUI change data. The controller provides an updated locally-rendered GUI using the relevant portion of GUI change data.

Claims (81)

1. A client information handling system (IHS) comprising:

an input/output (I/O) controller;

an interface controller coupled to the I/O controller and having a local frame buffer rendering agent that supports frame buffer servicing via local storage of the client IHS, and which:

detects a first event corresponding to a first interaction which is used to initiate access to a target graphical user interface (GUI) located at a remote device having one or more application GUIs;

requests, from the remote device, GUI frame buffer data corresponding to the first event;

receives GUI frame buffer data and a first set of GUI change data in response to the request for the GUI frame buffer data, the first set of GUI change data corresponding to GUI changes that can be initiated by interaction with a locally-rendered GUI corresponding to the target GUI;

in response to receiving the GUI frame buffer data, provides, using the GUI frame buffer data, the locally-rendered GUI corresponding to the target GUI; and

in response to receiving the first set of GUI change data, stores the first set of GUI change data in local storage to enable local servicing of frame buffer data to support GUI changes which can occur as a result of subsequent interactions with the locally rendered GUI of the client IHS.

2. The IHS of claim 1 , wherein:

said first interaction is provided by a first client;

said targeted GUI is shared by multiple clients in a multi-client session; and

the remote device sends copies of the GUI frame buffer data to each of the multiple clients to provide each client with a respective, locally-rendered GUI.

3. The IHS of claim 2 , wherein the controller:

receives indication of a second event at a locally-rendered GUI; and

provides an updated locally-rendered GUI, triggered by the second event, by using a first portion of the first set of change data from local storage, the first portion corresponding to the second event interaction.

4. The IHS of claim 3 , wherein the interface controller:

stores a pre-established mapping of associations between events data and GUI change data;

identifies the first, relevant portion of the first set of GUI change data corresponding to the second event by using corresponding event information to identify matching event information within the stored pre-established mapping data; and

retrieves the first, relevant portion of GUI change data used to provide an update to the locally-rendered GUI.

5. The IHS of claim 3 , wherein:

said second event is provided by the first client via the first locally-rendered GUI;

the controller transmits event data corresponding to the second event to the remote device which uses the event data to provide updates to locally-rendered GUIs of respective clients;

the multiple clients comprise a first group of clients that supports frame buffer servicing via respective local storages and a second group of clients that do not support frame buffer servicing via a local storage; and

in response to receiving the event data that was transmitted, the remote server forwards (i) the received event data to remaining clients of the first group of clients and (ii) corresponding GUI change data to the second group of clients, in order to provide a respective updated, locally-rendered GUI.

6. The IHS of claim 3 , wherein:

receives from the remote server second event information corresponding to said second event;

said second event information is associated with interaction provided by a second client via a second locally-rendered GUI, wherein the second client does not support frame buffer servicing via a local storage;

the second client requests, from the remote device, GUI change data corresponding to the second event information; and

in response to receiving the request for GUI change data from the second client, the remote device forwards (i) said second event data to a first group of clients that support frame buffer servicing via a local storage and (ii) corresponding GUI change data to remaining clients of the second group of clients that do not support frame buffer servicing via a local storage in order to provide a respective updated locally rendered GUI.

7. The IHS of claim 3 , wherein the controller:

receives from the remote device a query to determine whether the first client supports frame buffer servicing via a local storage;

wherein the remote device sends queries to the multiple clients to determine which clients support frame buffer servicing via a local storage; and classifies clients within a respective one of (i) a first group of clients that support frame buffer servicing via a local storage and (ii) a second group of clients that do not support frame buffer servicing via a local storage.

8. The IHS of claim 1 , wherein the controller:

in response to interactions received via a respective input device, identifies a corresponding event using event information that defines event attributes including one or more of: (i) an event type; (ii) a corresponding x-axis and y-axis position; (iii) a targeted control area; (iv) a targeted widget; and (v) a mask for a targeted control widget; and

retrieves, from local storage, a portion of GUI change data corresponding to the event information.

9. The IHS of claim 1 , wherein the controller:

detects interactions associated with changes within the locally-rendered GUI to one or more of: (i) a foreground; (ii) a background; (iii) a control widget and (iv) a color corresponding to a targeted region.

10. In a client information handling system (IHS), a processor-implemented method comprising:

detecting a first event corresponding to a first interaction which is used to initiate access to a graphical user interface (GUI) located at a remote device having one or more application GUIs;

requesting, from the remote device, GUI frame buffer data corresponding to the first event;

receiving GUI frame buffer data and a first set of GUI change data in response to requesting the GUI frame buffer data, the first set of GUI change data corresponding to GUI changes that can be initiated by interaction with a locally-rendered GUI corresponding to the target GUI;

in response to receiving the GUI frame buffer data, provides, using the GUI frame buffer data, a first locally-rendered GUI corresponding to the target GUI; and

in response to receiving the first set of GUI change data, stores the first set of change data in local storage to enable local servicing of frame buffer data to support GUI changes which can occur as a result of subsequent interactions with the locally rendered GUI of the client IHS.

11. The method of claim 10 , wherein:

said first interaction is provided by a first client;

said targeted GUI is shared by multiple clients in a multi-client session; and

the remote device sends copies of the GUI frame buffer data to each of the multiple clients to provide each client with a respective, locally-rendered GUI.

12. The method of claim 11 , further comprising:

receiving indication of a second event at a locally-rendered GUI; and

providing an updated locally-rendered GUI, triggered by the second event, by using a first portion of the first set of change data from local storage, the first portion corresponding to the second event interaction.

13. The method of claim 12 , further comprising:

storing a pre-established mapping of associations between events data and GUI change data; and

identifying a first, relevant portion of GUI change data corresponding to the second event by using corresponding event information to identify matching event information within the stored pre-established mapping data;

retrieving the first, relevant portion of GUI change data which is used to provide an update to the locally-rendered GUI.

14. The method of claim 12 , wherein said second event is provided by the first client via the first locally-rendered GUI, the method further comprising:

transmitting event data corresponding to the second event to the remote device which uses the event data to provide updates to locally-rendered GUIs of respective clients;

wherein the multiple clients comprise a first group of clients that supports frame buffer servicing via respective local storages and a second group of clients that do not support frame buffer servicing via a local storage, and in response to receiving the event data that was transmitted, the remote server forwards (i) the received event data to a remaining clients of the first group of clients and (ii) corresponding GUI change data to the second group of clients, in order to provide a respective updated, locally-rendered GUI.

15. The method of claim 12 , further comprising:

receiving from the remote server second event information corresponding to said second event;

wherein: said second event information is associated with interaction provided by a second client via a second locally-rendered GUI, wherein the second client does not support frame buffer servicing via a local storage; the second client requests, from the remote device, GUI change data corresponding to the second event information; and in response to receiving the request for GUI change data from the second client, the remote device forwards (i) said second event data to a first group of clients that support frame buffer servicing via a local storage and (ii) corresponding GUI change data to remaining clients of the second group of clients that do not support frame buffer servicing via a local storage in order to provide a respective updated locally rendered GUI.

16. The method of claim 12 , further comprising:

receiving from the remote device a query to determine whether the first client supports frame buffer servicing via a local storage;

wherein the remote device sends queries to the multiple clients to determine which clients support frame buffer servicing via a local storage; and classifies clients within a respective one of (i) a first group of clients that support frame buffer servicing via a local storage and (ii) a second group of clients that do not support frame buffer servicing via a local storage.

17. The method of claim 10 , further comprising:

in response to interactions received via a respective input device, identifying a corresponding event using event information that defines event attributes including one or more of: (i) an event type; (ii) a corresponding x-axis and y-axis position; (iii) a targeted control area; (iv) a targeted widget; and (v) a mask for a targeted control widget; and

retrieving, from local storage, a portion of GUI change data corresponding to the event information.

18. The method of claim 10 , further comprising:

detecting interactions associated with changes within the locally-rendered GUI to one or more of: (i) a foreground; (ii) a background; (iii) a control widget and (iv) a color corresponding to a targeted region.

19. An information handling system comprising:

a controller having: memory which includes a frame buffer module; a processor coupled to memory;

a storage which includes frame buffer data for one or more application GUIs;

wherein the processor executes the frame buffer module to enable the controller to:

establish a multi-client session with a number of clients;

query the clients to determine whether each respective client supports frame buffer rendering via a local client storage;

transmit GUI frame buffer data and GUI change data to a first set of clients that support frame buffer rendering via the local client storage of a respective client; and

transmit only GUI frame buffer data to a second set of clients that do not support frame buffer rendering via a local client storage.

20. The IHS of claim 19 , wherein the controller:

receives event information from a client member of the first set;

sends the event information to other client members of the first set and relevant GUI change data to the second set of clients;

receives event information from a client member of the second set; and

sends relevant GUI change data to the second set of clients and event information to the first set of clients.

Assignments (19)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
RELEASE OF SEC. INT. IN PATENTS (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0329 →
RELEASE OF SEC. INT. IN PATENTS (NOTES) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040026/0710 →
RELEASE OF SEC. INT. IN PATENTS (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040013/0733 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 039719/0889 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 039644/0084 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 039643/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2016
From: SINGH, ANKIT; AREHALLI, ROHITKUMAR; HEREKAR, ANIRUDDHA SURESH; G, SREENIVASULA REDDY; YADAV, GURU PRASAD
To: DELL PRODUCTS, L.P.
Reel/Frame 038703/0347 →
Continuity (1)
Related Publication 20170344331A1 · Nov 30, 2017