System and method for reducing network traffic between two computing devices
First Claim
1. A method of reducing the size of a message generated by a first computer for a second computer, comprising:
- comparing the message at the first computer to one or more messages previously transmitted to the second computer;
generating a delta message to describe a difference between said message and one of said previous messages;
examining, in one of said message and said delta message, a value and a first data type associated with said value;
replacing said first data type with a second data type requiring less storage space for said value;
comparing a character string in one of said message and said delta message with a set of character strings stored in a first memory of the first computer; and
replacing said character string with an identifier of said character string if said character string matches one of said character strings in said set of character strings.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and methods are provided for reducing the size of a message sent from a first computing device to a second computing device. The type of a data value of a message may be altered for transmission; the second computer recognizes a special data type assigned to the data value and restores the original data type. Also, data values may be buffered, and identifiers (e.g., buffer indexes) sent in their place. Both devices maintain similar buffers and the second device uses the identifier to retrieve the data value. Further, the contents of a new message may be described by how they differ from the contents of a previous message. A delta message is generated to describe the differences and identify the previous message. Upon receipt of the delta message, the second computer retrieves the previous message and uses it and the delta message to reconstruct the new message.
41 Citations
21 Claims
-
1. A method of reducing the size of a message generated by a first computer for a second computer, comprising:
-
comparing the message at the first computer to one or more messages previously transmitted to the second computer;
generating a delta message to describe a difference between said message and one of said previous messages;
examining, in one of said message and said delta message, a value and a first data type associated with said value;
replacing said first data type with a second data type requiring less storage space for said value;
comparing a character string in one of said message and said delta message with a set of character strings stored in a first memory of the first computer; and
replacing said character string with an identifier of said character string if said character string matches one of said character strings in said set of character strings. - View Dependent Claims (2, 3, 4, 5)
transmitting said delta message if said delta message is smaller than said message; and
transmitting said message otherwise.
-
-
4. The method of claim 1, wherein said examining comprises determining whether said first data type is a predetermined data type.
-
5. The method of claim 1, further comprising storing said character string in said first memory.
-
6. A method of reducing the size of a communication originated on a first computer for transmission to a second computer, the communication identifying an object on the second computer and including one or more descriptors corresponding to properties of the object, the method comprising:
-
examining a value of a first data field of a communication from a first computer to a second computer, wherein a first data type describes said value;
determining whether said value can be described by a second data type;
replacing said first data type with said second data type;
examining a first sequence of computer readable symbols in a second data field of said communication;
searching a first memory for said first sequence of computer readable symbols, wherein said first memory is configured to store one or more sequences of computer readable symbols and wherein an identifier is associated with each of said one or more sequences of computer readable symbols; and
if said first memory includes said first sequence of computer readable symbols, replacing said first sequence of computer readable symbols with said identifier. - View Dependent Claims (7, 8, 9, 10, 11)
generating a delta communication representing a difference between said communication and a communication sent previously to said second computer, wherein said delta communication enables said second computer to reconstruct said communication from said previous communication; and
replacing said communication with said delta communication.
-
-
11. The method of claim 10, wherein said generating comprises:
-
selecting a second communication previously sent to said second computer;
copying a first descriptor of a first set of descriptors in said communication into said delta communication, wherein said first descriptor includes a first property identifier that was not included in said second communication;
adding a mask to said delta communication to identify a second descriptor of a second set of descriptors in said second communication, wherein said second descriptor includes a second property identifier that is not included in said communication.
-
-
12. A method of transmitting a delta message from a first computing device to a second computing device in place of an original message, comprising:
-
identifying an original message on a first computing device for transmission to a second computing device, wherein said original message pertains to an object on the second computing device and includes a first set of descriptors corresponding to a first set of properties of said object and wherein each descriptor in said first set of descriptors includes a property identifier;
selecting a previous message transmitted from the first computing device to the second computing device, wherein said previous message pertains to said object and includes a second set of descriptors corresponding to a second set of properties of said object and wherein each descriptor in said second set of descriptors includes a property identifier;
creating a delta message in which to describe said original message in relation to said previous message;
selecting a first descriptor of said original message;
determining whether a first property identifier of said first descriptor matches a second property identifier of a second descriptor of said previous message;
if said first property identifier matches said second property identifier, determining whether a data value in said first descriptor matches a data value in said second descriptor;
adding said first descriptor to said delta message; and
transmitting said delta message, in place of said original message, from the first computing device to the second computing device. - View Dependent Claims (13, 14, 15, 16)
if any property identifiers in said second set of descriptors are not in said first set of descriptors, adding a mask to said delta message to identify each descriptor in said second set of descriptors having a property identifier not included in said first set of descriptors.
-
-
14. The method of claim 12, further comprising identifying in said delta message the location in said original message of said first descriptor.
-
15. The method of claim 12, further comprising prior to said transmitting:
-
examining a data value in a descriptor of said delta message;
examining a first data type in said descriptor, wherein said first data type describes said data value;
determining whether said data value can be described by a second data type that requires less space in said delta message for said data value; and
replacing said first data type with said second data type.
-
-
16. The method of claim 12, further comprising prior to said transmitting:
-
examining a data value in a descriptor of said delta message;
searching a first memory of the first computing device for said data value;
if said data value is stored in said first memory, replacing said data value with an identifier associated with said data value in said first memory; and
if said data value is not stored in said first memory, storing said data value in said first memory.
-
-
17. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of reducing the size of a message generated by a first computer for a second computer, the method comprising:
-
comparing the message at the first computer to one or more messages previously transmitted to the second computer;
generating a delta message to describe a difference between said message and one of said previous messages;
examining, in one of said message and said delta message, a value and a first data type associated with said value;
replacing said first data type with a second data type requiring less storage space for said value;
comparing a character string in one of said message and said delta message with a set of character strings stored in a first memory of the first computer; and
replacing said character string with an identifier of said character string if said character string matches one of said character strings in said set of character strings.
-
-
18. An application server in a network environment, comprising:
-
a delta message module configured to generate a delta message to describe a new message for a client on the basis of a first previous message transmitted to the client;
a compaction module configured to change a data type associated with a value stored in one of said new message and said delta message from a first type requiring a first amount of storage space to a second type requiring less than said first amount of storage space;
a data memory configured to store one or more data values previously sent from the application server to the client; and
a data replacement module configured to replace a series of computer readable symbols in one of said new message and said delta message with an identifier, wherein said identifier represents a storage location in said data memory of said series of computer readable symbols. - View Dependent Claims (19)
-
-
20. A computer readable medium storing instructions that, when executed by a computer, cause the computer to perform a method of reducing the size of a communication originated on a first computer for transmission to a second computer, the communication identifying an object on the second computer and including one or more descriptors corresponding to properties of the object, the method comprising:
-
examining a value of a first data field of a communication from a first computer to a second computer, wherein a first data type describes said value;
determining whether said value can be described by a second data type;
replacing said first data type with said second data type;
examining a first sequence of computer readable symbols in a second data field of said communication;
searching a first memory for said first sequence of computer readable symbols, wherein said first memory is configured to store one or more sequences of computer readable symbols and wherein an identifier is associated with each of said one or more sequences of computer readable symbols; and
if said first memory includes said first sequence of computer readable symbols, replacing said first sequence of computer readable symbols with said identifier.
-
-
21. A computer readable medium storing instructions that, when executed by a computer, cause the computer to perform a method of transmitting a delta message from a first computing device to a second computing device in place of an original message, the method comprising:
-
identifying an original message on a first computing device for transmission to a second computing device, wherein said original message pertains to an object on the second computing device and includes a first set of descriptors corresponding to a first set of properties of said object and wherein each descriptor in said first set of descriptors includes a property identifier;
selecting a previous message transmitted from the first computing device to the second computing device, wherein said previous message pertains to said object and includes a second set of descriptors corresponding to a second set of properties of said object and wherein each descriptor in said second set of descriptors includes a property identifier;
creating a delta message in which to describe said original message in relation to said previous message;
selecting a first descriptor of said original message;
determining whether a first property identifier of said first descriptor matches a second property identifier of a second descriptor of said previous message;
if said first property identifier matches said second property identifier, determining whether a data value in said first descriptor matches a data value in said second descriptor;
adding said first descriptor to said delta message; and
transmitting said delta message, in place of said original message, from the first computing device to the second computing device.
-
Specification