SDSU CS 580 Client-Server
Spring Semester, 2004
Assignment 3
    Assignment Index        
© 2004, All Rights Reserved, SDSU & Roger Whitney
San Diego State University -- This page last updated 24-Feb-04

Assignment 3
Due: March 9

Purpose of Assignment


Description

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.



Copyright ©, All rights reserved.
2004 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA.
OpenContent license defines the copyright on this document.

    visitors since 17-Feb-04