DØ Offline Reconstruction and Analysis Control Framework J.Kowalkowski, H.Greenlee, Q.Li, S.Protopopescu, G.Watts, V.White, J.Yu.

Slides:



Advertisements
Similar presentations
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Executional Architecture
COURSE: COMPUTER PLATFORMS
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
Apache Struts Technology
9.5 Software Architecture
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Computer Systems/Operating Systems - Class 8
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
Objects and Classes First Programming Concepts. 14/10/2004Lecture 1a: Introduction 2 Fundamental Concepts object class method parameter data type.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Use Case Analysis – continued
JokerStars: Online Card Playing William Sanville Milestone 4.
C++ fundamentals.
UNIT-V The MVC architecture and Struts Framework.
Behavioral Patterns  Behavioral patterns are patterns whose purpose is to facilitate the work of algorithmic calculations and communication between classes.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Use of ROOT in the D0 Online Event Monitoring System Joel Snow, D0 Collaboration, February 2000.
Workflow Management Chris A. Mattmann OODT Component Working Group.
Java Beans.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
ACM/JETT Workshop - August 4-5, ExceptionHandling and User Interfaces (Event Delegation, Inner classes) using Swing.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
An Introduction to Software Architecture
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Welcome to CIS 083 ! Events CIS 068.
Advanced PI Calculation Engine Makes Complex PI Calculations Easy! Use of EDICTvb for Multi-Plant Advanced PI Calculations Dane OverfieldEXELE Information.
Event Driven Programming
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Office Business Applications Workshop Defining Business Process and Workflows.
Chapter 38 Persistence Framework with Patterns 1CS6359 Fall 2011 John Cole.
Unit 4 Object-Oriented Design Patterns NameStudent Number CAI XIANGHT082182A KYAW THU LINHT082238Y LI PENGFEIHT082220L NAUNG NAUNG LATTHT082195L PLATHOTTAM.
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
CPSC 871 John D. McGregor Module 4 Session 1 Architecture Analysis/Design.
INFORMATION SYSTEM-SOFTWARE Topic: OPERATING SYSTEM CONCEPTS.
Introduction to Java Beans CIS 421 Web-based Java Programming.
Definition The framework is a library that controls the flow of events and data through well-defined interface points defined by user-written algorithm.
1 CMPT 275 High Level Design Phase Modularization.
Design Patterns -- Omkar. Introduction  When do we use design patterns  Uses of design patterns  Classification of design patterns  Creational design.
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
Software Design: Principles, Process, and Concepts Getting Started with Design.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
ProActive components and legacy code Matthieu MOREL.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Elaboration Iteration 3 – Part 3 - Persistence Framework -
Status & development of the software for CALICE-DAQ Tao Wu On behalf of UK Collaboration.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
Framework What has been happening? Jim Kowalkowski.
Mach-II Primer Ben Edwards An Introduction to Mach-II: An event-based, implicit invocation web-application framework.
Random Logic l Forum.NET l State Machine Mechanism Forum.NET 1 st Meeting ● December 27, 2005.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.
Go4 v2.2 Status & Overview CHEP 2003
The Client/Server Database Environment
An Introduction to Software Architecture
Event loops.
Presentation transcript:

DØ Offline Reconstruction and Analysis Control Framework J.Kowalkowski, H.Greenlee, Q.Li, S.Protopopescu, G.Watts, V.White, J.Yu

DØ C++ Framework Set of well established interfaces from which reconstruction and analysis algorithms are built. Propagates events through a sets of algorithms in a well defined and established manner. The algorithm configuration and set is determined at program execution time. The framework hides many system related complexities from the user and the algorithm developer and allow for sharing of code for common or related tasks.

Infrastructure RCP - Run Control Parameters –Persistent part of algorithm –Stored in database –Event data identified by RCP set ID EDM - Event Data Model Framework: –Build/Configure/Run Algorithms IO_PACKAGES: –Event read/write packages DØOM - Object persistency package

Qualities No coupling with external libaries Easy introduction of new algorithms Strong typing in event objects Independent GUI controls Flexible, run time configuration of reconstruction activities No need for user to write code to produce an executable with a custom configuration

Concepts Algorithms (Package) –Standard interface for configuration with RCP –Common manipulation such as status reporting –Defines a framework “pluggable” component Named event handlers (Interface) –Algorithms register event handlers –Handlers get invoked when the event occurs Factory –Simple algorithm auto-registration mechanism –Algorithm instances made by name at run time

Event Processing Event Handlers and Work Queues –Events generated by special Packages –Placed on an event queue for processing –Event contains type-code and an object Data Managers –Events in queue dispatched to data managers –Hold list of handlers (Interfaces instances) Controllers –Event dispatcher, sequencer, state controller –Queue and Package instances owner –Can be nested to arbitrary depth.

Class Algorithm : public Package, Process, Tag, RunInit { public: UserPackage(Context*); ~UserPackage(); virtual Result processEvent(edm::Event&); virtual Result tagEvent(edm::Event&); virtual Result runInit(const RunNumber&); virtual void reinitialize(edm::RCP); virtual void statusReport(); virtual void flush(); } Example User Algorithm Class Definition

Event Data Loop EventRead:er EventWrite:ew CalReco:cal ConeJetReco: jet3 ConeJetReco: jet5 KTJetReco: kt PackageType:instance “process” “read” “write” “verify” “decide” er:generate(Queue) er:makeDecision(Queue,Event) ew:output(Event) cal:processEvent(Event) jet3:processEvent(Event) jet5:processEvent(Event) kt:processEvent(Event) cal:verifyEvent(Event) jet3:verifyEvent(Event) jet5:verifyEvent(Event) “runInit” Cal:runInit(Run) kt:runInit(Run)

Event Handling Features No experiment or subsystem specific types New event types can be added by users without framework modifications Asynchronous and synchronous types Synchronous order can be determined at run time Event handlers and algorithm instances can be grouped by function and treated as a single unit

Interactive Components Threaded model No built in interpreter or GUI Commander Abstraction –configure algorithms and control event loop –get reports from algorithms Messenger Abstraction –catch and propagate errors and output to registered clients ORB –manage client/server communications and remote framework interactions

Simple Configuration Example reco.rcp: string PackageName = “Controller” string Flow = "generator decide filter process tag output" string Packages = ”event_read hits clustering id verify save" RCP event_read = RCP hits = RCP clustering = RCP id = RCP verify = RCP save = cluster_finder.rcp: string PackageName = “ClusterFinder” double seed_threshold = 2.3

Algorithm View

Interactive View

Conclusion Algorithm abstraction (Package) Algorithm configuration system (RCP) Extensible event handling and dispatching system with C++ templates (Interface) Factory to create algorithms at run time Provisions for state machine behavior Separation of GUI and interactive components from reconstruction engine Independent threads for engine and GUI