SDSUCS 596 Client-Server Programming
Spring Semester, 1997
Assignment 3

To Assignment Index
San Diego State University -- This page last updated February 26, 1997
----------

Airline Reservation System Protocol
Due Thursday 3/13/97


The assignment is to design and specify a protocol for the Airline Reservation System. The protocol is to be used between client programs and server programs in the Airline Reservation System. Turn in three separate copies of your protocol.

Specifying the Protocol

The goal is that your specification should be the only documentation needed to implement either a client (server) that would work with your server (client). This means that all requests between a client and a server must be listed and described. An implementor needs to know what the request is and what must be done satisfy the request. If a request has options, they all must be given. Since the server/client must parse the request, the syntax of the request and all it options must be given. The implementors (don't forget you will be implementing either your or someone else's protocol) will greatly appreciate syntax which is easy to parse. For each possible request all the possible responses must be given. Again, the syntax of possible responses is needed. This includes indicating how the server/client knows when they have reached the end of a response (or request).

Designing the Protocol

There are several things to keep in mind when designing the protocol.

First, there are three agents involved in this client/server application: the client program, the server program, and a human user. The server application interacts with the client program. The client program interacts with the server program and the human user. The human user interacts with the client program. This interaction has been confused by using telnet in assignment 2. There a human and telnet acted as the client program. The roles of human user and the client program merged. This makes it seem like a human interacts with the server or that the client just passes questions from the server to the human. For example, the server asking the user to select one of n options. This is not the case. The client-server interaction is not the same as the human-client interaction. In general, the client-server interaction differs greatly from the human client interaction. One request by a human to the client may require multiple requests to the server and some processing by a client. For example, requesting one web page often requires multiple client-server interactions. The syntax of the human-client interaction can be vastly different than the syntax of the client-server interaction. For example, the user interacts with Netscape browser via mouse clicks, the browser interacts with a server via HTTP. The protocol has to be parsable by a computer.

Second, the list of five actions required of the airline reservation system does not necessarily map to a protocol with just five requests. Just who is allowed to cancel a reservation? (But Mr Smith you canceled your reservation last night seconds before Mr Jones reserved a seat on the now full plane.)

Third
, don't forget hinges. Any protocol that is successful, will probably live long enough to require additions and extensions. Design the protocol to make it easy to extend.


----------