This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.
This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.
Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.
Though I am a programmer by profession, 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 in any way you please and to keep all the profits from your endeavour.
Please do not email me about this project without reading the disclaimer above.This project is similar to the Napster Clone project. Consider large downloads like the JRE (Java Runtime Environment), the JDK (Java Development Kit), 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?
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 per megabyte. If your computer is providing that service, you get 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 per megabyte with a minimum charge of 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 (Compact Discs) 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.
This page is posted
Optional Replicator mirror
Your face IP:[22.214.171.124]
You are visitor number|