A central computer holds the database for airlines reservations for Adirondack Air which runs four flights numbers 1 through 4. The plane capacities for these flights are 5, 2, 10, and 10, respectively. Travel agents from all over the world can access the reservation system by running a local application which calls up the central computer and runs an interactive session that supports the following commands:
Format of Command:
Query for number of seats available on flight x: Q x
Reserve seats I, j, etc. user name nm: R I j .. nm
Cancel seats for flight x under name n: C x n
The query command will first display the seat numbers of all the available seats on flight x if there are any. If none are available, the query ends with the message “none available.” Otherwise, the travel agent may book any number of those seats for a name (say Jones) with the command R 1 6 2 9 Jones. Here 1 6 2 9 is the list of seats that are to be reserved for Jones. You should check that the requested seats are in the list of available seats. Any number of agents may access the reservation system concurrently. You will need to lock the flight record for the duration of this transaction so no other agent can take an available seat in the interim. If there is already a lock on the data, the server should send an explanatory message to the travel agent, because the agent will have to wait. If the travel agent responds with a C (cancel), terminate the query without allocating any seats.
Cancel should make available all seats under the given name on the specified flight, and then display the current number of seats now available.
On the server’s monitor, display the current state of the database in real time. Indicate which seats are reserved and by whom. As soon as a change occurs, the screen should be updated. On the same screen show which clients are currently active.
The system should be robust in the sense that any erroneous command elicits a reasonable error message. Communication over the network will use sockets. The database will be in one file. The data on the file will be locked at the record level by the Unix lock system call. The server will fork a child to handle each new interaction session from a travel agent. Use TCP/IP sockets to communicate between server and clients. In other words, use the method described in section 6.4.1, “Per-Client Processes”, of the book TCP/IP Sockets in C. Test your program by having the agents read a series of commands from a file and record the output on the server to see that it is consistent with the order of messages from the agent clients.
5 威客就此工作平均出价 $159
If I am given a chance then I will complete your application within 7 days as per your uploaded files requirement Thank you You may contact me to discuss anyting regarding implementation