Difference between revisions of "Cube Manager"

From Gcube Wiki
Jump to: navigation, search
Line 18: Line 18:
 
In order to work with cube manager code there are some technologies that must be known first.
 
In order to work with cube manager code there are some technologies that must be known first.
  
== Maven ==
+
* '''Maven''': Cube Manager is a fairly complex project that uses Maven for project organization. The project itself is a multi-module maven project. [http://maven.apache.org/guides/getting-started/ Basic knowledge] of maven and [http://books.sonatype.com/mvnex-book/reference/multimodule.html multi-module feature] is required.
Cube Manager is a fairly complex project that uses Maven for project organization. The project itself is a multi-module maven project. [http://maven.apache.org/guides/getting-started/ Basic knowledge] of maven and [http://books.sonatype.com/mvnex-book/reference/multimodule.html multi-module feature] is required.
+
* Dependency injection and '''CDI'''/'''Weld''': In order to achieve modularity and Inversion of Control, Cube Manager (and the whole Tabular Data stack) relies on [http://docs.oracle.com/javaee/6/tutorial/doc/giwhl.html CDI] (Context and Dependency Injection) and its Reference Implementation [http://weld.cdi-spec.org/ Weld] both for standalone execution and testing.
 
+
* '''PostgreSQL''' and '''Postgis''': The data backend is a relational database ([http://www.postgresql.org/docs/9.2/static/index.html PostgreSQL]) with [http://postgis.net/docs/manual-2.0/ PostGIS] extension. Basic knowledge on the administration and management of a PostgreSQL database instance is required. Working versions of these technologies with cube manager are PostgreSQL 9.2 and PostGIS 2.0.
== Dependency injection and CDI/Weld ==
+
* '''JPA''': Cube manager keeps track of metadata associated to each table. It does so by leveraging a PostgreSQL backend with [http://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html JPA] technology, mapping tabular model beans directly into the database. The implementation of JPA that is used in the project is [http://www.eclipse.org/eclipselink/ EclipseLink].
In order to achieve modularity and Inversion of Control, Cube Manager (and the whole Tabular Data stack) relies on [http://docs.oracle.com/javaee/6/tutorial/doc/giwhl.html CDI] (Context and Dependency Injection) and its Reference Implementation [http://weld.cdi-spec.org/ Weld] both for standalone execution and testing.
+
 
+
== PostgreSQL and Postgis ==
+
The data backend is a relational database ([http://www.postgresql.org/docs/9.2/static/index.html PostgreSQL]) with [http://postgis.net/docs/manual-2.0/ PostGIS] extension. Basic knowledge on the administration and management of a PostgreSQL database instance is required.
+
 
+
Working versions of these technologies with cube manager are:
+
* PostgreSQL 9.2.*
+
* PostGIS 2.0
+
 
+
== JPA ==
+
Cube manager keeps track of metadata associated to each table. It does so by leveraging a PostgreSQL backend with [http://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html JPA] technology, mapping tabular model beans directly into the database. The implementation of JPA that is used in the project is [http://www.eclipse.org/eclipselink/ EclipseLink].
+
  
 
=Modules=
 
=Modules=

Revision as of 13:17, 28 November 2013

Overview

This page documents concepts that enables the cube manager component and report information that could help developers in understanding the project organization.

Motivation and concepts

Tabular Data is a pluggable service that allows to manage the lifecycle of statistical data. Operation modules that perform operations on data (like import,export,transformation,validation) can be added in a modular fashion. Each operation module produce one or more tables as a result of its computation. A table in the Tabular Data system is made of some data (managed with a data backend) and some metadata, telling where data can be found and enriching its description with additional metadata. The system offers a common model for the representation of tables metadata (Tabular Model) which helps in describing tables structure, location, additional metadata. Cube manager is the low level components that enables the Tabular Data service. Its main features are:

  • Allow the creation of new tables described using the Tabular Model
  • Allow to clone or modify an existing table in terms of its structure or metadata.
  • Keeps track of created tables and their associated metadata (table structure, additional metadata)
  • Allow retrieval of metadata information to clients
  • Relational database (data backend) connection pooling

Prerequisites

In order to work with cube manager code there are some technologies that must be known first.

  • Maven: Cube Manager is a fairly complex project that uses Maven for project organization. The project itself is a multi-module maven project. Basic knowledge of maven and multi-module feature is required.
  • Dependency injection and CDI/Weld: In order to achieve modularity and Inversion of Control, Cube Manager (and the whole Tabular Data stack) relies on CDI (Context and Dependency Injection) and its Reference Implementation Weld both for standalone execution and testing.
  • PostgreSQL and Postgis: The data backend is a relational database (PostgreSQL) with PostGIS extension. Basic knowledge on the administration and management of a PostgreSQL database instance is required. Working versions of these technologies with cube manager are PostgreSQL 9.2 and PostGIS 2.0.
  • JPA: Cube manager keeps track of metadata associated to each table. It does so by leveraging a PostgreSQL backend with JPA technology, mapping tabular model beans directly into the database. The implementation of JPA that is used in the project is EclipseLink.

Modules

Cube Manager is a multi-module project made of several subprojects:

  • Data Wrangler
  • Metadata Wrangler
  • Cube Manager API
  • Cube Manager
  • Cube Manager Parent

Database Wrangler

Metadata Wrangler

Cube Manager API

Cube Manager