Title: Airline Reservation System Dr.Paul Schragger Distributed Systems
1Airline Reservation SystemDr.Paul
SchraggerDistributed Systems
- Presented By
- Archana Annamaneni
2INTRODUCTION
- The software used to drive real-world airline
reservations is complex. It needs to respond to
thousands of simultaneous users and interact with
constantly changing flight data. - The airline reservation software developed in
this project, only models a small number of
transactions - TechnologyJAVA RMI
3PURPOSE
- The primary purpose of doing this project is to
learn the concepts of distributed systems and to
learn JAVA RMI technology. - Transferring data is basic computational
operation. Javas message-method paradigm
transfers data from a calling object to a called
object within a single Java virtual machine. - We can cross virtual machine boundaries using
sockets, to transfer data from one host to
another .If we consider both paradigms- method
calls and sockets achieves the same goal the
transfer of data. - If we consider the two methods, its easier to
invoke a method than to send a message over a
socket. And RMI achieves to send data to a remote
host as easily as we invoke a method.
4Architecture
Database
5USE-CASES
- Actor searches for a flight
- Actor makes reservation
- Actor searches for an active reservation
6Activity Diagram
-
- desired flight exists
-
- Actor leaves
Actor selects a flight
Actor makes reservation
Actor searches for a flight
Actor looks for active reservation
7Implementation
- The following are the three transactions
implemented in the project - Search Flights returns each flight details
stored in the database - Book Seat It does a reservation for a specified
passenger and a flight. The transaction makes
several simplifying assumptions like the
passenger and flight must already exist as
entities the transaction does not create new
passengers or flights. It informs if the flight
does not exist, and if it does not reserve a
seat. - Show Reservation returns the reservation
information for a specific passenger identified
by passenger number. It informs if the passenger
does not exist
8 9Actor Searches For A Flight
10Actor makes reservation
11Actor looks for an active reservation
12Issues Covered Related To DS
- Scalability
- Concurrency
- Openness
13- int theReservationNo si.lockSeat(theConnection,f
light_no ,passenger_no) - String query "Delete From LockedSeat Where
ReservationNo "theReservationNo - int n st.executeUpdate(query)
- int seats flight.getSeats()
- int reservations flight.getReservations()
- if(reservations gtseats)throw new
FlightBookedException() - flight.setReservations(reservations1)
- flight.dbWrite(db)
- query "Insert Into LockedSeat""(ReservationN,Fli
ghtNo ,PassengerNo,TimeStamp) Values
('"theReservationNo"','"theFlightNo"','"thePa
ssengerNo"','" new Timestamp(new date())"')" - int up st.executeUpdate(query)
- db.commit()
Reservation res new Reservation(theReservationNo
, flight_no ,passenger_no)
int reser res.dbWrite(theConnection) Flight
flight Flight.getInstance(db,flight_no) Int
reservationsflight.getReservations() Flight.serR
eservations(reservations-1) Flight.dbWrite(db) d
b.commit()
14Key TechnologyRMI
- RMI Registry
- A naming service is an application that runs
on a central server and functions like a phone
book - In RMI , the default naming service that
ships with JDK is called the RMI - Registry
- Server serverInterface s new serverImpl()
- Naming.rebind(rmi//localhost1099/
ARServer,s) - Client serverInterface theServer
(serverInterface)Naming.lookup(rmi//localhos
t/ARServer) -
15Key Technology Continued
- theServer.searchFlights()
- marshal parameters
- send request
-
- unmarshal parameters
- invoke
implementation -
-
-
return Flight - impl
- receive return(or
exception) - marshal return(or
exception) - skel send reply
-
- unmarshal reply
- stub return value(throw exception)
-
16Conclusion
- How Important Design and Analysis is?
- Real time problems while developing a
distributed application - Ways to implement Synchronization