COSMOS Design 230405
Back to Data Reporting Design
|Process||Sizing||Names of people doing the work|
|Build and infrastructure||0.2|
|Code review, etc.*|
'* - includes other committer work (e.g. check-in, contribution tracking)
It would be beneficial for adopters to create reports based on CMDBf constructs such as the CMDBf graph response or meta data. One useful report would show a list of configuration items returned by a graph report. Custom drill down reports can be created to render record information.
The following shows the component diagram design.
COSMOS Report Servlet
This servlet has several functions.
- Receives http request to generate a report.
- Provides the report viewer with the report template and datasource id needed to render the http response.
- Looks up the report template based on meta data information
- Manages the datasource information in session.
- Provides the datasource information to the report viewer.
The http request received by the servlet will contain two pieces of information:
- meta data search parameters
- report parameters
Meta Data Search Parameters
The search parameters will be name value pairs that defines the search criteria used to select the report template. For example, the request may ask to generate a report that is associated with a namespace equal to "http://examplemdr/student". The servlet will search the report repository for the report template that matches the search criteria. Note the search parameters are logically "ANDED".
This is a list of name value pairs that are required by the report template to generate the report. For more information refer to the BIRT documentation on report parameters.
The following is an example of a request. Notice that the meta search and report parameters are encoded in the request.
The servlet will manage the datasource required by the report template. In the case where the datasource is provided by the request, the servlet will save the datasource in session. The datasource will be keyed on session id,template id and a datasource id. The combination of the session id,template id and datasource id will be used by the report template to select the datasource from session.
This mechanism may be used to provide other resources required by the report template. Resources such as image files, externalized property files, etc.
Report Template Repository
The report template repository will consist of a set of report templates and a catalog file. The catalog file will act as a lookup that will associate meta data information with a particular report. Applications can use the catalog file to search for a particular report template. The following is an example of the catalog file:
<reports> <report> <metadata> <property name="type" value="CBE"/> <property name="namespace" value="http://logging/log"/> <property name="caption" value="Top 10 Log Report"/> </metadata> <template id="0" file="templates/LogReport.rptdesign"/> </report> <report> <metadata> <property name="type" value="TomcatSet"/> <property name="namespace" value="http://statistical/stat"/> <property name="caption" value="Statistical Report"/> </metadata> <template id="1" file="templates/StatReport.rptdesign"/> </report> </reports>
Graph Response Report
The following shows a mockup of a basic graph response report template.
The above report groups the records by items and relationships. Notice that if a record is present a link is provided. The link will drill down to a report that can render the record schema. The report that is associated with the record namespace will be used to render the record information. Therefore, the report template will make a request to the report servlet describe above to render the appropriate report.
All reviewer feedback should go in the Talk page for 230405.