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 > Redundant Implementation
Redundant Implementation

Redundant Implementation

How can the reliability and availability of a service be increased?

Problem

A service that is being actively reused introduces a potential single point of failure that may jeopardize the reliability of all compositions in which it participates if an unexpected error condition occurs.

Solution

Reusable services can be deployed via redundant implementations or with fail-over support.

Application

The same service implementation is repeated or supported by infrastructure with redundancy features.

Impacts

Extra governance effort is required to keep all redundant implementations in synch and properly represented within service registries.

Principles

Service Autonomy

Architecture

Service

Table 6.19 – Profile summary for the Redundant Implementation pattern.

Problem

Agnostic services are prone to repeated reuse by different service compositions. As a result, each agnostic service can introduce a single point of failure for each composition. Considering the emphasis on repeated reuse within service-orientation, it is easily foreseeable for every complex composition to be comprised of multiple agnostic services and therefore run the risk of multiple failure points.

With a means of guaranteeing the reliability and availability of agnostic services, the robustness of the entire service inventory is constantly at risk.

Figure 6.84 – When a highly reused service becomes unexpectedly unavailable, it will jeopardize all of its service consumers.

Solution

Multiple implementations of agnostic services with high reuse potential or providing critical reusable functionality can be installed to guarantee high availability even when unexpected exceptions or outages occur.

Figure 6.85 – Having redundant implementations of agnostic services provides fail-over protection should any one implementation go down.

Application

The application of this pattern does not always require actual, separate redundant service implementations. Common infrastructure extensions, such as fail-over or clustering, can be leveraged to increase the overall reliability and availability of agnostic services.

Note: An alternative pattern that also addresses service availability concerns is Asynchronous Queuing.

Impacts

While this pattern improves the reliability and scalability of service inventories as a whole, it clearly brings with it some tangible impacts. The foremost of which is an increased purchasing and maintenance cost to the inventoryŐs underling infrastructure.

Additional hardware requirements and administration effort will be needed for each redundant implementation. Furthermore, additional governance responsibilities are added in order to keep all redundant implementations in synch, should the service be refactored or extended.

Relationships

Agnostic services naturally have the most concurrent usage demands and therefore have the greatest need for autonomy and fail-over support. This is why the Redundant Implementation pattern is important to services defined via the Entity Abstraction and Utility Abstraction patterns. However, even non-agnostic services realized via the Inventory Endpoint pattern may require Redundant Implementation due to reliability or security requirements.

The Composition Autonomy pattern will often repeatedly apply Redundant Implementation to ensure that as many services participating in the composition can achieve increased levels of isolation.

To establish a redundant deployment of a service that requires access to shared data sources will usually demand the involvement of the Service Data Replication pattern. And, as with most patterns, the effects of this pattern support Capability Recomposition, in particular in the areas of increased reliability and performance.

Figure 6.86 – The Redundant Implementation patternŐs goal of supporting the Service Autonomy design principle affects several other more specialized (autonomy-related) patterns.

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.