Wednesday, 17 October 2012

What is SOA - Service Characteristics - Reusable

A service is said to be reusable if it can be used in more than one context, even in contexts for which it wasn't originally designed.

So how do we achieve this noble goal?

1. Business domain modelling

If you understand your business domain and model services according to that domain your services stand a better chance of being reused than if they were built in isolation to localised requirements. Business process modelling should drive the requirements for services.

2. Adaptability

If your service can be easily extended then it can be reused. Extensibility is about being able to change the service implementation or extending the interface without affecting existing customers. Extensibility is achieved through interface abstraction and well-defined versioning policies, but also surprisingly through aspects like testability and resourcing capability.

Testability is about verifying service backward compatibility using an automated regression test which includes both functional and performance aspects of that service is key to service extensibility.

With respect to resourcing, delays in making required changes to services will hinder service reuse, so flexible resourcing capabilities are required.

3. Capacity Management

Eh? Yes, unless your service environment can support additional customers, that service cannot be said to be reusable. Capacity management is about sizing and providing service operating environments both for current and projected volumes.

4. Visibility

If people don't know about services then they won't be reused. A well designed and publicised service registry will help potential customers to quickly identify services that meet their needs.

5. Governance

Even if you have done all of the above, people will find reasons not to reuse, e.g. if the service does not exactly match the customer's requirements or the customer is not prepared to wait for the service to be enhanced. To help with such cases, governance using both carrot and stick is required. Governance is first about defining the rules, then helping people to understand and follow the rules.

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