Wednesday, 15 October 2008

What is SOA - Service Characteristics - Discoverable

For services to be of use of anyone they must be discoverable. Discoverability is usually taken to refer to the ability for consumers to find a relevant service by attributes (tags) at runtime via a service registry. In other words, consumers go to a service “yellow pages” and find at runtime services that best meet their needs.


This sort of runtime discoverability has not yet taken off despite all the hype. Service contracts are complex beasts that include non-trivial functional interfaces and runtime policies such as security and operational service level agreements. Then there are the capacity management and funding considerations involved in service adoption. Such runtime discoverability is more suited to a market place were variation and competition thrive, than to internal corporate landscapes where reuse and lower total cost of ownership is a key driver.

Is that the end of this post then?

No. Services very much need to be discoverable in the sense that they are well publicised to the consumer community. Services will not be reused if they are not known about. Service registries must contain everything the consumer will want to know about the service, e.g. name, description, functional interface, locations, owner, operational and performance criteria, security model, invocation mechanism, cost, etc. but must equally importantly include tags that will make searches possible.

However just having such a service registry is not enough. Governance is required to ensure that development communities making use of the registry; governance not just in the stick sense, i.e. thou shalt use the registry or else, but also in the carrot sense. It is important to capture the hearts and minds of both development and business communities. Reuse is like recycling, fine in principle, with everyone keen to do it, until it becomes inconvenient.

You may also like:

Service Characteristics - Contract
Service Characteristics - Abstract
Service Characteristics - Composable
Service Characteristics - Autonomous
Service Characteristics - Discoverable
Service Characteristics - Distributed
Service Characteristics - Reusable