Let's have a look at how the WSO2 Governance Registry addresses the following issues related to SOA governance:
- How to publish and discover a service?
- How to figure out dependencies and associations?
- How to control user access?
- How to manage service lifecycle?
- How to extend the registry for custom use?
The WSO2 Governance Registry allows you to add services through its Web-based user interface. User can choose either to enter service details manully or to import service information using a WSDL url. For more information see Governance Artifact Configurations.
It is also possible to validate a resource's compliance with standards such as WSDL, XSD and Web Services Interoperability (WS-I). Validation capabilities help improve the quality of resources. Validation tools are also an important aspect of policy enforcement, where you can enforce resources validation at specific points of a resource life cycle. See also Managing Properties.
The WSO2 Governance Registry offers configurations options such as tags, comments, properties, ratings and descriptions for a resource. It is important to plan the use of these configurations, to allow them help in discovering services and enabling correct SOA Governance.
Resources for service discovering tremendously help in service reuse. In fact, it is one of the major functions of a registry-repository product. The WSO2 Governance Registry provides enhanced search capabilities to facilitate search based on tags and other advanced criteria. See also Resources.
Dependencies and Associations
The Registry supports configuring of dependencies and associations for resources. It automatically detects certain dependencies when you publish a resource. For example, a WSDL might use an external XSD that can be automatically detected and imported to the Registry. In addition to dependencies, the Registry provide a way to configure associations among resources. You are free to specify the type of association such as "contains" or "uses" during association configuration. These associations help figure out the possible relationships that may exist among resources and also in analyzing the impact on changing a resource. See also Managing Dependencies and Associations.
The WSO2 Governance Registry offers user authentication and authorization capabilities over all resources stored in the Registry. Easily configurable role based user management allows define, "who can accessing what?" within the Registry. Furthermore, the Registry provides activity logs that shows user activities over resources. You can apply filters on the top of activity logs to extract customized data to suite your information needs. See also Managing Role Permissions.
Typically many resources in your Registry, such as service descriptions, should progress through a series of "lifecycle stages". For instance, a service may start off as "created", then after quality assurance has confirmed that the service works as expected should be moved to "tested" stage. Upon testing, the service can then move to a "deployed" stage at which point it is released to production. Eventually, the service will be taken down or replaced with another as it moves to a "deprecated" state. Furthermore, registry allows users to define a checklist for stage transitions.
The WSO2 Governance Registry makes using and managing state-based lifecycle easy. Out of the box, the Registry comes with a default lifecycle that implements the state transitions explained earlier. You can define your own custom lifecycles with conditional state transitions, in order to match you/your organization's very specific requirements. See also Lifecycles.
The WSO2 Governance Registry provides three extension points that provide a flexible, plug-in approach to link resources and to allow users to encode their own governance rules and policies. These include:
- "Handlers" - To implement custom behaviors to be applied to resources
- "Filters" - To intercept standard behaviors to make room for custom behaviors; Filters determine which Handlers are to be engaged on a resource
- "Aspects" - To associate custom behaviors with resources; Aspects differ form handlers, in that handlers are automatically applied to a resource, whereas, aspects are needed to be invoked manually through user action (for example, by clicking a button in the user interface)
Additionally, with the enhanced WSO2 Governance Registry API, you can embed the Registry in a runtime system (for example, in Enterprise Service Bus) and support automated run-time governance. See also Extensions.