Difference between revisions of "Resource Registry Specification"
(→Overview) |
(→Less well suited Use Cases) |
||
Line 80: | Line 80: | ||
*Data Access | *Data Access | ||
− | === Less well suited | + | === Less well suited use Cases === |
− | In case that only a few communications with the Information System are needed and/or the operations are simple, using the Resource Registry might be an overhead in terms of performance, because of the | + | In case that only a few communications with the Information System are needed and/or the operations are simple, using the Resource Registry might be an overhead in terms of performance, because of the synchronisation and management operations that are performed internally are not needed. |
Revision as of 12:38, 1 November 2013
Contents
Overview
Resource Registry is a resource aggregating and management component of the information related to the resources that exist on Information System (IS).
This document outlines the design rationale, key features, and high-level architecture, the options for their deployment and as well some use cases.
Key features
- Resource aggregation of the resources available in the infrastructure
- Hosting Nodes, PE2ng Execution Nodes, Workflow Engine Endpoints, Datasources, Search Fields, Data Collections etc
- Data management abstraction
- Through model entities and predefined queries
- Local image of the resources
- Access and management of resources is done locally and synchronized with the IS periodically
- Search system facilitation
- Update of the entities of the model (Fields Searchables, Presentables)
- Highly configurable
- Datasource types, Datasource services, model entities etc can be configured
- Environment independent
- Resource Registry can be configured to operate outside gCore
- Pluggable
- Designed to support extensions through plugins
Design
Philosophy
Resource Registry has been designed and implemented to offer a high level of abstraction and quality functionalities in management of the resources that are available in the infrastructure by offering simple and powerful ways to manage data and perform complicated task, and by optimizing the network communication with the IS though periodical synchronizations
Architecture
Resource Registry basically is a library on top of a level of datastores which holds the actual data. The datastore layer is what the user sees as a state of the Information System and where the user performs her management operations on these data. Periodically, Resource Registry contacts the IS in order to (i) get new data (Retrieve phase) and (ii) apply the local changes so they are visible to other components (Update phase). This operation is the basic working cycle of Resource Registry and is called Bridging Iteration. The datastores layer is consisted of the following different (DataNucleus) data stores:
- Local Buffer Data Store
- Used to collect information during bridging iterations
- Internal use
- Current implementation: Derby
- Local Data Store
- Contains the aggregated image produced by the latest iteration
- Guarantees consistent data
- Current implementation: Derby
- Remote Data Store
- Used whenever the remote repository can be modeled as a DataNucleus data store
- E.g. LDAP
- Optional use
The persistency of this layer is provided by DataNucleus JDO.
The core logic of Resource Registry is included in the Resource Registry Aggregator component and can be summarized in the following five operations:
- Environment initialization
- Bridging iterations execution
- Data store replication handling and coarse grained locking
- Graceful shutdown
- Automatic clear of datastores on error
- Manual clear of datastores
Provider specific logic is included in repository provider implementations
- Implementations handle the actual interfacing with the remote repository
- E.g.: RRGCubeBridge interfaces with gCube IS
- Implementations are easily replaceable
- Easy adaption to different environments
- Ability to change implementation in order to perform different tasks
Deployment
Resource Registry is available as Java libraries. Therefore, there is no deployment scheme for them. They are just individually and independently co-deployed with components that need to use a particular feature that one of them offers.
Use Cases
Well suited use cases
Resource Registry is ideal for components that need continuous communication with the Information System and/or want to exploit he management abstraction of the resources in order to perform complicated tasks easily. The local retrieval of the resources needed minimizes the network communication since all the operations are done locally and are synchronized periodically. Currently the following components are using Resource Registry:
- Search System
- Data Sources
- ASL
- Search Manager portlet
- PE2ng
- Workflow Engine
- Execution Engine
- gCube Data Transformation Service
- Data Access
Less well suited use Cases
In case that only a few communications with the Information System are needed and/or the operations are simple, using the Resource Registry might be an overhead in terms of performance, because of the synchronisation and management operations that are performed internally are not needed.