Kwikfly.com
Introduction
We are an online travel agency specialised in airline
tickets. Since february 2002 we're running on our custom
designed systems for as well the front-office (web-site) as
the back-office (fullfillment and customer service).
As you can see in the diagram (at the end of this
document) we are using the Asta technologies in it's
maximum shape.
Process introduction/description
First we have our web-application which is a ISAPI-Dll
build with Borland Delphi 5 Enterprise and CGI-Expert.
This Dll is an ASTA client and all of the business
logics are implemented by calling certain server methods on
the ASTA Server(s).
With this approach, we can also support all kinds of
clients which are supported by ASTA.
Since an ISAPI Dll uses blocking-calls to the server, we
can use a very simple but effective load-balancing
(round-robin) mechanism: first request to server 1, second
request to server 2, third request to server 1 etc.
As one can see, we can extend the power of our systems
by adding an ASTA server and thanks to some simple
programming logics in the ISAPI Dll and an INI-file, we can
add/remove a server without restarting the web-server.
Also if one ASTA Server fails, the ISPAPI Dll will skip
that server and goes to the next one.
We are working with real-time airline data by using a
Central Reservation System (WorldSpan).
This CRS provides an XML interface where you send a
request message, and the system returns a response message.
This data exchange is programmed in the ASTA server, where
if data is requested (Searching for a flight), the Client
will call a servermethod with a couple of parameters
(Departure, Destination, Dates, Number of people etc.); the
Asta Server will create the appropriate XML message, and
sends it to the CRS, the results are collected and parsed
by the ASTA server, and if needed, stored in the SQL Server
database. At the same time it will return data in one or
more Output parameters from the Servermethod to the client.
(Datasets are also returned in a string-parameter to reduce
the number of blocking calls to the server)
For exchanging the XML information with the CRS, the
Microsoft ServerXMLHTTP component is used, for parsing the
XML, a self-developed simple XML parser is used.
Our web-site uses several payment methods, also online
payments. For the online creditcard payments we are using
the Bibit payment systems.
These systems work also with XML Data exchange. If an
online payment is desired by the customer, the ASTA Server
will place an online order at the Bibit systems by XML over
HTTP. In return, the Asta Server receives a redirect-url
from the Bibit systems which will be returned to the
client(ISAPI).
The user will be redirected to this page and can
complete the payment.
Front office experience
Thanks to ASTA the systems work really fine.
When we started with our online travel agency, we where
using another booking engine from a german company which is
developed in MS Visual C++. This application was having
serious problems with a little bit of server load (50
request at the same time) and would just crash which means
end-of-web-site.
When we switched to our own systems it was off course
quite exciting how the software was behaving, and after the
first month of streamlining some code, we are having total
stable systems.
It's sometimes still a little scary but the systems will
just not die. They keep on running until I stop them to
install an update with new functionality or fixes (yeah it
happens, fortunately no memory leaks or but little things
in the business logics).
We have had a couple of days with 100,000 hits on the
web-server but it keeps on running. We have even tested the
Asta Server with 500 concurrent requests, and still it
keeps on running. (I got a phone-call afterwards from the
CRS what the hell we were doing)
In the production environment I've monitored the Asta
server machines but I've never seen the processor
utilisation of those machines raise above the 25%.
Backoffice
Then off course we need to process all the bookings.
This happens in our office where every 10 minutes a
connection is made from our BackOffice ASTA server to the
first Web-ASTA server. It will download all new bookings /
customer information and our office staff will see the new
bookings in either a backoffice application directly
connected to our SQL server, our they can connect with our
BackOfficeIP Application over the internet to the
BackOffice Asta server and process the bookings.
At this moment the BackOfficeIP Client is under
development and almost finished. This application just
looks the same as the "Old" Client thanks to ASTA. Off
course there where a couple of small adjustments needed
since you don't want to wait and download all records you
don't need, so server-side filters are needed primarily for
viewing customer/ bookings etc.
With the IP version of our back-office, we can also
start outsourcing the customer-service and fullfillment
part because the only thing a call-centre needs is a firm
internet connection.
Last notes
Maybey it's worth mentioning that thanks to the power of
Object Oriented Developing, Delphi and ASTA these entire
systems were developed amanzingly fast.
Only one person started designing / developing on
october 1st 2001, and on februari 11th 2002, the first
version was put live.
This meant building the ISAPI DLL, HTML-coding,
Web-ASTA-server, databasedesign, back-office application.
With this first version the backoffice was rather simple
offcourse and after the hick-ups were solved on the
web-server part, there has been some huge developments on
the back-office part which these days takes care for a
streamlined process of handling payments and tickets.
Ready to see this Asta powered systems in action?
Visit our web-site at www.kwikfly.com
Don Wibier
Senior Systems Architect
KWIKFLY.COM
|