to LooselyCoupled.com homepage
 
 Weekly emails: how to advanced search
 Glossary lookup:

 

> opinion > book excerpt


Core principles for service-oriented architectures

by Thomas Erl
August 15th, 2005

"Separation of concerns" is an established software engineering theory based on the notion that it is beneficial to break down a large problem into a series of individual concerns. This allows the logic required to solve the problem to be decomposed into a collection of smaller, related pieces. Each piece of logic addresses a specific concern.

 
• print  • comment

Autonomy, loose coupling, abstraction, and the need for a formal contract can be considered the core principles that form the baseline foundation for SOA.

Thomas Erl is the founder of SOA Systems, an enterprise solutions provider specializing in SOA consulting and training services. He is a best-selling author of books on web services and SOA. This article is excerpted from his latest, Service-Oriented Architecture: Concepts, Technology, and Design.


Glossary terms: service-oriented, object-oriented, development, loose coupling, componentization, lookup tool

This theory has been implemented in different ways with different development platforms. Object-oriented programming and component-based programming approaches, for example, achieve a separation of concerns through the use of objects, classes, and components.

Service orientation can be viewed as a distinct manner in which to realize a separation of concerns. The principles of service orientation provide a means of supporting this theory while achieving a foundation paradigm upon which many contemporary SOA characteristics can be built.

There is currently no official set of service-orientation principles. There is, however, a common set of principles most associated with service orientation. As a result of research the author performed for SOA Systems (during which service orientation, as a design paradigm, was studied within the context of all major vendor platforms and existing frameworks and blueprints) this set of common service-orientation principles has been identified and defined. Below are brief descriptions of each.

Services are autonomous — The logic governed by a service resides within an explicit boundary. The service has control within this boundary, and is not dependent on other services for it to execute its governance.

Services share a formal contract — In order for services to interact, they need not share anything but a collection of published metadata that describes each service and defines the terms of information exchange.

Services are loosely coupled — Dependencies between the underlying logic of a service and its consumers are limited to conformance of the service contract.

Services abstract underlying logic — Underlying logic, beyond what is expressed in the service contract metadata, is invisible to the outside world.

Services are composable — Services may compose others, allowing logic to be represented at different levels of granularity. This promotes reusability and the creation of service abstraction layers.

Services are reusable — Regardless of whether immediate reuse opportunities exist, services are designed to support potential reuse.

Services are stateless — Services should be designed to maximize statelessness even if that means deferring state management elsewhere.

Services are discoverable — Services should allow their descriptions to be discovered and understood by humans and service requestors that may be able to make use of their logic.

Of these eight, autonomy, loose coupling, abstraction, and the need for a formal contract can be considered the core principles that form the baseline foundation for SOA, directly supporting the realization of others (as well as each other).To fully understand how service-orientation principles can shape automation logic within contemporary service-oriented solutions, several additional aspects of service orientation need to be explored:
  • The relationship between object orientation and service orientation should be understood. For example, several service-orientation principles have roots in corresponding object-orientation principles, whereas others fundamentally oppose each other. An appreciation of commonalities and differences assists in determining how and when each paradigm should be applied.

  • The extent to which individual service-orientation principles inter-relate needs to be established. This explains how the application of one principle can affect and support the use of others. Specifically, inter-principle dependencies can be identified and planned for in solution designs. For example, for a service to be composable it generally needs to be designed for reuse. High levels of autonomy, statelessness, and discoverability subsequently assist a service in maximizing its reuse potential.

  • The suitability of Web services needs to be determined as a means of realizing services that adhere to these principles and foster service orientation throughout a predefined environment. A key point of interest here is the extent to which Web services already intrinsically support and implement a subset of these principles, thus revealing those principles that can only be realized through explicit design effort.

  • The application of service orientation to business analysis. Through the use of service-oriented business modeling techniques, the definition of business models and processes can be significantly augmented. Service orientation places a further emphasis on the use of ontologies, and can assist an organization to better structure information domains.

  • The potential for key service-orientation principles to be applied beyond the scope of a single service or solution. Concepts established by principles such as loose coupling, abstraction, and autonomy can influence the way the automated enterprise, as a whole, is modeled and structured. This brings service orientation into new realms, leading to the creation of service abstraction layers and addressing large-scale benefits of SOA, such as organizational agility.

The author describes these principles and other aspects of service orientation in detail in Service-Oriented Architecture: Concepts, Technology, and Design, published this month.


More on this topic


Related

Why services?
Services are a new way of building distributed applications ...

The case for SOA
The decomposition of business applications into services is not just an abstract process ...

Laying the foundations for SOA
Enterprises implementing SOA aim to maximize the benefits ...


Books

Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services
Thomas Erl's previous book, which was the top-selling book of 2004 in both web services and SOA categories.


 
 


Copyright © 2002-2006, Procullux Media Ltd. All Rights Reserved.