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 > Protocol Bridging
Protocol Bridging

Protocol Bridging

How can a service exchange data with consumers that use different communication protocols?

Problem

Services using different communication protocols or different versions of the same protocol cannot exchange data.

Solution

Bridging logic is introduced to enable communication between different communication protocols by dynamically converting one protocol to another at runtime.

Application

Instead of connecting directly to each other, consumer programs and services connect to a broker which provides bridging logic that carries out the protocol conversion.

Impacts

Significant performance overhead can be imposed by bridging technologies, and their use can limit or eliminate the ability to incorporate reliability and transaction features.

Principles

Standardized Service Contract, Service Composability

Architecture

Inventory, Composition

Table 6.18 – Profile summary for the Protocol Bridging pattern.

Problem

Services delivered as part of different project teams or at different times can be built using different communication technologies. For example, services can use completely disparate frameworks (such as JMS and DCOM) or different versions of the same communications technologies (such as HTTP plus SOAP versions 1.1 and 1.2).

This is a common scenario when design standards are not prevalent in an enterprise and services are primarily designed in support of tactical requirements. As a result, service interoperability outside of immediate composition boundaries is severely diminished, leading to missed opportunities to reuse and recompose services for new purposes. Over time, this leads to ÒislandsÓ of disparate service compositions that are reminiscent of traditional, silo-based application environments.

Figure 6.80  The consumer programs (left) cannot access the service because the communications protocols used by the consumers are not supported by the service. The service only accepts messages that comply to SOAP version 1.2 transmitted via HTTP.

Solution

Protocol bridging technology is used to overcome the disparity between different communications frameworks by enabling the runtime conversion of protocols.

Figure 6.81 – The consumer programs interact with a middle-tier broker that provides protocol bridging features. Separate protocol adapters are used to translate the two incompatible protocols to the required SOAP version 1.2 over HTTP. The broker then transmits the messages to the service on behalf of the consumers.

Application

This pattern is commonly employed when legacy systems need to act as service consumers or when legacy logic needs to be encapsulated by services. As mentioned earlier, it is also used to overcome communication gaps when disparate sets of services are delivered.

A protocol bridging layer is composed of a set of adapters that act as on-/off-ramps for a given transport protocol. These adapters may be off-the-shelf products provided by the broker or a third-party vendor, or they may be generated to mirror specific service contracts using a proprietary protocol dialect.

Taking non-functional aspects (such as transactions, reliability, synchronicity) into account, these adapters convert messages from one protocol-specific binding into another. When a protocol bridge receives a message it transforms the received message into a protocol (or protocol version) compliant format and does whatever other work is required to comply with the target protocol (or protocol version).

Protocol bridging can be used to expose or access services via multiple protocols, depending on whether adapters are implemented on the consumer or provider end. A multi-protocol conversion program can offer support for numerous protocols (HTTP, JMS, UDP, TCP, etc.) that can be natively exposed as independent protocol bridging services.

Impacts

While necessary to overcome protocol disparity, Protocol Bridging is a pattern only used out of necessity. From an architectural perspective, it is considered an undesirable option because of the design complexity and runtime performance overhead it imposes. Even though it can support interoperability between services, it does so at a less than optimal level. Service compositions relying on this pattern often end up having decreased levels of availability and reliability.

Protocol Bridging originated with early EAI platforms and is therefore still considered an integration-related design approach. The manner in which it involves protocol adapters and translation logic can be overly complex because of the binary encoding used by many transport protocols. In some cases, protocol conversions may result in inaccurate semantic meanings being applied to message contents.

Though an expected part of brokerage functionality, some platforms may support limited sets of protocols with an emphasis on conversion to and from SOAP and HTTP only.

Relationships

Protocol Bridging is a pattern that has long been used to solve traditional integration problems, and therefore finds itself closely related to Legacy Wrapper and Dual Protocols (when disparate dual protocols are used). The nature of the bridging technology can be influenced by Canonical Resources when choices are available.

The extent to which this pattern is applied to intra-service bridging requirements only is based on how successful the application of the Canonical Protocol has been in achieving a sole inter-service communications technology.

Figure 6.82 – The Protocol Bridging pattern provides low-level conversion of different communication technologies and therefore relates to patterns (such as Inventory Endpoint and Legacy Wrapper) that require this type of functionality, as well as standards-based pattern that seek to avoid it.

As member of the Broker compound pattern, Protocol Bridging is commonly associated with the parent Enterprise Service Bus pattern (Figure 6.x).

Figure 6.83 – The Protocol Bridging pattern provides fundamental integration functionality that positions it as a core patter of both Broker and Enterprise Service Bus compound 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.