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.4 Inventory Standardization Design Patterns > Canonical Data Model

Canonical Protocol

How can services be designed to avoid protocol bridging?

Problem

Services that support different communication technologies compromise interoperability, limit the quantity of potential consumers, and introduce the need for undesirable protocol bridging measures.

Solution

The architecture establishes a single communications technology as the sole or primary medium by which services can interact.

Application

The communication protocols (including protocol versions) used within a service inventory boundary are standardized for all services.

Impacts

An inventory architecture in which communication protocols are standardized is subject to any limitations imposed by the communication technology.

Principles

Standardized Service Contract

Architecture

Inventory, Service

Table 5.10 – Profile summary for the Canonical Protocol pattern.

Problem

Each service exists as a standalone software program. When these programs need to exchange information, they have to form a connection using a communications technology. When programs are designed to use different communications technologies, they are incompatible and cannot exchange information without involving a separate program that can translate one communications technology to another (as per the Protocol Bridging pattern).

Building services with different implementation technologies is not uncommon, but allowing services based on different communication technologies to exist within the same architecture can result in some severe limitations. For example, groups of services based on the same communication framework are likely to be delivered as part of the same project. The day any of these services needs to be pulled into a new composition consisting of services delivered by a different project (and using different communication protocols), incompatibility issues could make their connectivity and reuse challenging and perhaps impossible.

Figure 5.42 – Different groups of services (likely delivered via different projects) establish communication boundaries through the use of incompatible communication protocols.

Solution

The technology architecture is designed to limit enablement of cross-service interaction to a single or primary communications protocol or protocol version. This guarantees technological compatibility across services.

Figure 5.43 – Though still delivered by different projects via different vendor platforms, these services conform to one centralized communications technology, making them technologically compatible.

Note: This design pattern advocates the standardization of protocols used for inter-service communication only. Traditional protocols, such as those used to communicate with proprietary components or databases are not affected by this pattern as long as they remain part of the logic encapsulated by services.

Application

To ensure that all services an inventory architecture is intended to support can effectively interact and be repeatedly recomposed requires that a centralized communications technology be carefully chosen.

The most common communications framework that fulfills this role is the Web services platform because it establishes an XML-based protocol that is widely supported, yet still vendor-agnostic. However, even when using Web services, this design standardization pattern must still be applied to overcome possible protocol disparity resulting from the mismatch of protocol-related versions. For example, the WS-I Basic Profile is likely to be a key part of applying this pattern as a means of ensuring technological compatibility among the various versions of Web services technology standards.

Alternative communication option that can also be explored within controlled environments. For example, less vendor-agnostic protocols can be chosen, as long as all services within an inventory are standardized to conform to their use.

Note: When applying this design pattern to Web services, any Web services-related industry standards and technologies associated with inter-service communication are affected. This can include WSDL, XML Schema, SOAP, WS-Policy, and various WS-* standards. This pattern does not dictate how these technologies are applied, only that their use – and, in particular, their version – are standardized.

For example, this design pattern is not concerned with the data model established by a Web service contractÕs XML schema or the content of a contractÕs WS-Policy assertions. It is focused on the requirement that all services are, in fact, using XML schema and WS-Policy to express their data models and policies and that services use the same versions of these industry standards. The Canonical Data Model and Canonical Policy Standardization patterns are focused on

Figure 5.44 – All parts of the Web service contract are affected by this design pattern.

Impacts

A key consideration of standardizing on one communications protocol is the longevity of the protocol technology. If there are any concerns that vendors may discontinue or abandon the technology, the associated risks would need to be taken into account.

Whichever protocol is chosen, service interaction throughout the resulting technology architecture will be constrained by whatever limitations this framework imposes. Therefore, the maturity and overall adequacy of the communications technology must be carefully assessed.

Note: This design pattern could be considered a specialized implementation of the Canonical Resources pattern in that it is very much about standardizing technology across an inventory. However, it is singled out here because a communication protocol  more than just an architectural extension. It represents the fundamental means by which all parts of a distributed solution work together and therefore is a part of the architecture that deserves special attention.

Relationships

The Canonical Protocol patternÕs architectural focus naturally results in relationships with other architecture-centric design patterns, such as Vendor-Agnostic Context, Canonical Resources, and the Enterprise Inventory and Domain Inventory patterns.

However, perhaps the most important relationships this pattern has is with Service Messaging and Messaging Metadata. By standardizing the medium by which services exchange business and activity data, a foundation for service interoperability is established. This then directly supports Capability Recomposition.

Figure 5.45 – The Canonical Protocol pattern proposes an inventory-wide design standard that solves foundational interoperability issues.

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.