This document introduces xal‘s concepts.


xal‘s primary concept is to develop to a session, i.e. have an unified API to manage resources that can be applied relative to session objects. Then, xal is a proof-of-concept implementation of this idea. So its internal architecture may change (improve).

Here is a summary of xal‘s internal architecture:

  • a session holds a registry of resource providers. Typically:
    • in order to use xal or related libraries, you have to setup a session ;
    • in order to write xal-powered scripts or libraries, you receive session instance as an input argument.
  • a resource provider implements high-level resource API for specific environment, typically using third-party libraries (stdlib, Fabric, ...). A resource provider is also a resource factory.
  • a resource instance describes an object of the environment: a file, an user, ...