Implementation Guide for Oracle Self-Service E-Billing > Using the Reporting Engine > Reporting Engine Features >

Reporting Engine Architecture


Figure 3 shows the Reporting Engine architecture based on the UML component model.

Figure 3. Reporting Engine Architecture
Click for full size image

The overall Reporting Engine architecture follows the MVC model; the data source is the model, the report manager, transformer and report XML are the controller, and the template is the view.

  • Report Client. This client calls the Report API to generate reports. The client can be a Web Client, such as JSP and Servlet or Struts and Tiles, or it can be a regular standalone application.
  • Report API. This is a set of APIs that the reporting client can use to generate a report. For information about how this API works, go to the Oracle Self-Service E-Billling Javadoc as described in Accessing Oracle Self-Service E-Billing Javadoc.
  • Report Context. The Report context is used by the Report Client to exchange information with the Report Engine. It includes the information passed from the client that is used to bind the SQL query parameters and parse the templates. For example, the context can contain user session information, such as login name, current role and organization level. Or it can contain report input information, such as the date range used to generate reports. All the objects in the context can be accessed using Velocity templates.
  • Request Queue. This queue holds all offline batch report requests. Users can generate reports immediately, or they request that the reports be generated offline. Offline reports send email notification when the reports are ready. The Request Queue is a JMS queue, and holds all offline report requests.
  • Batch Processor. The processor retrieves offline report requests from the Request Queue, and sends them to the Report Engine for processing. The batch processor is a batch job that runs in Command Center.
  • Report Manager. The Report Manager is the central controller of the report engine. It receives reporting requests from the client, and invokes the appropriate data source and transformer to perform the desired processing.
  • Data source. This item represents the data source. The data source can be an SQL statement, an Object or a CSV file.
  • Transformer. The transformer transforms the query result from presentation, and applies a set of computations on it, including sorting, grouping, paging, aggregation (summary, average, Boolean, minimal, count), and formatting. The transformer can also cache the data retrieved from data source so that the operations can be performed in the cache data (which reduces database accesses).
  • Velocity Template. Templates are used to generate desired report output views. The templates are based on Velocity, and can generate any text reports, such as HTML or CSV. However, it is not currently possible to use Velocity to generate binary reports.
  • Report Definition XML. Report XML files control how reports are generated. To create your own report, create a report definition in a report XML file. You can have multiple report XML files, and each report XML file can define multiple reports.
Implementation Guide for Oracle Self-Service E-Billing Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices.