ONLINE Intelligent HOTEL RESERVATION (IHR)

6 downloads 505 Views 125KB Size Report
ONLINE Intelligent HOTEL RESERVATION (IHR) USING .... idea of an intelligent helpdesk can come into the scenario and additionally it offsets the unavailability ...
ONLINE Intelligent HOTEL RESERVATION (IHR) USING WAP-ENABLED MOBILE DEVICES

Hasnain Z. Baloch1, Member IEEE Faculty of Information Science and Technology Multimedia University, Malacca Campus, Malaysia [email protected]

Abstract Wireless Networks and mobile computing is experiencing an explosive growth, with millions of users and business ventures are explores its usage. A traveler (tourist, or a businessman) has to travel quite frequently. WAP (Wireless Application Protocol) has allowed mobile service providers to take their users one step forward to that promise of mobility. Hotels must operate around the clock to fulfill the demand for travelers and providing excellent service to their customers. The objectives of our paper are how WAP, AIML and Internet can help these hotels. How can they acquire the maximum number of clients? How can they survive the increased competition? How can they keep their travelers better informed about their services? Travelers are the hotels’ targeted market, and travelers are always on the move, and so should be the hotel to get their attention and make it easy for them. Our proposed solution not only helps hotels to work around the clock they can make use of AIML in promoting their services. We investigate how the customization of ALICE can get more customer satisfaction. Keywords: Mobile and wireless Computing, WAP, AIML, XML

Introduction We tried to devise a set of minimum requirements for an intelligent hotel reservation WAP [1] [2] Portal as follows: Information About the hotel About facilities Type About the rooms Online Reservation About The location (Business, or Different types For rooms Restaurants/Pubs Its website address Recreational, or Price categories Different types What is available Its phone contact general) Features Canceling there Description Etc number Descriptions Reservations This is what we thus set out to implement in our prototype. Mobile devices as they are currently available (or affordable) are also quite limiting. They have small display capabilities, limited memory, low battery power, and greater vulnerability to inherent wireless network transmission problems.

Implementation The prototype was designed with a few key characteristics in mind - practicality, user friendliness, and the ability to serve dynamic content. The last of which was the most important since the degree of achievement possible in the first two goals would be intertwined with it. The obvious choice of language for programming was Java (with its widely available and versatile API) and XML (the eXtended Markup Language). XML and Java is the perfect match [3]. Java is portable code, and XML is widely acknowledged as 'portable' data. XML is a markup language that defines a way of describing data [4]. If we were to model the basic solution we had devised for our problem, as shown in fig 1.

1

But this model is not complete since the database is not shown here. The database we used in our application is MySQL version 3.23.47 from the company by the same name. Also part of the solution was programD, which was developed by the A.L.I.C.E AI Foundation [5][6]. This is a server, which serves a robot or a chatbot rather, which can interact with a user as a person in any cyber chat room would. But we used it here for a wholly different purpose. In our implementation we used the bot as an intelligent hotel receptionist to which users of the site can post enquiries about the hotel and about Malacca.

Target Modules By ‘Target Modules’ we mean modules that can be derived after breaking down the requirements of the (Intelligent hotel reservation) IHR Portal. Thus the following was obtained: • Room Reservation • Checking Reservation Status • Entertaining User Inquiries Room Reservation This module will allow the user to use his mobile phone to reserve multiple rooms in the hotel. Hotel reservation usually is a very flexible process when it is carried out from the counter of the hotel. We used our hotel that we so tentatively named ‘Hotel Melaka’ were up to our discretion. Reservation.java is the main controller in this module. Reservation.xml is the XSP page. XSP pages are basically XML files with embedded java logic inside. Thus it maintains the .xml extensions and we have to include the namespace for XSP: Reservation.xml accepts the user’s request and calls Reservation.class to check if the reservation is possible. Below is also a list of the errors that are logged: • Incorrect phone number: If the entry in the phone number field is less than 5 digits, or if it contains text characters. • Incorrect check-in: If the date entered is less than the current date, or if the time interval between the current date and the check-in is more than 45 days. • Incorrect checkout: If the checkout date entered is more than 21 days apart from the check-in date. Its also an error when the check-in entered is less than the check-out date. • Invalid e-mail: When someone leaves the email field in the form empty it is not an error since email is an optional field. But an error is logged if no ‘@’ is found in the entered text. And if no instances of a ‘.’ Is found in the text that follows after a ‘@’, this error is reported. Thus a checking is carried out for the form ‘[email protected]’ • Failed Reservation: when the reservation request fails normally for a certain timeframe. It implies that no rooms are available for the time period that the user is requesting a room for. • Not Enough Rooms: When a user requests multiple rooms, but not enough rooms are available to complete the request, this error is logged. • Duplicate: Room’s request is seen to have already had been processed, this error is logged. When this error log is empty, this method returns true, or else it returns false. errors.class contains functions that determine the flaws with the fields of the form. And it uses DateFormatter.class’ methods to do some of the work. The format for the date in database is something called timestamp that is of+ this form: YYYYMMDDHHMMSS, but the one we use in the user interface is YYYYMMDD. Thus DateFormatter.class also does the conversion between the two whenever necessary. That is why both errors.class and Reservation.class use this class. Errors.class contains the functions that determine the flaws with the fields of the form. And it uses DateFormatter.class’ methods to do some of the work. The format for the date in the database is something called timestamp that is of this form: YYYYMMDDHHMMSS, but the one we use in the user interface is YYYYMMDD. Thus DateFormatter.class also does the conversion between the two whenever necessary. That is why both errors.class and Reservation.class use this class. Messages.class is just a hash table containing the error messages. The keys that identify an error message with an error is of the form ‘INVALID-DATE’, and ‘NOT-ENOUGH-ROOMS’ and the like. When a reservation is successful, the reservation id for the user is displayed and we say ‘Hope you enjoy your stay with….’. Checking Reservation Status This module will have minimal code in this module since it is a pretty simple and straightforward. The thing to note in this module is that the user keys in his reservation id. Then we match it with the ones in our database and return an error if no such id is there. But we realized that just an id might be too insecure an authentication for our purpose. Thus we also require the user to key in the phone number that was entered while making the original reservation. In case a match is found we retrieve his details from the database and display it for his viewing. Then we allow him to three choices. He could a. Leave or carry on to other parts of the hotel’s site; or

2

b. He could cancel his reservation; or c. He could change his reservation details. The first two are pretty easy to implement. The challenging part will be the third one where some integration is required with the Reservation.class program. For example when he wants to change the check-in date to another date, we will have to invoke Reservation.class using his old details with just a change in the request for check-in date and then handle these two scenarios: 1.The reservation is possible; he can either carry on or retain his previous reservation. Accepting the new one would wipe out the previous reservation and transfer the id to the newly created one. 2. The reservation is not possible, so he could retain the previous one or just flush the reservation. Entertaining User Enquiries - Helpdesk When guests feel to make inquiries about facilities or anything else, most probably the first thing they will do is simply to call the guest relation officer. However, this assistance might not always be around to entertain the inquiries given. So this is where the idea of an intelligent helpdesk can come into the scenario and additionally it offsets the unavailability of needed assistance. The artificial agent with specific knowledge about the hotel can replace assistance. An assistant that needs no time off can serve with consistency and provides satisfactory services to the potential guests who intend to stay in the hotel. This technology we can say more or less rely on it’s own language known as AIML (Artificial Intelligence Markup Language) [3].

DISCUSSION Upon conducting research with the prototype system created, we managed to identify and successfully develop a full specification subset for our M-hotel portal. These outlined the major objectives of the research, which allows for a more secure and efficient system to be built for users, which is accessible virtually anywhere and through multiple platforms. Which include room reservation, checking reservation status, and entertaining the user inquiries. It was decided upon to use XSP (eXtensible Server Pages) and java classes to do the first two modules, and to use Alicebot and AIML (Artificial Intelligence Markup Language) to implement the last one. We modify the Program D so that our portal can be used for the entertaining the user inquiries. For the first module we follow these policies for business logic. • It’s hotel policy that users of WAP system will only be allowed to reserve room as early as 45 days • It’s hotel policy that users of WAP system will not be able to reserve room for more than a period of 21 days. • It is hotel policy that the users of the WAP system can only book 10 rooms at a time. • It is not hotel policy, however, that the above be impossible in any circumstances. Direct contact with the hotel, like a phone call, or personal meeting, has to be made in order to achieve those. All these policies to make the IHR foolproof. These policies were made with some practical situations in mind. These policies that we devised assure that none is allowed to fool around with our reservation system. Someone might wish to use the access to the reservation system as a prank and reserve 10 rooms for a period of 50 days, thus creating vacancies in the hotel for prolonged periods and even resulting in losses for the company. But in trying to ensure ourselves against such pranksters we must be careful not to fend off potential customers from reserving rooms either. This is why we came up with the time period constraints. Room reservations are only valid for 21 days when it is done. If the guests do not show we put up the room as vacant hopefully without having made any losses. Also we do not allow user to book a room if it is after 45 days of the current date. Thus our hotel expects someone wishing to carry out an advance booking of rooms for very late dates, or one wishing to book rooms for a long period of time, or one wishing to book multiple rooms in the order of 12 or more or maybe even a particular floor (for instance maybe when an international celebrity is going to book a room!) to contact the hotel in a more formal manner. Second functionality of our portal is to provide the reservation status this is much simpler for security we not only ask the user to key in id only user need to key in the phone no that was entered during first reservation after verification user is allowed to , Cancel , modified or leave as it and move to other module of portal. Third and main functionality, which will provide IHR edge from other hotel online reservation system, is the intelligent agent. This helpdesk with agent working in the background, rely mostly on the written AIML files that constitute most of its knowledge. Below is the Figure 5 showing how the helpdesk operates. As you can see, the helpdesk will be ever ready for the user query. When a user realizes that he needs some information on the hotel like the whereabouts of a specific restaurant, the user just need to key in his/her query into the query input box. The query input box is displayed as a dynamically generated WML file. In generic this is how a query is channeled through different process: Template.data - serves as the interface between the user and the Alicebot server/engine. To be more specific, this is the first layer out of several in programD. Template.data is a file, which simulates or act as a wml file but contains tags that are actually not valid in a well-formed wml file. These tags serve as the substitute for the dynamic data generated by the Alicebot engine.

3

This is where the engine inserts the replies it generates from the user’s queries. The templates that come with programD however did not contain mechanisms to generate WML files. We had to create our own, modeled after the ones they provided for HTML documents. SmartResponder - The SmartResponder is a broker for requests coming into the server. Its function is to accept and process a response and format it for the appropriate device, formatting the output as needed through other Responders. What makes it "smart" is its ability to parse the User-Agent and forward the request to the appropriate Responder. The main method of this class is doResponse(), which redirects the HttpRequest as needed. For our case, the request comes from a WAP enabled phone, hence the SmartResponder should redirect the request to it corresponding responder – WMLResponder. WMLResponder - Responsible for handling requests that come via WAP, and delivering the response via dynamically generated WML pages whose layout is contained in the template files. Server - Core component of programD. This is responsible for handling the request and the response by matching a given query (pattern) with the possible response (template) in number of category collections. So whenever a query received by the server, it will try to match it with the closest response by accessing the AIML files, which in the first place was written by the botmaster (person in charge of the bot and its knowledge base). As we know, these AIML files constitute the Alicebot knowledge. Upon finding the match, the response will be channeled back through the modules again until it reaches the user. Upon careful analysis of the structure of programD we noticed that it comes with an integrated database manager – HypersonicSQL. This database manager is an open source relational database engine written in Java, with a JDBC driver, supporting a subset of ANSI-92 SQL (BNF tree format). It offers a small (about 100k) fast database engine that offers both in memory and disk based tables. It is best known for its small size, ability to execute completely in memory and its speed. But for complete integration into our prototype it is required that the bot access our main database – which is mySQL. There could be various ways to do this and probably the most simple implementation would be to construct the queries in the programD section and pass it onto a java program that processes it using the data in the mySQL database, and then channel it back to the engine or create a dynamic WML page that contains another query box that will channel the next query to the bot.

CONCLUSION AND FUTURE WORK With the advent of WAP enabled phone, users no longer require to stay put to access the internet through terminals such as personal computer to access information or services from the web. WAP services offered by local telecommunication companies do not seem capable of fulfilling WAP users demands in term of access speed, stability, usability and reliability. Even now, judging from current market situation in Malaysia, most new buyers will end up buying mobile phones without WAP capabilities reflecting that users are not quite convinced with WAP services available. There is however a slow rise in the number of WAP sites in the Asian region. For example, wap.amari.com provides a site with a list of the hotels in the different cities of tourism centric country, Thailand. Hotels would be a natural choice for wireless content providers as such information is likely to be required while on the move. As the figure below shows the number of handheld devices distributed around the world is on the rise. Thus Asia is bound to catch up with the trend and there will be a flourish in the number of WAP sites. We still pursued the issue and built a prototype of a Intelligent hotel WAP (IHR) site. Thus we provide a service where a potential hotel guest can have the options of accessing information about a hotel, making room reservations, and obtaining more insight through an automated helpdesk through a WAP enabled mobile device. However it is quite important to note that since WAP services is quite popular abroad, travelers or tourist planning to go to Malaysia might find the need to use the WAP services to reserve a hotel room from abroad. So that is one of the potentialities of offering WAP services in the local hotel industry. In developing the project, it is good to be cautious of what seem to be the drawback factor for the WAP users in term of usability. Some of the new and enhanced features should be the main concern for us. By integrating an interactive agent that can serve a user inquiry should be impressive to anybody. Voice is of course the natural medium of communication through phones, thus a voice activated WAP site could be a possible supplement. That would also provide a hands-free experience for the mobile phone users. That might be implemented using VoiceXML and text-to-speech engines among other things [7][8][9]. Once we have data dictionary we can even have the intelligent agent with multilingual feature in it. The possibility of enriching the experience of the mobile Internet for a user is massive provided the current lack of visual ‘glamour’ possible in that area. It is possible to make the users of mobile devices to think twice before turning down a WAP enabled mobile device. It will be wholly our, the content developers, responsibility to make that happen.

4

Figure and Drawings

Fig1 showing basic solution model

USE

request (parameters: name, type of room, units…)

Main Server Check if reservation is possible. According to the request

response (yes, no, or suggestions)

Fig2 Dataflow in the Reservation module Last name, first name, date of check-in, date of check-out, number of rooms wanted, the type of room wanted, (optional) email Fig 3. Generic overview of query/response viaReservation ProgramD Confirmed OR address, (not for wap users) Error in entries in form (Example: check-in date is larger than check-out date) OR Reservation not possible due to unavailability of room OR Reservation not possible due

Fig.2 Data Flow in the Reservation module

Fig.3 Generic overview of query/response via ProgramD

5

query

results

Room Database +

Reservation Database

This is the first screen you will see once connected. This is a splash screen and will vanish to produce the menu on the right

Fig4. View of the first-card of WAP enable (IHR) intelligent Hotel portal

Reference: [1] Scot, G., “The Status of WAP”, “The Future of WAP”, WAP Forum Ltd., http://www.wapforum.org/new/WAPAustraliaMAY01.pdf [2] Wireless Application Protocol Forum, “Version 30-Apr-1998, Wireless Application Protocol Architecture Specification”, http://www1.wapforum.org/tech/documents/WAP-100-WAPArch-19980430-a.pdf [3] Seth, H., “Voice Enabling Existing Applications”, http://www.sys-con.com/xml/article.cfm?id=268 [4 Williams, K., “Professional XML Databases”, Wrox Publications, January 2001] [5] Baer, J., “A.L.I.C.E. and AIML”, http://www.sys-con.com/xml/article.cfm?id=269 [6] Batfai, N., http://venus.math.klte.hu/~mobialice/alice/ [7] Larson, J., “VoiceXML - WAP Integration Issues”, http://www.w3.org/2000/09/Papers/Larson.html [8] Hasnain Z. Baloch, Member, IEEE and Mamadou B. sylla " DYNAMIC VOICE–ENABLE ACCESS TO WEB-BASED INFOMATION OF STUDENT INFORMATION CENTER" International conference on Mobile Learning (ICML2003) Putarajaya by University Malaya titled Research work is sponsor by Motorola. [9] Hasnain Z. Baloch, Member, IEEE and Livesh Naidoo " M-LEARNING PORTAL FOR WIRELESS INFORMATION CENTER USING WAP-OVER-BLUETOOTH " International conference on Mobile Learning (ICML2003) Putarajaya by University Malaya

6