World's Top-Selling SOA Books from the Top Industry Experts
The Prentice Hall Service-Oriented Computing Series from Thomas ErlThe Prentice Hall Service-Oriented Computing Series from Thomas Erl
Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services Service-Oriented Architecture: Concepts, Technology & Design SOA Principles of Service Design Web Service Contract Design and Versioning for SOA SOA Design Patterns Next Generation SOA Modern SOA Infrastructure:
Technology, Design, and Governance SOA with .NET SOA with Java SOA Governance SOA with REST SOA Security Cloud Computing
SOA 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
Download Visio Stencil
(beta 2)


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.
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.



Download the article "Introducing SOA Design Patterns" by Thomas Erl from the June, 2008 issue of the SOA World Magazine.

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


List of Patterns
Agnostic Capability
Agnostic Context
Agnostic Sub-Controller
Asynchronous Queuing
Atomic Service Transaction
Brokered Authentication
Canonical Expression
Canonical Protocol
Canonical Resources
Canonical Schema
Canonical Versioning
Capability Composition
Capability Recomposition
Compatible Change
Compensating Service Transaction
Composition Autonomy
Concurrent Contracts
Contract Centralization
Contract Denormalization
Cross-Domain Utility Layer
Data Confidentiality
Data Format Transformation
Data Model Transformation
Data Origin Authentication
Decomposed Capability
Decoupled Contract
Direct Authentication
Distributed Capability
Domain Inventory
Dual Protocols
Enterprise Inventory
Entity Abstraction
Event-Driven Messaging
Exception Shielding
File Gateway
Functional Decomposition
Intermediate Routing
Inventory Endpoint
Legacy Wrapper
Logic Centralization
Message Screening
Messaging Metadata
Metadata Centralization
Multi-Channel Endpoint
Non-Agnostic Context
Partial State Deferral
Partial Validation
Process Abstraction
Policy Centralization
Protocol Bridging
Proxy Capability
Redundant Implementation
Reliable Messaging
Rules Centralization
Schema Centralization
Service Agent
Service Callback
Service Data Replication
Service Decomposition
Service Encapsulation
Service Facade
Service Grid
Service Instance Routing
Service Layers
Service Messaging
Service Normalization
Service Perimeter Guard
Service Refactoring
State Messaging
State Repository
Stateful Services
Termination Notification
Trusted Subsystem
UI Mediator
Utility Abstraction
Validation Abstraction
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.



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
 
Copyright © SOA Systems Inc.