PostgreSQL Java

Architecture and Scalability


ConcourseSuite 6 and up bring with it advances in performance and scalability. ConcourseSuite is still easy to install, yet it combines EHCache and Lucene Indexing to dramatically increase access speed to the data.

  • Apache Tomcat
  • Java Web App
  • Database
  • Load balanced using RMI and API plug-ins

ConcourseSuite is developed using Java Servlet, JSP and Portlet technologies. At the heart of the application is a light-weight MVC framework built from the ground-up to support very high functionality while minimizing the required skill-set to extend the functionality.

Architectural Vision Diagram.png

Key Components

MVC Web Application

At the heart of ConcourseSuite is a light-weight web-tier for facilitating requests from a client, whether the request is from a web browser or an application using the API.

A Model-View-Controller Framework allows a developer to separate the business logic and the client view while maintaining order between the two. This separation has the added benefit of making sure that the business logic is securely generated while the client view allows a web designer to make use of the model generated by the java developer.

Benefits include:

  • Internationalization of dates, times, currency and languages
  • Auto-population of forms allow the developer to work diligently and concisely
  • Security hooks so that each request is inspected before executing code
  • Scalability
  • Performance
  • and more

Distributed Cache

ConcourseSuite achieves great web performance by caching account and contact information between user requests and across users. The most frequently used, and the most frequently expected-to-be-used content is cached.

When the underlying data changes, so does the cache. Data in the cache ranges from complete portlets to specific records. ConcourseSuite distributes changes very quickly by invalidating cache objects and having web servers in the cluster update objects on-demand.

The result is a dynamic web experience that feels like each page is fully static content.

Workflow Engine

The embedded rules engine allows ConcourseSuite to asynchronously execute components based on events created by a user. All user activity, including viewing, creating, modifying and deleting information, triggers the workflow engine.

The workflow engine is configured and customized externally from the application through an XML configuration file. The XML defines which objects trigger which processes. When an event trigger occurs, the underlying process begins.

The process is made up of action and conditional components. Action components perform an action, like sending email, or communicating with other systems, while conditional components evaluate the state of the object. When a component is executed, the result determines which component to execute next.

The rules engine is lightweight and can be used to communicate with much larger and robust business process management systems if needed. Components implement the ComponentInterface and can be added by adding a .jar to the application classpath.

Message Queue and Task Scheduler

To maintain a fluid user experience, ConcourseSuite offloads demanding processes to a scheduler. Importing, generating graphs, and complex workflows are offloaded in real-time for a better user experience.

Document Indexer

New in ConcourseSuite is indexing of Accounts and Contacts. Indexing allows for very quick searches on very large datasets.

Sign in to add your comment.