Application architecture

Caliber is a browser-based application using servlets running on Java servlet container such as Apache Tomcat or IBM WebSphere. The browser uses Web 2.0 or AJAX techniques to communicate with the application server (servlet). The application servlet communicates with the data server layer using TCP/IP sockets. The Java-based data server layer communicates with the database using JDBC. The database can be Microsoft SQL Server, Oracle, IBM DB2 or MySQL. Its current implementation as a multi-client hosted service uses Tomcat and SQL Server.

Unique design

Only static HTML is delivered to the browser from the server, and it is dynamically manipulated by Web 2.0/AJAX techniques using the JavaScript/ECMAScript language. In this way the traffic between client and server is greatly reduced because the static forms are delivered once and thereafter cached, with subsequent traffic being confined to data only. The user’s experience is greatly enhanced as they don’t have to wait for the entire page to be refreshed, but only the dynamic data within it (no “white screens”). Traditional applications, such as JSP, ASP or PHP, combine the static HTML with the data on the server and then transmit the whole page to the browser which then has to render it from scratch, even if only a small amount of data has changed.

All business logic is implemented using the JavaScript language. For interactive processes this is embedded in the HTML pages. Batch-based background processes, either on-demand or scheduled, use standalone scripts executed in a Rhino scripting engine. The benefit of this approach is that the entire user interface and business logic is exposed to the user, and, given the appropriate authority, can be easily modified to suit the client’s particular requirements. The combination of HTML and JavaScript is probably the world’s most well-known programming language, vastly reducing the costs of maintenance in comparison with complex Java, PHP or J2EE environments, for example.

All consumers of the service (browsers, web services, scripting services, client/server applications etc.) must communicate using Caliber’s proprietary transaction protocol. Only the innermost data server layer is privileged to access the data using JDBC. This approach greatly enhances the security of our customers’ data. Other more traditional approaches require the database owner’s ID and credentials to be distributed amongst all consumers of the database or their intermediate agents. Also the same data server is used to service a particular transaction, whether the requester is a browser or web service or whatever, contributing to code reuse and rapid application development. Traditional applications have to rewrite the data access layer to handle new consumers.

Physical security and connectivity

Users have their own user IDs and passwords. These credentials can be stored in the Caliber database. Browsers can communicate with the service using HTTP or HTTPS protocols,   depending on the client. 

The hosted environment is in DigiWeb in Blanchardstown Dublin 15. Access to the business park is controlled by security gate. Access to the building itself is tightly controlled and uses the latest biometric identification procedures.

The building has two separate power supplies in addition to its own power plant. It has two separate fibre optic connections north and south and a backup satellite connection to the internet backbone.