A major US insurance company used JSF to develop a customer facing web application that gives customers the ability to find the best rates for themselves, get quotes, and buy a policy online. Essentially the customers start by answering some basic questions, providing enough information about themselves to initiate the underwriting process. Based on their responses, the application displays additional customized pages and perhaps prompts them for more information.
The application handles navigation, which has to be extremely dynamic, and calls external web services to determine any risks that may incur. It invokes lots of business and presentation rules in the process.
The development platform was pure Eclipse with Java 6 and Maven 3. The team built the UI with MyFaces 2, Facelets, Richfaces 3, and Tomahawk. The Spring 3 framework served as the backbone of the whole application. The team used the SpringFaces framework to integrate Spring Webflow, which was used for navigation, and Richfaces.
The database tier was implemented using both Hibernate and Spring JDBC to communicate with the databases, DB2 and Oracle. Other technologies or tools they used include Spring Integration, MongoDB, JAX-RS, AXIS, DOJO, JQuery, Freemarker, Spring Integration, Blaze rules engine, and Drools.
The deployment platform was JBoss AS 5 and Tangosol Cache Server. It communicates with the mainframe environment using IBM MQ series. It runs on 30 VMs, with 15 VMs allocated for the JBoss application server and the rest split between the Cache Server and Apache.
About 35 developers worked on the application, structured in teams of typically seven or eight members. The Architecture team was responsible for the core framework, and the other teams were each responsible for a vertical slice of the app.
The resources the teams used included internal and external training, consultants, Google searches, and the product documentation.
The application has been in production about five years, and traffic is about 80,000 hits per day. Customer feedback has been positive and the development team keeps improving the UI based on it.