Home > Service-Oriented Principles > Service Autonomy

Service Autonomy

"Services exercise a high level of control over their
underlying runtime execution environment."

For services to carry out their capabilities consistently and reliably, their underlying solution logic needs to have a significant degree of control over its environment and resources. The principle of Service Autonomy supports the extent to which other design principles can be effectively realized in real world production environments by fostering design characteristics that increase a service's reliability and behavioral predictability.

This principle raises various issues that pertain to the design of service logic as well as the service's actual implementation environment. Isolation levels and service normalization considerations are taken into account to achieve a suitable measure of autonomy, especially for reusable services that are frequently shared.


service autonomy

Figure 1 - Autonomy on a service level raises key design characteristics that are especially relevant when individual services are assembled into complex compositions. In this example services within a composition hiearchy are identified according to their respective service models.

SOA Principles of Service Design by Thomas Erl - Chapter 10: Service Autonomy (Processing Boundaries and Control) documents the design issues and challenges related to attaining higher levels of service autonomy, and further classifies different forms of autonomy and highlights associated risks.


Related Service-Orientation Computing Goals

Increased Intrinsic Interoperability, Increased Vendor Diversification Options, Increased Business and Technology Alignment, Increased ROI, Increased Organizational Agility, Reduced IT Burden


Related SOA Patterns

Canonical Resources, Capability Composition, Capability Recomposition, Composition Autonomy, Distributed Capability, Dual Protocols, Event-Driven Messaging, Process Centralization, Redundant Implementation, Service DataReplication, Service Normalization