aida a bstract i nterfaces for d ata a nalysis l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
AIDA - A bstract I nterfaces for D ata A nalysis PowerPoint Presentation
Download Presentation
AIDA - A bstract I nterfaces for D ata A nalysis

Loading in 2 Seconds...

play fullscreen
1 / 20

AIDA - A bstract I nterfaces for D ata A nalysis - PowerPoint PPT Presentation


  • 151 Views
  • Uploaded on

AIDA - A bstract I nterfaces for D ata A nalysis. Andreas Pfeiffer for the AIDA group andreas.pfeiffer@cern.ch. Outline. Motivation Architectural issues Abstract Interfaces Components Status and future Plans. The AIDA project.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'AIDA - A bstract I nterfaces for D ata A nalysis' - nuri


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
aida a bstract i nterfaces for d ata a nalysis

AIDA - Abstract Interfaces for Data Analysis

Andreas Pfeiffer for the AIDA group

andreas.pfeiffer@cern.ch

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

outline
Outline
  • Motivation
  • Architectural issues
    • Abstract Interfaces
    • Components
  • Status and future Plans

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

the aida project
The AIDA project
  • AIDA project (Abstract Interfaces for Data Analysis) was initiated at the HepVis’99 workshop in Orsay
  • Presently active mainly developers from existing packages
    • Tony Johnson (JAS)
    • Andreas Pfeiffer (Lizard/Anaphe)
    • Guy Barrand (OpenScientist )
    • Mark Dönszelmann (Wired)
    • Developers from LHCb/Gaudi

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

introduction
Introduction
  • Design Interfaces for Data Analysis (in HEP)
    • “The goals of the AIDA project are to define abstract interfaces for common physics analysis tools, such as histograms. The adoption of these interfaces should make it easier for developers and users to select to use different tools without having to learn new interfaces or change their code. In addition it should be possible to exchange data (objects) between AIDA compliant applications.” (http://aida.freehep.org)
  • Open for contributions of any kind
    • questions, suggestions, code, implementations …

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

motivation
Motivation
  • Minimize coupling between components
  • Provide flexibility to interchange implementations of these interfaces
  • Allows and try to re-use existing packages
    • even across “language boundaries”
      • e.g., C++ analysis using Java Histograms
  • Allow for faster turn-around time

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

use of components with abstract interfaces
Use of Components withAbstract Interfaces
  • User Code uses only Interface classes
    • IHistogram1D * hist = histoFactory-> create1D(‘track quality’, 100, 0., 10.)
  • Actual implementations are selected at run-time
    • loading of shared libraries
  • No change at all to user code but keep freedom to choose implementation

User Code

Histo-IF

Fitter-IF

Histo-

Impl. 1

Fitter-

Impl. X

Histo-

Impl. 2

Fitter-

Impl. Y

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

architectural issue abstract interfaces
Architectural issue:Abstract Interfaces
  • Abstract Interfaces
    • Only pure virtual methods, inheritance only from other Abstract Interfaces
    • Components use other components only through their Abstract Interface
    • Defines a kind of a “protocol” for a component
    • Allow each component to develop independently
      • reduces maintenance effort significantly
    • Maximize flexibility and re-use of packages
      • Re-use of existing packages to implement components reduces start-up time significantly

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

architectural issue components i
Architectural issue: Components (I)
  • Identify components by functionality
  • Define “protocol” using Abstract Interfaces
  • Emphasize separation of different aspects for each component
    • Example: Histogram
      • statistical entity (density distribution of a physics quantity)
      • view of a “collection of data points” (which can be a density distribution but also a detector efficiency curve)
      • command to manipulate/store/plot/fit/...

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

architectural issue components ii
Architectural issue: Components (II)
  • “User’s view” is different from “implementor’s (developer’s) view”
    • separate Abstract Interfaces for both aspects
    • “command-layer” vs. “implementation-layer(s)”
  • UserInterface as a separate component
    • by definition couples to most of the other components
      • Facade pattern
    • promotes weak coupling between the other components
    • interfaces to scripting and/or GUI

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

initial categories and dependencies
Initial Categories and dependencies

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

history
History
  • started in Sept. 1999 (HepVis 99, Orsay)
    • several (mini-) workshops since then
      • main ones Paris 2000 and Boston 2001
  • release 1.0 summer 2000
    • concentrated on “developers view”
      • Histogram package only
        • IAxis, IHistogram, IHistogram1D, IHistogram2D, IHistogramFactory
  • release 2.0 May 2001 (“Boston release”)
    • about 20 Interface classes
    • aiming at discussion and gathering feedback

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

aida workshop autumn 2000 orsay
AIDA Workshop Autumn 2000 (Orsay)
  • Start working from “users view”
  • Concentrated discussions on
    • Histogram
      • “developer” vs. “user” view
    • Management
      • directory-like Tree
    • Store (developer only, hidden from user)
    • Tuple

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

aida workshop spring 2001 boston
AIDA Workshop Spring 2001(Boston)
  • Continued discussion on Interfaces
    • concentrated on open issues from Paris workshop and Infrastructure
  • New developments
    • JAida: C++ access to Java libs
    • Java reference implementation
  • Infrastructure
    • CVS repository, mailing lists, web, ...
  • Very constructive

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

across the languages
Across the languages
  • JAida : C++ access to Java libs
    • using C++ proxies implementing the C++ Abstract Interfaces to the Java interfaces

C++UserCode

AIDA-IF C++

JAida

AIDA-IF Java

Java Lib

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

infrastructure i
Infrastructure (I)
  • Location of repository (Java and C++)
    • Anonymous CVS access
    • :pserver:anoncvs@cvs.freehep.org:/cvs/aida (passwd aida)
    • module: aida
  • “Release area” for C++ code
    • /afs/cern.ch/sw/contrib/AIDA/<version>/AIDA/
      • #include <AIDA/IHistogram.h>
      • version : x.y.p
    • tarballs (C++) available in /afs/cern.ch/sw/contrib/AIDA/tar/AIDA-<version>.tar.gz

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

infrastructure iii
Infrastructure (III)
  • Mailing lists (archived)
    • <listName>@cern.ch
      • project-aida-dev (open)
      • project-aida (open)
      • project-aida-announce (posting moderated, subscription open)
  • Web page (http://aida.freehep.org/)
    • Updated automatically from repository
    • On web page links to implementations
      • from whoever provides one (and informs us)

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

status of components
Status of Components

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

time schedule release plan
Time schedule / release plan
  • Release for discussion andfeedback
    • even if not (yet) “complete”
  • V 2.0 mid May 2001 (“Boston release”)
    • C++ and Java version of the Interfaces
  • V 2.1 Aug. 2001 (“Genova release”)
    • updates from discussions at Geant-4 workshop
    • fixed some problems with C++ version
  • Aiming for 2-3 month release frequency

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

use cases of aida
“Use-cases” of AIDA
  • Java reference implementation in FreeHEP repository
  • JAS, OpenScientist and Lizard/Anaphe plan for implementations of version 2.x by Dec. 2001
  • Used by Gaudi/Athena (LHCb, Atlas, Harp)
    • Gaudi people involved in design
  • Adopted and used in Geant-4 examples/testing
    • new category created in Geant-4 for analysis
  • No need to go for “least common denominator”
    • use “reasonable” superset and concentrate on design

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch

summary
Summary
  • Design of Abstract Interfaces for Data Analysis
    • Maximize flexibility and re-use
    • Allow for faster turn-around time
    • Allows for and try to re-use existing packages
  • No need to go for “least common denominator”
    • use “reasonable” superset
    • concentrate on proper design
  • http://aida.freehep.org

Andreas Pfeiffer, CERN/IT, andreas.pfeiffer@cern.ch