Aida, Jaida and Aidajni: Data Analysis Using Interfaces
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Abstract Interfaces for Data Analysis - Component Architecture for Data Analysis Tools
SLAC-PUB-9409 August 2002 CERN-IT-2001-013 Abstract Interfaces for Data Analysis - Component Architecture for Data Analysis Tools G.Barrand (LAL, Orsay, France) P.Binko (CERN, Geneva, Switzerland) M.D¨onszelmann (CERN, Geneva, Switzerland) A.Johnson (SLAC, Stanford, USA) A.Pfeiffer (CERN, Geneva, Switzerland) Abstract The fast turnover of software technologies, in particular in the domain of interactivity (covering user interface and visualisation), makes it difficult for a small group of people to produce complete and polished software-tools before the underlying technologies make them obsolete. At the HepVis '99 workshop, a working group has been formed to improve the pro- duction of software tools for data analysis in HENP. Beside promoting a distributed de- velopment organisation, one goal of the group is to systematically design a set of abstract interfaces based on using modern OO analysis and OO design techniques. An initial domain analysis has come up with several categories (components) found in typical data analysis tools: Histograms, Ntuples, Functions, Vectors, Fitter, Plotter, Analyzer and Controller. Special emphasis was put on reducing the couplings between the categories to a minimum, thus optimising re-use and maintainability of any component individually. The interfaces have been defined in Java and C++ and implementations exist in the form of libraries and tools using C++ (Anaphe/Lizard, OpenScientist) and Java (Java Analysis Studio). A special implementation aims at accessing the Java libraries (through their Abstract Interfaces) from C++. This paper gives an overview of the architecture and design of the various components for data analysis as discussed in AIDA. Keywords: Abstract Interfaces Data Analysis OO Architecture Design 1 Introduction A characterisation of progress in software development has been the regular increase in levels of abstraction. -
Status of PI Analysis Services
StatusStatus ReportReport ofof ππ AnalysisAnalysis ServicesServices Application Area Meeting, 9 July 2003 Lorenzo Moneta CERN/EP-SFT http://lcgapp.cern.ch/project/pi/ OverviewOverview Physicist Interface (PI) started in mid Nov’02 Review with experiments to define workplan Project proposal to SC2 end January 03 Status report at SC2 last week Five working areas identified Analysis Services Analysis Environment Pool & Grid PI Event & Detector Visualization Infrastructures & Documentation Not all items have same priority: Analysis Services first Resources: Vincenzo Innocente 30%, Andreas Pfeiffer (40%), L.M. (50%) Application Area Meeting, 9 July 2003 2 Lorenzo Moneta, CERN AnalysisAnalysis ServicesServices AIDA Review, adapt and extend Interfaces to Data Analysis Root implementation of AIDA Provide an implementation of the Interfaces to Data Analysis, as defined by the previous work package, based on Root. Interface to SEAL and POOL services Use SEAL and POOL to provide PI with services such as plugin management, object whiteboard and persistency services. Blueprint compliant Analysis tool set Integration of various component in a consistent analysis tool set based on AIDA interfaces – mainly external contributions Application Area Meeting, 9 July 2003 3 Lorenzo Moneta, CERN AIDAAIDA AIDA - Abstract Interfaces for Data Analysis Application Area Meeting, 9 July 2003 4 Lorenzo Moneta, CERN AIDAAIDA (2)(2) Version 3.0 since Oct. 2002 User level interfaces to analysis objects (histograms, ..), plotter and fitter Expose -
Aida, Jaida and Aidajni: Data Analysis Using Interfaces
AIDA, JAIDA AND AIDAJNI: DATA ANALYSIS USING INTERFACES M. Donszelmann, SLAC, Stanford, CA 94309, USA T. Johnson, SLAC, Stanford, CA 94309, USA V. Serbo, SLAC, Stanford, CA 94309, USA M. Turri, SLAC, Stanford, CA 94309, USA Abstract source using the AID (Abstract Interface Definition [6]) AIDA, Abstract Interfaces for Data Analysis [1], is a set tool. This setup makes it easy to add new language and to of abstract interfaces for data analysis components: maintain consistent set of interfaces across different Histograms, Tuples, Functions, Fitter, Plotter and other languages. typical analysis categories. The interfaces are currently Any AIDA program begins with Factories. Instead of defined in Java, C++ and Python and implementations creating objects directly using "new" one uses factories. exist in the form of libraries and tools using C++ There is one "master" factory, IAnalysisFactory from (Anaphe/Lizard [2], OpenScientist [3]), Java (JAIDA [4]) which other factories are obtained. The IAnalysisFactory and Python (PAIDA [5]). allows you to obtain factories for creating Trees This paper will describe AIDA in more details and will (ITreeFactory), Histograms, Clouds and Profile focus on Java implementation of AIDA, which is part of Histograms (IHistogramFactory), Tuples (ITupleFactory), FreeHEP Java library [4]. FreeHEP library also include etc. Please have a look at the piece of code below: many other useful utilities; this paper will describe two of them. AIDAJNI – library that enables C++ program to use Java implementation of AIDA, and AIDA Tag Library – set of HTML-like tags that allows user to easily include IAnalysisFactory af = IAnalysisFactory.create(); live plots into the web pages. -
Analysis with AIDA and Anaphe
Analysis with AIDA and Anaphe User Workshop CERN, 11-15 November 2002 Lorenzo Moneta CERN IT/API [email protected] Outline zAIDA (Abstract Interfaces for Data Analysis) yconcept and design zAIDA implementations (Anaphe) zDescription of the interfaces zUser examples zConclusions 11/13/2002 Lorenzo Moneta, CERN IT/API 2 What is AIDA ? z AIDA : Abstract Interfaces for Data Analysis z Open source project with the goal to define abstract interfaces for common physics analysis objects yHistograms, ntuples, functions, fitter, plotter, tree and data storage z Defines a common XML format for data exchange z Allows multiple implementations and multiple languages yC++, Java and Python z Exist three AIDA implementations: yAnaphe (CERN) in C++ yJAS/JAIDA (SLAC) in Java yOpenScientist (Orsay) in C++ 11/13/2002 Lorenzo Moneta, CERN IT/API 3 Abstract Interfaces z An Abstract Interface (Class) specifies a protocol how clients may access and manipulate a component z Defines no implementation but only functionality z Essential element of OO to achieve a modular design: yClean separation of specification and implementation yClean separation of components yComponents can be upgraded or replaced without effecting usage ( plug in /out model) Interfaces are the SW bus communication protocol of the bus C1 C2 C3 C4 components 11/13/2002 Lorenzo Moneta, CERN IT/API 4 AIDA zUser code sees only the abstract interfaces yImplementation can be selected at run time without any change to the code (loading shared libraries) Anaphe A A I User program I OpenScientist D (E.g. Geant4) D A A JAS F I L Other Tools? E 11/13/2002 Lorenzo Moneta, CERN IT/API 5 AIDA History z AIDA started in 2000 by defining a common interfaces for histograms z First end-user release (v.