Difference between revisions of "Developer's Guide"

From Gcube Wiki
Jump to: navigation, search
(Contents)
(How-tos)
 
(289 intermediate revisions by 39 users not shown)
Line 1: Line 1:
Documents technical-oriented information that will help developers further extend and exploit DILIGENT’s source code. The document will target two classes of programmers:
+
[[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:
  
* Those who want to reuse the code – Programmers who will use DILIGENT’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.
# DILIGENT Components Programming Reference
+
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.
## [[Annotation Back End]]
+
 
### [[Annotation Back End#Introduction|Introduction]]
+
=== [[Developer's Guide: Introduction | Overview]] ===
### [[Annotation Back End#Implementation Overview|Implementation Overview]]
+
: [[Reference_Model | gCube Reference Model]]  
### [[Annotation Back End#Dependencies|Dependencies]]
+
: [[GCube_Architecture | gCube Reference Architecture]]
### [[Annotation Back End#Usage Example|Usage Example]]
+
: [[Glossary]]
## [[Broker and Match Maker]]
+
 
### [[Broker and Match Maker#Introduction|Introduction]]
+
=== How-tos ===
### [[Broker and Match Maker#Implementation Overview|Implementation Overview]]
+
: [[How to develop a gCube Component]]
### [[Broker and Match Maker#Algorithms|Algorithms]]
+
: [[How to develop a gCube Portlet]]
### [[Broker and Match Maker#Dependencies|Dependencies]]
+
: [[Featherweight Stack | How to interface with a gCube-based Infrastructure (a.k.a. Featherweight Stack Client)]]
### [[Broker and Match Maker#Usage Example|Usage Example]]
+
: [[Integration_and_Interoperability_Facilities_Framework:_Client_Libraries_Framework | How to interface with a gCube-based Infrastructure (a.k.a. the gCube Client Libraries Framework)]]
## [[Content Source Description]]
+
: [[SmartGears | How to turn software applications and containers into gCube resources (a.k.a. the gCube SmartGears Framework)]]
### [[Content Source Description#Introduction|Introduction]]
+
: [[FHNManager | How to integrate gCube system with external Cloud Providers]]
### [[Content Source Description#Implementation Overview|Implementation Overview]]
+
: Accounting
### [[Content Source Description#Dependencies|Dependencies]]
+
:: [[Accounting Lib | How to produce accounting records]]
### [[Content Source Description#Usage Example|Usage Example]]
+
:: [[Accounting Analytics | How to consume accounting records]]
### [[Content Source Description#Service Configuration|Service Configuration]]
+
:: [[Accounting Portlet: How to install and configure |How to install and configure Accounting Portlet(AM)]]
## [[Content Source Selection]]
+
: Data Analytics
### [[Content Source Selection#Introduction|Introduction]]
+
:: [[Statistical Algorithms Importer: How to install and configure| How to install and configure Statistical Algorithms Importer(SAI)]]
### [[Content Source Selection#Implementation Overview|Implementation Overview]]
+
:: [[Statistical_Algorithms_Importer | How to Implement Algorithms by Statistical Algorithms Importer(SAI)]]
### [[Content Source Selection#Dependencies|Dependencies]]
+
:: [[How-to Implement Algorithms for DataMiner | How to Implement Algorithms for DataMiner by Java libraries]]
### [[Content Source Selection#Usage Example|Usage Example]]
+
:: [[How_to_Interact_with_the_DataMiner_by_client | How to Interact with the DataMiner by client]]
### [[Content Source Selection#Service Configuration|Service Configuration]]
+
:: [[How to use the DataMiner Pool Manager | How to use the DataMiner Pool Manager]]
## [[Data Fusion]]
+
<!-- :: <strike>[[Legacy_applications_integration | How to integrate legacy applications and offer them via WPS]]</strike> -->
### [[Data Fusion#Introduction|Introduction]]
+
: Data Publishing
### [[Data Fusion#Implementation Overview|Implementation Overview]]
+
:: [[How to programmatically publishing a spatial dataset and the associated metadata by the gCube SDI]]
### [[Data Fusion#Dependencies|Dependencies]]
+
:: [[How to use Data Transfer 2]]
### [[Data Fusion#Usage Example|Usage Example]]
+
: Data Discovery and Access
## [[DILIGENT Provider]]
+
:: [[GeoNetwork library | How to programmatically discover geospatial metadata]]
### [[DILIGENT Provider#How to Plug the DILIGENTProvider into DILIGENT Services|How to Plug the DILIGENTProvider into DILIGENT Services]]
+
 
### [[DILIGENT Provider#DILIGENT Provider upgrade|DILIGENT Provider upgrade]]
+
=== Components Programming Reference: Functionality-oriented View ===
## [[DIS-BDII-Client]]
+
; [[Core-facilities]]
### [[DIS-BDII-Client#Introduction|Introduction]]
+
: [[Core-facilities#Data_Infrastructure_Management_Facilities | Data Infrastructure Management Facilities]]
### [[DIS-BDII-Client#Implementation Overview|Implementation Overview]]
+
: [[Core-facilities#Data_Infrastructure_Policy-oriented_Security_Facilities | Data Infrastructure Policy-oriented Security Facilities]]  
### [[DIS-BDII-Client#Dependencies|Dependencies]]
+
: [[Core-facilities#Workflow_Management_Facilities | Workflow Management Facilities]]
### [[DIS-BDII-Client#Usage Example|Usage Example]]
+
 
## [[DIS-Broker]]
+
; [[Data Management Facilities]]
### [[DIS-Broker#Introduction|Introduction]]
+
: [[Data_Management_Facilities#Data_Access_and_Storage_Facilities | Data Access and Storage Facilities]]  
### [[DIS-Broker#Implementation Overview|Implementation Overview]]
+
: [[Data_Management_Facilities#Data_Transfer_Facilities | Data Transfer Facilities]]  
### [[DIS-Broker#Dependencies|Dependencies]]
+
: [[Data_Management_Facilities#Data_Assessment,_Harmonisation,_and_Certification_Facilities | Data Assessment, Harmonisation, and Certification Facilities]]  
### [[DIS-Broker#Usage Example|Usage Example]]
+
 
### [[DIS-Broker#Known Bugs and Limitations|Known Bugs and Limitations]]
+
; [[Data Consumption Facilities]]  
## [[DIS-HLS-Client]]
+
: [[Data_Consumption_Facilities#Data_Retrieval_Facilities | Data Retrieval Facilities]]
### [[DIS-HLS-Client#Introduction|Introduction]]
+
: [[Data_Consumption_Facilities#Data_Manipulation_Facilities | Data Manipulation Facilities]]
### [[DIS-HLS-Client#Implementation Overview|Implementation Overview]]
+
: [[Data Mining Facilities | Data Mining Facilities]]  
### [[DIS-HLS-Client#Dependencies|Dependencies]]
+
: [[Data_Consumption_Facilities#Data_Visualisation_Facilities | Data Visualisation Facilities]]  
### [[DIS-HLS-Client#Usage Example|Usage Example]]
+
: [[Data_Consumption_Facilities#Semantic_Data_Analysis_Facilities | Semantic Data Analysis Facilities]]
### [[DIS-HLS-Client#How to adapt the existing xQuery to eXist 1.1|How to adapt the existing xQuery to eXist 1.1]]
+
 
## [[DIS-IC]]
+
; [[gCube APIs]]
### [[DIS-IC#Introduction|Introduction]]
+
: [http://wiki.gcube-system.org/gcube/Social_Networking_Library Social Networking Library] and [[Social Networking Service]]
### [[DIS-IC#Implementation Overview|Implementation Overview]]
+
: [[Social Networking Data Discovery]]
### [[DIS-IC#Dependencies|Dependencies]]
+
: [https://wiki.gcube-system.org/gcube/Storage_Manager Storage Manager Service]
### [[DIS-IC#Usage Example|Usage Example]]
+
: [https://wiki.gcube-system.org/gcube/Home_Library_2.0_API_Framework_Specification Home Library Service (DEPRECATED, see StorageHub)]
## [[DIS-IP]]
+
: [https://gcube.wiki.gcube-system.org/gcube/StorageHub_REST_API Storage Hub Service]
### [[DIS-IP#Introduction|Introduction]]
+
:[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]
### [[DIS-IP#Implementation Overview|Implementation Overview]]
+
: [[Portal Mailing API]]
#### [[DIS-IP#Resource Manager|Resource Manager]]
+
; [[gCube Presentation Services]]
#### [[DIS-IP#DILIGENTProfile Manager|DILIGENTProfile Manager]]
+
 
#### [[DIS-IP#Profile Manager|Profile Manager]]
+
:[https://wiki.gcube-system.org/gcube/GCube_Widgets_Store GCube Widgets Store]
#### [[DIS-IP#Broker Manager|Broker Manager]]
+
 
### [[DIS-IP#Dependencies|Dependencies]]
+
=== Components Programming Reference: Data-typology-oriented View ===
### [[DIS-IP#Usage Example|Usage Example]]
+
; [[Biodiversity Data Facilities]]
### [[DIS-IP#How to disableAuthentication on Providers operations|How to disable Authentication on Providers operations]]
+
; [[Geospatial Data Facilities]]
## [[DIS-Registry]]
+
; [[Semantic Data Facilities]]
### [[DIS-Registry#Introduction|Introduction]]
+
; [[Statistical Data Facilities]]
### [[DIS-Registry#Implementation Overview|Implementation Overview]]
+
### [[DIS-Registry#Dependencies|Dependencies]]
+
### [[DIS-Registry#Usage Example|Usage Example]]
+
### [[DIS-Registry#Known Bugs and Limitations|Known Bugs and Limitations]]
+
## [[DVOS Authorization]]
+
### [[DVOS Authorization#Introduction|Introduction]]
+
### [[DVOS Authorization#Implementation Overview|Implementation Overview]]
+
### [[DVOS Authorization#Dependencies|Dependencies]]
+
### [[DVOS Authorization#Usage Example|Usage Example]]
+
## [[Full Text Index]]
+
### [[Full Text Index#Introduction|Introduction]]
+
### [[Full Text Index#Implementation Overview|Implementation Overview]]
+
### [[Full Text Index#Dependencies|Dependencies]]
+
### [[Full Text Index#Usage Example|Usage Example]]
+
## [[Geographical/Spatial Index]]
+
### [[Geographical/Spatial Index#Introduction|Introduction]]
+
### [[Geographical/Spatial Index#Implementation Overview|Implementation Overview]]
+
### [[Geographical/Spatial Index#Dependencies|Dependencies]]
+
### [[Geographical/Spatial Index#Usage Example|Usage Example]]
+
## [[Metadata Broker]]
+
### [[Metadata Broker#Introduction|Introduction]]
+
### [[Metadata Broker#Implementation Overview|Implementation Overview]]
+
### [[Metadata Broker#Dependencies|Dependencies]]
+
### [[Metadata Broker#Usage Examples|Usage Examples]]
+
## [[NAL]]
+
### [[NAL#Introduction|Introduction]]
+
### [[NAL#Implementation Overview|Implementation Overview]]
+
### [[NAL#Dependencies|Dependencies]]
+
### [[NAL#Usage Example|Usage Example]]
+
## [[Process Optimisation Services]]
+
### [[Process Optimisation Services#Introduction|Introduction]]
+
### [[Process Optimisation Services#Implementation Overview|Implementation Overview]]
+
### [[Process Optimisation Services#Dependencies|Dependencies]]
+
### [[Process Optimisation Services#Usage Example|Usage Example]]
+
## [[ResultSet Framework]]
+
### [[ResultSet Framework#Introduction|Introduction]]
+
### [[ResultSet Framework#Implementation Overview|Implementation Overview]]
+
### [[ResultSet Framework#Dependencies|Dependencies]]
+
### [[ResultSet Framework#Usage Example|Usage Example]]
+
## [[VDL Definition Repository]]
+
### [[VDL Definition Repository#Introduction|Introduction]]
+
### [[VDL Definition Repository#Implementation Overview|Implementation Overview]]
+
### [[VDL Definition Repository#Dependencies|Dependencies]]
+
### [[VDL Definition Repository#Usage Example|Usage Example]]
+
## [[XML Indexer]]
+
### [[XML Indexer#Introduction|Introduction]]
+
### [[XML Indexer#Implementation Overview|Implementation Overview]]
+
### [[XML Indexer#Dependencies|Dependencies]]
+
### [[XML Indexer#Usage Example|Usage Example]]
+
# Developing a DILIGENT Component
+
## [[Developing a Service]]
+
## [[Profile Specification]]
+
## [[Service Archive Specification]]
+
# Portlet Development
+
## [[Developing Portlets with GWT]]
+
## [[Using credentials in Portlets/Servlets]]
+
## [[General guidelines about Portlet StyleSheets]]
+
# Security
+
## [[DILIGENT Security Model]]
+
## [[How To Configure Service Security]]
+
## [[Common Security Troubleshooting]]
+
# [[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