Table of Contents
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.