High Level Plan
- Identify the major bindings for APIs
- C++
- Java
- Python can come afterwards, being done through SWIG on top of C APIs.
- Identify a group of developers among gLite and ARC to develop client libraries in C
- ARC and gLite will work toward a harmonization activity of their APIs.
- In particular, this could be an even distribution of the work:
- ARC can provide the language wrappers logic they already have
- gLite can provide JDL classad parsing
- ARC will provide RSL parsing
- gLite and ARC will implement the interface
- UNICORE developers will write java APIs alone, providing full native support to
EMI-JSDL on one side, and legacy support for Unicore JSON.
Starting from the APIs, we will have the opportunity to investigate and
solve all the problems during the implementation of the EMI-ES so as to
come up with a unified client by...
The following diagram shows the intended stack. Implementations of the
SAGA specification are available
for the target programming languages. The goal is to provide one adaptor per programming language
implemented as an adaptor of one of the corresponding
SAGA implementations.
The colors of the diagram are by project phase and availability. The light blue components are planned for the first
phase, as the darker colored components will be based on them.
Detailed Plan
Below, you can find details about the planned activities. The tasks and their dependencies are
contained in the Gantt chart.
C++ Library
- Developers
- XML Bindings
- Low-level client classes
- Higher level abstractions of client classes
- Handling of different job description languages
Java Library
- Developers
- Björn Hagemeier <b.hagemeier@fz-juelich.de>
- XML bindings
- XmlBeans based Java bindings
- will be shared with UNICORE EMI-ES developments
- Maven Artifact: eu.emi.compute:emi-es-types:1.0-SNAPSHOT
- Low-level Client classes
- High level client classes
- Abstracting away recurring details, e.g.
- security setup
- service discovery
- Will also go in the factored client module
- Handling of different job description languages
- Will need a library being able to deal with Job description models in an abstract manner
- Should at least support mapping to EMI-ES JDL
- n-to-n mappings would be charming
- What are the JDLs involved?
- OGF JSDL
- globus rsl (arc)
- gLite JDL (based on classads, gLite)
- UNICORE JSON based JDL
- Parsing and mapping to JSDL already available
Python Library
- Developers
- Will come after <<sec-c-lib,C Library>>
- Less important in the first phase
- Handling of different job description languages
Command Line Client (CLI)
- Choose platform for implementation
- Depends on either <<sec-java-lib>> or <<sec-c-lib>>
EGI requested SGA support reasoning that their user communities demand it.
We do not have to develop a full
SAGA implementation, but rather implement adaptors for EMI-ES.
Templates for that should be available for any of the existing
SAGA implementations. Existing
SAGA implementations
will be listed in the respective programming language sections below.
Java implementation
C++ implementation
--
MarcoCecchi - 10-May-2011