You are on page 1of 14

Online Airline Reservation System --Detailed design

Pingping Ma Oct 19, 2006

Overview
Database

design Activity diagram Class interface Fault tolerant issues

Database design

There are mainly 5 entities involved:


Flight info. Customer info Reservation Purchase Creditcard info.

Please see the entity diagram in the next slides

Database design diagram

Activity Diagram

Major class interface


Authenticate Search CreditCard FlightInfo ReservationInfo

Authenticate Interface

Variable username, password, email Boolean Authenticate (String username, String password);

This method checks if the user name and password input is a valid input. If true, it will return true; otherwise, return false.

Boolean Register (String username, String password, String email)


This method is used to register a new user. If the register is successful, return true; otherwise, return false. This method checks to see if the user is still active when it doesnt reponse in a certain amount of time.

Boolean IsAlive (String username)

Flight Interface

A class about the flight information with the following variables


FlightId From_City To_City Dept_Time Arr_Time Num_Of_Seats Price

Search Interface

This class has only one method Search. Maybe can be combined with the Flight class. Flight Search_oneway (String from_city, String to_city, Date dept_time, Date arr_time, int num_of_Seat) Flight Search_round (String from_city, String to_city, Date dept_time, Date return_time, int num_of_Seat) Given the search criteria, searches the database looking for flights that match the criteria.

Creditcard Interface

A class about the credit card information Variables


User_id Card_number Type Year Month Boolean IsValid() String GetNumber() String GetType() Number GetYear() Number GetMonth()

Methods

Reservation Info
A class about the reservation information. Variables

Reservation_id User_id Flight Credit_card Reservation_date Num_of_seats Passenger_name: an String array

ReserveAndPurchase Method

Methods
Boolean Reserve(String Reservation_id, String User_id, Flight flightobj, Creditcard cc, Date Reservation_date, Integer Num_of_seats, String [] Passenger_name) Boolean CancelReservation () Reservation ReadReservation() Boolean Purchase() If the action is successful, return True; otherwise, return False.

Fault Tolerant issues

A failure in any transaction step causes the whole transaction to be lost.

Possible Solution: two phase commit procotol can be used. Or make full use of the COMMIT, ROLLBACK command in the database. Implement an IsAlive function which ping the client or server to make sure that it is still active.

How to identify a client or server failure?

Fault tolerant issues

Synchronization

Use monitor method in the Reserve method to make sure there is no client reserving the same ticket at the same time

Data replication
Use data replication techniques to improve the reliability of the system. Use primary copy method to enhance the consistency of the data.

You might also like