My PW Uses a Resource Downloader app that might be useful for this type of thing.
It allows for p2p sharing of files, which would lighten the load on web sites.
eg- Why should one website have to bear the burden of downloading a 80mb Patch file to thousands of people.
Too many people download the patch file, and then your website uses its months bandwidth in a short time.
The way my Resource Downloader works is
1. The Resource Downloader App
- When started, it signals my Server App (on remote host/server machine) - of the Downloaders IP Address. This is added to a Host List.
- It downloads an XML from my website, about 1-200 kb in size - depending on how many files are being downloaded. (I download hundreds to my clients = hense it is about 200kb)
- The XML Is parsed, it contains info such as file size, file name, and md5 of the file.
- The Downloader then checks to see if the file exists locally, and if its md5 and file size match up to expected values. If not - it adds them to a download list.
- When the parsing is done, it starts the download queue.
- Asks the remote server for the Host/Client list. (just a list of ip addresses of people using the downloader)
- Downloader then sends a message to a member of the host list, asking for the file, the downloader on the remote host then checks if they have the file being requested - and it if matches md5s - if they do have it, they send it, if not, they send a sorry message back, and then the Requesting Downloader asks another peer for the file, if all peers get exhausted, then it resorts to downloading from the website - as a last resort.
(Using this system, the only strain on the website, is the transfer of the xml to the client/downloader - and in worse case scenario's, the download of the actual files, if the peers are all offline, or dont have the files)
I introduced this method, because I found that hosting a 200mb Rar'd Portrait pack on my website, in an unrared format, equated to about 500mb-700mb of bandwidth per 2 -3 clients downloading the package.
I've been tempted to try and develop a system for the community that would be released publically.
If you guys think this might be of use, let me know, and I can try to get a public release together.
I've also been thinking of building another auto updater for the CEP Team, if they wanted one.
I think the old one they had was pretty useful, but I think the original creator of that left the team, and thats why they dont have it any more.