Not only requires a travel agency an integration solution that eases the process of searching for flights and hotels, but they also need to automate the booking process. Thus, the goal is to devise an EAI solution that takes a travel booking request as input and books the flights and the hotel specified.
The EAI solution involves five applications, namely: Travel System (TS), Invoice System (IS), Mail Server (MS), Flights Façade (FF) and Hotels Façade (HF). TS is an off-the-shelf software system the travel agency uses to register information about their customers and booking requests. The invoice service runs on the IS, which is a separate software system that allows customers to pay their travels using their credit cards. MS runs the e-mail service and is used for providing customers with information about their bookings. FF and HF represent interfaces that allow booking flights and hotels. They both, in addition to the MS (that allows for POP3 and STMP connections), represent applications that were designed with integration concerns in mind. Contrarily, TS and IS are software systems that were designed without taking integration into account, thus, the EAI solution must interact with them by means of their data layer. The only assumption we make is that every booking registered in TS contains all of the necessary information about the payment, flight and hotel, and a record locator which uniquely identifies the booking.
The EAI solution should periodically poll TS for new travel bookings, so that flights and hotel can be booked, the customer can be invoiced and provided with an email with the information about his/her travels.
:: Guaraná solution
Below you can have one possible design for this solution using Guaraná DSL and download its implementation on Guaraná SDK. Note that to run this example in your computer you have to setup the rurring environment. Instructions can be found here.
The EAI solution we have devised using Guaraná DSL is composed of one orchestration process that exogenously co-ordinates the applications involved in the solution. Some ports have access to the TS and the IS data layers by means of files. Translator tasks were used in the process to translate messages from canonical schemas into schemas with which the integrated applications IS and MS work.
The integration ﬂow begins at entry port (1), which periodically polls the TS to ﬁnd new bookings. Bookings are stored in individual XML files. For every booking, the entry port inputs to the process a message that is added to slot (2). Task (3) gets messages from this slot and replicates them, so that one copy is used to send the email to the customer and the other is used for the invoice and for the bookings. The first copy goes through filter task (4), which prevents exit port (5) from receiving messages without a destination email address. Task (6) promotes the record locator from the body of the message to the header of the message, so that it can be used for correlation purposes in tasks (8) and (9). Prior to the correlation, the second copy is chopped by task (7) into different messages, so that one outbound message containing the payment information goes to the IS and tasks (10) and (11) can assemble the messages used to book the flights and the hotel, respectively.
:: Download files