Introduction
AJDL (Abstract Job Description Language) defines the components used to
describe distributed analysis. The primary components are datasets,
transformations which act on a dataset to produce a new dataset and
jobs which describe particular invocations. A transformations is
split into the application that describes the action to be taken
and the task that carries information used to configure the application.
These components are cataloged to allow users to discover, access and create instances. The interfaces for high-level services are defined in terms of these components.
The components have both generic and specialized interfaces that are described with a type model with generic types (Application, Task, Dataset, Job) and their subtypes (EventDataset, LsfJob, ...). Where possible, service and clients are constructed using the generic interfaces and can be used with any of the subtypes.
More information may be found in a note describing AJDL. There have been changes since this note was published.
Specification
The specification of each AJDL type includes both an XML description
of the included data and methods to interpret this data. The latter
are expressed as class descriptions in a high-level programming
language. At present, the initial specifications of these classes
are in C++ with a Python binding to the C++ classes.
The present specification is taken from the classes in the latest DIAL release. See the most recent DIAL release page for the DTD and class interfaces. Note that DTD is not rich enough to fully describe the structure and DIAL provides the code to convert between XML and C++ object descriptions.
The python binding s been created as part of the GANGA project and is available as PyDIAL. There are plans to additionally provide a limited python-only implementation to remove the dependency on DIAL and its external packages.
GLite
GLite has not expressed any interest in AJDL and operates at a different
level of abstraction. ARDA is developing an analysis service with an
AJDL interface that makes use of gLite to carry out the processing.
In this context AJDL datasets are mapped map to gLite files and AJDL jobs (or
subjobs) are be expressed in the gLite job definition language and are
be processed using the gLite WMS.