You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

1. The goals of Access Layer

The Access Layer (or AL) is the central data access library, which  allow data access for the users/applications through various APIs and programming languages. 

Thus, its main purpose is to provide mechanisms for reading, writing and manipulating IDS data objects, as being defined in the Data Dictionary (DD).

>>>SLIDES<<<

1.1. Access Layer architecture (Bartek)

In order to cope with multiple languages and maintaining at the same time a unique structure definition, the AL architecture defines a few layers.

1.1.1. Application Layer

Application Layer is the layer of users programs or dedicated tools that manipulates IDS data through High Level Interfaces

1.1.2. High Level Interfaces

 This layer provides the external Application Programming Interface (API), and its code is automatically produced from the XML description of the ITM database structure. For each supported programming language, a high level layer is generated in the target language.

High Level Interfaces available in AL include:

  • Fortran
  • C++
  • Matlab
  • Java
  • Python

Methods exposed by High Level Interfaces:

  • —Operations on data base entry
    • —CREATE
    • —OPEN
    • —DELETE
    • —CLOSE
  • —Operations on IDSes  - AL operates at the IDS level (with some exceptions) providing only methods for “atomic” operations such as:
    • —PUT
    • —GET
    • —PUT_SLICE
    • —GET_SLICE

1.1.3. Low Level

The Low Level layer is implemented in CPP (but with C API)  and provides unstructured data access to the underlying databases/backends. It defines an API which is used by all the high level layer implementations. Knowledge of this API (presented in a later section) is not necessary to end users, and is only required to the developers of new language specific high level implementations of the AL as well as the developers of support tools.

1.1.4. Backends

Backends are plug-ins that allows for interaction between an abstract Low Level layer and physical storages.

Currently implemented backends allows to store data in: memory cache, as MDSPlus files, HDF5 files and ASCII files (this BE is used mainly for testing purposes)

2. The goals of Access Layer

The Access Layer (or AL) is the central data access library, which  allow data access for the users/applications through various APIs and programming languages. 

Thus, its main purpose is to provide mechanisms for reading, writing and manipulating IDS data objects, as being defined in the Data Dictionary (DD).

2.1. Access Layer architecture (Bartek)

In order to cope with multiple languages and maintaining at the same time a unique structure definition, the AL architecture defines a few layers.

2.1.1. Application Layer

Application Layer is the layer of users programs or dedicated tools that manipulates IDS data through High Level Interfaces

2.1.2. High Level Interfaces

 This layer provides the external Application Programming Interface (API), and its code is automatically produced from the XML description of the ITM database structure. For each supported programming language, a high level layer is generated in the target language.

High Level Interfaces available in AL include:

  • Fortran
  • C++
  • Matlab
  • Java
  • Python

Methods exposed by High Level Interfaces:

  • —Operations on data base entry
    • —CREATE
    • —OPEN
    • —DELETE
    • —CLOSE
  • —Operations on IDSes  - AL operates at the IDS level (with some exceptions) providing only methods for “atomic” operations such as:
    • —PUT
    • —GET
    • —PUT_SLICE
    • —GET_SLICE

2.1.3. Low Level

The Low Level layer is implemented in CPP (but with C API)  and provides unstructured data access to the underlying databases/backends. It defines an API which is used by all the high level layer implementations. Knowledge of this API (presented in a later section) is not necessary to end users, and is only required to the developers of new language specific high level implementations of the AL as well as the developers of support tools.

2.1.4. Backends

Backends are plug-ins that allows for interaction between an abstract Low Level layer and physical storages.

Currently implemented backends allows to store data in: memory cache, as MDSPlus files, HDF5 files and ASCII files (this BE is used mainly for testing purposes)

  • No labels