Difference between revisions of "Accounting"
Luca.frosini (Talk | contribs) (→Architecture) |
Luca.frosini (Talk | contribs) (→Architecture) |
||
Line 11: | Line 11: | ||
* [[Accounting#Accounting Enabling Layer | Accounting Enabling layer]] | * [[Accounting#Accounting Enabling Layer | Accounting Enabling layer]] | ||
* [[Accounting#Accounting Backend Layer | Accounting Backend layer]] | * [[Accounting#Accounting Backend Layer | Accounting Backend layer]] | ||
+ | |||
+ | Moreover we have the storage layer which is not a gCube component in terms of development. | ||
* [[Accounting#Accounting Storage Layer | Accounting Storage layer]] | * [[Accounting#Accounting Storage Layer | Accounting Storage layer]] | ||
Line 22: | Line 24: | ||
* accounting-aggregator | * accounting-aggregator | ||
− | Each enabling layer has its own correspondent backend implementation. Each backend implementation must be dynamically discovered at runtime. This allow to decouple the deployment of a different backend from the development of enabling layer. In other word each component on the enabling layer MUST NOT any dependency over a certain backed implementation | + | The designed architecture and the implementation has to respect the following rules: |
+ | |||
+ | * Each enabling layer has its own correspondent backend implementation. | ||
+ | * Each backend implementation must be dynamically discovered at runtime. This allow to decouple the deployment of a different backend from the development of the enabling layer. In other word each component on the enabling layer MUST NOT have any dependency over a certain backed implementation. | ||
The only entitled software which can have a dependency against the backend component are the ones that allow to deploy and distribute a consistent infrastructure: | The only entitled software which can have a dependency against the backend component are the ones that allow to deploy and distribute a consistent infrastructure: | ||
* bundles (e.g. smartgear-bundle, portal-bundle) | * bundles (e.g. smartgear-bundle, portal-bundle) | ||
* provisioning script | * provisioning script | ||
+ | |||
+ | |||
+ | === Accounting Storage Layer === | ||
+ | |||
+ | This layer is not developed by gCube but the selected technology has to be selected to provide [https://en.wikipedia.org/wiki/High_availability HA (High Availability)]. | ||
Line 39: | Line 49: | ||
In this layer we found not only the accounting consumer which retrieve information related to collected data (e.g. Accounting Manager Portlet) but also all the component which collect data and use accounting-lib to persist in a common pattern. | In this layer we found not only the accounting consumer which retrieve information related to collected data (e.g. Accounting Manager Portlet) but also all the component which collect data and use accounting-lib to persist in a common pattern. | ||
− | |||
− | |||
− | |||
− |
Revision as of 15:57, 16 November 2015
GCube Accounting allows to collect information of the infrastructure usage and expose them for the interested consumer.
Contents
Architecture
The following picture shows the gCube Accounting architeture
The Accounting Architecture has been logically divided in three different layers.
Moreover we have the storage layer which is not a gCube component in terms of development.
All the developed component must respect this paradigm.
Accounting Enabling Layer
- accounting-lib
- accounting-analytics
- accounting-aggregator
The designed architecture and the implementation has to respect the following rules:
- Each enabling layer has its own correspondent backend implementation.
- Each backend implementation must be dynamically discovered at runtime. This allow to decouple the deployment of a different backend from the development of the enabling layer. In other word each component on the enabling layer MUST NOT have any dependency over a certain backed implementation.
The only entitled software which can have a dependency against the backend component are the ones that allow to deploy and distribute a consistent infrastructure:
- bundles (e.g. smartgear-bundle, portal-bundle)
- provisioning script
Accounting Storage Layer
This layer is not developed by gCube but the selected technology has to be selected to provide HA (High Availability).
Accounting Backend Layer
The actual backend is CouchDB
- accounting-lib-persistence-BACKEND (i.e. accounting-lib-persistence-couchdb)
- accounting-analytics-persistence-BACKEND (i.e. accounting-analytics-persistence-couchdb)
- accounting-aggregator-persistence-BACKEND (i.e. accounting-aggregator-persistence-couchdb)
Accounting Consumer Layer
In this layer we found not only the accounting consumer which retrieve information related to collected data (e.g. Accounting Manager Portlet) but also all the component which collect data and use accounting-lib to persist in a common pattern.