Service Granularity Principle

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Service Granularity is a design principle that identifies the optimal scope of business functionality in a service operation.

Interpretation[edit]

By definition a coarse-grained service operation has broader scope than a fine-grained service, although the terms are relative. The former typically requires increased design complexity but can reduce the number of calls required to complete a task.

The four key factors to consider when designing for optimal granularity are performance, message size, transaction and business function.

Performance[edit]

Web services are accessed remotely and calls to web service operation create more network overhead. Reducing the number of service requests reduces that overhead.

Message size[edit]

Coarse-grained services may pass more data than fine-grained services, including data that is not specifically required for the task. Reducing message size may require adding a more fine-grained operation.

Transaction[edit]

For conceptual clarity each service operation should perform a single transaction. This also simplifies error recovery, and typically eases design.

Business Function[edit]

Ideally, each service operation maps to a single business function, although if a single operation can provide multiple functions without adding design complexity or increasing message sizes, this generality can reduce implementation and usage costs.

References[edit]