File Serving using Media Streaming Techniques.
Original Publication Date: 2005-Mar-29
Included in the Prior Art Database: 2005-Mar-29
Disclosed is a method for improving the performance of software distribution through the use of a single stream of data distribution to multiple clients. This broadcast or multicast method used in itself is not the main part of the disclosure. The method of utilising a second servlet on the server to allow the clients to talk back to the server and request retransmission of 'missed' data packets, combined with the added intelligence of the receiving clients to rebuild the file are the novel parts of this publication.
File Serving using Media Streaming Techniques .
When a request for downloading a file from a server is made, the server will stream the file to the requesting client, starting at the beginning of the file through to the end. If the server is already serving the same file to another client it is now serving the same file to two clients at the same time but is reading and sending the filestream twice. The problem with this is the server can very quickly reach its capacity with a relatively low number of clients.
When two or more clients request the same file from a server, with added intelligence in both the client and server, the second client could start receiving the file at the packet of data the first client is currently receiving and then receive the first part of the file after the end of the file is reached. This would use file streaming techniques similar to those used by media servers where a number of clients can connect to the same filestream or mediastream. Effectively the addition of more clients adds very little overhead to the server. The server effectively loops the transmission of the file until there are no more clients requiring parts of the file. Since the file is being served using media-streaming techniques, the client may not receive parts of the file due to network errors. Media streaming servers do not account for retransmission since they are streaming live data. A second servlet would require to retransmit these data packets afterwards with requests for start and stop byte counts, or the client would have to wait...