SAGA
Encyclopedia
SAGA or "Simple API for Grid Aapplications" is the name of a family of related standards specified by the Open Grid Forum
to define an application programming interface (API), for common distributed computing functionality.
or similar grid computing
middleware systems, and does not target middleware developers, but application developers with no background on grid computing. Such developers typically wish to devote their time to their own goals and minimize the time spent coding infrastructure functionality. The API insulates application developers from middleware.
The specification of services, and the protocols to interact with them, is out of the scope of SAGA. Rather, the API seeks to hide the detail of any service infrastructures that may or may not be used to implement the functionality that the application developer needs. The API alignes, however, with all middleware standards within Open Grid Forum
(OGF).
The SAGA API is designed to be extensible: a well defined mechanism exists to specify additional API packages which expand the scope of the API as needed. The SAGA Core API itself defines a number of packages: job management, file management, replica management, remote procedure calls, and streams. A large part of the SAGA Core API specification
.
The SAGA Core API specification covers the following non-functional areas:
The SAGA Core API specification covers the following functional areas:
The following functional areas are supposed to be covered by SAGA API extensions:
standards exist in different programming languages. Apart from the supported languages, they differ from each other in their completeness in terms of the standard coverage, as well as in the distributed middleware the support. The following table lists all currently known, public implementations :
Open Grid Forum
The Open Grid Forum is a community of users, developers, and vendors for standardization of grid computing. It was formed in 2006 in a merger of the Global Grid Forum and the Enterprise Grid Alliance. The OGSA, OGSI, and JSDL standards were created by the OGF...
to define an application programming interface (API), for common distributed computing functionality.
Overview
The SAGA specification for distributed computing originally consisted of a single document, GFD.90, which was released in 2009.Scope
The SAGA API does not strive to replace GlobusGlobus Toolkit
The Globus Toolkit, currently at version 5, is an open source toolkit for building computing grids developed and provided by the Globus Alliance.-Standards implementation:The Globus Toolkit is an implementation of the following standards:...
or similar grid computing
Grid computing
Grid computing is a term referring to the combination of computer resources from multiple administrative domains to reach a common goal. The grid can be thought of as a distributed system with non-interactive workloads that involve a large number of files...
middleware systems, and does not target middleware developers, but application developers with no background on grid computing. Such developers typically wish to devote their time to their own goals and minimize the time spent coding infrastructure functionality. The API insulates application developers from middleware.
The specification of services, and the protocols to interact with them, is out of the scope of SAGA. Rather, the API seeks to hide the detail of any service infrastructures that may or may not be used to implement the functionality that the application developer needs. The API alignes, however, with all middleware standards within Open Grid Forum
Open Grid Forum
The Open Grid Forum is a community of users, developers, and vendors for standardization of grid computing. It was formed in 2006 in a merger of the Global Grid Forum and the Enterprise Grid Alliance. The OGSA, OGSI, and JSDL standards were created by the OGF...
(OGF).
The SAGA API is designed to be extensible: a well defined mechanism exists to specify additional API packages which expand the scope of the API as needed. The SAGA Core API itself defines a number of packages: job management, file management, replica management, remote procedure calls, and streams. A large part of the SAGA Core API specification
Standardization
SAGA was standardized by the Open Grid ForumOpen Grid Forum
The Open Grid Forum is a community of users, developers, and vendors for standardization of grid computing. It was formed in 2006 in a merger of the Global Grid Forum and the Enterprise Grid Alliance. The OGSA, OGSI, and JSDL standards were created by the OGF...
.
- SAGA Use Cases: an experimental OGF document describing the target use cases for SAGA.
- SAGA Requirement Analysis: another experimental OGF document which extracts specific requirements from the use case document.
- The SAGA Core API Specification: the basis of the standard, defines the Look and FeelLook and feelIn software design, look and feel is a term used in respect of a graphical user interface and comprises aspects of its design, including elements such as colors, shapes, layout, and typefaces , as well as the behavior of dynamic elements such as buttons, boxes, and menus...
of the SAGA API. - SAGA API Extensions: additional functional API extensions which use the Look and Feel of the SAGA API.
- SAGA API Language Bindings: mapping of the language neutral SAGA API to various programming languages.
The SAGA Core API specification covers the following non-functional areas:
- security and session management
- permission management
- asynchronous operations
- monitoring
- asynchronous notifications
- attribute management
- I/O buffer management
The SAGA Core API specification covers the following functional areas:
- job submission and management
- management of namespaces
- file I/O
- replica management
- streaming (modeled after BSD sockets)
- remote procedure calls
The following functional areas are supposed to be covered by SAGA API extensions:
- service discovery
- message exchange
- storage of application level information
- database access and integration
- checkpoint management and recovery
Implementations
Since the SAGA standard is not bound to a specific programming language, several implementations of the SAGAstandards exist in different programming languages. Apart from the supported languages, they differ from each other in their completeness in terms of the standard coverage, as well as in the distributed middleware the support. The following table lists all currently known, public implementations :
Name | Programming Language(s) | Standard Coverage | Supported Middleware |
---|---|---|---|
Bliss | Python | text for row 2, column 3 | text for row 1, column 1 |
DESHL | Python | text for row 2, column 3 | text for row 1, column 1 |
JavaSAGA | Java | text for row 1, column 3 | text for row 1, column 1 |
JSAGA | Java | text for row 1, column 3 | text for row 1, column 1 |
SAGA C++ | C++ / Python | text for row 1, column 3 | text for row 1, column 1 |