AIDA - Abstract Interfaces for Data Analysis - PowerPoint PPT Presentation

About This Presentation
Title:

AIDA - Abstract Interfaces for Data Analysis

Description:

(Boston) Continued discussion on Interfaces ... use 'reasonable' superset. concentrate on proper design. http://aida.freehep.org ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 21
Provided by: AndreasP61
Category:

less

Transcript and Presenter's Notes

Title: AIDA - Abstract Interfaces for Data Analysis


1
AIDA - Abstract Interfaces for Data Analysis
Andreas Pfeiffer for the AIDA group andreas.pfei
ffer_at_cern.ch
2
Outline
  • Motivation
  • Architectural issues
  • Abstract Interfaces
  • Components
  • Status and future Plans

3
The AIDA project
  • AIDA project (Abstract Interfaces for Data
    Analysis) was initiated at the HepVis99 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

4
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

5
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

6
Use of Components withAbstract Interfaces
  • User Code uses only Interface classes
  • IHistogram1D hist histoFactory-gt
    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
7
Architectural issueAbstract 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

8
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/...

9
Architectural issue Components (II)
  • Users view is different from implementors
    (developers) 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

10
Initial Categories and dependencies
11
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

12
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

13
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

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

CUserCode
AIDA-IF C
AIDA-IF Java
JAida
Java Lib
15
Infrastructure (I)
  • Location of repository (Java and C)
  • Anonymous CVS access
  • pserveranoncvs_at_cvs.freehep.org/cvs/aida
    (passwd aida)
  • module aida
  • Release area for C code
  • /afs/cern.ch/sw/contrib/AIDA/ltversiongt/AIDA/
  • include ltAIDA/IHistogram.hgt
  • version x.y.p
  • tarballs (C) available in /afs/cern.ch/sw/contri
    b/AIDA/tar/AIDA-ltversiongt.tar.gz

16
Infrastructure (III)
  • Mailing lists (archived)
  • ltlistNamegt_at_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)

17
Status of Components
18
Time schedule / release plan
  • Release for discussion and feedback
  • 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

19
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

20
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
Write a Comment
User Comments (0)
About PowerShow.com