Early this year, WSO2 released a complete SOA platform, introducing a revolutionary solution to adapt SOA in more flexible and cost-effective manner. It is developed based on the OSGI technology, which allow users to get only the desired components to their requirements and implement their SOA infrastructure. As the requirements grow or change, they can add/upgrade/drop only the relevant component(s) to adjust to their new requirements.
In fact rather than releasing each components separately, WSO2 released few products, pre-bundling some of these components.Those are,
- WSO2 WSAS – Allows you to consume create and host web services.
- WSO2 ESB – Complete ESB functionality including message routing, mediation
- WSO2 BPS – Orchestrate business processes with WS-BPEL
- WSO2 Registry – The repository for all.
Note that you can always start from one of above and then mix and match among these components until you get the desired features, as explained in my previous blog The Composable SOA Platform.
One of the common component bundled in all of these is the “Registry Core”. It acts as a unified repository for all the storage requirement of the SOA platform. It stores,
- Service descriptions, policies
- Configurations of modules (e.g. Security module, Reliable Messaging module, etc..)
- Configurations of transports
- Configurations of data sources, event sources, connections
- Proxy Services, Sequences, Endpoints + the keys (xslts, schemas) needed in mediator configurations.
In order to deal with these requirements Registry provides functionalities to
- Store/Retrieve resources.
- Organize resources in to collections(collections are also considered as resources) in hierarchical manner. (Like directories in a file system)
- Search resources. (content based search or using custom queries)
- Tagging, commenting and rating resources
- Keeps associations, dependencies among resources
- Support for resource versioning.
- Monitors activities.
So how you going to use the registry. In fact you can access a registry in different ways. It has
- Nice web based GUI to explore/add/remove/update resources
- APIs to embed the Registry to your java program.
- APIs to access Registry remotely using Atom/pub and web services. Atom clients are also available in C and PHP to access registry.
The another very important aspect of the registry is that who has the permission to view/add/delete resources. For that, registry uses ‘User Manager’ component which allows you to handles the permission in user based and role based schema.
In addition to all of these functionalities, it provides you two different ways to extend the functionalities of the registry.
Please look at this article on “Extending WSO2 Registry” for a comprehensive guide on this subject.
The capabilities of the registry are not just limited to act as a repository, but also it can be used as the base for govern the entire SOA platform. The following aspects of the SOA governance can be solved based on a Registry.
- Service discovery
- Service policy enforcement and validation
- Service Life Cycle Management
- Promote or Demote services with a proper criteria (e.g using a checklist)
- Service association and dependency management
- Service Monitoring
- Service Access Control
- Service Versioning
You can read how to implement SOA Governance with the Registry 1.1 (An Older version of Registry) in more detail, from this article “SOA Governance with Registry 1.1“.
WSO2 is preparing to release the WSO2 Governance Server that provide a solution to all of these SOA Governance requirements. It will extend the registry features and UI by introducing more views towards SOA Governance.
So you can use WSO2 Registry for all your repository requirements + as a tool to help you govern your SOA in your enterprise.