Core Components

The Elixir Repertoire Server is made of six main components: the server core, logging, repository for storage of the report templates and data sources, administration and security (access control). The Java Management Service manages part of these services and provides a common access via the management console. None of the changes made through the console are persistent. The original configuration will be reloaded when you restart the server.

The server core is responsible for managing the rendering of reports and controlling the number of report within a queue. It interfaces with the report clients to provide basic services to end users application as repository listing, file object i.e. report template listing and generating of the reports in various format. Communication between the server and client uses a socket-based protocol.

The logging mechanism, based on Log4j, provides both an audit trail of report generation and information about the health of the server. The level of logging may set in the log configuration file to provide fine grain control over the log. This is particularly useful for debugging purposes.

The scheduling mechanism, manages the scheduling of job for triggering report or processing data.

Elixir Repository manages the storage of all report resources, such as templates, images and data source definition. A repository can contain many file systems. Each file system identifies a physical location where the resources are actually stored. Several kinds of filesystem are supported. The most commonly used filesystems are Local File System and Jar archived File System.

The browser interface provides functionality to manage the repository and additional functions may be access via other JMX beans (like shutting down the server, mentioned earlier).

Elixir Repertoire Server has an enhanced security model based on Java security infrastructure. Users can still make use of their application's single logon mechanism if needed.

The server provides both an HTTP and a Java client API for integration into software solutions. The Java client provides the ability to generate data and reports and simple repository browsing. The HTTP interface provides an extensive range of capabilities, including the ability to add, update and delete files in the repository, add, edit and delete users and groups, render reports, generate data, trigger jobs etc. Virtually the full server capabilities are accessible directly through HTTP, which can be called from a wide variety of programming languages and tools.