Return to Home Page

The public review of the manuscript for "SOA Design Patterns" has concluded !
Thank you to all that participated. 234 reviews were received and over 30 new patterns have been contributed,
increasing the size of this book by over 50%. The second draft of the manuscript is currently in development.

About the Public Review
    History
    Podcasts (audio)
    Notification
    Submit Feedback
    Contribute a Proven Pattern
    Contribute a Candidate Pattern
    Acknowledgements
    Press Release

Introduction to SOA Types & Design Patterns
    The Architecture of
Service-Orientation
    Understanding SOA
Design Patterns

SOA Design Patterns
    Basic Service Inventory Design Pattern Language
    Architectural Design Patterns
    Basic Service Design
Pattern Language
    Service Design Patterns
    Common Compound
Design Patterns

Additional Resources
    View Entire TOC
    Symbol Legend
    Master Pattern List
(by category)
    Candidate Design Patterns
    Design Patterns Publications
    Download SOA Principles Poster (PDF)

About the Book



SOA Design Patterns
by Thomas Erl

For more information visit: www.soapatterns.com

Related Publications


Read the article "Introducing SOA Design Patterns" from the
June 2008 SOA World Magazine (High-Res PDF).

PLEASE NOTE

The content on this page is from the first draft of the manuscript for the upcoming book "SOA Design Patterns" by Thomas Erl. This version of the manuscript was authored in September, 2007. Since then, the manuscript has undergone significant content and structural changes as a result of an industry-wide review in which hundreds of SOA practitioners participated in addition to SOA vendors and experts from the design patterns community.

You are welcome to use the information on this page for research purposes, but you should assume that most of it will change in the final release of the "SOA Design Patterns" book.

Note also, that as a result of an industry-wide call for participation from December 2007 to February 2008, over 30 new design patterns have been contributed to this book. As they become finalized and are incorporated by the author, concise descriptions will be published on this site, and full descriptions with examples will be made available in the final, printed book.

Due to the volume of new content and changes, the release of the "SOA Design Patterns" book has been postponed to October, 2008. To learn more about the book, visit www.soapatterns.com. To be notified of updates to this site, use the notification form.

Chapter 6: Architectural Design Patterns

Home > Chapter 6 Overview > Composition Autonomy
Composition Autonomy

Composition Autonomy

How can compositions be implemented to minimize loss of autonomy?

Problem

Composition controller services naturally lose autonomy when delegating processing tasks to composed services, some of which may be shared across multiple compositions.

Solution

All composition members can be isolated to maximize the autonomy of the composition as a whole.

Application

The agnostic member services of a composition are redundantly implemented in an isolated environment.

Impacts

Increasing autonomy on a composition level results in increased infrastructure costs and operational expenses.

Principles

Service Autonomy, Service Reusability, Service Composability

Architecture

Composition

Table 6.4 – Profile summary for the Composition Autonomy pattern.

Problem

Services are ideally individually autonomous so that they can provide a high degree of behavioral predictability when repeatedly reused. This allows a single, agnostic service to be shared across multiple compositions in support of automating multiple business processes.

However, a natural result of any distributed service composition is a loss of autonomy by any service composing another simply due to the fact that the service is required to invoke solution logic that resides outside of its controlled execution environment.

When individual services provide a high level of autonomy, the collective autonomy of the composition is correspondingly elevated and this is generally adequate for most service compositions. But when one or more composition members have a poor level of autonomy or when the quality of service requirements of the composition as a whole demand a higher degree of robustness and reliability, then a distributed composition may be insufficient.

Figure 6.18 – In a highly distributed environment, a service compositionŐs overall autonomy will be collectively determined by the autonomy of its individual composition members. When services are designed in accordance with the Service Autonomy design principle, this collective autonomy will generally be sufficient. However, there are times when a higher degree of composition autonomy is required. As shown in this figure, Service D offers the lowest level of autonomy because its logic is accessed by external programs.

Solution

The members of the composition are deployed within an isolated environment so as to give the composition as a whole a high level of autonomy.

Figure 6.19 – By grouping the member services of a composition into a separate deployment environment, the collective autonomy is maximized because the implementation is dedicated to the compositionŐs business task and none of the services are otherwise shared. Services C and D in particular benefit from this new implementation as they are no longer subject to shared access.

Application

There are many variations of this design pattern that can be applied, several of which correspond to the typical autonomy levels described in Chapter 10 of SOA: Principles of Service Design.

To increase the autonomy of a composition the following steps can be taken:

     Two or more composition members are deployed on the same physical server to avoid remote communication.

     The composition member services are isolated to avoid shared access.

     The agnostic composition members are redundantly implemented, as per the Redundant Implementation pattern.

     Composition members requiring data access are supplied with dedicated or replicated data stores, as per the Service Data Replication pattern.

Impacts

Because the requirements for increasing the overall autonomy of a service composition usually involve upgrading or extending the existing enterprise infrastructure, there are obvious costs and impacts that need to be taken into consideration.

Redundant implementations of agnostic services further add governance effort and expense so that these independent implementations are kept in synch with their shared counterparts.

Relationships

Because of its narrow emphasis on supporting the goals of the Service Autonomy design principle, this pattern has just a handful of relationships. Fundamentally, Composition Autonomy is concerned with maximizing the reliability and availability of services based on the Agnostic Context pattern in full support of the Capability Recomposition pattern.

Service Data Replication and Redundant Implementation design patterns help establish an appropriate level of isolation for service compositions. Often, security reasons will dictate the need to isolate externally facing services as well as their composition members, which may lead to the need to apply Composition Autonomy in support of the Inventory Endpoint pattern.

Figure 6.20 – The Composition Autonomy pattern is implementation-centric and will generally require the application of more specialized patterns to realize required levels of composition isolation.

Case Study Example

Case study content is not available on this Web site.

Prev | Next
The Prentice Hall Service-Oriented Computing Series from Thomas Erl
Home    SOA Books    SOA Magazine    What is SOA?    SOA Principles    SOA Methodology    SOA Glossary Copyright © 2007-2008
SOA Systems Inc.