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 5: Basic Service Inventory Design Pattern Language

Home > Chapter 5 Overview > 5.3 Inventory Structure Design Patterns > Logic Centralization

Service Normalization

How can an inventory be designed to avoid redundant service logic?

Problem

When delivering services as part of a service inventory, there is a constant risk that services will be created with overlapping functional boundaries, making it difficult to enable wide-spread reuse.

Solution

The service inventory needs to be designed with an emphasis on service boundary alignment.

Application

Functional service boundaries are modeled as part of a formal analysis process.

Impacts

Ensuring that service boundaries are well aligned introduces extra up-front analysis and modeling effort.

Principles

Service Autonomy

Architecture

Inventory, Service

Table 5.5 – Profile summary for the Service Normalization pattern.

Problem

The boundary of a service is defined by its functional context and the collective boundaries of its capabilities. Even within a pre-defined inventory boundary, when services are delivered by multiple project teams there is a risk that some will provide functionality that will overlap with others.

This leads to a denormalization of the inventory, which can cause several problems, such as:

       an inability to establish service capabilities as the official endpoints for bodies of agnostic logic

       a more convoluted architecture wherein services with overlapping functionality can become out of synch, providing the same functions in different ways

Figure 5.22 – A service inventory containing services with overlapping functional boundaries that introduce denormalization.

Solution

Services are collectively modeled before their individual physical contracts are created. This provides the opportunity for each service boundary to be planned out so as to ensure that it does not overlap with other services. The result is a service inventory with a higher degree of functional normalization (Figure 5.x).

Figure 5.23 – When services are delivered with complementary and well-aligned boundaries, normalization across the inventory is attained.

Application

The goals of this pattern are best realized by pursuing service level autonomy (as associated with the Service Autonomy design principle). Service candidates can be modeled and revised through iterations of the service modeling process, allowing for their respective boundaries and functional contexts to be repeatedly refined and validated.

The definition of a service inventory blueprint is part of a top-down delivery effort, which provides the best opportunity for this pattern to be most effectively applied. (See SOAMethodology.com for details regarding top-down delivery.)

Impacts

The guarantee of inventory-wide normalization requires that all services be conceptually modeled prior to delivery, as part of an inventory service blueprint specification. Depending on the scope of the planned inventory, this can result in a separate analysis project that needs to be completed before any service can be actually built.

Relationships

The Service Normalization pattern lays the foundation for Contract Centralization by ensuring that no two services share the same functionality. This allows contracts to be positioned as the sole entry point into service logic and further enables those services to be independently evolved, as per the Service Refactoring pattern. The related Schema Centralization and Policy Centralization patterns further support this pattern by avoiding contract-related redundancy.

To successfully preserve a normalized inventory requires the consistent enforcement of the Logic Centralization pattern, making these two patterns very closely related.

Contract Denormalization is only referred in Figure 5.x to indicate that, despite its name, it does not interfere with the goals of this pattern. As explained in Chapter 8, the Proxy Capability pattern must violate this pattern out of necessity when services require post implementation decomposition.

Figure 5.24 – The Service Normalization pattern fundamentally organizes a service inventory but relies on the successful application of other patterns to retain this state.

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.