140 likes | 402 Views
ATLAS Data Dictionary. A. Bazan, T. Bouedo, P. Ghez, T. Le Flour, S. Lieunard M. Marino, C. Tull. Athena - the structure. ADL. DObj. DObj. DictionarySvc. Why a data dictionary. Avoid tedious integration of objects to the framework Re-use the objects already present in the dictionary
E N D
ATLAS Data Dictionary A. Bazan, T. Bouedo, P. Ghez, T. Le Flour, S. Lieunard M. Marino, C. Tull
Athena - thestructure ADL DObj DObj DictionarySvc T. Bouedo
Why a data dictionary • Avoid tedious integration of objects to the framework • Re-use the objects already present in the dictionary • Concentrate the object development only on his behaviour • Provide access to transient objects • debugging, visualisation, scripting,... T. Bouedo
Why a data dictionary • Provide to the objects all the mechanism of conversion between transient and persistent stores • Manage the evolution of the described objects • Provide information on persistent objects and collections without loading them in transient store T. Bouedo
save edit delete browse user parse publish Object description management T. Bouedo
Description language • Programmatic language : C++ • : ATLAS official language, defined grammar, no new language to learn, … • : too close to the implementation, no keyword to describe the persistency, … • Description language for WEB documents : XML • : known language, description language, tools exist, every things can be described, ... • : no defined grammar, tedious to write ? , … • CORBA description language : IDL • : known language, description language for interfaces, defined grammar • :missing keywords, ... T. Bouedo
Choice • ADL = Athena Description Language = IDL + {keywords} • Added keywords : • object relationships (from ODL grammar) : relationship • visibility : private • access to non described objects : extern • persistent data members : persistent • Declaration of Athena objects : • keywords added: DataObject ContainedObject CollectionObject T. Bouedo
Choose the back-end configure the back-end user compile & generate code Code generation T. Bouedo
From description to utilization Back End Code Cxx,Java,... Compiler Front End Source ADL ADL Parser JavaCC ADL Analyzer Meta Objet Representation Back End Code Cxx,Java,... Back End Code Cxx,Java,... T. Bouedo
Meta-object representation GenObject InterfaceDefinition RelationDefinition 0..* 1 ElementaryDefinition 0..* 0..* 0..* 0..* 0..* 0..* 1 StructureDefinition AttributeDefinition1 TypeDefinition 0..* 0..1 1 OperationDefinition ParameterDefinition 1 0..* T. Bouedo
create described object find described object delete described object browse described objects find object description user access attributes of a described object call method on a described object Dynamic interaction T. Bouedo
Registration Creation Registration Access interface SERVICES Registered objects list Object description Method invocation Data member consultation Access Access Description Scripting Browser Integration in Athena Data Dictionary Service Algorithm ADL Object Transient Event Store Introspection Module ADL Object Descriptions Repository T. Bouedo
User support • Documentation (User Guide) • Tutorial • Integration in Athena • (CMT fragments) • Automatic ClassID • Together module (M. Marino) • Support (Examples, FAQ, …) T. Bouedo
Conclusion • Today the project is aborted • Some reasons to draw many lessons from that • Are people really ready to concentrate the effort at the design level using an high level description language, independent of the implementation? • Has this tool taken place too late in the Athena framework while a lot of C++ code was already written? -connected feedback: reverse engineering is not miraculous!- • Has this project been politically killed at the birth of the LCG? T. Bouedo