SOA Design Patterns

SOA Design Patterns

by Thomas Erl

  • Foreword by Grady Booch
  • With contributions from David Chappell,
  • Jason Hogg, Anish Karmarkar, Mark Little,
  • David Orchard, Satadru Roy, Thomas
  • Rischbeck, Arnaud Simon, Clemens
  • Utschig, Dennis Wisnosky,
  • and others.
  • Prentice Hall/PearsonPTR
  • ISBN: 0136135161
  • Hardcover, Full-Color, 865 pages
  • 400+ Full-Color Illustrations

About this Book

In cooperation with experts and practitioners throughout the SOA community, best-selling author Thomas Erl brings together the de facto catalog of design patterns for SOA and service-orientation. More than three years in development and subjected to numerous industry reviews, the 85 patterns in this full-color book provide the most successful and proven design techniques to overcoming the most common and critical problems to achieving modern-day SOA.

Through numerous examples, individually documented pattern profiles, and over 400 color illustrations, this book provides in-depth coverage of:

  • Patterns for the design, implementation, and governance of service inventories-collections of services representing individual service portfolios that can be independently modeled, designed, and evolved.
  • Patterns specific to service-level architecture which pertain to a wide range of design areas, including contract design, security, legacy encapsulation, reliability, scalability, and a variety of implementation and governance issues.
  • Service composition patterns that address the many aspects associated with combining services into aggregate distributed solutions, including topics such as runtime messaging and message design, inter-service security controls, and transformation.
  • Compound patterns (such as Enterprise Service Bus and Orchestration) and recommended pattern application sequences that establish foundational processes.
  • Over 240 full-color illustrations

The book begins by establishing SOA types that are referenced throughout the patterns and then form the basis of a final chapter that discusses the architectural impact of serviceoriented computing in general. These chapters bookend the pattern catalog to provide a clear link between SOA design patterns, the strategic goals of service-oriented computing, different SOA types, and the service-orientation design paradigm.

About the Public Review

The first draft of the manuscript was completed in September, 2007 after which it was subjected to an exhaustive industry-wide review in which hundreds of SOA practitioners participated in addition to members of SOA organizations and experts from the design patterns community. During the period of December 2007 to February 2008, the manuscript was further made available for an open public review in which many additional SOA professionals from around the world took part. For details regarding these public reviews, visit www.soapatterns.org, a community site dedicated to SOA patterns.

img

The first draft of the manuscript was completed in September, 2007 after which it was subjected to an exhaustive industry-wide review in which hundreds of SOA practitioners participated in addition to members of SOA organizations and experts from the design patterns community. During the period of December 2007 to February 2008, the manuscript was further made available for an open public review in which many additional SOA professionals from around the world took part. For details regarding these public reviews, visit www.soapatterns.org, a community site dedicated to SOA patterns.

High-Res PDF (4 MB)

Table of Contents

Foreword by Grady Booch

  • Chapter 1: Introduction
  • Chapter 2: Case Study Background
  • Part I: Fundamentals
  • Chapter 3: Basic Terms and Concepts
  • Chapter 4: The Architecture of Service-Orientation
  • Chapter 5: Understanding SOA Design Patterns
  • Part II: Service Inventory Design Patterns
  • Chapter 6: Foundational Inventory Patterns
  • Chapter 7: Logical Inventory Layer Patterns
  • Chapter 8: Inventory Centralization Patterns
  • Chapter 9: Inventory Implementation Patterns
  • Chapter 10: Inventory Governance Patterns
  • Part III: Service Design Patterns
  • Chapter 11: Foundational Service Patterns
  • Chapter 12: Service Implementation Patterns
  • Chapter 13: Service Security Patterns
  • Chapter 14: Service Contract Design Patterns
  • Chapter 15: Legacy Integration Patterns
  • Chapter 16: Service Governance Patterns
  • Part IV: Service Composition Design Patterns
  • Chapter 17: Capability Composition Patterns
  • Chapter 18: Service Messaging Patterns
  • Chapter 19: Composition Implementation Patterns
  • Chapter 20: Service Interaction Security Patterns
  • Chapter 21: Transformation Patterns
  • Part V: Supplemental
  • Chapter 22: Common Compound Design Patterns
  • Chapter 23: Strategic Architecture Considerations
  • Chapter 24: Principles and Patterns at the U.S. Department of Defense
  • Appendices
  • Appendix A: Case Study Conclusion
  • Appendix B: Candidate Patterns
  • Appendix C: Principles of Service-Orientation
  • Appendix D: Patterns and Principles Cross-Reference
  • Appendix E: Patterns and Architecture Types Cross-Reference
  • pattern Agnostic Capability
  • pattern Agnostic Context
  • pattern Agnostic Sub-Controller
  • pattern Asynchronous Queuing
  • pattern Atomic Service Transaction
  • pattern Brokered Authentication
  • pattern Canonical Expression
  • pattern Canonical Protocol
  • pattern Canonical Resources
  • pattern Canonical Schema
  • pattern Canonical Versioning
  • pattern Capability Composition
  • pattern Capability Recomposition
  • pattern Compatible Change
  • pattern Compensating Service Transaction
  • pattern Composition Autonomy
  • pattern Concurrent Contracts
  • pattern Contract Centralization
  • pattern Contract Denormalization
  • pattern Cross-Domain Utility Layer
  • pattern Data Confidentiality
  • pattern Data Format Transformation
  • pattern Data Model Transformation
  • pattern Data Origin Authentication
  • pattern Decomposed Capability
  • pattern Decoupled Contract
  • pattern Direct Authentication
  • pattern Distributed Capability
  • pattern Domain Inventory
  • pattern Dual Protocols
  • pattern Enterprise Inventory
  • pattern Entity Abstraction
  • pattern Event-Driven Messaging
  • pattern Exception Shielding
  • pattern File Gateway
  • pattern Functional Decomposition
  • pattern Intermediate Routing
  • pattern Inventory Endpoint
  • pattern Legacy Wrapper
  • pattern Logic Centralization
  • pattern Message Screening
  • pattern Messaging Metadata
  • pattern Metadata Centralization
  • pattern Multi-Channel Endpoint
  • pattern Non-Agnostic Context
  • pattern Partial State Deferral
  • pattern Partial Validation
  • pattern Process Abstraction
  • pattern Policy Centralization
  • pattern Protocol Bridging
  • pattern Proxy Capability
  • pattern Redundant Implementation
  • pattern Reliable Messaging
  • pattern Rules Centralization
  • pattern Schema Centralization
  • pattern Service Agent
  • pattern Service Callback
  • pattern Service Data Replication
  • pattern Service Decomposition
  • pattern Service Encapsulation
  • pattern Service Facade
  • pattern Service Grid
  • pattern Service Instance Routing
  • pattern Service Layers
  • pattern Service Messaging
  • pattern Service Normalization
  • pattern Service Perimeter Guard
  • pattern Service Refactoring
  • pattern State Messaging
  • pattern State Repository
  • pattern Stateful Services
  • pattern Termination Notification
  • pattern Trusted Subsystem
  • pattern UI Mediator
  • pattern Utility Abstraction
  • pattern Validation Abstraction
  • pattern Version Identification

Contributors (in alphabetical order by last name)

  • Larry Brader
  • David Chappell, Oracle
  • Frederick Chong
  • Pablo Cibraro, Lagash Systems SA
  • Ward Cunningham
  • Nelly Delgado, Microsoft
  • Florent Georges
  • Charles Stacy Harris, Microsoft
  • Kelvin Henney, Curbralan
  • Jason Hogg, Microsoft
  • Tom Hollander
  • Anish Karmarkar, Oracle
  • Sajjas Nasir Imran, Infosys
  • Berthold Maier, Oracle
  • Hajo Normann, EDS
  • Wojtek Kozaczynski
  • Mark Little, Red Hat
  • Brian Lokhorst, Dutch Tax Office
  • Brian Loesgen, Neudesic
  • Matt Long, Microsoft
  • David Orchard, Oracle
  • Thomas Rischbeck, IPT
  • Chris Riley, SOA Systems
  • Satadru Roy, Sun Microsystems
  • Arnaud Simon, Red Hat
  • Paul Slater, Wadeware
  • Don Smith
  • Sharon Smith, Microsoft
  • Dwayne Taylor
  • Tina Tech, Microsoft
  • Bernd Trops, SOPERA GmbH
  • Clemens Utschig-Utschig, Oracle
  • Lonnie Wall, RDA Corporation
  • Torsten Winterberg, Oracle
  • Dennis Wisnosky, U.S. Department of Defense

Design Patterns and Design Principles

Design principles and design patterns are closely related. The book "SOA Principles of Service Design" is dedicated to the service-orientation design paradigm and related design concepts and principles, and provides several references to fundamental design patterns. "SOA Design Patterns" will therefore contain numerous cross-references to relevant design principles as they pertain to individual patterns.

To read up on the design principles, visit www.soaprinciples.com and download the SOA Principles poster at www.soaposters.com.

SOACP

SOA Certified Professional Program

This book is part of the official curriculum for the SOASchool.com® SOA Certified Professional Program.

For more information, visit www.soaschool.com.

Notification Form

To be notified of new book releases and other updates to this site, provide your e-mail address:

Podcasts

  • Introduction to SOA Design Patterns
    Listen (17:11)
  • Understanding the Service Inventory and Related
    SOA Design Patterns
    Listen (15:48)
  • Data-Related SOA Design Patterns
    Listen (17:13)
  • Service Contract-Related SOA Design Patterns
    Listen (19:10)
  • Service Governance Patterns for SOA
    Listen (19:32)
  • Foundational SOA Design Patterns and the
    Separation of Concerns
    Listen (18:56)
  • The ESB and Related Messaging Patterns
    Listen (12:44)
  • Versioning in SOA
    Listen (21:01)
  • Three Specialized SOA Design Patterns
    Listen (22:53)
  • Advanced Service Versioning
    Listen (23:47)

Praise

"The emerging dominant architectural style for many enterprise systems is that of a service-oriented architecture, a style that at its core is essentially a message passing architecture. However, therein are many patterns that work (and anti-patterns that should be avoided).

Thomas' work is therefore the right book at the right time. He really groks the nature of SOA systems: There are many hard design decisions to be made, ranging from data-orientation to the problems of legacy integration and even security. Thomas offers wise council on each of these issues and many more, all in the language of design patterns.

There are many things I like about this work. It's comprehensive. It's written an a very accessible pattern language. It offers patterns that play well with one another. Finally, Thomas covers not just the technical details, but also sets these patterns in the context of economic and other considerations.

SOA Design Patterns is an important contribution to the literature and practice of building and delivering quality software-intensive systems."

- Grady Booch, IBM Fellow

"With the continued explosion of services and the increased rate of adoption of SOA through the market, there is a critical need for comprehensive, actionable guidance that provides the fastest possible time to results. Microsoft is honored to contribute to the SOA Design Patterns book, and to continue working with the community to realize the value of Real World SOA."

- Steven Martin, Senior Director, Developer Platform Product Management, Microsoft

"SOA Design Patterns provides the proper guidance with the right level of abstraction to be adapted to each organization's needs, and Oracle is pleased to have contributed to the patterns contained in this book."

- Dr. Mohamad Afshar, Director of Product Management, Oracle Fusion Middleware, Oracle

"Red Hat is pleased to be involved in the SOA Design Patterns book and contribute important SOA Design Patterns to the community that we and our customers have used within our own SOA platforms. I am sure this will be a great resource for future SOA practitioners."

- Pierre Fricke Director, Product Line Management, JBoss SOA Platform, Red Hat

"A wealth of proven, reusable SOA Design Patterns, clearly explained and illustrated with examples. An invaluable resource for all those involved in the design of service-oriented solutions."

- Phil Thomas, Consulting IT Specialist, IBM Software Group

"This obligatory almanac of SOA Design Patterns will become the foundation on which many organizations will build their successful SOA solutions. It will allow organizations to build their own focused SOA Design Patterns catalog in an expedited fashion knowing that it contains the wealth and expertise of proven SOA best practices."

- Stephen Bennett, Director, Technology Business Unit, Oracle Corporation

"The technical differences between service orientation and object orientation are subtle enough to confuse even the most advanced developers. Thomas Erl's book provides a great service by clearly articulating SOA Design Patterns and differentiating them from similar OO design patterns."

- Anne Thomas Manes, VP & Research Director, Burton Group

"SOA Design Patterns does an excellent job of laying out and discussing the areas of SOA design that a competent SOA practitioner should understand and employ."

- Robert Laird, SOA Architect, IBM

"As always, Thomas delivers again. In a well-structured and easy-to-understand way, this book provides a wonderful collection of patterns each addressing a typical set of SOA design problems with well articulated solutions. The plain language and hundreds of diagrams included in the book help make the complicated subjects of SOA design comprehensible even to those who are new to the SOA design world. It's a must-have reference book for all SOA practitioners, especially for enterprise architects, solution architects, developers, managers, and business process experts."

- Canyang Kevin Liu, Solution Architecture Manager, SAP

"The concept of service oriented architecture has long promised visions of agile organizations being able to swap out interfaces and applications as business needs change. SOA also promises incredible developer and IT productivity, with the idea that key services would be candidates for cross-enterprise sharing or reuse. But many organizations' efforts to move to SOA have been mired-by organizational issues, by conflicting vendor messages, and by architectures that may amount to little more than Just a Bunch of Web Services. There's been a lot of confusion in the SOA marketplace about exactly what SOA is, what it's supposed to accomplish, and how an enterprise goes about in making it work.

SOA Design Patterns is a definitive work that offers clarity on the purpose and functioning of service oriented architecture. SOA Design Patterns not only helps the IT practitioner lay the groundwork for a well-functioning SOA effort across the enterprise, but also connects the dots between SOA and the business requirements in a very concrete way. Plus, this book is completely technology agnostic - SOA Design Patterns rightly focuses on infrastructure and architecture, and it doesn't matter whether you're using components of one kind or another, or Java, or .NET, or Web services, or REST-style interfaces.

While no two SOA implementations are alike, Thomas Erl and his team of contributors have effectively identified the similarities in composition services need to have at a sub-atomic level in order to interact with each other as we hope they will. The book identifies 85 SOA Design Patterns which have been developed and thoroughly vetted to ensure that a service-oriented architecture does achieve the flexibility and loose coupling promised. The book is also compelling in that it is a living document, if you will, inviting participation in an open process to identify and formulate new patterns to this growing body of knowledge."

- Joe McKendrick, Independent Analyst, Author of ZDNet's SOA Blog

"If you want to truly educate yourself on SOA, read this book."

- Sona Srinivasan, Global Client Services & Operations, CISCO

"As the industry converges on SOA patterns, Erl provides an outstanding reference guide to composition and integration-and yet another distinctive contribution to the SOA practice."

- Steve Birkel, Chief IT Technical Architect, Intel Corp.

"An impressive decomposition of the process and architectural elements that support service-oriented analysis, design, and delivery. Right-sized and terminologically consistent.

Overall, the book represents a patient separation of concerns in respect of the process and architectural parts that underpin any serious SOA undertaking. Two things stand out. First, the pattern relationship diagrams provide rich views into the systemic relationships that structure a service-oriented architecture: these patterns are not discrete, isolated templates to be applied mechanically to the problem space; rather, they form a network of forces and constraints that guide the practitioner to consider the task at hand in the context of its inter-dependencies. Second, the pattern sequence diagrams and accompanying notes provide a useful framework for planning and executing the many activities that comprise an SOA engagement."

- Ian Robinson, Principal Technology Consultant, ThoughtWorks

"Successful implementation of SOA principles requires a shift in focus from software system means, or the way capabilities are developed, to the desired end results, or real-world effects required to satisfy organizational business processes. In SOA Design Patterns, Thomas Erl provides service architects with a broad palette of reusable service patterns that describe service capabilities that can cut across many SOA applications. Service architects taking advantage of these patterns will save a great deal of time describing and assembling services to deliver the real world effects they need to meet their organization's specific business objectives."

- Chuck Georgo, Public Safety and National Security Architect

"In IT, we have increasingly come to see the value of having catalogs of good solution patterns in programming and systems design. With this book, Thomas Erl brings a comprehensive set of patterns to bear on the world of SOA. These patterns enable easily communicated, reusable, and effective solutions, allowing us to more rapidly design and build out the large, complicated and interoperable enterprise SOAs into which our IT environments are evolving."

- Al Gough, Business Systems Solutions CTO, CACI International Inc.

"This book provides a comprehensive and pragmatic review of design issues in service-centric design, development, and evolution. The Web site related to this book [SOAPatterns.org] is a wonderful platform and gives the opportunity for the software community to maintain this catalogue..."

- Veronica Gacitua Decar, Dublin City University

"Erl's SOA Design Patterns is for the IT decision maker determined to make smart architecture design choices, smart investments, and long term enterprise impact. For those IT professionals committed to service-orientation as a value-added design and implementation option, Patterns offers a credible, repeatable approach to engineering an adaptable business enterprise. This is a must read for all IT architect professionals."

- Larry Gloss, VP and General Manager, Information Manufacturing, LLC

"These SOA patterns define, encompass, and comprise a complete repertoire of best practices for developing a world-class IT SOA portfolio for the enterprise and its organizational units through to service and schema analysis and design. After many years as an architect on many SOA projects, I strongly recommend this book be on the shelf of every analyst and technical member of any SOA effort, right next to the SOA standards and guidelines it outlines and elucidates the need for. Our SOA governance standards draw heavily from this work and others from this series."

- Robert John Hathaway III, Enterprise Software Architect, SOA Object Systems

"A wise man once told me that wisdom isn't all about knowledge and intelligence, it is just as much about asking questions. Asking questions is the true mark of wisdom and during the writing of the SOA Design Patterns book Thomas Erl has shown his real qualities. The community effort behind this book is huge meaning that Thomas has had access to the knowledge and experience of a large group of accomplished practitioners. The result speaks for itself. This book is packed with proven solutions to recurring problems, and the documented pros and cons of each solution have been verified by persons with true experience. This book could give SOA initiatives of any scale a real boost."

- Herbjörn Wilhelmsen, Architect and Senior Consultant, Objectware

"This book is an absolute milestone in SOA literature. For the first time we are provided with a practical guide on how the principle centric description of service orientation from a vendor-agnostic viewpoint is actually made to work in a language based on patterns. This book makes you talk SOA! There are very few who understand SOA like Thomas Erl does,.. he actually put's it all together!"

- Brian Lokhorst, Solution Architect, Dutch Tax Office

"Service oriented architecture is all about best practices we have learned since IT's existence. This book takes all those best practices and bundles them into a nice pattern catalogue. [It provides] a really excellent approach as patterns are not just documented but are provided with application scenarios through case studies [which] fills the gap between theory and practice."

- Shakti Sharma, Senior Enterprise Architect, Sysco Corp

"An excellent and important book on solving problems in SOA [with a] solid structure. Has the potential of being among the major influential books."

- Peter Chang, Lawrence Technical University

"SOA Design Patterns presents a vast amount of knowledge about how to successfully implement SOA within an organization. The information is clear, concise, and most importantly, legitimate."

- Peter B. Woodhull, President and Principal Architect, Modus21

"SOA Design Patterns offers real insights into everyday problems that one will encounter when investing in services oriented architecture. [It] provides a number of problem descriptions and offers strategies for dealing with these problems. SOA Design Patterns highlights more than just the technical problems and solutions. Common organizational issues that can hinder progress towards achieving SOA migration are explained along with potential approaches for dealing with these real world challenges. Once again Thomas Erl provides in-depth coverage of SOA terminology and helps the reader better understand and appreciate the complexities of migrating to an SOA environment."

- David Michalowicz, Air and Space Operations Center Modernization Team Lead, MITRE Corporation

"This is a long overdue, serious, comprehensive, and well-presented catalog of SOA Design Patterns. This will be required reading and reference for all our SOA engineers and architects. The best of the series so far! [The book] works in two ways: as a primer in SOA design and architecture it can easily be read front-to-back to get an overview of most of the key design issues you will encounter, and as a reference catalog of design techniques that can be referred to again and again..."

- Wendell Ocasio, Architecture Consultant, DoD Military Health Systems, Agilex Technologies

"Thomas has once again provided the SOA practitioner with a phenomenal collection of knowledge. This is a reference that I will come back to time and time again as I move forward in SOA design efforts.

What I liked most about this book is its vendor agnostic approach to SOA Design Patterns. This approach really presents the reader with an understanding of why or why not to implement a pattern, group patterns, or use compound patterns rather than giving them a marketing spiel on why one implementation of a pattern is better than another (for example, why one ESB is better than another). I think as SOA adoption continues to advance, the ability for architects to understand when and why to apply specific patterns will be a driving factor in the overall success and evolution of SOA. Additionally, I believe that this book provides the consumer with the understanding required to chose which vendor's SOA products are right for their specific needs."

- Bryan Brew, SOA Consultant, Booz Allen Hamilton

"A must have for every SOA practitioner."

- Richard Van Schelven, Principal Engineer, Ericsson

"This book is a long-expected successor to the books on object-oriented design patterns and integration patterns. It is a great reference book that clearly and thoroughly describes design patterns for SOA. A great read for architects who are facing the challenge of transforming their enterprise into a service-oriented enterprise."

- Linda Terlouw, Solution Architect, Ordina

"The maturation of Service-Orientation has given the industry time to absorb the best practices of service development. Thomas Erl has amassed this collective wisdom in SOA Design Patterns, an absolutely indispensible addition to any Service Oriented bookshelf."

- Kevin P. Davis, Ph.D

"The problem with most texts on SOA is one of specificity. Architects responsible for SOA implementation in most organizations have little time for abstract theories on the subject, but are hungry for concrete details that they can relate to the real problems they face in their environment. SOA Design Patterns is critical reading for anyone with service design responsibilities. Not only does the text provide the normal pattern templates, but each pattern is applied in detail against a background case study to provide exceptionally meaningful context to the information. The graphic visualizations of the problems and pattern solutions are excellent supplementary companions to the explanatory text. This book will greatly stretch the knowledge of the reader as much for raising and addressing issues that may have never occurred to the reader as it does in treating those problems that are in more common occurrence. The real beauty of this book is in its plain English prose. Unlike so many technical reference books, one does not find themselves re-reading sections multiple times trying to discern the intent of the author. This is also not a reference that will sit gathering dust on a shelf after one or two perusings. Practitioners will find themselves returning over and over to utilize the knowledge in their projects. This is as close as you'll come to having a service design expert sitting over your shoulder."

- James Kinneavy, Principal Software Architect, University of California

"With SOA Design Patterns, Thomas Erl adds an indispensable SOA reference volume to the technologist's library. Replete with to-the-point examples, it will be a helpful aid to any IT organization."

- Ed Dodds, Strategist, Systems Architect, Conmergence

"Again, Thomas Erl has written an indispensable guide to SOA. Building on his prior successes, his patterns go into even more detail. Therefore, this book is not only helpful to the SOA beginner, but also provides new insight and ideas to professionals."

- Philipp Offermann, Research Scientist, Technische Universität Berlin, Germany

"SOA Design Patterns is an extraordinary contribution to SOA best practices! Once again, Thomas has created an indispensable resource for any person or organization interested in or actively engaged in the practice of Service Oriented Architecture. Using case studies based on three very different business models, Thomas guides the reader through the process of selecting appropriate implementation patterns to ensure a flexible, well-performing, and secure SOA ecosystem."

- Victor Brown, Managing Partner and Principal Consultant, Cypress Management Group Corporation