IP Library Granted Patent US 9,058,400
Granted Patent B2
US 9,058,400 · App. 13/585,901 · Granted Jun 16, 2015

HTTP performance enhancement based on delta transfer

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 9,058,400
App. No.
13/585,901
Granted
Jun 16, 2015
Kind
B2
Abstract

A method, computer program product, and computer system for client-server communication based on delta transfer. A server of the computer system receives from a client a HTTP request for transferring a current image page, compares the current image page and a saved image page which is stored on the server for the client. Based on the comparison, the server of the computer system constructs delta contents between the current image page and the saved image page. The server of the computer system updates the saved image page on the server with the current image page and sends a HTTP response comprising the delta contents to the client.

Claims (59)

1. A method implemented by a computer system for client-server communication based on delta transfer, the method comprising:

receiving, from a first client and by a server, a first HTTP request for transferring a current image page;

determining, by the server, that the first client does not have a client ID saved in a table on the server;

allocating, by the server, a new client ID to the first client and building server relationship entries in the table for the first client, in response to determining that the first client does not have a client ID saved in the table on the server, wherein the server relationship entries include the new client ID, a URL, an image page path, and a time stamp;

in response to determining that the new client ID is allocated, saving a new image page on a repository of the server, and sending the new image page as first delta contents in a HTTP response to the first client;

writing the new client ID into a cookie;

receiving, from a second client and by the server, a second HTTP request for transferring the current image page;

determining, by the server, that the second client has a client ID saved in the table on the server;

determining, by the server, that a saved image page for the client ID of the second client exists on the repository of the server, in response to determining that the second client has the client ID saved in the table;

retrieving, by the server, the saved image page from the repository, in response to determining that the saved image page for the client ID of the second client exists on the repository;

comparing, by the server, the current image page and the saved image page;

constructing, by the server, second delta contents between the current image page and the saved image page, wherein the second delta contents comprises at least one of an add operation and a modify operation, in addition to a location of an update defined by an ancestor and a sub path, and a content of an updated node;

updating, on the server, the saved image page with the current image page; and

sending, from the server to the second client, a HTTP response comprising the second delta contents.

2. The method of claim 1 , further comprising:

extracting, by the second client, the second delta contents, in response to receiving the HTTP response comprising the second delta contents;

modifying, by the client, a prior DOM tree to generate a new DOM tree, based on the second delta contents; and

generating, on the client, the current image page, based on the new DOM tree.

3. The method of claim 1 , wherein constructing the second delta contents is based on a comparison between whole contents of the current image page and whole contents of the saved image page.

4. A computer program product for client-server communication based on delta transfer, the computer program product comprising:

one or more computer-readable tangible storage devices and program instructions stored on at least one of the one or more tangible storage devices, the program instructions comprising:

program instructions to receive, from a first client and by a server, a first HTTP request for transferring a current image page;

program instructions to determine, by the server, that the first client does not have a client ID saved in a table on the server;

program instructions to allocate, by the server, a new client ID to the first client and to build server relationship entries in the table for the first client, in response to determining that the first client does not have a client ID saved in the table on the server, wherein the server relationship entries include the new client ID, a URL, an image page path, and a time stamp;

program instructions to, in response to determining that the new client ID is allocated, save a new image page on a repository of the server, and send the new image page as first delta contents in a HTTP response to the first client;

program instructions to write the new client ID into a cookie;

program instructions to receive, from a second client and by the server, a second HTTP request for transferring the current image page;

program instructions to determine, by the server, that the second client has a client ID saved in the table on the server;

program instructions to determine, by the server, that a saved image page for the client ID of the second client exists on the repository of the server, in response to determining that the second client has the client ID saved in the table;

program instructions to retrieve, by the server, the saved image page from the repository, in response to determining that the saved image page for the client ID of the second client exists on the repository;

program instructions to compare, by the server, the current image page and the saved image page;

program instructions to construct, by the server, second delta contents between the current image page and the saved image page, wherein the second delta contents comprises at least one of an add operation and a modify operation, in addition to a location of an update defined by an ancestor and a sub path, and a content of an updated node;

program instructions to update, on the server, the saved image page with the current image page; and

program instructions to send, from the server to the second client, a HTTP response comprising the second delta contents.

5. The computer program product of claim 4 , further comprising:

program instructions to extract, by the second client, the second delta contents, in response to receiving the HTTP response comprising the second delta contents;

program instructions to modify, by the client, a prior DOM tree to generate a new DOM tree, based on the second delta contents; and

program instructions to generate, on the client, the current image page, based on the new DOM tree.

6. The computer program product of claim 4 , wherein constructing the second delta contents is based on a comparison between whole contents of the current image page and whole contents of the saved image page.

7. A computer system for client-server communication based on delta transfer, the computer system comprising:

one or more processors, one or more computer-readable tangible storage devices, and program instructions stored on at least one of the one or more storage devices for execution by at least one of the one or more processors, the program instructions comprising:

program instructions to receive, from a first client and by a server, a first HTTP request for transferring a current image page;

program instructions to determine, by the server, that the first client does not have a client ID saved in a table on the server;

program instructions to allocate, by the server, a new client ID to the first client and to build server relationship entries in the table for the first client, in response to determining that the first client does not have a client ID saved in the table on the server, wherein the server relationship entries include the new client ID, a URL, an image page path, and a time stamp;

program instructions to, in response to determining that the new client ID is allocated, save a new image page on a repository of the server, and send the new image page as first delta contents in a HTTP response to the first client;

program instructions to write the new client ID into a cookie;

program instructions to receive, from a second client and by the server, a second HTTP request for transferring the current image page;

program instructions to determine, by the server, that the second client has a client ID saved in the table on the server;

program instructions to determine, by the server, that a saved image page for the client ID of the second client exists on the repository of the server, in response to determining that the second client has the client ID saved in the table;

program instructions to retrieve, by the server, the saved image page from the repository, in response to determining that the saved image page for the client ID of the second client exists on the repository;

program instructions to compare, by the server, the current image page and the saved image page;

program instructions to construct, by the server, second delta contents between the current image page and the saved image page, wherein the second delta contents comprises at least one of an add operation and a modify operation, in addition to a location of an update defined by an ancestor and a sub path, and a content of an updated node;

program instructions to update, on the server, the saved image page with the current image page; and

program instructions to send, from the server to the second client, a HTTP response comprising the second delta contents.

8. The computer system of claim 7 , further comprising:

program instructions to extract, by the second client, the second delta contents, in response to receiving the HTTP response comprising the second delta contents;

program instructions to modify, by the client, a prior DOM tree to generate a new DOM tree, based on the second delta contents; and

program instructions to generate, on the client, the current image page, based on the new DOM tree.

9. The computer system of claim 7 , wherein constructing the second delta contents is based on a comparison between whole contents of the current image page and whole contents of the saved image page.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050304/0277 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENT CONTAINING TYPO ERRORS PREVIOUSLY RECORDED AT REEL: 037101 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037689/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037101/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2012
From: HOURSELT, ANDREW G.; HU, PEI MING; LUO, WEN GANG; YANG, HUI; YIN, YUAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028788/0380 →