Difference between revisions of "Developer's Guide"

From Gcube Wiki
Jump to: navigation, search
(Contents)
(How-tos)
 
(144 intermediate revisions by 12 users not shown)
Line 1: Line 1:
 +
[[Category: Developer's Guide]]
 +
{|align=right
 +
||__TOC__
 +
|}
 
Documents technical-oriented information that will help developers further extend and exploit gCube’s source code. The document will target two classes of programmers:
 
Documents technical-oriented information that will help developers further extend and exploit gCube’s source code. The document will target two classes of programmers:
  
* Those who want to reuse the code – Programmers who will use gCube’s libraries to build their own tools, without need to access the source code.
+
* Those who want to interface with gCube or to reuse gCube code – Programmers who will use gCube’s libraries to build their own tools, 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.
  
== Contents ==
+
The Guide is organised as follows.
 +
[[#Overview | Overview]] provides the developer with a general summary of the gCube technology. 
 +
[[#How-tos | How-to]] provides the developer with pragmatic, detailed and practical advice on gCube technology.
 +
Components Programming Reference Sections provide the developer with a detailed description of the gCube constituents organising them according to a [[#Components Programming Reference: Functionality-oriented View | Functionality-oriented View]] and a
 +
[[#Components Programming Reference: Data-typology-oriented View | Data-typology-oriented View]].
  
# [[Developer's Guide:Introduction|Introduction]]
+
The gCube team welcomes contributions from everyone who shares our vision and wishes to contribute in a constructive manner to improve and enhance the available software assets.
# [[gCube Architecture]]
+
As such, gCube have adopted this [[Code of Conduct | Code of Conduct ]] and require all those who wish to participate to agree to these guidelines.
# [[Reference Model]]
+
 
# gCube Components Programming Reference
+
=== [[Developer's Guide: Introduction | Overview]] ===
## [[gCube Infrastructure Enabling Services]]
+
: [[Reference_Model | gCube Reference Model]]  
### [[Information System]]
+
: [[GCube_Architecture | gCube Reference Architecture]]
### [[Virtual Organisation Management]]
+
: [[Glossary]]
#### [[Security Library]] (NEW)
+
 
#### [[Virtual Organisation Management LEGACY]]
+
=== How-tos ===
### [[VRE Management]]
+
: [[How to develop a gCube Component]]
### [[ExecutionEngine | Execution Engine]]
+
: [[How to develop a gCube Portlet]]
### [[WorkflowEngine | Workflow Engine]]
+
: [[Featherweight Stack | How to interface with a gCube-based Infrastructure (a.k.a. Featherweight Stack Client)]]
### [[Messaging Infrastructure]]
+
: [[Integration_and_Interoperability_Facilities_Framework:_Client_Libraries_Framework | How to interface with a gCube-based Infrastructure (a.k.a. the gCube Client Libraries Framework)]]
### [[Featherweight Stack| Featherweight Client Stack ]]
+
: [[SmartGears | How to turn software applications and containers into gCube resources (a.k.a. the gCube SmartGears Framework)]]
### [[Utility and Common Libraries]]
+
: [[FHNManager | How to integrate gCube system with external Cloud Providers]]
#### [[common-utils-encryption]]
+
: Accounting
#### [[common-encryption]]
+
:: [[Accounting Lib | How to produce accounting records]]
## [[The_GCube_Information_Organisation_Services|gCube Information Organisation Services]]
+
:: [[Accounting Analytics | How to consume accounting records]]
### [[Storage_Management_NEW|Storage Manager]]  
+
:: [[Accounting Portlet: How to install and configure |How to install and configure Accounting Portlet(AM)]]
### [[Storage Management|Storage Manager (OLD)]]  
+
: Data Analytics
### [[Content_Manager_(NEW)|Content Manager]]
+
:: [[Statistical Algorithms Importer: How to install and configure| How to install and configure Statistical Algorithms Importer(SAI)]]
### [[Content_Manager_Library|Content Manager Library]]
+
:: [[Statistical_Algorithms_Importer | How to Implement Algorithms by Statistical Algorithms Importer(SAI)]]
### [[gCube_Document_Model| gCube Document Model and gCube Model Library]]
+
:: [[How-to Implement Algorithms for DataMiner | How to Implement Algorithms for DataMiner by Java libraries]]
### [[GCube_Document_Library_(2.0)|gCube Document Library]]
+
:: [[How_to_Interact_with_the_DataMiner_by_client | How to Interact with the DataMiner by client]]
### [[View Manager | View Manager]]
+
:: [[How to use the DataMiner Pool Manager | How to use the DataMiner Pool Manager]]
## [[gCube Information Organisation Services|gCube Information Organisation Services  (LEGACY)]]
+
<!-- :: <strike>[[Legacy_applications_integration | How to integrate legacy applications and offer them via WPS]]</strike> -->
### [[Storage Management]]
+
: Data Publishing
### [[Content Management]]
+
:: [[How to programmatically publishing a spatial dataset and the associated metadata by the gCube SDI]]
### [[Collection Management]]
+
:: [[How to use Data Transfer 2]]
### [[Metadata Management]]
+
: Data Discovery and Access
### [[Annotation Management]]
+
:: [[GeoNetwork library | How to programmatically discover geospatial metadata]]
### [[Archive Import Service|Content Import]]
+
 
## [[gCube Information Retrieval Services]]
+
=== Components Programming Reference: Functionality-oriented View ===
### [[gCube ResultSet (gRS)]]
+
; [[Core-facilities]]
### [[gRS2 | gCube ResultSet 2 (gRS2)]]
+
: [[Core-facilities#Data_Infrastructure_Management_Facilities | Data Infrastructure Management Facilities]]
### [[gRS2Broker | gRS2 Broker]]
+
: [[Core-facilities#Data_Infrastructure_Policy-oriented_Security_Facilities | Data Infrastructure Policy-oriented Security Facilities]]  
### [[Search Framework|Search Framework (LEGACY)]]
+
: [[Core-facilities#Workflow_Management_Facilities | Workflow Management Facilities]]
### [[Search 2 Framework (NEW)]]
+
 
### [[OpenSearch Framework]]
+
; [[Data Management Facilities]]
### [[Index Management Framework]]
+
: [[Data_Management_Facilities#Data_Access_and_Storage_Facilities | Data Access and Storage Facilities]]  
### [[Data Transformation]]
+
: [[Data_Management_Facilities#Data_Transfer_Facilities | Data Transfer Facilities]]  
### [[Personalisation]]
+
: [[Data_Management_Facilities#Data_Assessment,_Harmonisation,_and_Certification_Facilities | Data Assessment, Harmonisation, and Certification Facilities]]  
### [[Distributed Information Retrieval Support Framework]]
+
 
### [[gCube Ontology Management Service]]
+
; [[Data Consumption Facilities]]  
## [[gCube Data Consumption Facilities]]
+
: [[Data_Consumption_Facilities#Data_Retrieval_Facilities | Data Retrieval Facilities]]
### [[Ecological Modeling| Ecological Modeling: Features for Analyzing Biological Phenomena and Species]]
+
: [[Data_Consumption_Facilities#Data_Manipulation_Facilities | Data Manipulation Facilities]]
## [[gCube Data Transfer Facilities]]
+
: [[Data Mining Facilities | Data Mining Facilities]]  
### [[Data Transfer Agent|Data Transfer Agent]]
+
: [[Data_Consumption_Facilities#Data_Visualisation_Facilities | Data Visualisation Facilities]]  
### [[Data_Transfer_Scheduler|Data Transfer Scheduler]]
+
: [[Data_Consumption_Facilities#Semantic_Data_Analysis_Facilities | Semantic Data Analysis Facilities]]
###[[Web_Application_Scheduler_Portlet|The Data Transfer Portlet]]
+
 
### [[Data_Transfer_Common_Messaging|The Data Transfer Common Messaging Interface]]
+
; [[gCube APIs]]
## [[gCube Data Assessment, Harmonization and Certification Facilities]]
+
: [http://wiki.gcube-system.org/gcube/Social_Networking_Library Social Networking Library] and [[Social Networking Service]]
### [[Time Series Management| Time Series Management and Analysis]]
+
: [[Social Networking Data Discovery]]
## gCube Data Publishing Facilities
+
: [https://wiki.gcube-system.org/gcube/Storage_Manager Storage Manager Service]
### [[gCube SDMX Statistical Data Dissemination System]]
+
: [https://wiki.gcube-system.org/gcube/Home_Library_2.0_API_Framework_Specification Home Library Service (DEPRECATED, see StorageHub)]
## Geospatial Data Facilities
+
: [https://gcube.wiki.gcube-system.org/gcube/StorageHub_REST_API Storage Hub Service]
### [[GIS Interface]]
+
:[https://wiki.gcube-system.org/gcube/Portal_Context Portal Context] and [https://wiki.gcube-system.org/gcube/UserManagement_Core Portal User, Group and Roles Management]
### [[GIS Publisher service]]
+
: [[Portal Mailing API]]
### [[Environment Explorer| Environment Explorer: Features for Retrieving environmental data associated to a set of coordinates]]
+
; [[gCube Presentation Services]]
### [[Geo Spatial Data Processing| Geo Spatial Data Processing: Features for processing geo-spatial data]]
+
 
### [[gCube GeoExplorer Portlet| gCube GeoExplorer Portlet: A web interface for performing discovery of layers in a distributed GeoServer network]]
+
:[https://wiki.gcube-system.org/gcube/GCube_Widgets_Store GCube Widgets Store]
## [[gCube Presentation Services]]
+
 
### [[ASL|Application Support Layer]]
+
=== Components Programming Reference: Data-typology-oriented View ===
### [[gCube Portal Engine]]
+
; [[Biodiversity Data Facilities]]
### [[ASL HTTP Front End]]
+
; [[Geospatial Data Facilities]]
### [[Social Networking Library]]
+
; [[Semantic Data Facilities]]
## [[gCube Infrastructure Tools]]
+
; [[Statistical Data Facilities]]
### [[SAM Tools| SAM Tools]]
+
### [[Developer's_Guide/ResourceManagerClient| Resource Manager Client]]
+
## [[INSPIRE Community Applications]]
+
## [[DRIVER Community Applications]]
+
# Step by step guide
+
## Developing a gCube Component
+
### [https://gcore.wiki.gcube-system.org/gCube/index.php/Developer_Guide Developing a Service]
+
### [[Profile Specification]]
+
### [[Software Archive Specification]]
+
## Portlet Development
+
### [[Developing gCube Portlets Guide]]
+
#### [[Create a new Mavenized gCube GWT Portlet Guide (NEW)]]
+
### [[Adding a Quick tour guide to your portlet]]
+
### [[Publish App News in User Feeds (Social Portal)]]
+
### [[GCube Widgets Library - General guidelines about Portlet StyleSheets]]
+
### [[GCube Portlets common icon set]]
+
### [[Inter Portlet Subscription/Notification Mechanism (Client side)]]
+
### [[Building your gCube Portlet in ETICS]]
+
## Security
+
### [[DILIGENT Security Model|Security Model]]
+
### [[How To Configure Service Security]]
+
### [[Common Security Troubleshooting]]
+
### [[How to use VOMS api library]]
+
# [[References]]
+
# [[Glossary]]   
+
# [[Lexical Convention]]
+
<!--
+
# [[Developer's Guide:Introduction|Introduction]]
+
# gCube Components Programming Reference
+
## Collective Layer
+
### [[Broker and Match Maker]]
+
### [[VREManager]]
+
### [[GHNManager]]
+
### [[Deployer]]
+
### [[DIS-BDII-Client]]
+
### [[IS-Notifier]]
+
### [[ExistClient]]
+
### [[IS-IC]]
+
### [[IS-IP]]
+
### [[IS-Registry]]
+
### [[DVOS Authorization]]
+
### [[Package Repository]]
+
### [[Software Repository]]
+
## Digital Library Creation and Management
+
### [[VDL Definition Repository]]
+
## Content and Metadata Management
+
### [[Annotation Back End]]
+
### [[Archive Import Service]]
+
### [[Metadata Broker]]
+
### [[Metadata Manager]]
+
### [[XML Indexer]]
+
## Index and Search Management
+
### [[Content Source Description]]
+
### [[Content Source Selection]]
+
### [[Data Fusion]]
+
### [[Full Text Index]]
+
### [[Geographical - Spatial Index]]
+
### [[Forward Index]]
+
### [[ResultSet Framework]]
+
### [[Search Management]]
+
### [[Search Operators]]
+
### [[Personalization Management]]
+
## Process Management
+
### [[Process Design System - BPELParser]]
+
### [[Process Design System - CSDesignApplet]]
+
### [[Process Design System - CSValidator]]
+
### [[Process Resources System - ServiceQueryBridge]]
+
### [[Process Resources System - CSResourceManager]]
+
### [[Process Execution - CSEngine]]
+
### [[Process Execution - GLiteJobWrapper]]
+
### [[Process Optimisation Services]]
+
## Application Suport Layer
+
### [[ASL]]
+
# Developing a gCube Component
+
## [[Developing a Service]]
+
## [[DILIGENT Provider]]
+
## [[Profile Specification]]
+
## [[Service Archive Specification]]
+
# Portlet Development
+
## [[Developing Portlets with GWT]]
+
## [[Using credentials in Portlets and Servlets]]
+
## [[General guidelines about Portlet StyleSheets]]
+
## [[Publish App News in User Feeds (Social Portal)]]
+
# Security
+
## [[DILIGENT Security Model]]
+
## [[How To Configure Service Security]]
+
## [[Common Security Troubleshooting]]
+
## [[How to use VOMS api library]]
+
# [[References]]
+
# [[Glossary]]
+
-->
+

Latest revision as of 12:00, 13 July 2020

Documents technical-oriented information that will help developers further extend and exploit gCube’s source code. The document will target two classes of programmers:

  • Those who want to interface with gCube or to reuse gCube code – Programmers who will use gCube’s libraries to build their own tools, 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.

The Guide is organised as follows. Overview provides the developer with a general summary of the gCube technology. How-to provides the developer with pragmatic, detailed and practical advice on gCube technology. Components Programming Reference Sections provide the developer with a detailed description of the gCube constituents organising them according to a Functionality-oriented View and a Data-typology-oriented View.

The gCube team welcomes contributions from everyone who shares our vision and wishes to contribute in a constructive manner to improve and enhance the available software assets. As such, gCube have adopted this Code of Conduct and require all those who wish to participate to agree to these guidelines.

Overview

gCube Reference Model
gCube Reference Architecture
Glossary

How-tos

How to develop a gCube Component
How to develop a gCube Portlet
How to interface with a gCube-based Infrastructure (a.k.a. Featherweight Stack Client)
How to interface with a gCube-based Infrastructure (a.k.a. the gCube Client Libraries Framework)
How to turn software applications and containers into gCube resources (a.k.a. the gCube SmartGears Framework)
How to integrate gCube system with external Cloud Providers
Accounting
How to produce accounting records
How to consume accounting records
How to install and configure Accounting Portlet(AM)
Data Analytics
How to install and configure Statistical Algorithms Importer(SAI)
How to Implement Algorithms by Statistical Algorithms Importer(SAI)
How to Implement Algorithms for DataMiner by Java libraries
How to Interact with the DataMiner by client
How to use the DataMiner Pool Manager
Data Publishing
How to programmatically publishing a spatial dataset and the associated metadata by the gCube SDI
How to use Data Transfer 2
Data Discovery and Access
How to programmatically discover geospatial metadata

Components Programming Reference: Functionality-oriented View

Core-facilities
Data Infrastructure Management Facilities
Data Infrastructure Policy-oriented Security Facilities
Workflow Management Facilities
Data Management Facilities
Data Access and Storage Facilities
Data Transfer Facilities
Data Assessment, Harmonisation, and Certification Facilities
Data Consumption Facilities
Data Retrieval Facilities
Data Manipulation Facilities
Data Mining Facilities
Data Visualisation Facilities
Semantic Data Analysis Facilities
gCube APIs
Social Networking Library and Social Networking Service
Social Networking Data Discovery
Storage Manager Service
Home Library Service (DEPRECATED, see StorageHub)
Storage Hub Service
Portal Context and Portal User, Group and Roles Management
Portal Mailing API
gCube Presentation Services
GCube Widgets Store

Components Programming Reference: Data-typology-oriented View

Biodiversity Data Facilities
Geospatial Data Facilities
Semantic Data Facilities
Statistical Data Facilities