Difference between revisions of "Developer's Guide: Introduction"

From Gcube Wiki
Jump to: navigation, search
m (Related Documents)
 
(30 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Image:Alert_icon2.gif]] ''THIS SECTION OF GCUBE DOCUMENTATION IS CURRENTLY UNDER UPDATE.''
+
[[Category: Developer's Guide]]
 +
{|align=right
 +
||__TOC__
 +
|}
  
 
== Overview ==
 
== Overview ==
Welcome to the gCube's Developers Guide. The purpose of this document is to provide instructions for developers wishing to exploit a gCube based grid infrastructure. gCube is a versatile, rich featured grid platform that has been developed in the context of the DILIGENT European IST research project [http://www.diligentproject.org].  
+
gCube is a software system specifically conceived to enable the creation and operation of an innovative typology of infrastructure - an [http://en.wikipedia.org/wiki/Hybrid_Data_Infrastructure Hybrid Data Infrastructure] - that by leveraging Grid, Cloud, Digital Library and Service-orientation principles and approaches is delivering a number of data management facilities '''as-a-Service'''.  
 +
One of its distinguishing feature is the orientation to serve the needs of diverse Communities of Practice by providing each of them with a dedicated, flexible, ready-to-use, web-based working environment, named [http://en.wikipedia.org/wiki/Virtual_research_environment Virtual Research Environment].
  
The platform follows the Service Oriented paradigm and exploits and extends various existing grid middlewares and collaborative tools like the Globus Toolkit 4 [http://www.globus.org], gLite [http://www.cern.ch/glite], the GridSphere Portal Framework [http://www.gridsphere.org], etc. gCube offers a feature full platform for distributed hosting, management and retrieval of data and information, and a framework for extending state-of-the-art indexing, selection, fusion, extraction, description, annotation, transformation, and presentation of content.
+
gCube offers a feature full platform for distributed hosting, management and retrieval of data and information, and a framework for extending state-of-the-art processing, indexing, selection, fusion, extraction, description, annotation, transformation, and presentation of "data".
  
== gCube Architecture ==
+
The [[Developer's Guide | gCube Developer's Guide]] describes how to develop software components capable of interfacing with gCube to either be part of it or to reuse some of its facilities.
gCube enables scientists to declaratively and dynamically build transient Virtual Research Environments (VREs) by aggregating and deploying on-demand content resources, application services, and computing resources. It also monitors the shared resources during the VREs lifetime guaranteeing their optimal allocation and exploitation. Finally, it provides mechanisms to easily create VREs dedicated web portals through which scientists can access their content and services.
+
The gCube system is realised as a service oriented framework composed of a set of interacting services providing:
+
 
+
* support for the creation and operation of on-demand, transient virtual research environments;
+
* features necessary for handling shared content and application resources;
+
* access to information sources and applications provided by third-parties;
+
* a set of typical DL functions, like search, annotation, personalisation, document visualisation.
+
 
+
These services are designed to exploit the gLite middleware and are capable to consume the high computational and storage capabilities of the Grid infrastructure released by the EGEE [http://www.eu-egee.org/] project. Thus gCube services support complex and time consuming functionalities, while focusing on optimizing resource usage and satisfying QoS contracts
+
 
+
 
+
<center>
+
[[Image:Gcube architecture.png|gCube Architecture]]
+
 
+
'''Figure 1 - gCube Architecture'''
+
</center>
+
 
+
 
+
From the logical point of view, the gCube system is organised according the following layers:
+
 
+
=== Collective Layer ===
+
 
+
The Collective Layer enhances existing Grid collective services with the functionalities able to support the complex services interactions required by the Digital Library Layer. The Collective Layer contains services that are not associated with any one specific resource but rather are global in nature and manage interactions across collections of resources.
+
 
+
=== Digital Library Layer ===
+
 
+
The Digital Library Layer selects, integrates and enhances a set of reliable and dependable production-quality services, developed in digital library projects and applications, in order to cover the fundamental functionalities required for any virtual research environment in the e-knowledge area. The services of this layer provide submission, indexing and discovery of mixed-media objects (documents, videos, images, environmental data, etc.), and the management and processing of these objects through annotation, composition, cooperative editing, etc. It also supports the dynamic creation and access to transient virtual research environments.
+
 
+
=== Application Specific Layer ===
+
 
+
The Application-Specific Layer contains application specific services. Third party providers are enabled to migrate their data or functional components to the gCube framework. Specifications are being produced that facilitate the plug-in of legacy components needed to support user-specific scenarios and enable the re-use of existing content and applications.
+
  
 
== Intended Readership ==
 
== Intended Readership ==
Line 43: Line 16:
  
 
* Those who want to reuse the code – Programmers who will use gCube’s libraries to build their own services and middleware components, without need to access the source code.
 
* Those who want to reuse the code – Programmers who will use gCube’s libraries to build their own services and middleware components, without need to access the source code.
* Those who want to modify/extend the source code – Programmers who will use the platforms source code to enhance it, correct it, adapt it to different environments and applications domains.  
+
* Those who want to modify/extend the source code – Programmers who will use the platforms source code to enhance it, correct it, adapt it to different environments and applications domains.
 +
 
 +
It assumes fluency and familiarity either with with the [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Main_Page gCore Framework] or with [https://gcube.wiki.gcube-system.org/gcube/index.php/SmartGears gCube SmartGears].
  
 
== Related Documents ==
 
== Related Documents ==
Apart from this Developers Guide, DILIGENT has also made available two additional support documents:
+
Apart from this Developers Guide, gCube provides two additional support documents:
* the [[User's Guide]], which provides usage information and guidelines for the end-user of the two user communities that currently exploit the platform, namely ImpECt and ARTE.  
+
* the [[User's Guide]], which provides usage information and guidelines for the end-user.  
* the [[Administrator's Guide]], which provides information and guidelines for the installation, configuration and daily administration of a gCube based computational grid infrastructure.  
+
* the [[Administrator's Guide]], which provides information and guidelines for the installation, configuration and daily administration of a gCube based computational grid infrastructure.
 
+
Additional material that will help potential gCube developers is the
+
* gLite 3.0 Manuals Series User Guide [http://glite.web.cern.ch/glite/documentation/default.asp]
+
* Globus Toolkit 4.0 Developer's Guide [http://www.globus.org/toolkit/docs/4.0/common/javawscore/developer-index.html]
+
 
+
Regarding the architecture and inner details of gCube, the interested reader can visit the official gCube platform web site [http://www.gcube-system.org].
+
 
+
== Lexical Abbreviations ==
+
The following abbreviations are used extensively throughout the document:
+
 
+
{| border="1" cellpadding="5" cellspacing="0" style="text-align:left"
+
|-
+
! Abbreviation
+
! Meaning
+
|-
+
| API || Application Programming Interface
+
|-
+
| BDII ||  Berkely Database Information Index
+
|-
+
| BMM || Broker and MatchMaker
+
|-
+
| CA || Certification Authority
+
|-
+
| DHN || DILIGENT Hosting Node
+
|-
+
| DIS || DILIGENT Information Service
+
|-
+
| DIS-IC || DIS Information Collector
+
|-
+
| DIS-IP || DIS Information Provider
+
|-
+
| DL || Digital Library
+
|-
+
| DVOS || Dynamic Virtual Organization Support
+
|-
+
| EGEE || Enabling Grids for E-sciencE
+
|-
+
| GAS || Grid Access Service
+
|-
+
| HNM || Hosting Node Manager
+
|-
+
| NAL || Node Access Library
+
|-
+
| PKI || Public Key Infrastructure
+
|-
+
| PR || Package Repository
+
|-
+
| VO || Virtual Organization
+
|-
+
| VOMS || Virtual Organization Management System
+
|-
+
| VRE || Virtual Research Environment
+
|-
+
| WMS || Workload Management System
+
|-
+
| WMProxy || Workload Management Proxy
+
|-
+
| WSDL || Web Services Definition Language
+
|-
+
| WSRF || Web Services Resource Framework
+
|-
+
| XSLT || Extensible Stylesheet Language Transformations
+
|}
+
+
  
 
== Problem Reporting ==
 
== Problem Reporting ==
For problem reporting or any other enquiries regarding this document please contact Vangelis Floros (floros[[Image:At symbol.gif]]di.uoa.gr).
+
For problem reporting or any other enquiries regarding this document please contact the Support Team (support[[Image:At symbol.gif]]d4science.research-infrastructures.eu).

Latest revision as of 14:45, 21 October 2013

Overview

gCube is a software system specifically conceived to enable the creation and operation of an innovative typology of infrastructure - an Hybrid Data Infrastructure - that by leveraging Grid, Cloud, Digital Library and Service-orientation principles and approaches is delivering a number of data management facilities as-a-Service. One of its distinguishing feature is the orientation to serve the needs of diverse Communities of Practice by providing each of them with a dedicated, flexible, ready-to-use, web-based working environment, named Virtual Research Environment.

gCube offers a feature full platform for distributed hosting, management and retrieval of data and information, and a framework for extending state-of-the-art processing, indexing, selection, fusion, extraction, description, annotation, transformation, and presentation of "data".

The gCube Developer's Guide describes how to develop software components capable of interfacing with gCube to either be part of it or to reuse some of its facilities.

Intended Readership

The document targets two classes of programmers:

  • Those who want to reuse the code – Programmers who will use gCube’s libraries to build their own services and middleware components, without need to access the source code.
  • Those who want to modify/extend the source code – Programmers who will use the platforms source code to enhance it, correct it, adapt it to different environments and applications domains.

It assumes fluency and familiarity either with with the gCore Framework or with gCube SmartGears.

Related Documents

Apart from this Developers Guide, gCube provides two additional support documents:

  • the User's Guide, which provides usage information and guidelines for the end-user.
  • the Administrator's Guide, which provides information and guidelines for the installation, configuration and daily administration of a gCube based computational grid infrastructure.

Problem Reporting

For problem reporting or any other enquiries regarding this document please contact the Support Team (supportAt symbol.gifd4science.research-infrastructures.eu).