SIMPLE BROKER PROJECT DETAILED INSTRUCTIONS 1. You must submit both working code and a user document. Both must be submitted electronically. There are several methods: A. Put everything in a subdirectory DDD of your ~/public_html directory in your method2 account. You can choose DDD to be any name you like. Be sure you have chmod a+x ~ chmod a+x ~/public_html chmod a+xr ~/public_html/DDD chmod a+r ~/public_html/DDD/* Email walton@deas the name of your directory. B. Put everything in a tar file and put a copy of this tar file with a+r permissions in the method2 directory ~wbw-server/submissions Note this directory is configured like /tmp so you cannot delete other peoples files in it. Also note ~wbw-server is not a+r so you cannot list it or use file name completion for `submissions'. Email walton@deas the name of the tar file within the submissions directory. C. Do something else, but be sure I get the result BEFORE you leave town electronically, so I will not be hung up over the spring break unable to grade you. 2. You do NOT need to submit any paper. You do not need to come to MD to submit. I will not be in Friday but can be contacted by email Friday afternoon. If it looks like you will submit late, make arrangements with me by email before submission time. I will actually be grading throughout the vacation week. 3. Your code must run. If it does not, you will need to fix it and resubmit as soon as you reasonably can. 4. You should have a `Makefile' for the code. Because of the complexity of accessing wbw_storage.jar and setting up the remote code base you should do the following. The directory that you submit, DDD (which you can submit by taring it), should be a subdirectory of `examples', and in it you should include a copy of `examples/client/Makefile' edited as follows: A. Replace the name `Example_Client' by the name of your program, whereever that occurs. B. If you have more than one .java file, list all .java files in SOURCES (whitespace separated names, with \ as line continuation character), and the corresponding .class files in OBJECTS. C. You may want to delete or change the arguments `update_file update_wbw debug' to your program. Your program is likely to ignore arguments, so you may want to just leave them alone. Include a copy of `examples/client/ Remote_Code_Base.make' in your directory and edit it as per `A' above. Include a copy of `examples/client/*.cert' in your directory as you will need it to contact the remote server. You SHOULD include a file named *.test which is the contents you expect your *.out file to have. If your test run requires an input, name it *.in. Here * is the name of your program, that replaced `Example_Client'. 5. Documentation is best done in plain ASCII, as it is the easiest to modify. If you do this, put the user manual in a *.txt file. You can also submit a postscript *.ps file or a PDF *.pdf file. DO NOT SUBMIT A MICROSOFT WORD FILE. The instructor is a pure UNIX person and cannot easily print such. Put Microsoft documents in *.ps or *.pdf format. If they are in *.ps format, it is best to check that they can actually print under UNIX, as sometimes they cannot and need to be munged first. 6. Do not put effort into making a fancy user interface. A simple ASCII text line interface will suffice. Also, its OK to simulate a command line interpreter by just hard coding the calls the interpreter would make for some specified test input in a `main' program. Your job for this project is to exercise the WBW server, not show you can write command line interpreters. 7. Note that the binaries distributed run on method2, but not on ice, because the latter computers have an older JAVA without java.util.Arrays and java. util.HashMap, and maybe without other things. If using method2 you can edit Remote_Code_Base.make to have the line Remote_Code_Base: Remote_Code_Base_File and execute chmod a+x ~ and then running `make remote' in examples/client should work. You should NOT need to use `make local' or to start your own server. But if you do want to start your own server on method2, you need to use a different port number than the one that will be used by default, as the default port is already in use by the server I started on method2, and using this default port will give you a bad_certificate error. To use a different port number, be sure the Data_Base_Name file exists (do `make Data_Base_Name' in examples/server if it does not) and then edit that file to replace the default port number (something like 53914) by a random 5 digit number >= 10000 and < 60000 of your own choice. Hopefully two different students will not accidentally chose the same number. Then do a `make clean' and do NOT delete the Data_Base_Name file before doing `make start'. Also note that if you mis-start a server it may not die on its own, and sometimes clients will not die on their own. You may have to execute `ps x' and then `kill #' where # is the number of the smallest numbered `java' process. You may have to do this a few times to `get them all', but usually getting the smallest numberred one gets all that are the same program (each thread has a separate process I think). 8. Do not over comment the code (or under comment it). As long as the instructor can understand the code after reading your user document its commented enough. 9. For a user document you need mostly to describe the data structures and the operations on the data structures. An initial statement of purpose is desirable. Any invariants, i.e., rules of operation, should be mentioned. Some manuals need additional things. BW