3. Database design
There
are mainly 5 entities involved:
Flight
info.
Customer info
Reservation
Purchase
Creditcard info.
Please
slides
see the entity diagram in the next
7. 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.
Boolean IsAlive (String username)
This method checks to see if the user is still active when it
doesn’t reponse in a certain amount of time.
8. 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
9. 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.
10. Creditcard Interface
A class about the credit card information
Variables
User_id
Card_number
Type
Year
Month
Methods
Boolean IsValid()
String GetNumber()
String GetType()
Number GetYear()
Number GetMonth()
11. 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
13. 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.
How
to identify a client or server failure?
Implement
an IsAlive function which ping the
client or server to make sure that it is still
active.
14. 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.