OLE Reporting Framework

Overview

OLE Reporting Framework has been built with flexibility in customizations by various institutions in mind; There are two core pieces to this framework;

  1. Logging transactions
  2. Reports 

Logging Transactions

Apache Camel is the core engine that drives the the process of routing log messages for various reports to and from specific end points. This is of huge value as institutions can decide where the destination of thee messages as appropriate. The default destination is a file log and the format is JSON.

Reports

BIRT (Business Intelligence Reporting Tool by Eclipse) is an open source tool that can be use to design reports. In OLE, the canned reports are designed using the BIRT framework which again allows for customizations  as and when needed.

Process & Framework details: 

 The below process diagram explains how the OLE reporting framework works.

Technical Details

  1. Logging Transactional Data
    1. OleCamelContextListener - Listener class to initialize OleCamelContext when OLE webapp comes up.
    2. OleCamelContext - This is the main class that is responsible for taking messages from the InMemoryQ and routing it to a log file. Logging to the file is the current default. The endpoint (JDBC, JMS..) can be easily configured depending on the implementor's choice.
    3. ReportLogHandler - This is the main class that others have to be aware of for sending transnational data to be logged. It takes a message object (Generic) and then puts it in an in-memory Q. 
    4. CircLogFormatProcessor - As the messages are consumed from the in-memory Q to the final end point (file log, JMS, JDBC...), the message formatting needs to be handled. The current format for the message logging is JSON and so this class takes the message object, converts it into JSON string and puts it back on the Q. The values that needs to be captured are essentially transformed in this class. For every transaction type (Circulation, Invoicing etc), there will be format processors that will know what all elements that needs to be captured.
  2. Report(s)
    1. BIRT plugin for Eclipse is used to design and generate a report.
    2. Few custom classes that know to read from a configured endpoint (file log in this case) and provide to the report engine to be rendered.

 

Operated as a Community Resource by the Open Library Foundation