170 likes | 278 Views
The Reporting Engine. Paolo Fabriani Engineering Ingegneria Informatica S.p.A. 2 nd ETICS All Hands Meeting Bologna – Oct 23-25, 2006. Summary. The ETICS Repository Artefacts The Report Engine Overview, Disseminators, Transformers Samples Converters, Aggregators, Pipelines.
E N D
The Reporting Engine Paolo Fabriani Engineering Ingegneria Informatica S.p.A. 2nd ETICS All Hands Meeting Bologna – Oct 23-25, 2006
Summary • The ETICS Repository • Artefacts • The Report Engine • Overview, Disseminators, Transformers • Samples • Converters, Aggregators, Pipelines
The ETICS Repository • The ETICS repository • A Data Management System thtat allows to store, catalog, manipulate, browse, search and delete ETICS artefacts • The ETICS repository contains • Raw Data • Binary Packages (rpm, tgz, msi, deb, zip, ...) • Reports (build reports and logs, test reports, ...) • Metadata and relations among artefacts Repository Service artefact Metadata Raw Data (xml) artefact Metadata Refs To Artefacts
ETICS Artefacts • ETICS Artefact • identifier • metadata • data source: packages, reports, logs, custom output, ... • accessible through URLs Repository Service artefact Metadata url Client (Cmd / Web) Raw Data (tgz)
Scenario • Simple Scenarios • ETICS Raw Artefact available in HTML format • User wants to get it as PDF • Build Log available as XML • Present it as HTML (given a XSL) • Build Artefact stored as TGZ • Download it as ZIP file • Advanced Scenarios • Produce Aggregate statistics from project-wide build logs
Approaches • Attach multiple formats, presentations & processings to each artefact Repository Service artefact Metadata Raw Data (tgz) artefact Metadata Raw Data (zip)
Approaches • Attach multiple formats, presentations & processings to each artefact • Attach parametric transformers to artefact to dynamically produce different formats, presentations & processings • can be reused to manipulate data of the same type • changes to the source format propagate to derived formats • less content is stored in the repository Repository Service artefact Metadata Raw Data (tgz) tgz 2 zip tgz 2 xxx ...
Transformer Disseminators • A Disseminator is a component added to any artefact to produce extended functionality for the artefact • defines a new access points for the artefact beyond accessing to the artefact itself • identifies a concrete trasformer that provides the functionality Repository Service artefact Metadata Raw Data (XML) URL+ params Client (Cmd / Web) PDF Disseminator client interface
PostScript Disseminators (cont’d) • defines a mapping (data & operation) between • the extended access point provided to the artefact (and a number of related artefacts) and • concrete operations & arguments of the transformer • multiple disseminators can be attached to each artefact Repository Service artefact Metadata Raw Data (XML) URL+ params Client (Cmd / Web) client interface PDF Disseminator WS mapping Transformer
Transformers • Implemented as Web Services • invoked using URLs (with args) and replying via HTTP responses • SOAP-based WS • Web Services have a profile describing • endpoint of the service • lists operations • input parameters and output types for each operation • Input/Output can be either simple values (e.g. strings) and artefacts (e.g. jpg images) • Input/Output can be passed by value or reference (e.g. an url to get a zip from the ETICS repository) • Input and outputs can be typed (e.g. MIME types) • used to register the plugin in the system
Dissemination Manager • Dissemination Manager • Registers • Disseminators • Web Services • Defines a mapping between: • Artefact types and disseminators • Artefact instances and disseminators
Characterisation • Initiator • User • via WebApplication or Command Line Interface • The ETICS System • on a scheduled basis or on significant events (e.g. build) • Storage • Persistent (until explicit removal) • e.g. time-consuming report generators could permanently be store the report int the ETICS Repository becoming an artefact itself • Volatile (until user retrieval) • Stored in a per-user or shared workspace outside the repository. Accessible via the ETICS dashboard (MyETICS)
Characterisation • Execution • Synchronous • e.g. for quick, single, transformations • Asynchronous • e.g. for time-consuming/mass reports • Lifetime • Limited • when volatile/async • Indefinite • when persistent
Sample Scenarios • On-demand, synchronous, volatile, format conversion • User asking for a printable version (PDF) of a build report • On-demand, asynchronous, volatile, code analysis • User asking for a project-wide, heavy analysis • Scheduled / Triggered, persistent report generation • ETICS Build System triggering the production of aggregate statistics after a build process
Sample TransformersFormat Converters • Report formatting • E.g. XML -> HTML • Package Format Conversion • e.g. RPM ->tgz • Graphs, Barcharts, Plots ...
Sample TransformersAggregators • IN: build report listing components built for a project • IN: raw quality metrics for each component built • OUT: raw quality metrics for the whole project • OUT: high level quality metrics
Sample TransformersPipelines • composes several transformers in a pipeline • enables rapid development of transformers composing existing ones • can be implemented as a pipeline engine • customized on a specific pipeline definition that • describes the composition of transformers • maps outputs to inputs T1 T2 T4 T3