RapidCMDB provides a consistent, unified way to access data held in many different locations without having to understand where the data resides or the technology behind accessing the data through layers of abstraction.
Connections
RapidCMDB is a federated solution hence needs to provide access to data that reside in different data sources. Datasource connection manager (DCM) as the name implies manages the connection to each of the data sources, connect, disconnect, monitor the connection, reconnect, etc. Datasource connection managers can be implemented un either java or groovy.
DCM for the databases (using JDBC) is implemented both in groovy and java as an example and can be used as reference implementation when developing DCMs for other technologies.
Datasources
Datasources are used to abstract the differences in data structures, APIs, access technologies etc. and provide a more consistent and easier to use interface for the data sources. The interfaces exposed by the datasources are used in the modeling layer.
Datasources may also be layered on one another. For example, the Database datasoure provides access to databases through JDBC calls and raw SQL statements can be used for full flexibility. Single table database datasource is layered over the database adapter and provides an interface that does not require SQL statements but limited to working with single database table at a time as the name implies as an alternative.
Modeling
Modeling is the heart of the RapidCMDB solution. For each class of objects, the properties of the class, the type of the properties (string, integer, etc.), how to access the value for each property (which datasource, etc.), naming rules for the object in different datasources etc. are all defined in the model file. The model is expressed using the groovy language.
The model further extends the abstraction and provides an simple, consistent interface to the consumer scripts. A standard user interface with CRUD functionality is also generated using the model files.
Consumer Scripts
The consumer scripts can be written as if all the data is in a local data store since the data location and the access method is handled by the previous layers. The abstraction decouples the scripts from the datasources, hence changes in where the data reside and which data comes from which data source does not require the consumer scripts to be modified.
Helper utilities provided for the consumer scripts makes it possible to provide the data in many different formats such XML, RSS, JSON, etc. often with a single method call.
Add Comment