Difference between revisions of "GCube Development"

From Gcube Wiki
Jump to: navigation, search
(Development State)
(Undo revision 25294 by Massimiliano.assante (talk))
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Restricted Page]]
+
'''gCube''' (http://www.gcube-system.org) is a Software System whose development activity is ongoing and performed according to the [http://en.wikipedia.org/wiki/Agile_software_development Agile software development] methodology.
 +
This implies that software components are developed in relatively short subsequent iterations, each containing the tasks needed to release new functionality - planning, requirement analysis, detailed design, implementation, integration, testing and documentation. This leads to a very flexible and dynamic development activity that needs to be proper documented.
  
{| align="right"
+
Such a technology is intrinsically complex because of the amount of standards, specifications, technologies, patterns and approaches put in place to guarantee a high quality (reliable, secure, autonomic, fault resilient, etc.) software system. This risks to overwhelm developers and distract them from the specific application logic of the services they are willing to develop.
|| __TOC__
+
|}
+
  
<!-- the link to the gCube website http://www.gcube-system.org will be added as soon this site will be consolidated -->
+
This software system has been implemented with the support of the European Commission in the context of a series of projects including [[#D4Science-II_Development|D4Science-II]], [[#iMarine_Development|iMarine]], [[#EUBrazilOpenBio_Development|EUBrazilOpenBio]], [[#ENVRI_Development|ENVRI]].
  
'''gCube''' is a Software System whose development activity is ongoing and performed according to the [http://en.wikipedia.org/wiki/Agile_software_development Agile software development] methodology. This implies that software components are developed in relatively short subsequent iterations, each containing the tasks needed to release new functionality - planning, requirement analysis, detailed design, implementation, integration, testing and documentation. This leads to a very flexible and dynamic development activity that needs to be proper documented.  
+
== D4Science-II Development ==
 +
In the context of the D4Science-II project, the gCube technology has been developed with two synergistic lines of activity:
 +
* '''''Knowledge Ecosystem Implementation''''' whose objectives are (i) to develop a number of technology realising common practices, standards and solutions promoting interoperability with other systems and infrastructures ([https://networking.wiki.d4science-ii.research-infrastructures.eu/networking/index.php/Interoperability_Solutions Interoperability Solutions]) and (ii) to enhance and consolidate the gCube system to match the needs of the ecosystem approach. This activity is documented via a '''''[[DJRA1.1 Report on Knowledge Ecosystem Supporting Technology Development|dedicated report]]''''';
 +
* '''''Scenario Specific Implementation''''' whose objective was to cover the design and implementation of case-specific needs for each particular interoperable infrastructure. Each case is analyzed and the system to implement it, on the side of the interoperating infrastructure, is designed in detail. Following the initial design, each case implements the specific components required so that it can exploit the facilities offered by the evolving ecosystem core and it can export the identified interoperable features to the rest of the ecosystem cases. This activity is documented via a '''''[[DJRA2.1 Report on Scenario Specific Technology Development|dedicated report]]''''';
  
This page documents the ''current status'' of the gCube system by presenting a series of ''statistics and metrics of its evolution'' including progression of source code over time, developers activity, and automatic build results.
+
== iMarine Development ==
  
Such a technology is intrinsically complex because of the amount of standards, specifications, technologies, patterns and approaches put in place to guarantee a high quality (reliable, secure, autonomic, fault resilient, etc.) software system. This risk to overwhelm developers and distract them from the specific application logic of the services they are willing to develop.
+
This activity is ongoing. It is documented via a number of tickets in the [https://issue.imarine.research-infrastructures.eu/ iMarine TRAC].
  
To prevent the above risk the [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Main_Page gCore Application Framework (gCF)] has been conceived and implemented. It provides an application framework that allows gCube services to abstract over functionality lower in the web services stack (WSRF, WS Notification, WS Addressing, etc.) and to build on top of advanced features for the management of ''state'', ''scope'', ''events'', ''security'', ''configuration'', ''fault'', ''lifecycle'', ''publication and discovery''.
+
== EUBrazilOpenBio Development ==
  
Thus the gCube technology consists of two ''systems'' - gCube and gCore - each evolving by its own. The rest of this Wiki documents both these systems separately.  
+
This activity was active during the period 2011-2013. It was documented via a number of tickets in the [https://issue.eubrazilopenbio.research-infrastructures.eu/ EUBrazilOpenBio TRAC].
  
<!-- Moreover, because of the distinguishing characteristics of '''[https://wiki.gcore.research-infrastructures.eu/ gCore]''', a gCube constituent that is a system by its own, in the rest of this wiki the data of both these systems are separately presented. -->
+
== ENVRI Development ==
 
+
This activity is ongoing. It is documented via a dedicated page on the [http://www.envri.eu ENVRI Website].
=== Development State ===
+
 
+
gCube has been designed by following the principles of [http://en.wikipedia.org/wiki/Software_componentry component-based software engineering], thus it consists of various software components interacting each other to implement the expected functionality. Further information is in the [[GCube Architecture|gCube architecture]] section of this Wiki that describes the resulting ''Reference Architecture'', the main sub-systems (i.e. logical group of components), their constituents and their relationships.
+
 
+
The system has been implemented according to the [http://en.wikipedia.org/wiki/Service-oriented_architecture Service Oriented Architecture] principles and related standards while the ''Presentation-oriented'' components are based on [http://en.wikipedia.org/wiki/Portlet portlets]. It currently consists of:
+
* 59 Web Services;
+
* 34 Software Libraries;
+
* 37 Portlets.
+
 
+
Detailed information on the status of each component is captured by the reports below.
+
+
{| align="center" width="50%"
+
! bgcolor="yellow"|gCube !! bgcolor="yellow"|gCore
+
|-
+
| align="center"| [[gCube Development State Report]] || align="center"| [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Downloads#Development_Status gCore Development State Report]
+
|}
+
 
+
=== Code Statistics ===
+
 
+
D4Science uses [http://www.statsvn.org/ StatSVN] to retrieve information from the project ''source code repository'' and to generate various tables and charts describing the project development. The project ''source code repository'' instance is a [http://subversion.tigris.org/ subversion] instance operative since March 2008, thus the produced data documents the evolution of the software from such period on.
+
 
+
The following reports are available.
+
 
+
{| align="center" width="80%"
+
! bgcolor="yellow"|gCube !! bgcolor="yellow"|gCore
+
|-
+
| align="center"| [https://issue.d4science.research-infrastructures.eu/chrome/site/statsvn/loc.html Timeline for the Lines of Code (LOC)]  || align="center"| [https://issue.gcore.research-infrastructures.eu/chrome/site/statsvn/loc.html Timeline for the Lines of Code (LOC)]
+
|-
+
| align="center"| [https://issue.d4science.research-infrastructures.eu/chrome/site/statsvn/developers.html Lines of Code per Developer ]  || align="center"| [https://issue.gcore.research-infrastructures.eu/chrome/site/statsvn/developers.html Lines of Code per Developer]
+
|-
+
| align="center"| [https://issue.d4science.research-infrastructures.eu/chrome/site/statsvn/churn.html LOC Evolution and Changes per Day] || align="center"| [https://issue.gcore.research-infrastructures.eu/chrome/site/statsvn/churn.html LOC Evolution and Changes per Day]
+
|-
+
| align="center"| [https://issue.d4science.research-infrastructures.eu/chrome/site/statsvn/repomap.html Software Repository Hierarchical View] || align="center"| [https://issue.gcore.research-infrastructures.eu/chrome/site/statsvn/repomap.html Software Repository Hierarchical View]
+
|}
+
 
+
 
+
=== Development Version ===
+
 
+
D4Science relies on the [http://etics.web.cern.ch/etics ETICS] system to automate the way its software (gCube and gCore) is built and tested. In particular, the project has put in place mechanisms to perform ''daily builds'' of the latest version of the code committed in the project source code repository. This activity leads to the production of (''i'') a report of the build activity and (''ii'') a set of software artifacts including the software package, the source code and the documentation. These are available below.
+
 
+
{| align="center" width="50%"
+
! bgcolor="yellow"|gCube !! bgcolor="yellow"|gCore
+
|-
+
| align="center"|[http://grids16.eng.it/BuildReport/browse/Recent_Builds/org.gcube.HEAD Build Report] || align="center"|[http://grids16.eng.it/BuildReport/browse/Recent_Builds/org.gcore.HEAD Build Report]
+
|-
+
| align="center"|[http://www.gcube-system.org/index.php?option=com_distribution&view=distribution&Itemid=23&release=HEAD Development Version] (Login is required) || align="center"|[http://www.gcube-system.org/index.php?option=com_content&view=article&id=85&Itemid=47 Latest Version] (Login is required)
+
|}
+
 
+
=== Stable Version ===
+
 
+
The release of the software is regulated by the project [https://integration.wiki.d4science.research-infrastructures.eu/integration/index.php/Main_Page Integration, Testing and Distribution] activity that aims at building a deployable, reliable and documented software distribution.
+
 
+
The final result of this activity is a set of ''gCube'' and ''gCore'' releases which are made available through the gCube and gCore [http://www.gcube-system.org/index.php?option=com_content&view=article&id=13&Itemid=16 Distribution Site]. Direct links are reported below.
+
 
+
{| align="center" width="50%"
+
! bgcolor="yellow"|gCube !! bgcolor="yellow"|gCore
+
|-
+
| align="center"|[http://www.gcube-system.org/index.php?option=com_distribution&view=distribution&Itemid=23&release=1-6-0 Current (1.6.0)] || align="center"|[http://www.gcube-system.org/index.php?option=com_content&view=article&id=85&Itemid=47 Current (1.0.0)]
+
|}
+

Latest revision as of 15:43, 8 July 2016

gCube (http://www.gcube-system.org) is a Software System whose development activity is ongoing and performed according to the Agile software development methodology. This implies that software components are developed in relatively short subsequent iterations, each containing the tasks needed to release new functionality - planning, requirement analysis, detailed design, implementation, integration, testing and documentation. This leads to a very flexible and dynamic development activity that needs to be proper documented.

Such a technology is intrinsically complex because of the amount of standards, specifications, technologies, patterns and approaches put in place to guarantee a high quality (reliable, secure, autonomic, fault resilient, etc.) software system. This risks to overwhelm developers and distract them from the specific application logic of the services they are willing to develop.

This software system has been implemented with the support of the European Commission in the context of a series of projects including D4Science-II, iMarine, EUBrazilOpenBio, ENVRI.

D4Science-II Development

In the context of the D4Science-II project, the gCube technology has been developed with two synergistic lines of activity:

  • Knowledge Ecosystem Implementation whose objectives are (i) to develop a number of technology realising common practices, standards and solutions promoting interoperability with other systems and infrastructures (Interoperability Solutions) and (ii) to enhance and consolidate the gCube system to match the needs of the ecosystem approach. This activity is documented via a dedicated report;
  • Scenario Specific Implementation whose objective was to cover the design and implementation of case-specific needs for each particular interoperable infrastructure. Each case is analyzed and the system to implement it, on the side of the interoperating infrastructure, is designed in detail. Following the initial design, each case implements the specific components required so that it can exploit the facilities offered by the evolving ecosystem core and it can export the identified interoperable features to the rest of the ecosystem cases. This activity is documented via a dedicated report;

iMarine Development

This activity is ongoing. It is documented via a number of tickets in the iMarine TRAC.

EUBrazilOpenBio Development

This activity was active during the period 2011-2013. It was documented via a number of tickets in the EUBrazilOpenBio TRAC.

ENVRI Development

This activity is ongoing. It is documented via a dedicated page on the ENVRI Website.