Definition The framework is a library that controls the flow of events and data through well-defined interface points defined by user-written algorithm.

Slides:



Advertisements
Similar presentations
Chapter 18 Building the user interface. This chapter discusses n Javas graphical user interface. n Swing: an enhancement of a library called the Abstract.
Advertisements

Introduction to Eclipse. Start Eclipse Click and then click Eclipse from the menu: Or open a shell and type eclipse after the prompt.
OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
Apache Struts Technology
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Chapter 7 User-Defined Methods. Chapter Objectives  Understand how methods are used in Java programming  Learn about standard (predefined) methods and.
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
Introduction to Java Programming, 4E
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Interact: RETSINA’s Agent Editor Provides a GUI interface to agent’s task and reduction libraries Allows –quick development of new libraries –easy extensions.
Aalborg Media Lab 23-Jun-15 Inheritance Lecture 10 Chapter 8.
V0.01 © 2009 Research In Motion Limited Introduction to Java Application Development for the BlackBerry Smartphone Trainer name Date.
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
Victor Serbo, SLAC30 September 2004, Interlaken, Switzerland JASSimApp plugin for JAS3: Interactive Geant4 GUI Serbo, Victor (SLAC) - presenter Donszelmann,
Lecture 2 - Struts ENTERPRISE JAVA. 2 Contents  Servlet Deployment  Servlet Filters  Model View Controllers  Struts  Dependency Injection.
Chien-Chung Shen Manifest and Activity Chien-Chung Shen
A First Program Using C#
DIANE Overview Germán Carrera, Alfredo Solano (CNB/CSIC) EMBRACE COURSE Monday 19th of February to Friday 23th. CNB-CSIC Madrid.
Use of ROOT in the D0 Online Event Monitoring System Joel Snow, D0 Collaboration, February 2000.
From BlueJ to NetBeans SWC 2.semester.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
Grob Systems, Inc., the customer, requires an industrial computer system that will have a function of acquiring raw data, processing the data, presenting.
K. Harrison CERN, 20th April 2004 AJDL interface and LCG submission - Overview of AJDL - Using AJDL from Python - LCG submission.
1 Principles of Computer Science I Prof. Nadeem Abdul Hamid CSC 120 – Fall 2005 Lecture Unit 10 - Testing.
Introduction to Java Programming with Forte Y. Daniel Liang.
CS 3131 Introduction to Programming in Java Rich Maclin Computer Science Department.
Debugging in Java. Common Bugs Compilation or syntactical errors are the first that you will encounter and the easiest to debug They are usually the result.
Generic API Test tool By Moshe Sapir Almog Masika.
1 Extend is a simulation tool to create models quickly, with all the blocks you need and without even having to type an equation. You can use a series.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
GUIs in Java Swing, Events CS2110, SW Development Methods Readings: MSD, Chapter 12 Lab Exercise.
Graphics and Event-Driven Programming in Java John C. Ramirez Department of Computer Science University of Pittsburgh.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Event-Driven Programming 1.
Intro to Applets. Applet Applets run within the Web browser environment Applets bring dynamic interaction and live animation to an otherwise static HTML.
David Adams ATLAS DIAL: Distributed Interactive Analysis of Large datasets David Adams BNL August 5, 2002 BNL OMEGA talk.
Java Software Solutions Lewis and Loftus Chapter 9 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Enhanced Class Design -- Introduction.
A.Abhari CPS1251 Topic 1: Introduction to Computers Computer Hardware Computer components Connecting Computers Computer Software Operating System (OS)
DØ Offline Reconstruction and Analysis Control Framework J.Kowalkowski, H.Greenlee, Q.Li, S.Protopopescu, G.Watts, V.White, J.Yu.
CSC 520 – Advanced Object Oriented Programming, Fall, 2010 Thursday, October 14 Week 7, UML Diagrams
Understand Windows Services Software Development Fundamentals LESSON 5.3.
Framework What has been happening? Jim Kowalkowski.
Chapter – 8 Software Tools.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
Lesson 28: More on the GUI button, frame and actions.
AdaptJ Sookmyung Women’s Univ. PSLAB. 1. 목차 1. Overview 2. Collecting Trace Data using the AdaptJ Agent 2.1 Recording a Trace 3. Analyzing Trace Data.
Execution ways of program References: www. en.wikipedia.org/wiki/Integrated_development_environment  You can execute or run a simple java program with.
12-Jun-16 Event loops. 2 Programming in prehistoric times Earliest programs were all “batch” processing There was no interaction with the user Input Output.
Introduction to Java Programming, 4E Y. Daniel Liang.
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
JRA2: Acceptance Testing senarious
Event loops 16-Jun-18.
Python Primer 2: Functions and Control Flow
Packages and Interfaces
Event loops.
Event loops 17-Jan-19.
Event loops 17-Jan-19.
Event loops 8-Apr-19.
Event loops.
Interfaces,Packages and Threads
Event loops.
Event loops 19-Aug-19.
Presentation transcript:

Definition The framework is a library that controls the flow of events and data through well-defined interface points defined by user-written algorithm components. The user creates algorithm components using framework tools. These components can be arranged into an execution or data-flow sequence that is managed by the framework library.

Library Organization framework.o iframework.o cframework.o RegEMReco.o RegCPSReco.o RegCftExamine.o libframework.a libio_packages.a libEMreco.a libCPSReco.a libCftExamine.a /lib/IRIX6_XXX/ Main program object files. Batch, interactive versions. Framework registration object files. One per framework package. Framework related libraries Reconstruction/ Analysis package libraries Must include one main program object file and a set of Reg object files when linking your executable. One Reg file must be linked for each package that you want available in the executable. The framework RCP controls which user package objects actually get created at run time.

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

Controller: Generate:generateEvent(WorkQueue&) Decide:makeDecision(const edm::Event&, WorkQueue&) Filter:filterEvent(const edm::Event&) Process:processEvent(edm::Event&) Analyze:analyzeEvent(const edm::Event&) Dump:dumpEvent(const edm::Event&) Tag:tagEvent(const edm::Event&) Output:outputEvent(const edm::Event&) JobSummary: jobSummary() RunInit:runInit(const RunNumber&) RunEnd:runEnd(const RunNumber&) Framework provided classes Interfaces available to user: Framework provided package available for use in RCP files. Groups together interfaces by name. Controls event flow through the interface groups. Is a package and implements a generic interface. Can masquerade as any other available interface. Interface name assigned by used in RCP file. Can contain Controllers.

Inside the Framework User package code Event loop X: processEvent(),tagEvent() Y:processEvent(),tagEvent() Z: processEvent(), runInit() U: processEvent(), runInit() V: generateEvent(),makeDecision() InterfaceNames=“generate decide process tag runInit” Packages=“v1,x1, x2, y1, z1, u1” Flow=“generate decide process tag” generate: decide: process: tag: runInit: (v1) V::generateEvent() (v1) V::makeDecision() (x1) X::processEvent() (x2) X::processEvent() (y1) Y::processEvent() (z1) Z::processEvent() (u1) U::processEvent() (x1) X::tagEvent() (x2) X::tagEvent() (y1) Y::tagEvent() (z1) Z::runInit() (u1) U::runInit()

Important Abstract Framework Components Package: Interface: Base class for user created, plug-in components. Reconstruction/Analysis algorithms implemented by derived classes Instance creation controlled by framework RCP file. Instances exist for entire run of program Automatically registers all the interfaces it implements Base class for framework call-out points. Instances identified by string name. Implemented by inheritance (similar to Package) Specifies when and where data will be passed into a users code. Basic component that framework uses to pass event into user packages Event data flows through Interfaces. A package typically implements several of these interfaces.

string InterfaceName = "process" string Interfaces = "generator decide filter analyze process dump tag output jobSummary runEnd runInit" string Flow = "generator decide filter process analyze dump tag output" Framework RCP Configuration Defaults.rcp: InterfaceName: We are configuring a controller. This is the interface name that the controller will be assigned. It will appear to the system as an “Process” interface. Interfaces: A list of all the interfaces that that will be used in this run. The interface named are assigned dynamically when the program starts. The user can add new interface classes and assign them a name without changing the framework library. Flow: An event will be directed through interfaces in the order specified by the flow. Any interface not in the flow is considered a free standing interface. This flow indicates that events will be passed through all the packages that implement processEvent() before being passed through all the packages that implement analyzeEvent().

User.rcp: RCP FrameworkInfo = string Packages = "generate_events first_processor second_processor” RCP generate_events = RCP first_processor = RCP second_processor = High-level Framework RCP file example Packages: Specifies the instance names of all the user package instances that should be created. The order is significant; interfaces will be distributed and executed in the order they appear in this parameter. The package type or class name is specified in the packages RCP file. There must be one RCP line and RCP file present for each of the strings in the Packages parameter. The FrameworkInfo parameter tells where to get the framework RCP information from. The information in defaults.rcp can just be included in this RCP.

Nesting Controllers can be placed into controllers string InterfaceName = "process" string Interfaces = "generator decide process jobSummary runEnd runInit" string Flow = "generator decide process" string Packages = "gen group1 group2" RCP gen = RCP group1 = RCP group2 = User.rcp string PackageName = "Controller" string InterfaceName = "process" string Interfaces = "filter analyze" string Flow = "filter analyze" string Packages = "filter" RCP filter = group_even.rcp string PackageName = "Controller" string InterfaceName = "process" string Interfaces = "filter analyze" string Flow = "filter analyze" string Packages = "filter" RCP filter = group_odd.rcp string PackageName = "Filter" string type = "even" filter_even.rcp string PackageName = "Filter" string type = ”odd" filter_odd.rcp

D0reco.x -show CPSDigiPkg $Name: v $ CPSReco $Name: v $ CalClusterReco $Name: v $ CalWeight $Name: v $ CftClusterPkg $Name: v $ Controller $Name: v $ DropChunks $Name: v $ DumpEvent $Name: v $ EMReco $Name: v $ FPSClusterPackage $Name: v $ FpsDigiPackage $Name: v $ GtrFindPkg $Name: v $ JetReco $Name: v $ MissingETReco $Name: v $ MuoHitReco $Name: v $ MuoSegmentReco $Name: v $ ReadEvent $Name: v $ SMT1DPosPack $Name: v $ SMTClusterPack $Name: v $ SMTInterfacePack $Name: v $ SMTLocaltoGlobalTransPack $Name: v $ SmtClusterPkg $Name: v $ TauReco $Name: v $ VertexReco $Name: v $ VertexSelect $Name: v $ WriteEvent $Name: v $ geometry_management $Name: v $ Batch Framework

Interactive Framework Features quit start help pause resume step next flush show config time ls cd rcp report (status) state where Commands One interface at a time One event at a time Print all the available packages Print the package instance within controller Dump the RCP for a package Deactivate/Activate a package instance Print the current package/interface Wait for user input after current interface completes Link using iframework.o Execute with “-i” option Still quite a primitive terminal interface Framework internals allow for many different UIs to exist

Future Plans Framework Event loop Commander Messenger Controller ORB Main Thread Comm Thread Network Netscape - Java GUI Pause Resume Stop Start Step Next Output Window Error Window Packages xyzxyz