Design
and implement a Restaurant server that satisfies the requirements of assignment
one. The restaurant server is to use XML-RPC so that your client of assignment
one can interact with the server.
The
server is to use the database to store all data that needs to persist across
invocations of the server. The port number used by the server needs to be
settable by command line on start up of the server and by a configuration file.
The server needs a default port number if the command line value or the
configuration file does not exist. The database settings also have to be
configurable via command line and a configuration file.
The
server is to log all connections. With XmlRpc it may not be possible to
determine the IP of the client. This will change when we use our own protocol.
While VisualWorks Smalltalk will log incoming connections for you, your code
should implement logging.
Exceptions.
The server is to handle all exceptions that occur. The server should only quit
under conditions that it can no longer function. Exceptions should be logged.
Writing
to standard out. If you are going to include code in your server that writes to
standard out then you must be able to globally turn that code off.
Unit
tests. Provide unit tests for your server.
Changes
to the Client
Exceptions.
Handle your exceptions, don’t just ignore them.
Writing
to standard out. If you are going to include code in your server that writes to
standard out then you must be able to globally turn that code off.
Server
address. The user needs to be able to set the server address and port number.
This setting needs to be remembered between sessions of using the client.
Isolate
the code that talks to the server. In the future you will completely replace
the XmlRpcClient.
What
to turn in
Turn
in hard copy and an electronic copy of your code for your server. For your
client code put all the client code in the repository. Turn in hard copy of the
non-GUI code that communicates with the server. Java people need to place an
electronic copy of your code in a CVS repository in your class rohan account.
Your account needs to have the environment variable CVSROOT defined. You need
to define a module assignment4. Check out the assignment3 module should give
the code for this assignment. This includes the unit tests. Smalltalk people
need to place their code in their store repository. Your assignment will not be
considered turned in until I have both your electronic copy and the hard copy
of your assignment.