23.05.2014 Views

Athena Developer Guide

Athena Developer Guide

Athena Developer Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Athena</strong> Chapter 9 Data dictionary Version/Issue: 2.0.0<br />

might be programmatic entity or construct (which could denote components, structs,<br />

common blocks, streams, files, etc.). However, since it is almost certain that most, if<br />

not all, such entities in <strong>Athena</strong> will in fact correspond to real objects, we will not dwell<br />

on this distinction.<br />

NB: The term data dictionary connotes a certain technical implementation which we do<br />

not (necessarily) advocate. This term implies a central repository containing the<br />

information about those objects being described. This is one possible implementation<br />

of some of the concepts in this paper. However, it is also possible (perhaps even<br />

desirable for some purposes) that the information resides internal to the object (for<br />

example). In this Chapter we use the term Data Dictionary as a generic term denoting<br />

the broad concept and not as an indication of where the object description resides.<br />

9.1.2 Roles of a Data Dictionary (DD)<br />

The motivation for implementing a DD in <strong>Athena</strong> can be illustrated by listing the potential roles<br />

that a DD can play within the Architecture. These roles include:<br />

• Data Tools Integration<br />

Tools needed to perform many tasks within the overall system` which are not specific to a<br />

particular data object type, including browsing and editing, visualization, simple or standard<br />

transformations, etc.<br />

• Interactive Data Queries<br />

The ability to interrogate a data object as to its shape and content from the interactive user<br />

interface (e.g. scripting language interface).<br />

• Automatic/Semiautomatic Persistency<br />

The ability to apply generic converters and/or to automatically generate specialized converters<br />

and/or to generate converter skeletons for subsequent, manual customization.<br />

• Schema Evolution (Version-Safe Persistency)<br />

Most data objects in the Event Data Model (EDM) typically change multiple times throughout<br />

their lifecycle within a HEP experiment. Support for evolution of the EDM schema is critical.<br />

• Multi-Language Support<br />

Components written in multiple programming languages (e.g. C++, Java, FORTRAN) will be<br />

used in the context of the <strong>Athena</strong> framework. These components need to exchange data in a<br />

language independent interchange representation.<br />

• Component Independence, Stability, & Robustness<br />

The ability to write code to a reflection API such that changes external to a component do not<br />

necessitate any code changes within the component leads naturally to code stability and,<br />

consequently, code robustness. Architectural attention to physical interdependencies of<br />

framework components also benefits from the use of such an API.<br />

page 70

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!