Chapter 2. Components, features and configuration

Table of Contents

Kosmos server
Kosmos portlets
CruiseControl Monitoring portlet
JIRA Monitoring portlet
SourceForge Monitoring portlet
Subversion Monitoring portlet
Good practices

Kosmos server

The “remote server” component acts like a traditional back-end: it collects, analyzes, stores and caches all the information. It then provides results for the front-end. You might ask, "Is it necessary to complicate the deployment with this additional component?" Having a single layer (portlets only, that access the monitored resources directly), it could be much simpler!

The primary reason is that certain operations performed by the system (like monitoring a remote Subversion repository) can be very expensive: traversing the repository content can easily take hours, depending on many factors like the repository complexity, server performance, or network bandwidth. By using a simple caching mechanism built into the server component, if several portlet instances are monitoring the same repository and they fire identical requests, only the very first will result in a new traversal! The other requests will receive the cached result until the first cache-miss (which can be caused also by a time-out, of course). This simple mechanism gives a huge performance boost and puts less burden on the “target box”, the Subversion server in this case.

Server component features:

  • Implements the application logic.

  • Provides Hessian-based web services for the portlets (view tier).

  • Caches calculation results and publishes the dynamically generated content (e.g. chart images) to a WebDAV file repository.