Brief description of the company
Calypso is a global application software provider that delivers an integrated suite of trading applications to the capital markets function within banks and other companies participating in the world’s financial markets.
Founded in 1997, Calypso brought together the best capital markets business knowledge from financial centers in London, Paris and New York, combined with the best technology knowledge from Silicon Valley.
With over 15,000 users at more than 90 top tier customers, including eight of the top ten global banks, Calypso has been recognized for its award-winning product innovations and strong customer service culture.
The challenge
Since the company started, Calypso has been working in the development of its core Swing-based product (also named Calypso).
More and more clients are requesting a new way to deploy Calypso’s offering through the web, in order to open its functionality to the end-users.
In order to do this, Calypso decided to develop a Web application based on J2EE and open standards that integrates with the existing back-end services and exposes a new UI to web users.
An agile team of 8 people from Hexacta was appointed to develop this application, focusing on delivering a quality product and at the same time offering a new look on Calypso’s UI.
The team faced the challenge to integrate with the legacy services while keeping the new application robust and maintainable.
In the first phase, some of the Back Office functions were exposed on the web application (Self Service). Currently, a second phase is underway to add trade capture and position management features (Corporate Treasury).
Solution
A technology selection was performed to evaluate different cutting-edge web frameworks. Eventually JBoss Seam was selected because of its compliance for J2EE standards and JBoss’ support.
The proposed architecture follows a layered approach, to allow for flexibility in the integration with the underlying data server (existing server).
The JSF render technology that is used together with Seam is Facelets with the RichFaces tag library. This provides for Rich Ajax applications, eliminating the need for writing JavaScript.
We made use of RichFaces’ skinning functionality to enable developing custom skins for each client.
Seam’s component loading mechanism also allows each client to redefine the resource bundles, to customize any label and message in the UI.
The application is tested using many different strategies, ranging: from unit to system tests.
Unit tests use the TestNG framework.
Integration tests extend SeamTest to be able to execute in a mock container. This allows testing the components’ wiring and interactions.
System tests verify the entire deployed application using Cargo and WebDriver. They interact with a browser and are able to simulate a real user.
All the different types of tests are included in the Maven build and are run continuously in Hudson. They all serve as regression tests.