Monday, August 17, 2009

SOA Governance Framework – WSO2 Governance Registry 3.0

SOA Governance has become a hot topic in most of the software houses, for some the value of it has matters and for some it is a trend. By looking at the complex/enterprise level SOA systems the need of governance has become vital. Same time the rapid growth of the systems and sub-systems make governance a important factor of the SOA infrastructure.
Governance is the high-level framework that fir the say to day system management, configuration and monitoring of the SOA infrastructure. Governance built with three elements People, Processes and Policies. People describes the system users and the associated systems, Processes are the verbs/activities of the system and policies are do connect people with processes by bringing control.
When talking about SOA governance a framework is essential to build and govern the infrastructure. WSO2 Governance Registry is a very powerful governance framework that can find in the market. It is opensource, user friendly with a rich GUI, functionality rich including the governance fundamentals, built with open standers to connect, communicate and use with other systems.
By keeping 3Ps (People, Processes, Policies) in a side I would like to divide governance in to different layers, Metadata, Control and Monitor.
Metadata contains the service metadata (WSDL, Schema, Policies etc ..)and configuration metadata. WSO2 Governance registry provides a comprehensive repository with a resource browser GUI to store and organize metadata. Resources and collections are the main components that used to store content. A metadata structure can be created based on the need by mapping to a organization structure or a project structure. Not only the service metadata services can be store in the repository as well and make associations with the service metadata. Metadata can be versioned for maintenance and can tag for quick search. Association and dependencies can be used to achieve the semantic view of metadata. Repositories can be connect together and can get an aggregated view by using the registry federation capabilities of the WSO2 Governance Registry. WSO2 Governance Registry comes with some inbuilt media types and the open api provides the facility to add additional media-types on preference by the user.
Control section covers several things including the people aspects. Using the user manager a complete organizational user database can be created or can link to an existing external user store. Existing user stores can be LDAP, AD, ADAM or RDBMS. Users, roles and permissions can be used to map the people with many policies. Validations are another set of important element under control. WS-I, WSDL, Schema validations are some example validations comes with the WSO2 Governance Registry and user can add any validation and associate it with the relevant media-type. Lifecycles can be used to control meta-data and provide a state to metadata.
Monitoring is the third category and a key factor in the governance framework. WSO2 Governance registry provides eventing based notifications that can be received in deferent medias including email, SOAP, GUI, logs etc. Product contains a comprehensive dashboard built with customizable gadgets that can configure to monitor applications in the SOA infrastructure (eg. ESB, Service Hosting Container).
WSO2 Governance Registry provides an ATOM based remote API as well as a WS interface for external communication, it contains the command line tools that can use to export, import content from the registry.
WSO2 Governance Registry can be used as a publish instance as well as a discovery instance. Best way to try out these features, to download WSO2 Governance Registry.

Saturday, August 01, 2009

WSO2 ESB 2.1 as an Event-Broker

WSO2 ESB 2.0 brought the eventing capability to the WSO2 ESB, recent improvements done for the initial implementation has made the WSO2 ESB as a fully featured event-broker.
An event-broker capture, process and distribute events using the publish-subscribe pattern. WSO2 ESB capture events using the generic proxy service capability comes with the ESB with the usage of special eventing mediator 'Event-Publish Mediator'. Message capturing is open with any transport that can enable with WSO2 ESB. Transport support covers all leading transports and second layered business level transports.
Events flow through the standard mediation flow in the WSO2 ESB, so any mediator can plug before dispatching. WSO2 ESB ships with a wide range of different mediators in its mediation library and allow users to write their own custom mediators using the simple API. That covers the event processing capability of the event-broker.
WSO2 dispatch the events by identifying the subscribers using the subscription manager. Subscription manager store the subscription in the subscription store that comes through the event-source. Subscription store can be user defined in-memory, registry (e.g. WSO2 Governance Registry) or a DB driven. Event filtering done by using the default topic based event filtering. The topic hierarchy used in the topic filtering is a key for the performance of the event dispatching. Similar to the event capturing any transport that can enable with WSO2 ESB can use as the dispatching transport. Newly added thread model for event filtering and dispatching has done a significant performance improvement. When the dispatching improves due to the fundamental pattern 'pipes-and-filters' entire mediation flow get improves and the resource usage for message processing get utilized as well.
Event-broker can discover easily by using the service URL published by the WSO2 ESB for the broker.
There are three articles written to describe in-detail information of eventing capabilities of WSO2 ESB.
Fusion: Eventing with SOA
Fusion: Eventing with SOA Eventing using Synapse and WSO2 ESB
Fusion: Eventing with SOA Implementation and Development of EDA