You are here

travelbox-architecture

Architecture

TravelBox is a modular, Service Oriented Architecture (SOA) based on Web Services which orchestrate various business processes in providing its full functionalities. The loosely coupled nature of the SOA allows TravelBox to be configured and scaled easily to accommodate the expected growth of the client’s business.

TravelBox consists of many state-of-the-art unique features that offer business performance monitoring & management, system performance enhancements, marketing of products, ubiquitous computing and many more. The figure below shows the overall system architecture of TravelBox.

The underlying Simple Object Access Protocol (SOAP) protocol which forms the transport layer of the SOA is a lightweight protocol suitable for use over the web as opposed to the other distributed computing technologies such as CORBA, RMI, and DCOM. The preferred SOAP toolkit used by TravelBox is JaxWS.

Core Technologies

Java EE

Javascript, CSS3, HTML5, JQuery

Oracle Database

JSP/Servlets

Webservices – JAXWS

Spring Framework

Angular JS

Google Web Toolkit

Performance

TravelBox is a high performance solution based on Oracle technologies, performing a large number of complex and CPU intensive operations when generating results for each search request. All these calculations compete for a common pool of system resources and when the numbers of concurrent requests increase, waiting time for common resources also increases. In order to provide results with acceptable response times, complex computations and shared resource access has to be minimised wherever possible.

CodeGen has identified the need for caching of results to cater for high demand and has built a high performance, intelligent cache into various aspects of TravelBox which enhances the ability to distribute without compromising performance, as well as savings on additional infrastructure requirements. As a result of this, our clients can go through their peak periods without having to acquire additional hardware or experience performance bottle-necks. This has made TravelBox an extremely high performance, highly scalable platform. As well as within its own application code, CodeGen are continually working on improving performance on the entire deployment stack by evaluating the latest technological advances in hardware, Operating systems, databases and application servers to further optimise and enhance performance.

Maturity and Resilience

TravelBox is currently being used globally by some of the well known brands in the Travel industry. The product suite has been evolved over the years with the innovative solutions envisioned by CodeGen and as well as with the solutions developed to full-fill the unique needs of various clients. It has gone through enormous number of testing cycles over the years and hence the TravelBox product suite has evolved into a well matured and a stable solution.

100% network uptime is guaranteed.

Servers (Hardware) will be available 99% of the time.

The TravelBox Web Services will be available 99% of the time.

Database will be available 99% of the time.

The scheduled updating of the servers with new releases will take place as arranged in the development and release schedule. The downtime for the server for applying a schedule update will not exceed 10 minutes.

Scalability

Both TravelBox software and hardware architectures are proven to be scalable and it can easily be scaled up or down based upon the demand for its services. TravelBox easily supports high volumes and its resilience is proven as the backend for internet websites of many of the largest Tour operators globally, as well as destination management companies, providing API to various Online Travel Agencies.

The hardware architecture can be scaled horizontally by adding new servers to create a powerful processing unit where resources can be plugged in and out as and when required according to the demand. This is predominantly handled through the Oracle Real Application Clusters (RAC) configuration at the database layer and using the pool of load balancers set-up at the application server level to distribute its load. With this setup any amount of resources can be added or removed as and when required without affecting its normal functionality.