Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »



The following component diagram lays out the high-level components and how they interact within the Routine Report Service.  As it's name implies the functionality of this Service is to provide the capability to store report definitions and retrieve generated Reporting and Analytics.



As we can see from the diagram this Service owns the Routine Report definitions, interacts with the Reference Data service to add/remove rights based on those report definitions, and finally retrieve filled in Routine Reports on-demand when given the Routine Report content (i.e. the data to be used in filling the report definition).


Pros/Cons

ProCon
Service owns compiled storage and management, centralizing this in the system while allowing the non-compiled definition to be owned by other ServicesReport content needs to be given to this service, which being bounded by APIs means that retrieving and aggregating that data will be slow.  It'll not be suitable for running most routine reports requiring aggregation.
Service encapsulates and centralizes the Jasper engineConsumer Services need to specially retrieve and prepare the content for each report
Report right management (the when and what to add to Reference Data Rights) is centralized here


Problem

Along with this Service will be an associated Routine Report UI for seeing which reports the logged in user may run, and allow the user to run them at that time ().  To preserve this functionality, presumably the UI will want to query only this service for the reports that may be run, and then ask for a specific report to be run.  As currently shown, this Service needs the report content (data) to be given to it to generate the PDF/XLS/etc report.  The Routine Report UI module will not have this data.  The alternatives:

  1. this Service has access to all Service's content databases.  The con, and it's a big one, is that the reports held in this service are tightly coupled directly to every Service's private database.
  2. somehow, the UI which allows a report to be run actually ends up as a call to a RESTful endpoint in the service from which the report definition comes, so that Java code in that service may prepare the report content (data) to be given to this Service.  No clear path is evident for how these complex RESTful calls will be defined or triggered from one Routine Report UI module.

Out-of-scope

Currently data-pumps, event-based or otherwise, are considered out of scope.  Should alternative 1 to the problem above be considered, then this should be re-evaluated for certain data, with an eye to keeping LOE low.

Next Steps


  • No labels