Difference between revisions of "GCore Based Information System"
Manuele.simi (Talk | contribs) (→Design Notes) |
Manuele.simi (Talk | contribs) (→Reference Architecture) |
||
Line 18: | Line 18: | ||
The components supporting the production/publishing phase are: | The components supporting the production/publishing phase are: | ||
− | * '''[[IS-Registry]]''' – this Service supports the publishing/un-publishing of | + | * '''[[IS-Registry]]''' – this Service supports the publishing/un-publishing of profiles describing gCube resources; |
− | * '''[[IS-gLiteBridge]]''' – this Service supports the publishing/un-publishing of ''resources ''gathered from a gLite based infrastructure | + | * '''[[IS-gLiteBridge]]''' – this Service supports the publishing/un-publishing of ''resources ''gathered from a gLite based infrastructure that gCube services may access to; |
− | * '''[[IS-Publisher]]''' – this Library supports services in publishing/un-publishing | + | * '''[[IS-Publisher]]''' – this Library supports services in publishing/un-publishing information in the Information Collector service. It's the gateway for any information published in the IS; |
* '''[[IS-Notification]]''' – this Library provides a Publish/Subcribe notification mechanism for Topics produced and consumed by services. | * '''[[IS-Notification]]''' – this Library provides a Publish/Subcribe notification mechanism for Topics produced and consumed by services. | ||
Line 31: | Line 31: | ||
* '''[[IS-Client]]''' – this Library supports Services in retrieving information published in the IS; it supports the discovery of both ''profiles'' and ''properties''. Actually, this library is an ''interface'' Services will rely on. Because of this fundamental role in supporting Services operation in a gCube-based infrastructure, a reference implementation of such an interface (''[[ExistClient|ExistLibrary]]'') is part of the gCore Framework; | * '''[[IS-Client]]''' – this Library supports Services in retrieving information published in the IS; it supports the discovery of both ''profiles'' and ''properties''. Actually, this library is an ''interface'' Services will rely on. Because of this fundamental role in supporting Services operation in a gCube-based infrastructure, a reference implementation of such an interface (''[[ExistClient|ExistLibrary]]'') is part of the gCore Framework; | ||
* '''[[IS-Notifier]]''' – this Service supports other Services in subscribing/unsubscribing to ''topics'' produced by the various Services; this service decouples the actual producer of the topic from the actual consumer allowing for producers re-location; | * '''[[IS-Notifier]]''' – this Service supports other Services in subscribing/unsubscribing to ''topics'' produced by the various Services; this service decouples the actual producer of the topic from the actual consumer allowing for producers re-location; | ||
− | |||
* '''[[IS-Sweeper]]''' (coming soon) – this [[Executor|Executor plugin]] keep updated the GHN and RI profiles when the related GHN dies or have communication problems; | * '''[[IS-Sweeper]]''' (coming soon) – this [[Executor|Executor plugin]] keep updated the GHN and RI profiles when the related GHN dies or have communication problems; | ||
Revision as of 22:46, 30 March 2011
Information System
The gCube Information System (shortly, IS) plays a central role in a gCube Infrastructure: it delivers functionalities for the publishing, discovery and ‘real-time’ monitoring of the set of resources forming the infrastructure. It acts as the registry of the infrastructure, i.e. all the resources are registered in the IS and every service partaking to the infrastructure must refer to it to dynamically discover the rest of Infrastructure constituents. This is of great support for the dynamic deployment capabilities of gCube.
Resources can be:
- profile, statically characterising the resource, e.g. its type;
- instance state, characterising the operational state of an instance of a gCube service
- generic resource, any piece of well-formed information
Because of its central role, key requirements in terms of quality of service for such a subsystem are performance, scalability, freshness and availability. Moreover, facilities supporting the interaction with such subsystem have been included in the gCore Framework.
Reference Architecture
Figure 1 presents the components of the Information System and their main interactions. These can be classified as follows:
- production/publishing
- collection/storage
- consumption/query
The components supporting the production/publishing phase are:
- IS-Registry – this Service supports the publishing/un-publishing of profiles describing gCube resources;
- IS-gLiteBridge – this Service supports the publishing/un-publishing of resources gathered from a gLite based infrastructure that gCube services may access to;
- IS-Publisher – this Library supports services in publishing/un-publishing information in the Information Collector service. It's the gateway for any information published in the IS;
- IS-Notification – this Library provides a Publish/Subcribe notification mechanism for Topics produced and consumed by services.
The component supporting the collection/storage phase is:
- IS-InformationCollector – this Service collects and makes available information related to the actual state of a gCube infrastructure and/or of an assigned subset of it;
The components supporting the consumption/query phase are:
- IS-Client – this Library supports Services in retrieving information published in the IS; it supports the discovery of both profiles and properties. Actually, this library is an interface Services will rely on. Because of this fundamental role in supporting Services operation in a gCube-based infrastructure, a reference implementation of such an interface (ExistLibrary) is part of the gCore Framework;
- IS-Notifier – this Service supports other Services in subscribing/unsubscribing to topics produced by the various Services; this service decouples the actual producer of the topic from the actual consumer allowing for producers re-location;
- IS-Sweeper (coming soon) – this Executor plugin keep updated the GHN and RI profiles when the related GHN dies or have communication problems;
Design Notes
The IS has been conceived to rely on standards, most noticeable:
- WS-Notifications
- WS-ServiceGroup 1.2
- WS-ResourceProperty 1.2
- Web Services Data Access and Integration – The XML Realization (WS-DAIX) Specification, Version 1.0
- XQuery 1.0
Early versions mostly exploited WS-ServiceGroup and WS-ResourceProperty specifications. Starting from version 2.0 (released in Feb 2011), the IS is designed around the WS-DAIX specification for publishing. WS-Notifications is at the heart of the functionalities delivered by the IS-Notifier service. Finally, the queries accepted by the IS has to be compliant with the XQuery language.
Worthy to mention, during the design of the IS, the following principle has been widely adopted: program to an interface, not an implementation. This means that we tried to maintain the IS consumers and producers as much as possible decoupled from its implementation. More concretely, a gCube service has to know only the IS-Client, IS-Notifier and IS-Publisher interfaces and that's all. It does not need to care about their implementation (mechanisms to dynamically load the IS-Client, IS-Notifier and IS-Publisher at runtime have been put in place) nor the actual IS deployment scenario (completely abstracted by the IS client libraries).