Integration and Interoperability Facilities Framework: Client Libraries

From Gcube Wiki
Revision as of 20:46, 21 May 2012 by Fabio.simeoni (Talk | contribs) (Client Libraries)

Jump to: navigation, search

Client Libraries

The CL layer of the Integration and Interoperability Framework focuses on client libraries, i.e. the set of system components that mediate access to system services. In particular, the layer defines:

  • a design model that codifies approaches to design issues which are common to all client libraries;
  • an implementation framework that provides developers with the support required to implement client libraries that comply with the design model;
  • a management model that identifies approaches and technologies for the management of client libraries components;

Collectively, models and framework promote effectiveness and consistency for the management, implementation, and use of client libraries.

Design Model

The design model for client libraries identifies a core set of capabilities that all libraries ought to offer, independently from the specific semantics for target services and the technologies required to interact with those services. Furthermore, the model defines common design recipes for client libraries, all of which are based on established best practices and are motivated by goals of simplicity, testability, evolvability and, where appropriate, compliance with standards. These include:

  • the management of service endpoints, including endpoint discovery through queries, endpoint binding strategies, and endpoint address caching strategies;
  • the management of faults thrown by service endpoints, including fault classification and modelling within the language;
  • the management of call scope and client credentials;
  • the support for asynchronous interactions, including interactions based on polling, notifications, or data streams;
  • the design of state-related operations;

Read more about the design model for client libraries here.

Implementation Framework

The design model for client libraries identifies capabilities and patterns common to all libraries, but it does not specify how libraries provide those capabilities or implement those patterns, nor does it mandate low-level details of their interfaces.

The client library framework is a tool for the development of client libraries that comply with the model. Through code sharing, the framework reduces development costs and ensures the consistency and correctness of library implementations.

Read more about the client library framework here.

Management Model

Management Model: The model for CL management will address at least the following (inter-related) issues:

  • module structure: relationship between CL modules, stub modules, and service modules
  • build outputs: what secondary artifacts are associated with CLs
  • release cycle: how are CLs released with respect to target services
  • change management: how changes in target service API should be handled
  • profiling and deployment: how should CLs be profiled for dynamic deployment
  • distribution: how should CLs be packaged for distribution