Access Keys:
Skip to content (Access Key - 0)
(Access Key - l)

High Performance and Scale
Concurrent users20K
Avg response time5 ms
App servers16
Availability
In-progress exam state
User login state
User security token
HTTP session
Best of Breed Stack
Spring MVC
Spring Webflow
Spring Security
JPA (Hibernate)
FreeMarker
SiteMesh
MySQL

Scalable Web App Reference Implementation

The Examinator is a scalable, open-source sessions application geared for high-availability and built using a best-of-breed web application stack. Examinator takes the form of a test-proctoring application that illustrates the use case in which adding Terracotta to a clustered user-session application also incorporating these valuable cluster characteristics:

  • High-availability – Significant reduction in cluster downtime
  • Scale-out – Able to adapt to growing load
  • Database offload – Substantial gains in speed and efficiency

At its core, Examinator is an example implementation of a pattern whereby conversational state across multiple requests is made transparently durable using simple Java data structures and an intuitive and natural application programming model. In the process, we also implemented a few other patterns including Application Session and Data Caching. The application architecture is an example of a "stateful" programming model that scales better than a more complex and less intuitive "stateless" programming model. This exam application is the first of many that we plan to deliver.

One of the benefits of Examinator is to serve as an example of the right approach to building this type of application with Terracotta. By offering an unobstructed view into the toolset, technology stack, architecture patters, and testing procedures used in this implementation, we are providing a documented set of best-practices that can aid your own development efforts. Whether you are starting from scratch and can utilize source code, or find yourself at an advanced stage of building an application and simply need a guide for successfully integrating Terracotta, begin with the Examinator reference implementation.

If you have comments or suggestions regarding any aspect of the Examinator reference implementation, we welcome your feedback in the Terracotta community.

Examinator Documentation

We documented the Examinator project to demonstrate how this type of clustered application should be developed, from early design considerations and technology choices to coding, testing, and deployment. By following our experience, you will learn what best practices to implement and what pitfalls to avoid in building a similar clustered web application.

Quick Start

To get started immediately, see the Examinator Quick Start, which takes you through the steps of acquiring, building, and running the code.

Technology Stack and Architecture

This section lists the technology stack components to give you an immediate sense of how the reference implementation is put together. It explains what was involved in building the application from a technology perspective. It also describes the architecture of the Examintor reference implementation, giving a high-level view of how the technologies were put together to create the application.

Application Functions

The Examinator implements a number of functions, most of which involve Terracotta in some way. This section describes each function and how and why Terracotta is used.

Software Development Life Cycle

This section describes the stages of the software development life cycle (SDLC), which is the process to produce the Examinator:

  1. Requirements
  2. Planning and Design
  3. Development
  4. Testing and Tuning
  5. Deployment and Operation

Performance Testing

Performance testing is aimed at proving that Examinator can meet its requirements – or to expose the places where tuning is required. The testing section shows you how to set up a testbed and load-test an Examinator installation.

Deploying Examinator

An effective Examinator production deployment involves provisioning an environment that supports the required service level. This section shows you what to provision and how to configure the production environment.

Adaptavist Theme Builder (3.2.0) Powered by Atlassian Confluence 2.8.2, the Enterprise Wiki.