Download presentation
Presentation is loading. Please wait.
Published byAnnabella Amberlynn Phelps Modified over 6 years ago
1
SW Architecture SG meeting 22 July 1999 P. Mato, CERN
GAUDI Architecture SW Architecture SG meeting 22 July 1999 P. Mato, CERN The following are few slides intended to trigger a discussion/brainstorming with the goal of producing an Architecture for the DCS kernel. Definition on Architecture: “The architecture of a system is the structure of the system”. Two main ingredients: A set of building blocks, and a set of collaborations that specify how those building blocks cooperate to provide various system functions. An DCS architecture will allow us to provide set of control applications or control systems that fulfill a range of needs within the DCS domain. An architecture encourages reuse. Analogies in the real world: Gothic architecture, Lego Basic® architecture, Lego Technique® architecture. “To be successful, an object-oriented project must craft an architecture that is both coherent and resilient and then must propagate and evolve the vision of this architecture to the entire development team”, G. Booch, Object Solutions. 11/22/2018 GAUDI Framework
2
GAUDI: Scope We want to develop a Framework to be used in ALL the LHCb event data processing applications in all stages: high level trigger, simulation, reconstruction, analysis. Control applications are not included (slow control, run control) The bulk of the LHCb data processing software will be developed by physicists. Components will be developed using other frameworks (GUI, object persistency, simulation, …) 11/22/2018 GAUDI Framework
3
GAUDI: Goals To develop a framework
The framework should be customizable to provide solutions to the event data processing needs. It should: Allow physicists to focus on solving the physics problem. Easy to use Non physics-related functionality implemented by the framework Ensure low coupling between concurrent developments. Guarantee a later smooth integration of developments. Facilitate software re-use 11/22/2018 GAUDI Framework
4
Software Structure A series of data processing applications built on top of the frameworks and implementing the required physics algorithms. High level triggers Reconstruction Simulation Analysis A series of Frameworks and Toolkits. One main framework: GAUDI, various specialized frameworks: visualization, persistency, interactivity, simulation (Geant4), etc. Frameworks Toolkits A series of basic libraries widely used: STL, CLHEP, etc. Foundation Libraries 11/22/2018 GAUDI Framework
5
Major design criteria Clear separation between “data” and “algorithms”
Three basic types of data: event data (data obtained from the particle collisions) detector data (structure, geometry, calibration, alignment, environmental parameters,..) statistical data: (histograms, …) Clear separation between “persistent data” and “transient data”. Isolation of user’s code. Different/incompatible optimization criteria. Transient as a bridge between various representations. 11/22/2018 GAUDI Framework
6
Major design criteria (2)
Data store centered architectural style. Algorithms as data producers and consumers. User code encapsulated in few specific places: “Algorithms”: Physics code “Converters”: Converting data objects into other representations All components with well defined “interfaces” and as “generic” as possible. Design principles Coupling, inheritance, static storage, ... 11/22/2018 GAUDI Framework
7
Building blocks 11/22/2018 GAUDI Framework
8
Interfaces 11/22/2018 GAUDI Framework Gaudi Application Framework
IDataProviderSvc EventDataService IDataProviderSvc IAlgorithm IProperty DetectorDataService IHistogramSvc ConcreteAlgorithm HistogramService IMessageSvc ObjectA ObjectB MessageService 11/22/2018 GAUDI Framework Gaudi Application Framework
9
Algorithms Algorithm A Algorithm B A Algorithm C B C Transient Event
Data T1 Data T1 Each Algorithm only knows what data (type and name) is expecting as input and creating as output. The only coupling is through the data. Scheduling of sub-algorithms is responsibility of the parent algorithm. Real dataflow Apparent dataflow Transient Event Data Store Data T1 Algorithm A Data T2, T3 Data T2 Algorithm B Data T4 A Data T3, T4 Algorithm C Parent B Data T5 C Data T5 11/22/2018 GAUDI Framework
10
IParticlePropertySvc
Services Services are provided to Algorithms Examples: Job Options service (card files) Message reporting service Event/Detector/Histogram data service Event Selector Persistency and Conversion services User Interface (GUI) Particle property service ... IService IProperty PP File Particle Prop. Service IParticlePropertySvc Algorithm Algorithm 11/22/2018 GAUDI Framework
11
Event Data Store Event Data Service Persistency Service Algorithm
retrieveObject( “EcalDigits”,...) Fetch() Store() Event Data Service registerObject( “key”,...) Persistency Service Algorithm creates Direct reference Transient Event Store 11/22/2018 GAUDI Framework
12
Event Persistency SicbCnvSvc Transient Event Store Sicb data Files
Sicb/Zebra Converter Event Data Service Converter Converter Persistency Service RootCnvSvc Algorithm Algorithm Root data Files Root I/O Converter Converter Converter AppManager OutputStream OutputStream 11/22/2018 GAUDI Framework
13
Detector Description Editors Data Processing Application Editors
Algorithms Algorithms Projection view: version & event time Transient detector store Persistent Detector Description (DDDB) Geom Geom DetElem Geom DetElem DetElem DetElem Calib Geom Calib Slow DetElem DetElem Geom DetElem DetElem DetElem DetElem Slow DetElem DetElem Detector Data Producers Conversion services Conversion services ? Update persistency Other representations 11/22/2018 GAUDI Framework
14
Data Visualization User Interface Representations Conversion Store
(graphical, textual) Conversion Service Converter Converter Converter Converter Transient Event/ Detector Store Selector User Interface Selects objects in store 11/22/2018 GAUDI Framework
15
Application Configuration
What are the knobs at our disposal? JobOptions. Simple usage. It allows the end-user to overwrite any property of any algorithm or service. Algorithm/Service properties database. A more sophisticated way to modify the properties of the algorithms and services. Detector database edition to create new versions or releases. Write specific code. Configure your application by setting it at runtime. User interface component. Graphical (a la Visual Basic), command line (scripting language), etc. 11/22/2018 GAUDI Framework
16
Packages GAUDI Framework GaudiExam. RootCnv SicbCnv LHCbAlg DetCnv RIO
(applications) RootCnv (converters) SicbCnv (converters) LHCbAlg (algorithms) DetCnv (converters) RIO Futio (SICB) HbookCnv (converters) LHCbEvent (event model) DetDesc (detect. model) CernLib CLHEP Gaudi (foundations) STL Package group Package dependency optional 11/22/2018 GAUDI Framework
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.