This page describes the WSO2 Governance Registry architecture in the following sections:
Product Architecture Diagram
Carbon Core
- This contains core services provided by the Carbon Core server deployed on top of an Eclipse Equinox based OSGi runtime, which also supports feature management with Eclipse Equinox P2.
- The Carbon Core provides the capability of managing users on the system. We support a wide variety of user stores.
- Embedded or Remote database
- LDAP/AD
- Apache Directory Studio
- The User Management feature is also capable of providing support for:
- User Profiles
- SAML 2.0 based Single Sign On
- Hierarchical Permission model
- The Application Deployment feature can be used to deploy C-App (Carbon Applications) as .car files, directly from WSO2 Carbon Studio.
- The Carbon Core also provides basic server administration functionality.
- Configure logging and monitor logs
- Monitor system statistics
- Shutdown/Restart server
Registry Core
- The Registry Core (or the Registry Kernel) is a part of the Carbon Core.
- At the heart of the Registry Core lies the Repository, fronted by a Data Access Layer through which the data is stored and fetched on a JDBC compliant RDBMS.
- In addition to fixed SQL queries, WSO2 Governance Registry also supports execution of customized SQL queries.
- We support a wide-variety of DBMS:
- The Registry API provides a programming interface to the Registry Core, which lays the foundation for extension APIs such as the JCR 2.0 API.
- There are three key registry features that exist at the top of the repository which can be used to provide your own customization on top of the base product.
- Handlers are plug-able components that contain custom processing logic for handling resources. Handler implementations can provide alternative behavior for basic resource related operations by overwriting one or more methods in the Handler class.
- Each Handler is associated with a Filter. Filters provide criteria for engaging Handlers. The WSO2 Governance Registry always evaluates the associated Filter before invoking a Handler. If the Filter evaluates to true, it invokes its associated Handler.
- Like Handlers, Aspects are used to associate custom behaviors with resources. Aspects are different from Handlers in a way, as Handlers are automatically applied to a resource, whereas, Aspects are needed to be invoked manually through a user action (e.g., by clicking a button on the UI).
- The Registry Core supports a concept of mounting in Handlers (similar to NFS mounts). Repositories that host data on remote Governance Registry instances can be mounted on to the local Governance Registry instance, and accessed as if they were a part of the main tree at the local instance.
Resources
- Resource and Collections (analogous to files and folders on a filesystem), are stored in the WSO2 Governance Registry’s repository. Collection is modelled as a special type of resource, inside which other resources and collections can be found.
- The Resources-layer of the WSO2 Governance Registry provides functionalities such as:
- Versioning
- Validations
- Relationships
- Associations
- Dependencies
- Properties
- Validations are done through special validation handlers associated with a particular resource media type (see the Handler Sample).
- For more information, see: Associations/Dependencies and Resource Properties.
Governance
- Users can upload (from filesystem) or import (from URL) SOA metadata into the WSO2 Governance Registry. Based on their types, they appear as WSDL, Schema, Policy or Service.
- We also support Management of Business Services on Governance Registry, which provides for features such as impact analysis, and dependency management. It also provides tools for visual service descriptions.
- WS-Eventing based subscriptions and Notifications can be used to govern changes made to individual resources as well the lifecycle to which it belongs.
- We also a provide a Governance API which can be consumed by one of many command line and web-based clients.
- For more information on Governance features, see: Metadata, Notifications, and Gadgets.
Lifecycle Management
- The management of resource lifecycles is a generic responsibility of this feature. However, we treat service metadata as specialized entities with their own life, which are handled by the LCM component.
- This component makes use of WS-Eventing and Notifications to inform users as well as trigger automated processes.
- For more information, see Lifecycles.
Other Product Features
- Search and Indexing
- This feature can be used to search for resources stored on Governance Registry.
- This feature can also be used to audit activities that have happened on a Governance Registry instance within a given time period or by a specified user.
- For more information, see Activities and Content Search.
- Community Features and Social API
- The WSO2 Governance Registry has been designed to provide Web 2.0 related features to the community of users of this product. These are features such as Tags, Ratings and Comments.
- The Social API provides the basis for developing Open Social applications while making use of the data stored on the registry instance.
- For more information, see User Profiles.
- Server Utilities
- There are some additional server utility features that are bundled with WSO2 Governance Registry, such as Logging Configuration Management, Security Configuration Management, and System Statistics.
- These features allow an administrator to monitor the health of the system, validate correctness of logic, and ensure security of data.
- For more information, see Application Logs, System Logs, and System Statistics.
External APIs and Clients
- WSO2 Governance Registry supports four key external APIs.
- JCR 2.0 API
- WebServices API
- AtomPub protocol (APP) based Remote Registry API
- REST API
- We also have a number of applications which use these external APIs.
- Web Services client
- Remote Registry client
- WebDAV
- Check-in Check-out client
- For more information see WebDAV, WS API, JCR and Handler Configuration. For a complete list of APIs and Standards, see APIs and Standards.