Table of Contents
The “remote server” component acts like a traditional back-end: it collects, analyzes, stores and caches all the information rendered later by the front-end.
You might want to ask, why 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 (for instance monitoring a remote Subversion repository) can be very expensive: traversing the repository content can easily took for 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 repo 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). Even this naive 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 (i.e. view tier).
Caches calculation results and publishes the dynamically generated content (e.g. chart images) to a WebDAV file repository.