IP Library Granted Patent US 8,898,263
Granted Patent B2
US 8,898,263 · App. 13/114,459 · Granted Nov 25, 2014

Detecting change of settings stored on a remote server by making use of a network filter driver

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,898,263
App. No.
13/114,459
Granted
Nov 25, 2014
Kind
B2
Abstract

Embodiments relate to techniques for efficiently and effectively propagating changes from a server to a client using a network filter driver configured to monitor network traffic for a signature. Techniques are presented for synchronizing settings with a remote server device. A method is provided, including (a) monitoring web-based messages exchanged between the computerized client device and the remote server device across a network, (b) detecting a pre-defined pattern within a particular message of the monitored web-based messages exchanged between the computerized client device and the remote server device, (c) in response to detecting the pre-defined pattern within the particular message, evaluating the particular message to determine whether a set of server settings has changed, and (d) in response to determining that the set of server settings has changed, updating a local version of the set of server settings. A corresponding apparatus and computer program product are also provided.

Claims (102)

1. In a computerized client device, a method of synchronizing settings with a remote server device, the method comprising:

monitoring web-based messages exchanged between the computerized client device and the remote server device across a network;

detecting a pre-defined pattern within a resource identifier (RI) field of a particular message of the monitored web-based messages exchanged between the computerized client device and the remote server device, wherein the RI field of the particular message includes both the pre-defined pattern and a received hash value;

in response to detecting the pre-defined pattern within the RI field of the particular message, evaluating the particular message to determine whether a set of server settings has changed by:

comparing the received hash value to a locally-stored hash value; and

in response to the locally-stored hash value equaling the received hash value, determining that the particular message indicates that the set of server settings has not changed;

otherwise, determining that the particular message indicates that the set of server settings has changed; and

in response to determining that the set of server settings has changed, updating a local version of the set of server settings.

2. The method of claim 1 wherein:

a web browser, a network filter driver within a network driver stack, and a local service to communicate with the remote server device are running on the computerized client device;

the web-based messages are exchanged between the web browser and a web server running on the remote server device;

monitoring the web-based messages is performed by the network filter driver, running on the computerized client device;

detecting the pre-defined pattern is performed by the network filter driver, running on the computerized client device; and

evaluating the particular message to determine whether the set of server settings has changed includes:

at the network filter driver, running on the computerized client device, sending the particular message to the local service for evaluation; and

at the local service, running on the computerized client device, determining whether the particular message indicates that the set of server settings has changed.

3. The method of claim 2 wherein updating the local version of the set of server settings includes:

if the particular message indicates that the set of server settings has changed, then, at the local service:

communicating with the remote server device across the network to obtain the set of server settings; and

locally storing the obtained set of server settings as the local version of the set of server settings; and

otherwise, refraining from communicating with the remote server device across the network to obtain the set of server settings.

4. The method of claim 3 wherein:

the received hash value is located after the pre-defined pattern within the RI field of the particular message, and wherein

sending the particular message to the local service for evaluation includes sending the hash value to the local service.

5. The method of claim 2 wherein determining whether the particular message indicates that the set of server settings has changed includes:

communicating with the remote server device across the network to obtain the set of server settings; and

comparing the obtained set of server settings to the local version of the set of server settings.

6. The method of claim 5 wherein detecting the pre-defined pattern within the particular message includes detecting that the resource identifier (RI) field of the particular message is identical to the pre-defined pattern.

7. The method of claim 2 wherein:

monitoring the web-based messages includes:

receiving web-based requests from the web browser directed to the web server running on the remote server device from the network driver stack;

extracting a resource identifier (RI) field of each received web-based request; and

sending the web-based requests back to the network driver stack; and

detecting the pre-defined pattern within the particular message includes detecting the pre-defined pattern within the extracted RI field of the particular message, contents of the extracted RI field having previously been provided to the web browser by the remote server device.

8. The method of claim 7 wherein the method further includes:

at the web browser, sending a set of setting changes to the web server running on the remote server device;

in response to sending the set of setting changes, receiving from the web server running on the remote server device, at the web browser, a web-based response message, the web-based response message including a redirect command, the redirect command including the contents of the extracted RI field; and

in response to receiving the web-based response message, sending the particular message from the web browser to the remote server device via the network driver stack, the particular message including the extracted RI field, and the particular message being a web-based request for a page identified by the contents of the extracted RI field.

9. The method of claim 7 wherein the method further includes:

at the web browser, sending a set of setting changes to the web server running on the remote server device;

in response to sending the set of setting changes, receiving from the web server running on the remote server device, at the web browser, a confirmation page, the confirmation page including an embedded element, the embedded element having an address attribute set to include the contents of the extracted RI field; and

in response to receiving the confirmation page, sending the particular message from the web browser to the remote server device via the network driver stack, the particular message including the extracted RI field, and the particular message being a web-based request for an element identified by the contents of the extracted RI field.

10. The method of claim 9 wherein:

receiving the confirmation page includes receiving the confirmation page across a secured HTTPS connection, the address attribute of the embedded element being an unsecured HTTP uniform resource identifier; and

sending the particular message from the web browser to the remote server device includes sending a GET request for the extracted RI field across an unsecured HTTP connection.

11. The method of claim 2 wherein:

monitoring the web-based messages includes:

receiving web-based response messages from the web server running on the remote server device directed to the web browser from the network driver stack;

extracting a resource identifier (RI) field of each received web-based response message; and

sending the web-based response messages back to the network driver stack; and

detecting the pre-defined pattern within the particular message includes detecting the pre-defined pattern within the extracted RI field of the particular message.

12. The method of claim 2 wherein:

the local service is a backup application to perform backup of local files to a backup server application running on the remote server device, the backup server application storing the set of server settings on the remote server device to direct the operation of the backup server application; and

the method further includes, at the web browser, sending, to the web server running on the remote server device, a set of changes to the set of server settings.

13. The method of claim 12 wherein the set of changes to the set of server settings includes one or more settings selected from the group consisting of:

a choice of what files to backup;

a choice of what folders to backup;

a choice of what devices to backup;

a choice of what devices to exclude from backup;

a choice of what folders to exclude from backup;

a choice of what files to exclude from backup;

a choice of when to perform periodic backups; and

a choice of how often to perform periodic backups.

14. A non-transitory computer readable medium that stores instructions, which, when executed by a computer, cause the computer to:

monitor web-based messages exchanged across a network between a web browser operating on the computer and a web server running on a remote server device;

detect a pre-defined pattern within a resource identifier (RI) field of a particular message of the monitored web-based messages exchanged between the web browser operating on the computer and the web server running on the remote server device, wherein the RI field of the particular message includes both the pre-defined pattern and a received hash value; and

in response to detecting the pre-defined pattern within the particular message, send the particular message to a local service for evaluation of the particular message to determine whether a set of server settings has changed includes instructions to:

compare the received hash value to a locally-stored hash value; and

in response to the locally-stored hash value equaling the received hash value, determine that the particular message indicates that the set of server settings has not changed;

otherwise, determine that the particular message indicates that the set of server settings has changed.

15. The non-transitory computer readable medium of claim 14 wherein the instructions, when executed by the computer further cause the computer to:

detect that the resource identifier (RI) field of the particular message includes both the pre-defined pattern and the received hash value, the received hash value being located after the pre-defined pattern within the RI field of the particular message; and

send the hash value to the local service.

16. The non-transitory computer readable medium of claim 14 wherein the instructions, when executed by the computer further cause the computer to detect that the resource identifier (RI) field of the particular message is identical to the pre-defined pattern.

17. The non-transitory computer readable medium of claim 14 wherein the instructions, to monitor the web-based messages and when executed by the computer further cause the computer to:

receive web-based requests from the web browser directed to the web server running on the remote server device from a network driver stack;

extract a resource identifier (RI) field of each received web-based request; and

send the web-based requests back to the network driver stack; and

detect the pre-defined pattern within the extracted RI field of the particular message, contents of the extracted RI field having previously been provided to the web browser by the remote server device.

18. The non-transitory computer readable medium of claim 14 wherein the instructions, to monitor the web-based messages and when executed by the computer further cause the computer to:

receive web-based response messages from the web server running on the remote server device directed to the web browser from a network driver stack;

extract a resource identifier (RI) field of each received web-based response message; and

send the web-based response messages back to the network driver stack; and

detect the pre-defined pattern within the extracted RI field of the particular message.

19. An apparatus comprising:

a network interface for communicating with a remote server device across a network;

a processor; and

a memory on which is stored machine readable instructions that are to cause the processor to:

monitor web-based messages exchanged across the network between a web browser operating on the apparatus and a web server running on the remote server device for a pre-defined pattern within a resource identifier of the monitored web-based messages;

detect the pre-defined pattern within a particular message of the monitored web-based messages exchanged between the web browser operating on the apparatus and the web server running on the remote server device, wherein the RI field of the particular message includes both the pre-defined pattern and a received hash value; and

in response to detecting the pre-defined pattern within the particular message, evaluate the particular message to determine whether a set of server settings has changed includes machine readable instructions that are to further cause the processor to:

compare the received hash value to a locally-stored hash value; and

in response to the locally-stored hash value equaling the received hash value, determine that the particular message indicates that the set of server settings has not changed;

otherwise, determine that the particular message indicates that the set of server settings has changed; and

in response to determining that the set of server settings has changed, update a local version of the set of server settings.

20. In a computerized client device, a method of receiving a command from a remote server device, the method comprising:

at a network filter driver of a network driver stack, monitoring web-based messages exchanged between a web browser running on the computerized client device and a web server running on the remote server device across a network for a pre-defined pattern within a resource identifier (RI) field of the monitored web-based messages;

at the network filter driver, detecting the pre-defined pattern followed by a control string within a particular message of the monitored web-based messages exchanged between the web browser and the web server, wherein the RI field of the particular message includes both the pre-defined pattern and a received hash value; and

in response to detecting the pre-defined pattern followed by the control string within the particular message, sending a command from the network filter driver to a local service running on the computerized client device, the command including the control string as a parameter, evaluating , by the local service, the particular message to determine whether a set of server settings has changed by:

comparing the received hash value to a locally-stored hash value; and

in response to the locally-stored hash value equaling the received hash value, determining that the particular message indicates that the set of server settings has not changed;

otherwise, determining that the particular message indicates that the set of server settings has changed.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Feb 25, 2020
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 052010/0029 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: AUTONOMY, INC.
To: ENTIT SOFTWARE LLC
Reel/Frame 042660/0373 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2014
From: IRON MOUNTAIN INCORPORATED
To: AUTONOMY, INC.
Reel/Frame 033867/0779 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME "IRON MOUNTAIN INFORMATION MANAGEMENT, INC." PREVIOUSLY RECORDED ON REEL 026688 FRAME 0367. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE NAME SHOULD BE "IRON MOUNTAIN INCORPORATED". Recorded Oct 9, 2013
From: SUBRAMANYA, MANJUNATH BHARADWAJ
To: IRON MOUNTAIN INCORPORATED
Reel/Frame 031629/0556 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2012
From: IRON MOUNTAIN INCORPORATED
To: AUTONOMY, INC.
Reel/Frame 029513/0863 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2011
From: BHARADWAJ SUBRAMANYA, MANJUNATH
To: IRON MOUNTAIN INFORMATION MANAGEMENT, INC.
Reel/Frame 026688/0367 →