System and method for exchanging information across a computer network at variable transmission rates
First Claim
1. A system for electronically exchanging a message comprising a plurality of message segments via a computer network between a first computer operative to send message segments over the computer network and a second computer operative to receive the message segments over the computer network, the system comprising:
- a data exchange server, functionally coupled to the computer network, operative to manage each message exchanged by the first computer and the second computer via the computer network the data exchange server, comprising;
a storage device, operative to store the message segments of each message exchanged via the computer network;
a send service, operative to receive the message segments sent by the first computer via the computer network and to store the message segments in the Storage device; and
a reader service, for each message segment received by the send service and to be sent to the second computer, evaluating current network throughput based upon the amount of time taken to send a previous message segment, calculating, at a reader service, a transmission rate at which to send the message segment based upon the current network throughput, wherein calculating comprises;
selecting a weight factor, wherein the weight factor controls how quickly the calculated transmission rate, calculated by the reader service, reacts to a change in the network throughput;
selecting a target transmission rate at which to desirably send the message segment to the receive client;
calculating an actual transmission rate at which the previous message segment was sent to the receive client;
multiplying the weight factor by a difference between the actual transmission rate and the target transmission rate to arrive at a weighted result;
adding the target transmission rate to the weighted result; and
pushing the message segment at the calculated transmission rate to the receive client.
2 Assignments
0 Petitions
Accused Products
Abstract
A send client can send a message comprising multiple message segments to a receive client via a computer network. A data exchange server can receive the message segments sent by the send client and store these message segments in a storage device. The data exchange server can also send the message (once all the message segments are received) to a receive client. For each message segment to be sent to the receive client, the data exchange server can calculate a transmission rate for the message segment based upon current network throughput and send the message segment to the receive client at the calculated transmission rate.
-
Citations
13 Claims
-
1. A system for electronically exchanging a message comprising a plurality of message segments via a computer network between a first computer operative to send message segments over the computer network and a second computer operative to receive the message segments over the computer network, the system comprising:
a data exchange server, functionally coupled to the computer network, operative to manage each message exchanged by the first computer and the second computer via the computer network the data exchange server, comprising; a storage device, operative to store the message segments of each message exchanged via the computer network; a send service, operative to receive the message segments sent by the first computer via the computer network and to store the message segments in the Storage device; and a reader service, for each message segment received by the send service and to be sent to the second computer, evaluating current network throughput based upon the amount of time taken to send a previous message segment, calculating, at a reader service, a transmission rate at which to send the message segment based upon the current network throughput, wherein calculating comprises; selecting a weight factor, wherein the weight factor controls how quickly the calculated transmission rate, calculated by the reader service, reacts to a change in the network throughput; selecting a target transmission rate at which to desirably send the message segment to the receive client; calculating an actual transmission rate at which the previous message segment was sent to the receive client; multiplying the weight factor by a difference between the actual transmission rate and the target transmission rate to arrive at a weighted result; adding the target transmission rate to the weighted result; and pushing the message segment at the calculated transmission rate to the receive client. - View Dependent Claims (2, 3, 4, 5)
-
6. A method for sending a message comprising at least one message segment, the method comprising the steps of:
for each message segment to be sent to a next destination evaluating current network throughput based upon the amount of time taken to send a previous message segment, calculating, at a reader service, a transmission rate at which to send the message segment based upon the current network throughput, wherein calculating comprises; selecting a weight factor, wherein the weight factor controls how quickly the calculated transmission rate, calculated by the reader service, reacts to a change in the network throughput; selecting a target transmission rate at which to desirably send the message segment to the receive client; calculating an actual transmission rate at which the previous message segment was sent to the receive client; multiplying the weight factor by a difference between the actual transmission rate and the target transmission rate to arrive at a weighted result; adding the target transmission rate to the weighted result; and pushing the message segment at the calculated transmission rate to the receive client. - View Dependent Claims (7, 8)
-
9. A system for managing a message received via a computer network, the message comprising a plurality of message segments, the system comprising:
-
a storage device, operative to store the message received via the computer network; a send service, functionally coupled to the storage device, operative to receive the message segments, to determine whether all the message segments of the message have been received and, responsive to receiving all the message segments of the message, to store the message in the storage device; and a retrieve service, functionally coupled to the storage device, responsive to a request to retrieve the message at a calculated transmission rate, the calculated transmission rate being based on an actual transmission rate and a target transmission rate, the target transmission rate being selected by the retrieve service, wherein the calculated transmission rate comprises; selecting a weight factor, wherein the weight factor controls how quickly the calculated transmission rate, calculated by the reader service, reacts to a change in the network throughput; selecting a target transmission rate at which to desirably send the message segment to the receive client; calculating an actual transmission rate at which the previous message segment was sent to the receive client; multiplying the weight factor by a difference between the actual transmission rate and the target transmission rate to arrive at a weighted result; adding the target transmission rate to the weighted result; and the retrieve service being operative to retrieve the message from the storage device and to push each message segment of the message at the calculated transmission rate to an entity issuing the request.
-
-
10. A method for using a data exchange server to manage the electronic exchange of a message between a send client and a receive client, wherein the message comprises at least one message segment, the method comprising the steps of:
-
receiving each message segment sent by the send client at the data exchange server; determining if all the message segments of the message have been received by the data exchange server based on a message size specified by the send client and a size of each message segment; and if all the message segments have been received at the data exchange server, for each message segment to be sent to the receive client, evaluating current network throughput based upon the amount of time taken to send a previous message segment, calculating, at a reader service, a transmission rate at which to send the message segment based upon the current network throughput, wherein calculating comprises; selecting a weight factor, wherein the weight factor controls how quickly the calculated transmission rate, calculated by the reader service, reacts to a change in the network throughput; selecting a target transmission rate at which to desirably send the message segment to the receive client; calculating an actual transmission rate at which the previous message segment was sent to the receive client; multiplying the weight factor by a difference between the actual transmission rate and the target transmission rate to arrive at a weighted result; adding the target transmission rate to the weighted result; and pushing the message segment at the calculated transmission rate to the receive client. - View Dependent Claims (11)
-
-
12. A method for using a data exchange server to manage the electronic exchange of a message between a send client and a receive client, wherein the message comprises at least one message segment, the method comprising the steps of:
-
receiving each message segment sent by the send client at the data exchange server; determining whether the data exchange server has received all the message segments of the message; if all the message segments of the message have been received by the data exchange server, storing the message in the storage device; and for each message segment to be sent to a next destination, evaluating current network throughput based upon the amount of time taken to send a previous message segment, calculating, at a reader service, a transmission rate at which to send the message segment based upon the current network throughput, wherein calculating comprises; selecting a weight factor, wherein the weight factor controls how quickly the transmission rate calculated by the reader service reacts to a change in the current network throughput; selecting a target transmission rate at which to preferably send the message segment to the next destination; calculating an actual transmission rate at which the previous message segment was sent to the next destination; multiplying the weight factor by a difference between the actual transmission rate and the target transmission rate to arrive at a weighted result; adding the target transmission rate to the weighted result; and pushing the message segment of the message received from the send client at the data exchange server to the next destination at the calculated transmission rate.
-
-
13. A method for sending a message comprising at least one message segment to a next destination, the method comprising the steps of:
-
for each message segment to be sent to the next destination, calculating a transmission rate for the message segment based upon current network throughput, determining whether the message segment is to be translated into a requested format and, if so, translating the message segment into the requested format; and pushing the message segment at the calculated transmission rate, in the requested format, to the next destination; wherein the calculating step comprises evaluating the current network throughput based upon an amount of time taken to send a previous message segment; wherein the calculating step comprises the steps of; defining a weight factor, wherein the weight factor controls how quickly to react to a change in the network throughput; defining a target transmission rate at which to preferably send the message segment to the receive client; defining an actual transmission rate at which the previous message segment was sent to the receive client; multiplying the weight factor by the difference between the actual transmission rate and the target transmission rate to arrive at a weighted result; and adding the target transmission rate to the weighted result.
-
Specification