IP Library Granted Patent US 8,219,759
Granted Patent B2
US 8,219,759 · App. 12/404,423 · Granted Jul 10, 2012

Adaptive display caching

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 8,219,759
App. No.
12/404,423
Granted
Jul 10, 2012
Kind
B2
Abstract

Apparatus, systems, and methods may operate to send a window copy message including changed window identification information to a remote node when metadata associated with a changed foreground window at a local node has been cached, and otherwise, to locally cache the window metadata and send the window metadata and window pixel data to the remote node. When a preselected minimum bandwidth connection is not available between the local node and the remote node, additional operations may include sending a rectangle paint message including changed rectangle identification information to the remote node when rectangle metadata associated with a changed rectangle of a designated minimum size at the local node has been cached, and otherwise, to locally cache the rectangle metadata and send the rectangle metadata and rectangle pixel data to the remote node. Additional apparatus, systems, and methods are disclosed.

Claims (50)

1. An apparatus, comprising:

a local cache display buffer memory; and

a local display processing module that, when window metadata associated with a changed foreground window at a local node housing the local cache display buffer memory has been cached in the memory, operates to send a window copy message including changed window identification information to a remote node, and when the window metadata has not been cached in the memory, operates to locally cache the window metadata in the memory and to send the window metadata and window pixel data to the remote node without locally caching the window pixel data; and

when a preselected minimum bandwidth connection is not available between the local node and the remote node, and rectangle metadata associated with a changed rectangle of a designated minimum size at the local node has been cached in the memory, operates to send a rectangle paint message including changed rectangle identification information to the remote node, and when the rectangle metadata has not been cached in the memory, operates to locally cache the rectangle metadata in the memory and to send the rectangle metadata and rectangle pixel data to the remote node without locally caching the rectangle pixel data.

2. The apparatus of claim 1 , further comprising:

a bandwidth determination module to determine whether the preselected minimum bandwidth connection is available.

3. The apparatus of claim 1 , wherein the memory further comprises:

a window buffer to cache the window metadata; and

a rectangle buffer to cache the rectangle metadata.

4. An apparatus, comprising:

a remote cache display buffer memory; and

a remote display processing module that, when window metadata associated with a changed foreground window at a local node has been cached in the memory, operates to receive a window copy message including changed window identification information at a remote node housing the remote cache display buffer memory, and when the window metadata has not been cached in the memory, operates to receive the window metadata and window pixel data at the remote node; and when a preselected minimum bandwidth connection is not available between the local node and the remote node, and rectangle metadata associated with a changed rectangle of a designated minimum size at the local node has been cached in the memory, operates to receive a rectangle paint message including changed rectangle identification information at the remote node, and when the rectangle metadata has not been cached in the memory, operates to receive the rectangle metadata and rectangle pixel data at the remote node.

5. The apparatus of claim 4 , further comprising:

a display to display the changed foreground window.

6. The apparatus of claim 4 , further comprising:

a cache management module to manage the remote cache buffer display memory using an adaptive replacement cache algorithm.

7. A processor-implemented method to execute on one or more processors that perform the method, comprising:

when window metadata associated with a changed foreground window at a local node has been cached, sending a window copy message including changed window identification information to a remote node, and when the window metadata has not been cached, locally caching the window metadata and sending the window metadata and window pixel data to the remote node without locally caching the window pixel data; and

when a preselected minimum bandwidth connection is not available between the local node and the remote node, and rectangle metadata associated with a changed rectangle of a designated minimum size at the local node has been cached, sending a rectangle paint message including changed rectangle identification information to the remote node, and when the rectangle metadata has not been cached, locally caching the rectangle metadata and sending the rectangle metadata and rectangle pixel data to the remote node without locally caching the rectangle pixel data.

8. The method of claim 7 , further comprising:

sending a cache synchronization message to the remote node with the window pixel data.

9. The method of claim 7 , wherein the window copy message comprises a copyrect function.

10. The method of claim 7 , further comprising:

obtaining information from one of a mirror driver or a video driver to determine whether at least the changed rectangle exists.

11. The method of claim 7 , wherein the designated minimum size is a multiple of approximately 2×2 pixels.

12. The method of claim 7 , wherein sending the window pixel data comprises:

sending encoded window pixel data.

13. The method of claim 7 , wherein locally caching the rectangle metadata comprises:

storing the rectangle metadata in a cache buffer using an adaptive replacement cache algorithm.

14. The method of claim 7 , further comprising:

dividing the changed rectangle into multiple smaller rectangles.

15. The method of claim 7 , further comprising:

calculating a hash code for at least a portion of the changed rectangle when the rectangle metadata has not been cached.

16. The method of claim 7 , further comprising:

maintaining a cache buffer at the local node, the cache buffer to store a window handle associated with the window pixel data and a current state of the changed foreground window.

17. The method of claim 16 , further comprising:

storing the window metadata in the cache buffer, the window metadata comprising information to maintain the cache buffer using an adaptive replacement cache algorithm.

18. A processor-implemented method to execute on one or more processors that perform the method, comprising:

when window metadata associated with a changed foreground window at a local node has been cached, receiving a window copy message including changed window identification information at a remote node, and when the window metadata has not been cached, receiving the window metadata and window pixel data at the remote node; and

when a preselected minimum bandwidth connection is not available between the local node and the remote node, and rectangle metadata associated with a changed rectangle of a designated minimum size at the local node has been cached, receiving a rectangle paint message including changed rectangle identification information at the remote node, and when the rectangle metadata has not been cached, receiving the rectangle metadata and rectangle pixel data at the remote node.

19. The method of claim 18 , further comprising:

maintaining a cache buffer at the remote node, the cache buffer to store the changed rectangle identification information and the rectangle pixel data.

20. The method of claim 18 , further comprising:

storing a hash code associated with the rectangle pixel data in a cache buffer as a key to identify at least a portion of the changed rectangle.

21. The method of claim 18 , further comprising:

receiving the rectangle pixel data along with a hash code of the rectangle pixel data.

22. The method of claim 18 , further comprising:

receiving, at the remote node, a buffer synchronization message in conjunction with the window pixel data.

23. The method of claim 22 , further comprising:

purging windows from a cache buffer at the remote node in response to receiving the buffer synchronization message.

Assignments (16)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0018 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2009
From: GOKARAJU, RAVI KIRAN; NATHAALA, SUDHIR REDDY
To: NOVELL, INC.
Reel/Frame 022490/0772 →