Friday, 10 October 2008

What is SOA - Service Characteristics - Distributed

Services should be distributable, that is they need not and indeed should not run in the same process as the consumer. Services that run in the same process offer no possibility of runtime reuse to other consumers.

In order to achieve this goal you minimally need two things: a remoting framework and location transparency

1. Remoting Framework

A remoting framework is the mechanism whereby consumers are able to locate and invoke remote services. Typically for SOA this means Web Services, though less interoperable protocols such as JEE and .NET may also be used, for example where performance is a critical criterion. However such decisions should not be taken lightly – the ability to interoperate is a key to achieving reuse across the enterprise.

2. Location Transparency

Location transparency refers to the ability for a consumer to use a service without knowing where that service is running. This may be achieved to a degree through the use of DNS names hiding IP addresses, or creating server clusters fronted by an IP load balancer virtual service address. However, both of these still bind the consumer to a logical instance of the service. In contrast a service registry provides additional decoupling in that consumers are searched for by attribute (e.g. name and version number) rather than being bound by name.

Location transparency is also required of the service implementation itself. Services should not be tied to any particular location, both for capacity planning reasons where it may be required to move services between platforms to support load, but also for portability reasons. Achieving environment independence is achieved by running services in a container such as JEE or Spring that insulate the services from the underlying infrastructure, as well as ensuring that services are stateless.

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