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