Home > SOA Glossary > Service Granularity

Service Granularity

The overall quantity of functionality encapsulated by a service determines the service granularity. A service's granularity is determined by its functional context which is often derived from one of three common service models.

For example, a service based on an entity service model will have a functional context associated with one or more related business entities. Functionality associated with the chosen business entity belongs within the service's functional boundary. The larger the quantity of related functionality, the coarser the service granularity. Conversely, services with more narrow or targeted functional contexts will tend to have a finer grained level of service granularity.

Note that the level of service granularity is set by the service's functional context, not by the actual amount of functionality that resides within the physically implemented service. An initial version of an Invoice service, for example, may only contain a Get capability. However, because its functional context is so broad (it represents all invoice-related processing), its level of service granularity is still considered coarse.

Service granularity represents one of four types of design granularity, the other three being capability, data, and constraint granularity. Each of these granularity types is affected differently by the application of service-orientation design principles.

img

See also: