Discussion with Blueprint RTAG August 2002 Tony Johnson SLAC.

Slides:



Advertisements
Similar presentations
Physicist Interfaces Project an overview Physicist Interfaces Project an overview Jakub T. Moscicki CERN June 2003.
Advertisements

Blueprint RTAGs1 Coherent Software Framework a Proposal LCG meeting CERN- 11 June Ren é Brun ftp://root.cern.ch/root/blueprint.ppt.
Java Analysis Studio CHEP 2000 February 2000 Tony Johnson
Ideas on the LCG Application Architecture Application Architecture Blueprint RTAG 12 th June 2002 P. Mato / CERN.
JAS – Distributed Data Analysis Grid Enabled Analysis Workshop Caltech - June 23-25, 2003.
Component and Deployment Diagrams
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Analysis with Geant4 and AIDA Tony Johnson SLAC-Geant4 Workshop February 2002 Tony Johnson.
Victor Serbo, SLAC30 September 2004, Interlaken, Switzerland JASSimApp plugin for JAS3: Interactive Geant4 GUI Serbo, Victor (SLAC) - presenter Donszelmann,
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Java Analysis Studio & Object Oriented Data Analysis (in Java) KEK 25 th May 2000 Tony Johnson - SLAC
JAS3 – Current Status and Prospects by Victor Serbo, SLAC.
FreeHEP Java Library Mark Dönszelmann, SLAC CHEP, La Jolla, March 2003.
Java Analysis Studio May Mark Dönszelmann (CERN) Tony Johnson (SLAC)
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003.
IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research KEK, Tsukuba, December 2003
David Adams ATLAS ATLAS Distributed Analysis David Adams BNL March 18, 2004 ATLAS Software Workshop Grid session.
ALCPG Software Tools Jeremy McCormick, SLAC LCWS 2012, UT Arlington October 23, 2012.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
JAS/Wired + Geant 4 Tony Johnson July Contents What is JAS? What is WIRED? –Future Directions JAS+AIDA+GAG+Wired + Geant 4= ? Making it easy to.
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
G.Barrand, LAL-Orsay OpenScientist Status (v11) Relationship with AIDA
Writing Extension Modules (Plugins) for JAS 3 Mark Donszelmann Tony Johnson Victor Serbo Max Turri CHEP2004, 27 september-1 october 2004, Interlaken, Switzerland.
FlexElink Winter presentation 26 February 2002 Flexible linking (and formatting) management software Hector Sanchez Universitat Jaume I Ing. Informatica.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
Using JAS3 for LCD Analysis Tony Johnson 20 th May 2003.
JAS3 - A general purpose data analysis framework for HENP and beyond Tony Johnson, Victor Serbo, Max Turri, Mark Dönszelmann, Joseph Perl SLAC.
Acat OctoberRene Brun1 Future of Analysis Environments Personal views Rene Brun CERN.
The FreeHEP Java Library ACAT 2000 Fermilab – October 2000 Mark Donszelmann, Julius Hrivnac – CERN Gary Bower, Tony Johnson, Joseph.
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
WIRED 4 An extensible generic Event Display Mark Donszelmann SLAC, Stanford, U.S.A. CHEP2004, 27 september – 1 october Interlaken, Switzerland.
AIDA Web Interface Tony Johnson, Victor Serbo, Max Turri AIDA Workshop, CERN, July 2003.
Frameworks CompSci 230 S Software Construction.
Java Analysis Studio Atlas Software Week February 2000 Tony Johnson
SEAL: Common Core Libraries and Services for LHC Applications CHEP’03, March 24-28, 2003 La Jolla, California J. Generowicz/CERN, M. Marino/LBNL, P. Mato/CERN,
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Update on IS performance issues Classes for storing and retrieving scan data from IS GUI updates –Scripting support –Histogramming Overview.
Java Analysis Studio - Status CHEP 98 - September 1998 Tony Johnson - SLAC Jonas Gifford + Kevin Garwood - University of Victoria.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
VICOMTECH VISIT AT CERN CERN 2013, October 3 rd & 4 th O.COUET CERN/PH/SFT DATA VISUALIZATION IN HIGH ENERGY PHYSICS THE ROOT SYSTEM.
Visualization of Geant4 Data: Exploiting Component Architecture through AIDA, HepRep, JAS and WIRED Geant4 Workshop, CERN - 2 October 2002 Joseph Perl.
Java Analysis Studio and the hep.lcd class library Mike Ronan - LBNL Joanne Bogart, Gary Bower, Tony Johnson - SLAC Nick Sinev - Oregon Don Benton - U.
LCIO A persistency framework and data model for the linear collider CHEP 04, Interlaken Core Software, Wednesday Frank Gaede, DESY -IT-
Interactive Data Analysis on the “Grid” Tech-X/SLAC/PPDG:CS-11 Balamurali Ananthan David Alexander
FreeHEP, JAS and WIRED Mark Dönszelmann, CERN/IT Charles Loomis, UC, Santa Cruz ATLAS Software Week, 30 November 2000.
General requirements for BES III offline & EF selection software Weidong Li.
JAS and JACO – Status Report Atlas Graphics Group August 2000 Tony Johnson.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
Features of JAS Plots Plots update in real time. Data for plots can be local or remote (use Java RMI to connect to JAS Data Server). Rich variety of styles.
Summary of the AIDA workshop AIDA Workshop, July What is AIDA  AIDA defines today interfaces for some common analysis data objects  IHistogram,
LCD WIRED FutureLCD Workshop May Joseph Perl 1 Future Plans for the LCD WIRED Event Display Joseph Perl SLAC Computing Services
AIDA Abstract Interfaces for Data Analysis Massimiliano Turri, SLACCHEP, La Jolla, March “The goal of the AIDA project is to define abstract.
David Adams ATLAS ATLAS Distributed Analysis (ADA) David Adams BNL December 5, 2003 ATLAS software workshop CERN.
David Adams ATLAS ATLAS Distributed Analysis and proposal for ATLAS-LHCb system David Adams BNL March 22, 2004 ATLAS-LHCb-GANGA Meeting.
David Adams ATLAS ADA: ATLAS Distributed Analysis David Adams BNL December 15, 2003 PPDG Collaboration Meeting LBL.
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
1 SLAC simulation workshop, May 2003 Ties Behnke Mokka and LCDG4 Ties Behnke, DESY and SLAC MOKKA: european (france) developed GEANT4 based simulation.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
SEAL: Common Core Libraries and Services for LHC Applications
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Potential use of JAS/JAIDA etc. SAS J2EE Review
Project Status and Plan
Data, Databases, and DBMSs
Java Analysis Studio - Status
Java Analysis Studio and the hep.lcd classes
WIRED 4 Event Display Linear Collider Simulation Workshop
Presentation transcript:

Discussion with Blueprint RTAG August 2002 Tony Johnson SLAC

Topics Covered Architectural issues –Use of (Abstract) Interfaces to create modular OO software Real Life Examples –Comments on Software Bus –Comments on Python vs. Cint etc. Many Topics not covered (in any detail) –Java (still the best way to write HEP software), JAS, JAS 3, FreeHEP, AIDA, Wired, HepRep, GRID Integration, etc.

Abstract Interfaces Specifies functionality of software component independent of its implementation –Allows multiple implementations Algorthm1/Algorithm2 Batch/Interactive Present/Future Such an essential element of OO design that newer languages such as Java define special construct “interface” on a par with “class” –C++ users must use “pure virtual classes”

Why Use Interfaces? Clean separation of specification and implementation Clean separation of components –Interaction only via interfaces ensures components can be dynamically loaded, upgraded, re- implemented, replaced, without effecting usage. Runtime selection of appropriate components –Especially useful when combined with (fine- grained) dynamic loading.

When to Use Interfaces? As a design tool –For yourself One class, or set of classes, normally performs multiple roles. Defining separate interfaces for each role clarifies which methods perform which role, avoids confusion. –For a collaborative project Separate discussion of goals from implementation Clarify use of terminology Large fraction of effort should go into design of interfaces –As opposed to implementation Break implementation into independent components As a business model –“Collaborate on design, compete on implementation”

Why Abstract? Otherwise couples implementation with interface? –Can have cake and eat it too -> –Why not? There is little overhead. Does Abstract --> Factories? –Not necessarily –I3Vector i3 = new Hep3Vector(); Downside of Interfaces –Adding/Changing methods breaks implementations Abstract implementation mitigates this Interface Abstract Implementation ABC

Examples of Interfaces in HEP FreeHEP 3-Vectors/4-Vectors JAS Histograming/Plotter Data Access (LCD Event Store) AIDA HepRep

FreeHEP 3-4 Vectors Everything that uses 3-4 vectors (jet finders, event shape, utilities) uses ThreeVector –Will work with any implementation of ThreeVector –The only place HepThreeVector is used is with new, everywhere else ThreeVector should be used. Note, no I in interfaces, the ThreeVector is the 3 vector, HepThreeVector is merely an implementation. ThreeVector AbstractThreeVector Hep3Vector

JAS 2 modules JASHist (Plot Bean) Fitting Framework FunctionsFitters Analysis Framework GUI Framework Plugin Histogram Accumulation 3-4 Vector Utilities Data Interface Histo/Plot Adaptor Network Adaptor Particle Properties Jet Finder PAWSQLstdHEP

JAS Plotting/Histograming JAS makes extensive use of abstract interfaces. For example –No direct coupling between plotter and histogram package. Easy to use histogram package in non-graphical environment Easy to use plotter in many areas unrelated to histograming Easy to switch from existing histograms to AIDA –User experience is of tight coupling Plot monitors histogram and updates in real time Plot can be used to rebin and renormalize histograms

1D Histogram2D Histogram Scatter Plot Data Source HasStyleHasStatisticsObservable Optional Interfaces JAS Plotter has been used in many applications beyond JAS, from online monitoring, to web servlets, to financial applets.

LCD Event Interfaces All access to event data via Event Interfaces –Everything from raw data to reconstructed particles, vertices and jets are described by (read-only) abstract interfaces. EVENT Users/ Analysis Reconstruction Simulation I/O

LCD Event Store Advantages of Abstract Interfaces –No need for “converters” or copying of data –If IO objects already implement event interfaces nothing to do, otherwise lightweight “adaptors” are all that are needed. –Leaves plenty of flexibility to implementation For example read-on-demand, or reconstruct-on-demand no need for user to say in advance what he intends to read. –Warning: Transient/Persistent mappings are often developed when reconstruction/simulation is main goal. They do not necessary provide the speed or modularity needed for interactive data analysis (c.f. Babar)

Abstract Interfaces for Data Analysis AIDA Goals –Provide set of abstract interfaces for data analysis Histograms, Clouds, Tuples, Fitting, Plotting, Trees, Storage. –Allow for multiple implementations OpenScientist, Anaphe/Lizard, JAS –Allow for flexibility in implementations Interpreter, GUI, 3D GUI, batch/interactive. –Language Independence C++, Java, (Python, …) –Meta Goals (Abstract Interfaces as Collaborative Tool) Encourage teams with different existing tools to collaborate. Initially develop common terminology, make interfaces represent best feature of all existing tools. Interoperability via common file format. Interoperability via modular components.

AIDA AIDA 2.2 since December 2001 AIDA 3.0 to be released September 30. User program (E.g. Geant4) AIDAAIDA Anaphe/Lizard OpenScientist JAS Other Tools? AIDAFILEAIDAFILE

AIDA Abstract Interfaces for Language Independence User Program (e.g. Geant4) AIDAC++AIDAC++ AIDAJAVAAIDAJAVA AIDA-JNI JAIDA AID AID = Abstract Interface Definition. Melds features of C++, Java, in natural way. Generates C++ and Java (and Python in future). C.f. Swig, Boost, Jace etc.

HepRep Abstract interface used to decouple experiment framework/data from Event Display. WIRED event display (HepRep client) used with –BaBar, LCD, Glast Possible to introduce new Event Display clients in future with no change to experiment code. Language independent –Interfaces easily mapped to CORBA, RMI, XML, Web Services, JNI etc.

Other Architectural Issues Software Bus Python vs. Cint Abstract Interfaces for LCG?

Software Bus Define “software Bus” and where/how it will be used. Publish/subscribe, messages, services Don’t treat it as a panacea Don’t confuse scripting language and software bus. High “Pointy-Haired-Quotient” in various references and diagrams referring to “Software Bus” “ scripting (Python) interpreter tool as software bus ”

Scripting Why tie framework to single (scripting) language? –(Remember we want modular software) If you have OO object model + data dictionary + software bus –Should be drivable from any OO scripting language (c.f. Java) Cint, Python, NetRexx, Java, JavaScript etc. –Maybe favour one or more, Should be no reason to exclude others Should be no need to tightly couple to any Should support GUI on equal level as scripting language

Where to Use (Abstract) Interfaces Data Dictionary –Should be possible to tie to Root (Cint) or any other data source Data catalog Detector Geometry Analysis Tools (AIDA) –Root should be included Scripting Services on Software Bus GRID services

Conclusions Short-term benefits of good design not always obvious –To users –Or sometimes even developers LHC will have a very long life span and will have a profound impact on HEP software well beyond CERN –Be serious about modular software to ensure that HEP software can evolve over LHC lifetime.