Embeddable Reporting on Conceptual Data Models for Java Application
Embeddable Reporting on Conceptual Data Models for Java Application
Join the DZone community and get the full member experience.Join For Free
How do you break a Monolith into Microservices at Scale? This ebook shows strategies and techniques for building scalable and resilient microservices.
Application administrators (or functional support) often need to analyze data and generate indicators on data and data quality.
There are several methods to address such issues:
- Integration of reporting and management features within applications
- The use of external tools of reporting or business intelligence.
Integration of reporting and managment features within applications
It’s possible to integrate administration and reporting features using tools like JasperReports. Reports are well done, but static. In order to add new reports, it’s necessary to make developments and deployments on the production environment.
It’s also possible to develop administration and reporting features in the application, either unitarily, or by establishing, for instance, an advanced search engine. This solution meets the need of the company but has a very high cost of development and maintenance. Each unanticipated need involves new developments, tests and deployment in production.
To summarize, these internal solutions are generally:
- Expensive in the implementation and/or changing needs
Use of external tools of reporting or business intelligence
Often, the first recourse is to use well known tools, like Business Objects and QlikView which have many good quality features and generate good reports. Although, the establishment of such tools turns to be complex and costly:
- Establishment of dedicated data bases
- Dedicated servers or virtual machines
- Database feeding (flat files, data base imports/exports, materialized views, etc...)
Once the environment established, the reports have to be created. This action needs the involvement of expert consultants:
- Creation of universes, creation of cubes and definition of indicators
- Tool configuration and creation of reports
In most cases, user’s needs are relatively simple and do not require such tools. Last point but not least, These BI tools have very expensive licenses.
To summarize, the use of BI tools has the following disadvantages:
- High cost of establishment (infrastructure), of maintenance (use of expert consultants) and of licenses
- Difficult to understand
- Complex to the needs.
Solution: Jeet Report
In order to meet user’s needs, Jeet Rport has been developed to integrate easily an application data model. It allows non-technical users, like administrators and functional support, to create analyses on application data and to calculate indicators.
The figure below shows interactions between Jeet Report and its integration towards the host application
Jeet Report provides the following features
- Simplicity :
- A fully graphical interface requiring no technical knowlege. Only knowledge of the conceptual data model is required.
- A wizard for creating data analysis. For instance, filter values (status equals actif) are available to the user. He doesn’t need to know the values of different attributes to create filters.
- Data tracking
- Scheduling and historicizing executions of data analyses. The goal is to keep track of the indicators and how they are modified over time.
- Indicators and data history volume can be controlled by defining a storage life.
- Creating reports in Excel format (Excel 2007 and +) using Excel templates. The user decides about the place where to inject data and indicators resulting from data analyses. The report file is automatically updated when he exports it.
- Sharing queries, analyzes and reports between application users with different levels of rights( execution, modification, sharing)
- Integration in the Information System
- The host application can query the Jeet Report engine and execute queries created by users.
- Third-party applications can also query the Jeet Report engine via web services and execute queries defined in the web interface.
The main concept of Jeet Report is the query. The query creation process is simple:
The user selects object attributes; apply functions like aggregation (sum, number of occurrences, minimum and maximum values). After that, he can define filters (filter on status, filter on number of elements or filter on name...). If more than one object is needed, the wizard offers all possible paths between objects. He can also check if a relation exists between two objects. For example: A project without active task.
When creating the query, the user can specify that some filters are parameterized with a default value. The objective is to create queries that can be re-used by third-party applications. It becomes possible to choose the parameter value when executing the query.
The screen below gives an overview of the query creation and edition interface including its editor.
The editor gives an overview of the conceptual data model. However, it’s common to have complex data models and therefore unreadable. The imagined solution within Jeet Report is to do a search in the data model using the “auto-fill” feature when typing the first letters of the object name in the expected field and then, to filter the diagram on that object.
For example, the user wants to create a query on projects. He Types “Project” in the expected field, the data model get filtered on « Project » and its first level relations.
This feature increases user productivity and guarantees optimal readability of the data model.
Analysis is a set of queries that select the same data types. From a technical point of view, it’s a union of queries.
The analysis execution can be planned to be recurrent. The shelf life of the execution results can be defined by the user. For example: “Every day, I want to know the number of active tasks per project and I want to store the results over a rolling three months”. The user can then retrieve extraction of each daily execution for three months.
It becomes possible to create a query on stored results and to perform aggregations over time, the execution date being used as a search criterion. This allows users to examine a given indicator or data and its evolution over time, and to establish dashboards on timescales. Taking our example, it’s easy to create a graphic that meets the need “Evolution of the active tasks number per project over the last three months, day by day”.
A report consists of a source template (excel file for the present) where the user defines the zones for data, and results of a query or an analysis execution that are automatically injected into the template.
For example, the user can upload an empty excel template like the one below:
He can specify that the result of his execution will be injected starting from zone A2 :D2
And then, he can export his dashboard. He gets the following result:
The goal from this feature is to allow users to define complex reports using Excel tool (other tools will be used in the future) and to feed these reports simply by indicating where the result of a given analysis should go in the file. This feature is ideal to use data, to keep track of its quality and to feedback hierarchy.
Jeet Report provides advantages over existing BI tools or internal developments:
- Provided as a module of the existing application with a low integration cost: about few days
- Open source solution
- Low cost of implementation and maintenance
- Self-service: Meaning that there is no need for further development to create new reports. The user creates his own reports, which gives him more flexibility and reactivity.
- No technical knowledge needed but the data model one. The conceptual data model is easier to understand than the physical one.
Integration and technical prerequisites
Jeet Report requires a Java EE environment and JPA (with annotations) in the host application for the persistence definition of its data model.
The Jeet Report integration is very simple:
- Add Jeet Report dependency in the host application by modifying the pom.xml (in a maven context)
- Add the declaration of a maven plugin to merge both of the webapps by modifying the pom.xml.
- Implement two security classes:
- Send the authenticated user to Jeet Report
- Gives the users list to Jeet Report
- Add Jeet report entities in the persistance.xml of the host application.
- Declare http services used in Jeet Report HMI :
- Either the host application uses Spring, then it’s necessary to merge Jeet Report and the host application files.
- Or the host application doesn’t use Spring, then we need to incorporate the provided files and to add the declaration in the pom.xml.
Jeet Report Roadmap
Jeet report will continue to evolve according to customers’ needs in order to bring more and more useful functionalities to the company, including:
- Implementation of new features in the analysis
- Making query, analysis and reports creation more intuitive.
- Integration of alerts creation
- Integration of new reports
- Creation of web dashboards.
Contact and information
Jeet Report has been developed by Jeet Consulting and is under Creative Commons license (http://creativecommons.org/licenses/by-nc-nd/3.0/) .
More information on Jeet Report and how to contact Jeet Consulting can be found on the following website http://jeet-report.jeetconsulting.com/jeet-report/
Opinions expressed by DZone contributors are their own.