|   NetProg 2002 HW7 |
|     Project Description     |    Deliverables     |    Grading     |    Submission |
This project involves the creation of either an RPC (C or C++) client and server, or a JAVA RMI based system. The actual services provided by the remote procedures/methods are not that significant, the idea is to play with either RPC or RMI.
The service provided by remote procedures/methods are the following (there should be one remote procedure or method for each service):
1: URL parsing
Given a URL (a single string),
break it up in to a scheme (protocol), hostname, port, file and
query. Your remote procedure must return a data structure that
contains each of these components (the server must do the parsing!).
This procedure should be passed a string that is a URL and should return a collection of the components (in C, you probably want a struct, in Java you cannot return a URL object, make up your own data type (Class).
2: URL creation Given a scheme, hostname, port, file and query, your procedure should return a single string that is a URL. You must pass each of the components of a URL to the remote procedure, (the server must put them all together).
This procedure should be passed a collection of the components and should return a string that is the resulting URL.
You decide how to represent each component of a URL (I would assume most parts are strings, but the port could be an int) and how the client will get this information from the user (command line is fine). You decide how to print out the result in the client.
If you are using Java, feel free to use a URL object to do the work (parsing and URL construction) for you, but you need to use your own objects to represent a collection of the components (could be a new Class or perhaps a list of strings).
IMPORTANT! You need to include detailed instructions on how to build and test your client and server, otherwise we will not be able to test your code and you will receive a 0. Make sure you include this information, the grading will need to be done right away so that final grades can be computed. The TAs are being told to give a grade of 0 to any submission that they cannot test due to lack of information from the student!
You should submit all the files necessary to build and run your client and server. Your submission must also include a file named README that includes the following:
Your Name
Detailed instructions on how to build and run your client and server.
A list of files and a 1-line description of the contents of each file.
References to any borrowed code (the source code must also include this information).
A description of any known problems. If you think you know how to solve the problem(s) and simply didn't have time to do so - let us know how!
Anything else you think might be useful to us, such as what you learned, what you had trouble with, if the project was too hard or too easy, etc.
Make sure your code (RPC or Java) can run on the CS Suns!
Points will be awarded as follows (partial credit is available for each item):
| URL construction procedure | 35% |
|---|---|
| URL parser procedure | 40% |
| Code Style/readability | 25% |
Submission of your homework is via email, the general idea is to send an email message with all your files as attachments. There is an automated email submission system that will respond to your submission right away, so you will have a record that we got your files.
All projects must be submitted via email to netprog-submit@cs.rpi.edu. The subject line of the submission message should contain a single number indicating the project number 7 for HW7). You must include your files as attachments, feel free to send a zip-file or a tar file.
Don't send compiled code (or bytecode)!
You can expect a return email indicating receipt of your project submission immediately. This receipt will include a list of all the files that were successfully extracted by the submission script - please look over the receipt carefully to make sure your submission worked.
Multiple Submissions: You can resubmit up to 10 times for each project, we will always grade the last submission received unless you tell us otherwise.