Return to Home Page
Overview
    History
    Acknowledgements
    Podcasts
    Notification Form
    Feedback Form
    Press Release #1
    Press Release #2
    Press Release #3

Master SOA Design
Pattern Catalog
    Master Pattern List (alphabetical)
    Master Pattern List (by category)
    Master Pattern List with
Page Numbers (PDF)
    Master Pattern List (Text)
    Pattern Notation
    Pattern Profiles
    Symbol Legend
    Pattern Contribution Form

SOA Candidate Patterns
    SOA Patterns Review Committee
    Candidate Patterns Overview
    Candidate Patterns List
    Candidate Pattern Contribution Form
    Candidate Pattern
Feedback Form
    SOA Pattern Template

Design Pattern Basics
    What's a Design Pattern?
    What's a Design Pattern Language?
    What's a Compound Pattern?

Supplemental
    SOA Patterns and Application Technologies
    SOA Design Patterns Historical Influences
    SOA Design Patterns and Design Principles
    SOA Design Patterns and Design Granularity
    Legal

Resources
    Design Patterns Publications
    Reference Posters
    SOAPrinciples.com
    WhatIsSOA.com
    SOA Visio Stencil

About the Book



SOA Design Patterns
by Thomas Erl

For more information visit: www.soapatterns.com

Related Publications


"Introducing SOA Design Patterns", SOA World Magazine (PDF)



"The Case for Single-Purpose Services: Understanding the Non-Agnostic Context and a Strategy for Implementation", SOA Magazine (HTML)



"REST-Inspired SOA Design Patterns", SOA Magazine (HTML)



"Service-Orientation and Object-Orientation Part I: A Comparison of Goals and Concepts", SOA Magazine (HTML)



"Service-Orientation and Object-Orientation Part II: A Comparison of Design Principles", SOA Magazine (HTML)



"Service Facade", InformIT (HTML)



"Non-Agnostic Context", InformIT (HTML)



"Domain Inventory", InformIT (HTML)



"Service Normalization", InformIT (HTML)



"Service Decomposition", InformIT (HTML)



"Canonical Schema", InformIT (HTML)



"Policy Centralization", InformIT (HTML)





Uniform Contract (candidate)


Home > Candidate Patterns List > Uniform Contract

How can a service composition be reconfigured at run-time to take advantage of evolving alternative service endpoints?

Problem

Accessing services that provide variations of similar functionality requires a service consumer to invoke capabilities expressed in individual service contracts. Composition arrangements are unnecessarily rigid at run-time. As this set of alternative services evolves, the consumer needs ongoing modification to be kept up to date with the changing set of individual contracts.

Solution

Develop a uniform technical contract across the alternative endpoints that is abstract enough to express the capabilities of the individual alternative services. Endpoints either use the uniform contract directly or extend upon it.

Application

Alternative service endpoints conform to or extend a common reusable uniform technical contract. Other aspects of the contract may also be uniform, or may be negotiated at run-time through contract methods and operations. Service consumers avoid design-time coupling to a specific service and send messages at runtime conforming to the uniform contract. The service endpoint is selected an may be discovered at runtime.

Impacts

Sharing the same contract across several services increases the importance of getting the contract right both initially, and over the contract lifetime. Governance effort required over the uniform contract is increased compared to service-specific contracts, however fewer contracts are required overall.

Due to its generality, the uniform contract may lack sufficient meta-data to effectively discover and exploit a given service. Service-specific meta-data may need to be maintained separately from the uniform contract definition.

Principles

Standardized Service Contract, Service Loose Coupling, Service Abstraction, Service Reusability, Service Discoverability, Service Composability

Architecture

Inventory, Service

Status

Under Review

Contributors

Raj Balasubramanian, Jim Webber, Thomas Erl, David Booth
 
Exposing a uniform technical contract between service endpoints allows a service consumer to select a specific variant at run-time. A composition controller can be passed a service endpoint identifier as part of its own capability invocations, and makes use of the uniform contract to compose request messages to existing and to new alternative services.




Related Patterns in This Catalog

Canonical Expression (Erl), Fine-grained Service Endpoint, Schema Centralization (Erl), Service Facade (Erl)

Related Service-Oriented Computing Goals

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

The Prentice Hall Service-Oriented Computing Series from Thomas Erl
Home    SOA Books    SOA Magazine    What is SOA?    SOA Principles    SOASchool.com    SOA Glossary Copyright © 2007-2010
SOA Systems Inc.