Monday, December 19, 2005

There is a lot of discussion in the industry around SOA Registry and SOA Repository. In some cases, folks refer to these interchangeably while in others they are discussed as separate products. However, everyone seems to agree they are important...

I think of an SOA Registry as a directory of services (as the name suggests). In this directory, there is information about the service, the service provider(s), and the qualities & capabilities claimed to be supported by the service provider (i.e. security). Services are registered by a librarian or registrar. The consumers are notified of the new or revised service. This information is used at runtime by service consumers for dynamic discovery and binding. It may also be used at development time by developers (import service interfaces)....
So, there is a fair amount of control necessary to make sure services are specified and categorized properly in the registry, so that consumers can find them easily and use them.
There are a number of registry standards out there such as UDDI, ebXML registry, ProjectLiberty WSF Discovery. There are also reference implementations as well as vendor products. Unfortunately, vendors use different product names for their offerings (Service Registry, Service Repository, Business Service Registry, SOA Registry, etc)....

I think of the SOA Repository as a service metadata repository that governs the discovery, orgnization/categorization, and management of service metadata. This information may come from a wide range of sources (mainframe assets, existing components, packaged applications, corporate dictionaries, EAI repositories, etc). The SOA Repository should provide an integrated view of this portfolio of assets used to build services as well as life-cycle management necessary for rolling out services. The SOA Repository may also have integration points with an enterprise metadata framework. This product may be used by service explorers, application portfolio analysts, service analysts, service registrars, servide assemblers, etc...
In this space, there are metadata, and change/configuration control management vendors.

So, in my opinion, these are two separate logical components albeit they may be an integrated product....

No comments: