Bulk File Distributor Bulk File Distributor
home Student Projects no local find frame, full screen Google search web for topic jump to footer translate with Babelfish by Roedy Green ©1996-2008 Canadian Mind Products
This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. It does not describe an actual complete program. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; I have too many other projects of my own.

I do contract work for a living, which could include writing a program such as this. However, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project any way you please.

CurrCon neededThe CurrCon Java Applet displays prices on this web page converted with today's exchange rates into your local international currency, e.g. Euros, US dollars, Canadian dollars, British Pounds, Indian Rupees… CurrCon requires Java 1.1 or later, preferably 1.6.0_06 . If you can’t see the prices, of you if just want to learn more about CurrCon, click here for help.
This project is similar to the Napster Clone project. Consider large downloads like the JRE, the JDK, Web Start and the Windows fixpacks. Currently each user downloads these from thousands of miles away over the Internet, often using a pathetic 56K modem. What is wrong with this picture?
  1. There are people nearby with copies of these giant files. Why not get them from them instead?
  2. Often these files are very similar to earlier versions the user already has. Why not just send the changes?
  3. If a session disconnects, you have to start all over. Why not just pick up where you left off, perhaps with different servers?
  4. It takes forever to pick up a large file by modem. Why not get it on CD?
The intent of this project is to efficiently distribute large files. It could eventually be used to distribute commercial software and updates as well. It works in many ways like Napster. It uses either TCP/IP or the SAX ackless protocol with multiple simultaneous servers for efficiency. It uses deltas for doing automatic updates.

There is a distributed index of what is locally available on various participant machines. If a file is not available locally, it will also appear as well. You can then download it from various servers. For this service you pay something like $0.05 USD per megabyte. If your computer is providing that service, you get $0.04 USD per megabyte. The main advantage to you is getting the file faster, and also the hope that others will later download it from you paying back your investment. The global improvement is offloading the master servers.

However, the main use of the system is getting files on CD. You can request a CD be mailed to you for $0.10 USD per megabyte with a minimum charge of $5.00 USD When you receive the CD, you electronically send in a code from the CD and in return get an unlocking code. At that point the money is transferred. If you have a CD burner, you may optionally accept requests too to prepare and mail CDs.

The central registry has a description of each file, its size and a checksum. The file itself might be encrypted. Normally there would be a digital signature for each file to attest to its authenticity and authorship. Commercial software would normally be encrypted, or would have a piece of the code missing that had to be supplied later to active the code. Every file has a unique 64-bit number id. The orginal owner of the file can create a registry entry for the file. He can also withdraw the file from the distribution system. This will not erase the file everywhere, but will stop it from further distribution, stop it from appearing in catalogs, and will flush it from local caches.

Creators of files might provide a Java program to print a full-colour CD labels and jewel case labels.

You might have a scheme where each server sets their own rates. The software automatically finds the closest, fastest, cheapest sources. A retail store may set up where you can pick up CDs or get them created on request. If the scheme caught on, a tiny hole is the wall storefront could have every commercial package on tap.

You could think of this as like a caching system with a central registry on what’s the latest and greatest. Instead of always going to the central source to find out, you could have a co-operative scheme based on best guess at best before date. If the best before date is shortened, or the shelf life has been extended, or the file has been replaced, the person who gave you the file is obligated to tell you. For extra reliability, you might arrange with several sources to notify you. There is no need to get it precisely from the horse’s mouth. You might overload the horse.

Similarly this scheme could collect hit count statistics and summarise them and funnel them back to the content creator, neatly categorised by number of hits and number of unique visitors. There should be no need for the central content provider to bog everyone down serving dummy hit count images. There is no need for the content provider to know precisely who looked at his content.

Eventually such a scheme also support micropaymenets for using the distributed files. They would be distributed in encrypted form and only decrypted inside dark rooms.

BitTorrent
Delta File Creator Project
Internet Radio Project
JavaMix


CMP_homejump to top
CMP logo
feedback Please email your feedback for publication, errors, omissions, broken/redirected link reports
and suggestions to improve this page to Roedy Green : feedback email
made with CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[65.110.21.43]
Your face IP:[38.103.63.17] The information on this page is for non-military use only.
You are visitor number 7,081. Military use includes use by defence contractors.
You can get a fresh copy of this page from: or possibly from your local J: drive (Java virtual drive/Mindprod website mirror)
http://mindprod.com/project/bulkfiledistributor.html J:\mindprod\project\bulkfiledistributor.html