Difference between revisions of "Accounting Library"

From Gcube Wiki
Jump to: navigation, search
(Collecting Usage Record)
Line 19: Line 19:
  
 
* Attribute Validation and Harmonization
 
* Attribute Validation and Harmonization
* Full Usage Record Validation
+
* Usage Record Validation
 
+
  
 +
To set the various properties of an usage records two different methods are available
 
* Developer Friendly methods (getter and setter)
 
* Developer Friendly methods (getter and setter)
* Generic Key-Value method
+
* Generic Key-Value method (a )
* Generic Map method
+
  
For the same attribute each of the record is IDEMPOTENT. This means that  
+
For the same attribute each of the record is IDEMPOTENT. This means that any of the way you are using to set a properties the value is always validated by the same code.
 +
Different methods for different properties can be used together.
  
  
Line 32: Line 32:
  
  
 +
 +
==== Internal Representation ====
 +
 +
 +
==== Internal Facilities ====
  
 
=== Buffering & Aggregating Usage Record ===
 
=== Buffering & Aggregating Usage Record ===

Revision as of 19:11, 16 November 2015

This component is responsible of collecting, harmonizing and storing accounting data.

Accounting Lib in the Accounting Architecture

The following image show the component discussed in this wiki page:

Accounting-architecture-accounting-lib.png

Library

The library has been tough to provide a common way to elaborate Usage Record (UR) (see Accounting Model to check which Usage Records are supported by default). In particular is responsible for:

  • Collecting
  • Aggregating
  • Buffering
  • Storing

Collecting Usage Record

The library allow to collect Usage Records providing the following functionality:

  • Attribute Validation and Harmonization
  • Usage Record Validation

To set the various properties of an usage records two different methods are available

  • Developer Friendly methods (getter and setter)
  • Generic Key-Value method (a )

For the same attribute each of the record is IDEMPOTENT. This means that any of the way you are using to set a properties the value is always validated by the same code. Different methods for different properties can be used together.


Record Validation


Internal Representation

Internal Facilities

Buffering & Aggregating Usage Record

The library provide bufferization capabilities. While the records are buffered for each new records requested to be accounted the library try to aggregate the new record with the one has already buffered. The aggregation made in this phase is lossless.

Storing Usage Record

  • Fallback

Development

The library is identified by the following maven coordinates:

<groupId>org.gcube.accounting</groupId>

<artifactId>accounting-lib</artifactId>


Persistence

The current implementation of persistence for this library is for CouchDB storage.

<groupId>org.gcube.accounting</groupId>

<artifactId>accounting-lib-persistence-couchdb</artifactId>


Less dependency is better than more

This library must be available on every node of the infrastructure. To respect as much possible ZERO-DEPENDENCY paradigm of SmartGears a simple couchdb-connector (simple HTTP client library) has been developed.


Deployment