Differencing client/server communication system for use with CGI forms
First Claim
1. A method of reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer, the method comprising:
- storing a data stream from the first application to be provided to the second application in response to a CGI request from the second application in a cache resident in the first computer to create a server base cache entry;
storing a data stream to be provided to the second application in response to a CGI request from the second application in a cache resident in the second computer to create a client base cache entry;
evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client CGI base form;
interrogating requests from the second application to determine if a server base cache entry corresponding to the interrogated request exists to provide a server CGI base form;
intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link;
comparing the intercepted response to the server CGI base form to provide difference data corresponding to the difference between the intercepted response and the server CGI base form;
sending the difference data to the second computer over the external communication link;
acquiring the difference data transmitted over the external communication link sent by the first computer;
reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client CGI base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response;
selectively updating the client cache entry corresponding to the client CGI base form so as to provide a new client CGI base form wherein the CGI base form is updated with the received difference data if an update criteria is met; and
providing the reconstructed data stream corresponding to the intercepted response to the second application.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus and computer program product for reducing the data transmitted over an external communication link from a first application resident in a first computer to a second application resident in a second computer. The method, apparatus and computer program product include storing a data stream from the first application to be provided to the second application in response to a request from the second application in a cache resident in the first computer to create a server base cache entry and in a cache resident in the second computer to create a client base cache entry. Requests from the second application are interrogated to determine if a client base cache entry corresponding to the interrogated request exists and to determine if a server base cache entry corresponding to the interrogated request exists. The response data stream is intercepted prior to transmission of the response on the external communication link and compared to the server base cache entry to provide difference data corresponding to the difference between the intercepted response and the server base cache entry. The difference data is sent over the external communication link and acquired by the second computer which reconstructs the response data stream by combining the client base cache entry with the difference data to create a response data stream which is provided to the second application.
146 Citations
48 Claims
-
1. A method of reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer, the method comprising:
-
storing a data stream from the first application to be provided to the second application in response to a CGI request from the second application in a cache resident in the first computer to create a server base cache entry; storing a data stream to be provided to the second application in response to a CGI request from the second application in a cache resident in the second computer to create a client base cache entry; evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client CGI base form; interrogating requests from the second application to determine if a server base cache entry corresponding to the interrogated request exists to provide a server CGI base form; intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; comparing the intercepted response to the server CGI base form to provide difference data corresponding to the difference between the intercepted response and the server CGI base form; sending the difference data to the second computer over the external communication link; acquiring the difference data transmitted over the external communication link sent by the first computer; reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client CGI base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response; selectively updating the client cache entry corresponding to the client CGI base form so as to provide a new client CGI base form wherein the CGI base form is updated with the received difference data if an update criteria is met; and providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (2, 3, 4)
-
-
5. An apparatus for reducing the amount of data transmitted from a first application resident in a first computer to a second application resident in a second computer in response to a request from the second application wherein the data is transmitted over an external communication link from the first computer to the second computer, the apparatus comprising:
-
means for storing a data stream from the first application to be provided to the second application in response to a CGI request from the second application in a cache resident in the first computer to create a server base cache entry; means for storing a data stream to be provided to the second application in response to a CGI request from the second application in a cache resident in the second computer to create a client base cache entry; means for evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client CGI base form; means for interrogating requests from the second application to determine if a server base cache entry corresponding to the interrogated request exists to provide a server CGI base form; means for intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; means for comparing the intercepted response to the server CGI base form to provide difference data corresponding to the difference between the intercepted response and the server base form; means for sending the difference data to the second computer over the external communication link; means for acquiring the difference data transmitted over the external communication link sent by the first computer; means for reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client CGI base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response; means for selectively updating the client cache entry corresponding to the client CGI base form so as to provide a new client CGI base form wherein the CGI base form is updated with the received difference data if an update criteria is met; and means for providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (6, 7, 8)
-
-
9. A computer program product for reducing the amount of data transmitted from a first application resident in a first computer to a second application resident in a second computer in response to a request from the second application wherein the data is transmitted over an external communication link from the first computer to the second computer, the computer program product comprising:
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising; computer readable program code means for storing a data stream from the first application to be provided to the second application in response to a CGI request from the second application in a cache resident in the first computer to create a server base cache entry; computer readable program code means for storing a data stream to be provided to the second application in response to a CGI request from the second application in a cache resident in the second computer to create a client base cache entry; computer readable program code means for evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client CGI base form; computer readable program code means for interrogating requests from the second application to determine if a server base cache entry corresponding to the interrogated request exists to provide a server CGI base form; computer readable program code means for intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; computer readable program code means for comparing the intercepted response to the server base form to provide difference data corresponding to the difference between the intercepted response and the server CGI base form; computer readable program code means for sending the difference data to the second computer over the external communication link; computer readable program code means for acquiring the difference data transmitted over the external communication link sent by the first computer;
computer readable program code means for reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client CGI base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response;computer readable program code means for selectively updating the client cache entry corresponding to the client CGI base form so as to provide a new client CGI base form wherein the CGI base form is updated with the received difference data if an update criteria is met; and computer readable program code means for providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (10, 11, 12)
-
13. A method of reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer, the method comprising:
-
storing a data stream from the first application to be provided to the second application in response to a request from the second application in a cache resident in the first computer to create a server base cache entry; storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; interrogating requests from the second application to determine if a server base cache entry corresponding to the interrogated request exists to provide a server base form; intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; comparing the intercepted response to the server base form to provide difference data corresponding to the difference between the intercepted response and the server base form; sending the difference data to the second computer over the external communication link; acquiring the difference data transmitted over the external communication link sent by the first computer; providing the reconstructed data stream corresponding to the intercepted response to the second application, determining if the server base form is identical to the client base form; transmitting the server base form to the second computer over the external communication link if the server base form is not identical to the client base form; reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response if the server base form is not transmitted to the second computer and reconstructing the intercepted response data stream corresponding to the response from the first application by combining the server base form received over the external communication link with the difference data received over the external communication link to create a data stream corresponding to the intercepted response if the server base form is transmitted to the second computer; and updating the client base form corresponding to the interrogated request by storing the received server base form as the client base cache entry corresponding to the interrogated request. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. An apparatus for reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer, comprising:
-
means for storing a data stream from the first application to be provided to the second application in response to a request from the second application in a cache resident in the first computer to create a server base cache entry; means for storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; means for evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; means for interrogating requests from the second application to determine if a server base cache entry corresponding to the interrogated request exists to provide a server base form; means for intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; means for comparing the intercepted response to the server base form to provide difference data corresponding to the difference between the intercepted response and the server base form; means for sending the difference data to the second computer over the external communication link; means for acquiring the difference data transmitted over the external communication link sent by the first computer; means for providing the reconstructed data stream corresponding to the intercepted response to the second application; means for determining if the server base form is identical to the client base form; means for transmitting the server base form to the second computer over the external communication link if the server base form is not identical to the client base form; means for reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response if the server base form is not transmitted to the second computer and for reconstructing the intercepted response data stream corresponding to the response from the first application by combining the server base form received over the external communication link with the difference data received over the external communication link to create a data stream corresponding to the intercepted response if the server base form is transmitted to the second computer; and means for updating the client base form corresponding to the interrogated request by storing the received server base form as the client base cache entry corresponding to the interrogated request. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. A computer program product for reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer, comprising:
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising; computer readable program code means for storing a data stream from the first application to be provided to the second application in response to a request from the second application in a cache resident in the first computer to create a server base cache entry; computer readable program code means for storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; computer readable program code means for evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; computer readable program code means for interrogating requests from the second application to determine if a server base cache entry corresponding to the interrogated request exists to provide a server base form; computer readable program code means for intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; computer readable program code means for comparing the intercepted response to the server base form to provide difference data corresponding to the difference between the intercepted response and the server base form; computer readable program code means for sending the difference data to the second computer over the external communication link; computer readable program code means for acquiring the difference data transmitted over the external communication link sent by the first computer; computer readable program code means for providing the reconstructed data stream corresponding to the intercepted response to the second application. computer readable program code means for determining if the server base form is identical to the client base form; computer readable program code means for transmitting the server base form to the second computer over the external communication link if the server base form is not identical to the client base form; computer readable program code means for reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response if the server base form is not transmitted to the second computer and for reconstructing the intercepted response data stream corresponding to the response from the first application by combining the server base form received over the external communication link with the difference data received over the external communication link to create a data stream corresponding to the intercepted response if the server base form is transmitted to the second computer; and computer readable program code means for updating the client base form corresponding to the interrogated request by storing the received server base form as the client base cache entry corresponding to the interrogated request. - View Dependent Claims (28, 29, 30, 31, 32, 33)
-
34. A method of reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer, the method comprising:
-
storing a plurality of data stream from the first application to be provided to the second application corresponding to a request from the second application in a cache resident in the first computer to create a plurality of server base cache entries; storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; interrogating requests from the second application to determine if a plurality of server base cache entries corresponding to the interrogated request exist to provide a plurality of server base forms; determining if one of the plurality of server base forms is identical to the client base form; intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; comparing the intercepted response to the one of the plurality of server base forms which is identical to the client base form to provide difference data corresponding to the difference between the intercepted response and the server base form; sending the difference data to the second computer over the external communication link; acquiring the difference data transmitted over the external communication link sent by the first computer; reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response; and providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (35, 36)
-
-
37. An apparatus for reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer, comprising:
-
means for storing a plurality of data stream from the first application to be provided to the second application corresponding to a request from the second application in a cache resident in the first computer to create a plurality of server base cache entries; means for storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; means for evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; means for interrogating requests from the second application to determine if a plurality of server base cache entries corresponding to the interrogated request exist to provide a plurality of server base forms; means for determining if one of the plurality of server base forms is identical to the client base form; means for intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; means for comparing the intercepted response to the one of the plurality of server base forms which is identical to the client base form to provide difference data corresponding to the difference between the intercepted response and the server base form; means for sending the difference data to the second computer over the external communication link; means for acquiring the difference data transmitted over the external communication link sent by the first computer; means for reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response; and means for providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (38, 39)
-
-
40. A computer program product for reducing the data transmitted over a communication link from a first application resident in a first computer and to a second application resident in a second computer wherein the data is transmitted over an external communication link from the first computer to the second computer, comprising:
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising; computer readable program code means for storing a plurality of data stream from the first application to be provided to the second application corresponding to a request from the second application in a cache resident in the first computer to create a plurality of server base cache entries; computer readable program code means for storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; computer readable program code means for evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; computer readable program code means for interrogating requests from the second application to determine if a plurality of server base cache entries corresponding to the interrogated request exist to provide a plurality of server base forms; computer readable program code means for determining if one of the plurality of server base forms is identical to the client base form; computer readable program code means for intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; computer readable program code means for comparing the intercepted response to the one of the plurality of server base forms which is identical to the client base form to provide difference data corresponding to the difference between the intercepted response and the server base form; computer readable program code means for sending the difference data to the second computer over the external communication link; computer readable program code means for acquiring the difference data transmitted over the external communication link sent by the first computer; computer readable program code means for reconstructing the response data stream corresponding to the communication from the first application from the client/server specific data stream received over the external communication link by combining the client base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response; and computer readable program code means for providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (41, 42)
-
43. A method of reducing the data transmitted over an external communication link from a first application resident in a first computer to a second application resident in a second computer, the method comprising:
-
storing a data stream from the first application to be provided to the second application in response to a request from the second application in a cache resident in the first computer to create a server base cache entry; storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; maintaining a plurality of difference data sets which correspond to the request from the second application and which represent the differences between successive server cache entries to provide archival difference data; maintaining a plurality of CRC entries wherein each of said plurality of CRC entries is associated with one of said plurality of difference data sets and uniquely identify the server base form from which said difference data set was derived; interrogating requests from the second application to determine if a plurality of difference data sets and CRCs exist corresponding to the request from the second application; determining if one of said plurality of CRCs is corresponds to a server base form which is identical to the client base form; intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; comparing the intercepted response to the server base form to provide difference data corresponding to the difference between the intercepted response and the server base form; updating the server cache entry with the data stream from the first application in response to the request from the second application; sending the archival difference data corresponding to the CRC which corresponds to the client base form, the successive archival difference data sets and the difference data calculated by said comparing step to the second application over the external communication link; acquiring the difference data from the external communication link; reconstructing the response data stream corresponding to the communication from the first application by successively combining the client base form with the acquired difference data to create a response data stream corresponding to the intercepted response; updating the client cache entry corresponding to the request from the second application with the reconstructed data stream; and providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (44)
-
-
45. An apparatus for reducing the data transmitted over an external communication link from a first application resident in a first computer to a second application resident in a second computer, comprising:
-
means for storing a data stream from the first application to be provided to the second application in response to a request from the second application in a cache resident in the first computer to create a server base cache entry; means for storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; means for evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; means for maintaining a plurality of difference data sets which correspond to the request from the second application and which represent the differences between successive server cache entries to provide archival difference data; means for maintaining a plurality of CRC entries wherein each of said plurality of CRC entries is associated with one of said plurality of difference data sets and uniquely identify the server base form from which said difference data set was derived; means for interrogating requests from the second application to determine if a plurality of difference data sets and CRCs exist corresponding to the request from the second application; means for determining if one of said plurality of CRCs is corresponds to a server base form which is identical to the client base form; means for intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; means for comparing the intercepted response to the server base form to provide difference data corresponding to the difference between the intercepted response and the server base form; means for updating the server cache entry with the data stream from the first application in response to the request from the second application; means for sending the archival difference data corresponding to the CRC which corresponds to the client base form, the successive archival difference data sets and the difference data calculated by said comparing step to the second application over the external communication link; means for acquiring the difference data from the external communication link; means for reconstructing the response data stream corresponding to the communication from the first application by successively combining the client base form with the acquired difference data to create a response data stream corresponding to the intercepted response; means for updating the client cache entry corresponding to the request from the second application with the reconstructed data stream; and means for providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (46)
-
-
47. A computer program product for reducing the data transmitted over an external communication link from a first application resident in a first computer to a second application resident in a second computer, the computer program product comprising:
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising; computer readable program code means for storing a data stream from the first application to be provided to the second application in response to a request from the second application in a cache resident in the first computer to create a server base cache entry; computer readable program code means for storing a data stream to be provided to the second application in response to a request from the second application in a cache resident in the second computer to create a client base cache entry; computer readable program code means for evaluating the requests from the second application to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form; computer readable program code means for maintaining a plurality of difference data sets which correspond to the request from the second application and which represent the differences between successive server cache entries to provide archival difference data; computer readable program code means for maintaining a plurality of CRC entries wherein each of said plurality of CRC entries is associated with one of said plurality of difference data sets and uniquely identify the server base form from which said difference data set was derived; computer readable program code means for interrogating requests from the second application to determine if a plurality of difference data sets and CRCs exist corresponding to the request from the second application; computer readable program code means for determining if one of said plurality of CRCs is corresponds to a server base form which is identical to the client base form; computer readable program code means for intercepting the data stream corresponding to the response originated by the first application in response to the interrogated request from the second application prior to transmission of the response on the external communication link; computer readable program code means for comparing the intercepted response to the server base form to provide difference data corresponding to the difference between the intercepted response and the server base form; computer readable program code means for updating the server cache entry with the data stream from the first application in response to the request from the second application; computer readable program code means for sending the archival difference data corresponding to the CRC which corresponds to the client base form, the successive archival difference data sets and the difference data calculated by said comparing step to the second application over the external communication link; computer readable program code means for acquiring the difference data from the external communication link; computer readable program code means for reconstructing the response data stream corresponding to the communication from the first application by successively combining the client base form with the acquired difference data to create a response data stream corresponding to the intercepted response; computer readable program code means for updating the client cache entry corresponding to the request from the second application with the reconstructed data stream; and computer readable program code means for providing the reconstructed data stream corresponding to the intercepted response to the second application. - View Dependent Claims (48)
Specification