Monday, December 29, 2008

Anatomy of Service

Service is one of the basic component of SOA. But what is Service and what are the different attributes of a service and how to interact with each other and across different services?

In simplistic terms service is logically grouped set of operations capable of performing related unit of work and operates over a message.

So service is units of processing logic, which are closely related.

Therefore service has two major components:

1. Message: Data required to complete partial or all parts of a unit of work.
2. Operation: The logic required to process message in order to complete a unit of work.




A well-designed service should have following attributes:

1. Service should be reusable
2. Service should exposes a formal interface contract
3. Service should abstract underlying logic
4. Service should be composable
5. Service should be autonomous
6. Service should be stateless
7. Service should be discoverable
8. Service should be available over network

In addition of these, if we consider SOA as confederation of services on more attribute is desired:

9. Services must be loosely coupled.

So how these attributes interact!!



Services may also be viewed from application perspective over which they are written or which they make in some composable fashion. The second perspective is process perspective, which view services from enterprise process perspective.



Application perspective of Service




Process perspective of Service




Hybrid perspective of services

No comments:

Post a Comment