A technical introduction
A Technical Introduction
TOWERS is the Tour Operators Web Reservation System developed by NetStorming.
TOWERS follows the UNIX philosophy and in this way it is pretty modular and extensible writing new application which can easily interface with the main system.
TOWERS is essentially composed by the following parts:
EXCHANGE: an asynchronous "message passing" engine, developed by NetStorming, which allows to various program to exchange messages - even from different computers on a network - in a reliable, efficent and robust way;
EPYCS: an asynchronous "application server" which exports interfaces of the components used by the application allowing the components to "live" in a synchronised environment, sharing resources and communicate within themselves and with external applications;
TOWERS components: it's a set of EPYCS components written for typical TOWERS applications which allows the complete handling of all the needed details for a reservation system (allotments, services, geographic details and so on).
TOWERS interfaces: they are the interfaces which allows external "complex" environment (customers, suppliers but even other systems as well) to "talk" with the TOWERS system. Here we have the GUI for the customers (availability checks, bookings, searches and so on), the GUI for the suppliers (increasing allotments, decreasing tariffs and so on) and the main XML interface between TOWERS and the Tour Operator customer's system which allow to the customers to integrate the TOWERS services in their own systems.
TOWERS is easily extensible by writing new components and "plugging" them into the system: this way it will be able to support as many services as needed. TOWERS may as well be used to build a "network" of customers and suppliers just plugging-in interfaces with other tour operators.
The whole main system software has been developed using Python and specialized libraries which allow to build powerful asynchronous servers. The result is an application server able to communicate with software written in virtually any programmin language through a simple yet powerful XML interface: this way TOWERS can be extended writing new software in Java, PHP, Perl, C# and so on. To prove this fact, PHP has been used to create all the "external" interfaces to the system such us the GUIs and the XML interface for the customers systems.
The TOWERS system storage is based on PostgreSQL: a powerful DBMS which allows the development of complex database schemas with the Stored Procedures and Triggers needed by a reservation system.
TOWERS may be spanned over multiple servers with just little effort, so there will be no need to buy expensive mainframe and, as long as the business increase, the only cost to face will be the one of a cheap server to add to the network.