This book begins with Chapters 1 and 2 providing introductory content and case study background information respectively. The remainder of the book is grouped into the following parts:
  Part I: Fundamentals
  Part II: Service Inventory Design Patterns
  Part III: Service Design Patterns
  Part IV: Service Composition Design Patterns
  Part V: Supplemental
  Part VI: Appendices
Below are descriptions of individual parts and chapters:
Chapter 1: Introduction (TOC)
This chapter establishes the scope and structure of the book by providing an overview of the primary topic areas along with chapter descriptions and information regarding conventions and supplemental resources.

Chapter 2: Case Study Background (TOC)
The chapters in this book contain numerous case study examples, all of which relate back to the case study background information established in this chapter. Appendix A concludes the case study storylines with a brief summary.

 
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.
Part I: Fundamentals
Chapter 3: Basic Terms and Concepts
Chapter 4: The Architecture of Service-Orientation
Chapter 5: Understanding SOA Design Patterns
Chapter 3: Basic Terms and Concepts (TOC)
To prepare for the upcoming discussion of service-orientation and technology architecture in Chapter 4, this chapter begins by establishing basic terminology and concepts and defining the fundamental links between service-oriented computing, service-orientation, and technology architecture in general.

Chapter 4: The Architecture of Service-Orientation (TOC)
Service-oriented computing is fundamentally about attaining a specific target state. It asks that we take extra design considerations into account with everything we build so that all the moving parts of a service-oriented solution support the realization of this state and foster its growth and evolution. This target state is attractive because it has associated with it a specific set of goals and benefits.

To fully understand service-oriented technology architecture requires knowledge of:
  how these goals and benefits are achieved (the method)
  what entails the attainment of these goals and benefits (the end-result)
This understanding allows us to assess what requirements and demands are placed upon technology architecture.
The purpose of this chapter is to describe how the service-orientation design paradigm raises specific requirements and demands that end up shaping technology architecture, resulting in a key set of architectural characteristics distinct to SOA. Different SOA types are further explained as they pertain to the scope at which service-oriented technology architecture is defined. These SOA types are later referenced in design pattern profile sections.

Chapter 5: Understanding SOA Design Patterns (TOC)
The first step to forming an effective working relationship with SOA design patterns is attaining a sound comfort level with pattern-related terminology and notation. This important chapter covers these fundamental topics and further describes how design pattern descriptions are organized into standardized profiles. The remaining sections single out specific pattern types and discuss some common design considerations.

Part II: Service Inventory Design Patterns
"Service inventory" is a term used to represent a collection on independently standardized and governed services. Design patterns associated with the design of the service inventory technology architecture are provided in the following chapters:

Chapter 6: Foundational Inventory Design Patterns
Chapter 7: Logical Inventory Layer Patterns
Chapter 8: Inventory Centralization Patterns
Chapter 9: Inventory Implementation Patterns
Chapter 10: Inventory Governance Patterns

Chapter 6: Foundational Inventory Design Patterns (TOC)
The baseline design characteristics of a service inventory architecture are addressed by a series of closely related design patterns that are presented in a proposed application sequence.

Enterprise Inventory
Domain Inventory
Logic Centralization
Service Normalization
Service Layers
Canonical Schema
Canonical Protocol


Chapter 7: Logical Inventory Layer Patterns (TOC)
How services within a service inventory can be grouped into logical layers is covered by a set of design patterns that represent the most common types of service layers.

Process Abstraction
Entity Abstraction
Utility Abstraction




Chapter 8: Inventory Centralization Patterns (TOC)
A set of patterns dedicated to centralizing key parts of a service inventory architecture is provided to build upon the preceding fundamental architectural patterns.

Process Centralization
Schema Centralization
Policy Centralization
Rules Centralization




Chapter 9: Inventory Implementation Patterns (TOC)
This more specialized collection of patterns addresses a variety of implementation design issues and options for service inventory architectures.

Dual Protocols
Canonical Resources
State Repository
Stateful Services
Service Grid
Inventory Endpoint
Cross-Domain Utility Layer




Chapter 10: Inventory Governance Patterns (TOC)
Design patterns relating to the postimplementation governance of a service inventory architecture are provided.
Metadata Centralization
Canonical Expression
Canonical Versioning

Part III: Service Design Patterns
This part is comprised of a set of chapters specific to the design of services and service architecture:

Chapter 11: Foundational Service Patterns
Chapter 12: Service Implementation Patterns
Chapter 13: Service Security Patterns
Chapter 14: Service Contract Design Patterns
Chapter 15: Legacy Encapsulation Patterns
Chapter 16: Service Governance Patterns

Chapter 11: Foundational Service Patterns (TOC)
A set of basic design patterns that help establish fundamental service design characteristics via a suggested application sequence. Collectively, these patterns form the most basic application of serviceorientation within a service boundary.

Functional Decomposition
Service Encapsulation
Agnostic Context
Non-Agnostic Context
Agnostic Capability


Chapter 12: Service Implementation Patterns (TOC)
A collection of specialized design patterns that provide design solutions for a range of service architecture-specific issues.

Service Façade
Redundant Implementation
Service Data Replication
Partial State Deferral
Partial Validation
UI Mediator


Chapter 13: Service Security Patterns (TOC)
These patterns primarily shape the internal logic of services to equip them with security controls that counter common threats.

Exception Shielding
Message Screening
Trusted Subsystem
Service Perimiter Guard


Chapter 14: Service Contract Design Patterns (TOC)
A set of design patterns focused on service contract design concerns both from a contract content and architectural perspective.

Decoupled Contract
Contract Centralization
Contract Denormalization
Concurrent Contracts
Validation Abstraction


Chapter 15: Legacy Encapsulation Patterns (TOC)
How services can encapsulate and interact with legacy systems and resources is addressed by this set of patterns.

Legacy Wrapper
Multi-Channel Endpoint
File Gateway


Chapter 16: Service Governance Patterns (TOC)
For services already deployed and in use, these patterns address common governance issues related to typical postimplementation changes.

Compatible Change
Version Identification
Termination Notification
Service Decomposition
Decomposed Capability
Proxy Capability
Distributed Capability
Service Refactoring

Part IV: Service Composition Design Patterns
Service composition design and runtime interaction are addressed by the patterns in the following chapters:

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

Chapter 17: Capability Composition Patterns (TOC)
A pair of core patterns that establish the basis of service capability composition as it pertains to composition design and architecture.

Capability Composition
Capability Recomposition

Chapter 18: Service Messaging Patterns (TOC)
This large collection of patterns is focused on inter-service message exchange and processing and provides design solutions for a wide range of messaging concerns.

Service Messaging
Messaging Metadata
Service Agent
Intermediate Routing
State Messaging
Service Callback
Service Instance Routing
Asynchronous Queuing
Reliable Messaging
Event-Driven Messaging


Chapter 19: Composition Implementation Patterns (TOC)
Service composition architecture design and runtime composition integrity are addressed by these patterns.
Atomic Service Transaction
Compensating Service Transaction
Composition Autonomy
Agnostic Sub-Controller


Chapter 20: Service Interaction Security Patterns (TOC)
A set of patterns focused exclusively on security issues pertaining to runtime service interaction and data exchange.

Data Confidentiality
Data Origin Authentication
Direct Authentication
Brokered Authentication


Chapter 21: Transformation Patterns (TOC)
Design patterns specific to the runtime transformation of messages via intermediary processing layers.
Data Model Transformation
Data Format Transformation
Protocol Bridging

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

Chapter 22: Common Compound Design Patterns (TOC)
Many of the previously documented design patterns can be combined into compound patterns that solve larger, yet still common design problems. This chapter provides examples of some of the more relevant combinations, including Enterprise Service Bus and Orchestration.

Orchestration
Enterprise Service Bus
Service Broker
Canonical Schema Bus
Official Endpoint
Federated Endpoint Layer
Three-Layer Inventory


Chapter 23: Strategic Architecture Considerations (TOC)
This chapter essentially provides a strategic context for all of the content covered in previous chapters by revisiting the key goals of service-oriented computing and highlighting how the attainment of each individual goal can impact the different SOA types first established in Chapter 4. Orchestration.


Chapter 24: Principles and Patterns at the U.S. Department of Defense (TOC)
A brief exploration of how service-orientation design principles and key design patterns are used at the DoD in relation to the Business Operating Environment (BOE).

Part VI: 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 Architectural Types Cross-Reference

Appendix A: Case Study Conclusion (TOC)
The storylines for the three case studies first introduced in Chapter 2 and then further explored in subsequent chapters are concluded.


Appendix B: Candidate Patterns (TOC)
The pattern review process is highlighted along with an explanation of how patterns still under review are classified as candidates.


Appendix C: Principles of Service-Orientation (TOC)
Summarized descriptions of the eight service-orientation design principles are provided for reference purposes.


Appendix D: Patterns and Principles Cross-Reference (TOC)
This appendix organizes design patterns for quick reference purposes as they pertain to service-orientation design principles.


Appendix E: Patterns and Architectural Types Cross-Reference (TOC)
Design patterns are cross-referenced with the four service-oriented architecture types established in Chapter 4.