Web-based Airline Ticket Booking System. - UNT Digital

10m ago
556.39 KB
33 Pages
Last View : Today
Last Download : 25d ago
Upload by : Abram Andresen

WEB-BASED AIRLINE TICKET BOOKING SYSTEMYu Jianming, CSEProblem in Lieu of Thesis Prepared for the Degree ofMASTER OF SCIENCEUNIVERSITY OF NORTH TEXASAugust 2004APPROVED:Tom Jacob, Major ProfessorRobert Brazil, Graduate Coordinator,Krishna Kavi, Chair of the Computer Science andEngineering DepartmentOscar Garcia, Dean of the College of EngineeringSandra L. Terrell, Interim Dean of the Robert B.Toulouse School of Graduate Studies.

Yu, Jianming, Web-based airline ticket booking system. Master of Science (ComputerScience), August 2004, 28 pp., 20 illustrations, references, 7 titles.Online airline ticket booking system is one of the essential applications ofE-commerce. With the development of Internet and security technology, more and morepeople begin to consume online, which is more convenient and personal than traditional way.The goal of this system is to make people purchase airline tickets easily. The system iswritten in JAVATM. Chapter 1 will introduce some basic conception of the technologies havebeen used in this system. Chapter 2 shows how the database and the system are designed.Chapter 3 shows the logic of the Web site. In Chapter 4 the interface of the system will begiven. Chapter 5 tells the platform of this system.

TABLE OF CONTENTSPageLIST OF TABLES.iiiTRADEMARKED NAMES USED . ivChapter1.INTRODUCTION . 1The Problem and Its Purposes. 1Definition of Terms. 12.THE SYSTEM AND DATABASE DESIGN . 3System Design . 4Database Design. 53.THE LOGIC OF THE WEB SITE . 74.THE PLATFORM OF THIS SYSTEM AND CONFIGURATION . 125.INTERFACE OF THE SYSTEM. 13System Management Part . 13Ticket Booking System on Web End. 156.PROGRAMS. 22Common Object Request Broker Architecture (CORBA). 22Remote Method Invocation (RMI) . 22Database. 24Java Server Pages (JSP) . 25REFERENCE LIST . 28ii

LIST OF TABLESPage1.The structure of the Web site . 32.The tables of database. 63.Main pages of Airline Ticket Booking System. 104.Structure of client part of management of Airline Ticket Booking System . 115.The server panel of RMI . 136.Login form of the client part of RMI . 137.The client part of RMI for Employee Information . 148.The client part of RMI for Flight Information . 149.The client part of RMI for Customer Information . 1510.Login form of the Java server pages (JSP) part . 1511.Personal Assistant of JSP part. 1612.Traveler Information Modification form of JSP part. 1613.Search form of JSP part . 1714.The search result of JSP part. 1815.Search summary of the JSP part . 1816.Customer input form of the JSP part. 1917.Credit card information input form of the JSP part . 2018.Saved itineraries of the JSP part . 2019.Detail of itinerary of the JSP part . 2120.Register form of the JSP part . 21iii

TRADEMARKED NAMES USEDProduct NameOwnerBEA Weblogic Platform 8.1BEA Systems, Inc., www.bea.comCommon Object Request BrokerArchitecture (CORBA )Needham, MA, Object Management Group,Inc, www.omg.orgJava , Java Server Pages(JSP ) andJavaScript Sun Microsystems, Inc., www.sun.comJbuilder 9 Enterprise TrialBorland Software Corporation,www.borland.comLinux Linus TorvaldsOracle 9i.Oracle Corporation, www.oracle.comTomcat 4.0Apache Digital Corporation, Durango, CO,www.apache.comUNIX The Open Group, www.opengroup.orgWindows XP Microsoft Corporation, www.microsoft.comiv

1. INTRODUCTIONThe Problem and its PurposesOnline airline ticket booking system is one of the essential applications ofE-commerce. With the development of Internet and security technology, more and morepeople begin to consume online, which is more convenient and personal than traditionalway. The goal of this system is to make people purchase airline tickets easily. The systemis written in Java.Definition of TermsWhat is CORBA? The common object request broker architecture (CORBA)allows distributed applications to interoperate (application to application communication),regardless of what language they are written in or where these applications reside. TheCORBA specification was adopted by the object management group to address thecomplexity and high cost of developing distributed object applications. CORBA uses anobject-oriented approach for creating software components that can be reused and sharedbetween applications. Each object encapsulates the details of its inner workings andpresents a well-defined interface, which reduces application complexity. The cost ofdeveloping applications is reduced, because once an object is implemented and tested, it1

can be used over and over again. The object request broker (ORB) connects a clientapplication with the objects it wants to use. The client program does not need to knowwhether the object implementation it is in communication with resides on the samecomputer or is located on a remote computer somewhere on the network. The clientprogram only needs to know the object's name and understand how to use the object'sinterface. The ORB takes care of the details of locating the object, routing the request,and returning the resultRemote method invocation (RMI) enables you to create distributed Java-to-Javaapplications, in which the methods of remote Java objects can be invoked from other Javavirtual machines, possibly on different hosts. A Java program can make a call on a remoteobject once it obtains a reference to the remote object, either by looking up the remoteobject in the bootstrap naming service provided by RMI or by receiving the reference asan argument or a return value. A client can call a remote object in a server, and that servercan also be a client of other remote objects. RMI uses object serialization to marshal andunmarshal parameters and does not truncate types, supporting true object-orientedpolymorphism.Web Services is about interoperability, which uses Simple Object Access Protocol(SOAP) an Extensible Markup Language(XML) based protocol for exchanginginformation.2

2. THE SYSTEM AND DATABASE DESIGNCredit Card Server(Web L ServerManagement Server(Web Services)Intranet, RMIInternetUserUserCompany(Client)Figure 1: The structure of the web site3Company(Client)

System DesignThe Web-based airline ticket booking system uses client/server frame. Thecustomers can use Web browser to access the system and book airline tickets. BecauseInternet and web browsers are widely used all over the world, there is no need to traincustomers how to use them. The second advantage is that there is no limit on customers’operating systems, for example, they can use almost all kinds of popular operatingsystems such as UNIX, Linux and Window XP. In the server part, we use Java ServerPages (JSP), which is written in Java. So the server programs can also be run on mostkinds of platforms, such as UNIX, Linux, or Windows. This increases the flexibility ofthe system. And the companies who use the system do not need to buy new hardwaredevices. For the communication between the server part and the third part services suchas credit card verification, we use Web Services and common object request brokerarchitecture (CORBA). Those technologies are widely used for distributed systems. Andthe cost of developing applications is reduced, because the source code can be reused byother applications.After the user send a request by JSP to the Web server, the Web server search thedatabase according to the request and then send back the result to user. After the userinput his credit card information and buy a ticket. The server will connect (by CORBA orWeb Services) to the remote Airline company to confirm the ticket, and get a confirm4

number from the company. Then the server will connect (by CORBA or Web Services) toa remote credit card server, such as VISA or Master, to identify the user and confirm thepayment. If there is a firewall between them they can use Web Services instead ofCORBA. The airline companies provide all the airline information. They can input theinformation directly from a remote Client through their local server by remote methodinvocation. Different company uses different port to make sure its security.Database DesignThe database of this system is Oracle. The information in tables AIRLINE,FLIGHTCOMPANY, EMPLOYEE and FLIGHT is input by system operators. Theinformation in Customer table is filled in by the system automatically when customersregister into the system. And the Itinerary table is filled in by the system automaticallyalso, after customers book tickets. Before they book tickets, the information about theirselection, such as flight number and price, is stored in the session not in database.The ITINERARY table will store all the information of every ticket. TheFLIGHTCOMPANY and EMPLOYEE tables store the information of every companyand its employees, then the system management part uses this information to identify theoperators when they login in. The CUSTOMER table is filled out by the system whenusers register. The operators of the airline companies fill out the AIRLINE and FLIGHTtables.5


3. THE LOGIC OF THE WEB SITEThrough the Web server, users can booking airline tickets and pay bills online. Touse this system the user should register first through the registration page by inputting theuser ID, password, user name, address and so on. Then the user can login to the systemand trace their purchase by the user ID and password. The user information will be storedin the entire session until he or her logouts. After the user logins the system, he cansearch for flights by the search bar or the main search page. The search based on thedestination, departure airport, date and Airline companies. When the use press the searchbutton at the bottom, the system will search for him from the database and return theresult to the user sorted by price. The result includes the price, airline company, airlinenumber and so on. To select the flight, he user just need to press the “select” buttoncorresponding to that flight result. If it is a round trip, the user will be asked to choose thereturn flight continually. Finally the system will show the user what he has chosen. Thenthe use can click “Buy it” or just search again. If the user wants to buy it, he will go to thenext step to pay for it. In the payment page, he is required to input his credit cardinformation by the instruction of the page. Then the system will check the credit cardinformation with the credit card company by using common object request brokerarchitecture (CORBA) or Web Services. After the information is proved, the user will be7

asked to confirm their purchase. Then the system connects the airline company toconfirm the purchase and returns the user a Confirm number. Then the system will sendthe purchase information to the Credit Card company to finish the transaction. All theserver parts of the credit card companies and the airline companies are simulated by thissystem. They just waiting for the invocation from the client and serve them by justreturning a simple result without dealing with the data really. They are also written inJava. After the purchase is finished, the user can view the Shopping Cart to see what hehas bought. And the system will send a confirm email to the user according to theinformation they input when they registered. There is a Personal Assistant Bar at the leftside of all pages, through which the user can change their personal information, such as,password and address.The above is the main purchase logic. Next I will talk about the systemmanagement part at the airline company. It is written in Java using remote methodinvocation (RMI). The server registers to a RMI registration and waits for clients toconnect to it. The user part can be run either on the airline company or the websitecompany. After they login to the system, the system will check the user name andpassword in the database. Then the verified user can use the system toadd/delete/modify/search airline information, user information and the ticket information.Now let me introduce the data stream in this system. For the booking system, all8

the user information, such as the user name and the depart airport, are stored in the wholesession until the user logs out or the session is expired. After the user buy the ticket, theticket information will be stored in the local Oracle database and sent to the airlinecompany also to book seats.9

Figure 3. Main pages of Airline Ticket Booking System.Airline Booking sult1Add UserInformationPageSearch pageLoginSearchSearch pageSave to databaseUser loginSelectSearchChangePWDShoppingResult2Save to databaseGet InfoSaveCredit cardShow ResultsPageShowCreditConfirm TicketInfoSearchConfirmCreditResult1Result 3PageSearchFunctionGet DetailAddtoFinishPage10local

Figure 4. Structure of Client part of Management of Airline Ticket Booking System.LOGINAirline Booking ManagementUser loginMainCustomer InformationSystemFlight InformationCustomer Information 1Flight InformationSearch Employee InfoCustomer Information 2Search ResultSearch ResultSearch difyUpdateUpdateModifyModifySearch ResultInsertFunctionDeletePageUpdateModify11

4. THE PLATFORM OF THIS SYSTEM AND CONFIGURATIONWEB-Server : BEA WeblogicTM Platform 8.1, TomcatTM 4.0Operating System: Windows XPProgramming languages: Java, JavaScript, HTML.Database : Oracle 9i.JDBC: oracle.jdbc.driver.OracleDriver.Development tools: JbuilderTM 9 Enterprise Trial12

5. INTERFACE OF THE SYSTEMSystem Management PartAfter starting the Remote Method Invocation (RMI) registry, we can start the server. Andthe server will listen on the port to accept the connection from clients.Figure 5. The Server panel of RMIFigure 6. Login form of the Client part of RMI13

Figure 7. The Client part of RMI for Employee InformationUsers can search Employees information according to name, position, ID or Department.Figure 8. The Client part of RMI for Flight Information14

Figure 9.The Client part of RMI for Customer InformationTicket Booking System on Web EndFigure 10. Login form of the Java Server Pages (JSP) Part15

Figure 11. Personal Assistant of JSP PartUsers can modify their own information by the Personal AssistantFigure 12. Traveler Information Modification form of JSP Part16

Figure 13. Search form of JSP PartAfter the user login the system, they can access this form to search flights or usethe Search Bar on the left of the page. After they buy a ticket, they can see the message“There is a new ticket in your shopping cart”.After the user fills out the form and hit “Search” button, he will go to the resultpage (figure 12). If the user chooses to buy round trip tickets, he will be asked to choosethe return flights also. The price will be added automatically. And the information of theflights is stored in this session, so the next page can use them.17

Figure 14. the search result of JSP PartFigure 15. Search summary of the JSP Part18

Figure 16. Customer input form of the JSP PartIf the user will be asked to input the adults and children names, which will appearin the tickets, according to the adults and children number the user choose whensearching.19

Figure 17. Credit card information input form of the JSP PartFigure 18. Saved itineraries of the JSP partThe user can see all the itineraries that he has bought.20

Figure 19. Detail of itinerary of the JSP partFigure 20. Register form of the JSP partThe user can register to the system through this page.21

6. PROGRAMSCommon Object Request Broker Architecture (CORBA)IDL(Interface Define Language):module RemoteServer {interface CreditCard {string Transaction(in string cardnum, in string expiredate,in string name,instring extend);};interface AirlineCompony {string confirmTicket(in string itinerationNum,in string CompanyName,in stringAirlineNum,in string date,in string num,in string extend);};};Remote Method Invocation (RMI)The policy file is :grant {// allows anyone to listen on un-privileged portspermission java.net.SocketPermission "*:1024-65535", "listen,accept,connect";};//Client part, show the GUI to the user and get dataset from remote server.import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import com.borland.dbswing.*;22

import com.borland.dx.sql.dataset.*;import com.borland.dx.dataset.*;public class ClientFrame1 extends JFrame {String serverobj null;String SqlText null;JPanel contentPane;BorderLayout borderLayout1 new BorderLayout();JPanel jPanel1 new JPanel();com.borland.dx.dataset.TableDataSet tableDataSet1 new er clientProvider1;ClientResolver clientResolver1;JdbNavToolBar jdbNavToolBar1 new JdbNavToolBar();TableScrollPane tableScrollPane1 new TableScrollPane();JdbStatusLabel jdbStatusLabel1 new JdbStatusLabel();JdbTable jdbTable1 new JdbTable();ResourceBundle res Res");//Construct the framepublic ClientFrame1(String obje,String Sqltext ) {serverobj obje;SqlText Sqltext;System.out.println(obje);clientProvider1 new ClientProvider(serverobj,SqlText);clientResolver1 new NDOW EVENT MASK);try {jbInit();}catch (Exception e) {e.printStackTrace();}}//Component initializationprivate void jbInit() throws Exception{contentPane (JPanel) this.getContentPane();this.setSize(new Dimension(500, 300));this.setTitle(res.getString("RS ClientTitle"));23

Panel1, l1, BorderLayout.SOUTH);jPanel1.add(jdbNavToolBar1, Set1);jPanel1.add(tableScrollPane1, 1);}//Overridden so we can exit when window is closedprotected void processWindowEvent(WindowEvent e) {super.processWindowEvent(e);if (e.getID() WindowEvent.WINDOW CLOSING) {//System.exit(0);this.dispose();}}}DatabaseThere are many functions. This sample program gets flight information fromdatabase based on the flight number.public ResultSet getFlightinfo(String flightnum){Connection conn null;try {//conn racle.jdbc.driver.OracleDriver");String url "jdbc:oracle:thin:@localhost:1521:oracle9i";conn ;Statement stmt conn.createStatement(java.sql.ResultSet.TYPE SCROLL INSENSITIVE,java.sql.ResultSet.CONCUR READ ONLY );String query1 "SELECT * FROM Airline WHERE AirlineNumber "24

Integer.valueOf(flightnum) ;ResultSet rs1 stmt.executeQuery(query1);if (rs1 null){rs1.close();return null;}else{return rs1;}}catch (Exception e) {System.out.println("Exception found::" intln("DBmain::getFlightinfo: end");return null;}Java Server Pages (JSP)This is the example of a JSP page, which is used to process data uploaded by userand invoke a function to get information from database and transfer to the next page. %@ page session "true" % %@ page contentType "text/html;charset gb2312" % %@ page import "java.util.*" % jsp:useBean id "DBMainID" scope "session" class "jsps.DBMain" / %session request.getSession(true); % %25

String username null;username me t.println("session userid is null!");}String firstname request.getParameter("firstname");String lastname request.getParameter("lastname");String phone request.getParameter("phone");String address request.getParameter("address");String email mail)! 1){System.out.println("change traveler information ;return;}String url endRedirect(url);26

% 27

REFERENCESBergsten, Hans, Java Server Pages, Sebastopol, CA, O’Reilly & Associates, Inc., 2001.Heinle, Nick and Bill Pena, Designing with JavaScript, Second Edition, Sebastopol, CA,O’Reilly & Associates, Inc., 2002.Johnson, Rod, Expert one-on-one J2EE Design and Development, Birmingham, UK, Wrox PressLtd, 2002.McLanghlin, Brett, Java & XML, 2nd Edition, Sebastopol, CA, O’Reilly & Associates, Inc.,2001.O’Donahue. John, Java Database Programming Bible, New York, Wiley Publishing, Inc., 2002.Walsh, Aaron, Justin Couch and Daniel H. Steinberg, Java 2 Bible, Foster City, CA, IDG BooksWorldwide, Inc., 2000.28

THE SYSTEM AND DATABASE DESIGN Credit Card Server (Web Services) CORBA,WebServ WebService,CORBA Web-Server SQL Server Management Server(Web Services) Internet Intranet, RMI User User Company(Client) Company(Client) Figure 1: The structure of the web site 3. System Design The Web-based airline tic