Aida is middleware - it connects application programs, to data providers.


edu.stanford.slac.aida.dp.dpCa Defines the AIDA Data Provider for EPICS Channel Access.
edu.stanford.slac.aida.dp.dpChads Defines the java binding for the EPICS Archiver AIDA Data Provider's API.
edu.stanford.slac.aida.dp.dpSlc Defines the AIDA Data Provider for the SLC Database.
edu.stanford.slac.aida.dp.dpTest Defines the test java implementation of an AIDA Data Provider.
edu.stanford.slac.aida.dp.dpTestHist Illustrates a Java data provider constructing and returning structured aggregate data (see get method) using an ad-hoc IDL defined structure, as opposed to using Aida's DaValue mechanism.
edu.stanford.slac.aida.lib.da Defines the Aida API objects a client program uses to interact with Aida, DaObject and DaReference.
edu.stanford.slac.aida.lib.dp Defines the abstract data types that define the callable interfaces of the peers in an Aida network (most importantly the Data Provider peers).
edu.stanford.slac.aida.lib.util.common The Aida utility classes.
edu.stanford.slac.aida.sys.daNameServer Defines Aida's Directory Service server.
edu.stanford.slac.aida.sys.daServer Defines Aida's query processing server.
edu.stanford.slac.aida.tool.command Defines the Aida test suite.


Aida is middleware - it connects application programs, to data providers. It is also language independent - the data providers' APIs may be in c++ or java. As presently implemented, the AIDA API, how client programs connect to Aida, is only implemeted in Java, though we do have plans to create a c++ API for Aida too. AIDA itself, what lies between its API and its data providers, is java. This is documented in JavaDoc here. Additionally, the Data Providers which implemented in Java re documented here.

The AIDA System

AIDA consists of 3 groups of java packages:
edu.stanford.slac.aida.lib.* The Aida smarts. lib.da defines the Aida API - what a programmer uses to get data. lib.dp defines the abstract Aida data provider base classes and interfaces, AidaObjectI and AidaObjectRef. lib.util is where all of the private classes that make up the Aida core reside, particularly lib.util.common. This group of packages is where a programmer of the Aida system itself will spend most of their time.
edu.stanford.slac.aida.sys.* Defines the CORBA server objects for the two Aida servers - daServer and daNameServer
edu.stanford.slac.aida.dp.* Defines the Aida Data Providers. This is where a programmer who wants to add a new source from which Aida is to get data, would add a new package.* Defines a test and demo suite for Aida. Check out for an overview test set, plus test code for each Data Provider.