|[Home] [Search] [News] [Site map]|
Advanced Reporting Toolkit (ART)
ART stands for Advanced Reporting Toolkit and is a Java Servlet based tool for extracting data from a database using Structured Query Language (SQL) and producing reports on the World Wide Web. Reports can be represented in HTML in plain tabular form, pivot table form, as graphs etc. A large degree of flexibility is at the report developers disposal.
ART is currently used by several applications in AIS. CET and HRT are entirely based on ART and its graph generating and pivot table functionality is used by PPT.
The design goal for ART was to provide a toolkit by which various reports could be defined by someone with moderate knowledge of SQL or Java programming. It is however not designed to be an end-user tool.
It was also a design requirement that it should be able to interface with external products such as for instance Oracle Graphics and Report for generation of graphs, PDF-files etc.
In ART reports are defined by defining data sources and reports using XML based definitions files and HTML templates with a minimum of Java programming.
In the beginning of the year 2000 the efforts of moving the Excel version of HRT was given some study. The Excel version suffered from deteriorating functionality on Windows NT and 2000 and also required much maintenance with every new version of Excel. It had become urgent to replace the Excel version and a World Wide Web based solution was preferred. Existing commercial reporting toolkits were evaluated but none could, at that time, provide enough functionality to successfully generate an Excel HRT replacement.
Design proposals for an in-house product where being made and reviewed. This product, which was to become ART, was implemented during summer 2000. During the later half of 2000 HRT was implemented using ART and is now available for our users (https://hrt.cern.ch).
ART is having a heavily modular design. Modules can be customised or replaced with ease. User interface, query generation/execution and output generation is clearly separated.
For instance today, modules exists to produce output in any text format such as HTML, XML, plain text files, to generate images using external executables such as Oracle Graphics Runtime or to generate images using internal code inside the Java VM such as NetChart's graph Beans.
Much effort has been made to structure the Java classes so that they can be easily extended to support specific needs should it be on the user interface side, query generation or production of results.
The success of this architecture has proven itself several times. The query generation module to handle Oracle 8 CUBE and ROLLUP groupings for pivot tables was implemented by a programmer external to the ART design team. A replacement output module to replace Oracle Graphics with a NetChart based solution was done in a short time by a student working for the PPT team. Students and other persons that never were involved in the original design of ART have made several other customisations.
Servlet architecture with persistent state mechanism
ART is based on a Java Servlet architecture that, unlike a plain servlet, keeps a persistent state in the Java Virtual machine between invocations. This can be used by the report designer to keep data between invocations for efficiency and is also used in the query execution mechanism.
The ART servlet architecture is designed by the same persons as were developing the EDH servlet architecture and is a natural evolution of this architecture from document handling to report handling.
Data entry validation
By using a set of Common Input Objects (CIO's) that handles the interpretation of submitted form fields and generates the HTML representation of these form fields, ART has the capacity of complex data validation. Simple CIO's can be plain text input, number input, date input etc. However more complex CIO's can handle CERN Objects such as Persons, Budget Codes, Suppliers etc. making sure that the data entered by the user is valid within the CERN context.
Report and query execution control
It is impossible to foresee every combination of search criteria that a user may enter and under certain circumstances a query may deteriorate, become inefficient and degrade the performance of the database. A situation that will affect, not only the user executing the report, but all users of that database.
Frequently the user will, under such circumstances, give up after a certain amount of time. Normally a web server will never know that a user has given up until it tries to send back a page and even then it is not sure that it will be aware. ART implements a query execution control scheme which enables the server side and the client side to collaborate and to detect when the client side aborts.
Use of Template Files and XML Definition Files
A report in ART is almost exclusively defined using XML definition files and template files (usually HTML templates). A report developer can use whatever tool he prefers to edit these files such as FrontPage, plain text editors, XML-editors such as XMetal etc.
Report Chaining (Sub-reports)
What appears to the user as a single report can in reality be produced by a number of reports in a parent-child hierarchy. Sub-reports taking the in-data arguments from the original form or from data in the parent report.
Oracle 8 features
ART is making use of Oracle 8 features such as grouping by CUBE or ROLLUP to produce pivot table reports. To avoid data conversion problems any summing or other data manipulations are almost exclusively done in the database instead of programmatically inside ART.
Data can often be of a sensitive nature. ART implements an access rights scheme in several dimensions based on Access Control Lists. In HRT this access mechanism is used to constrain the user to first a geographical domain defined by the attachment to an organic unit at CERN. Most people are for instance not allowed to view data about persons outside of the group or department. This in general boils down to excluding data table rows when selecting the data. The user is then constrained according to the sensitivity of the data. For instance a user may generally not be allowed to see another persons home address but may for instance usually be allowed to see the same persons CERN telephone number. This boils down to locking out data on the column level when selecting.
Java Coding Standards
Based on the success of EDH in adopting strict coding standards ART has followed this practice and is written to conform to IT-AIS coding standards and has undergone code reviews. Any new module is submitted to the same coding standards before deployment.
|[Home] [Search] [News] [Site map]|
Last modified on 11.10.2006