Chapter 1: Introduction
1.1 Objectives of this Book
1.2 Who this Book is For
1.3 What this Book Does Not Cover
1.4 Prerequisite Reading
1.5 How this Book is Organized
1.6 Symbols, Figures, and Style Conventions
1.7 Additional Resources
 
Chapter 2: Case Study Background
2.1 Case #1 Background: Cutit Saws Ltd.
2.2 Case #2 Background: Alleywood Lumber Company
2.3 Case #3 Background: Forestry Regulatory Commission (FRC)
 
Part I: Fundamentals
Chapter 3: Basic Terms and Concepts
3.1 Architecture Fundamentals
3.2 Service-Oriented Computing Fundamentals
3.3 Service Implementation Mediums
 
Chapter 4: The Architecture of Service-Orientation
4.1 The Method of Service-Orientation
4.2 The Four Characteristics of SOA
4.3 The Four Common Types of SOA
4.4 The End-Result of Service-Orientation
 
Chapter 5: Understanding SOA Design Patterns
5.1 Fundamental Design Terminology
5.2 Historical Influences
5.3 Pattern Notation
5.4 Pattern Profiles
5.5 Patterns with Common Characteristics
5.6 Key Design Considerations
 
Part II: Service Inventory Design Patterns
Chapter 6: Foundational Inventory Design Patterns
Inventory Boundary Design Patterns
  Enterprise Inventory
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
  Domain Inventory
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
Inventory Structure Design Patterns
  Logic Centralization
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
  Service Normalization
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
  Service Layers
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
Inventory Standardization Design Patterns
  Canonical Schema
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
  Canonical Protocol
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
 
Chapter 7: Logical Inventory Layer Patterns
Service Layers and Logic Types
Business Logic and Utility Logic
Agnostic Logic and Non-Agnostic Logic
Process Abstraction
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Entity Abstraction
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Utility Abstraction
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 8: Inventory Centralization Patterns
Process Centralization
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Schema Centralization
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Policy Centralization
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Rules Centralization
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 9: Inventory Implementation Patterns
Dual Protocols
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Canonical Resources
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
State Repository
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Stateful Services
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Service Grid
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Inventory Endpoint
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Cross-Domain Utility Layer
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 10: Inventory Governance Patterns
Metadata Centralization
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Canonical Expression
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Canonical Versioning
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Part III: Service Design Patterns
Chapter 11: Foundational Service Design Patterns
Service Identification Design Patterns
  Functional Decomposition
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
  Service Encapsulation
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
Service Definition Design Patterns
  Agnostic Context
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
  Non-Agnostic Context
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
  Agnostic Capability
    Problem
    Solution
    Application
    Impacts
    Relationships
    Case Study Example
 
Chapter 12: Service Implementation Patterns
Service Façade
  Problem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Redundant Implementation
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Service Data Replication
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Partial State Deferral
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Partial Validation
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
UI Mediator
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 13: Service Security Patterns
Exception Shielding
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Message Screening
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Trusted Subsystem
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Service Perimiter Guard
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 14: Service Contract Design Patterns
Decoupled Contract
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Contract Centralization
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Contract Denormalization
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Concurrent Contracts
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Validation Abstraction
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 15: Legacy Integration Patterns
Legacy Wrapper
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Multi-Channel Endpoint
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
File Gateway
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 16: Service Governance Patterns
Compatible Change
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Version Identification
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Termination Notification
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Service Decomposition
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Decomposed Capability
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Proxy Capability
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Distributed Capability
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Service Refactoring
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Part IV: Service Composition Design Patterns
Chapter 17: Capability Composition Patterns
Capability Composition
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Capability Recomposition
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 18: Service Messaging Patterns
Service Messaging
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Messaging Metadata
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Service Agent
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Intermediate Routing
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
State Messaging
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Service Callback
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Service Instance Routing
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Asynchronous Queuing
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Reliable Messaging
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Event-Driven Messaging
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 19: Composition Implementation Patterns
Atomic Service Transaction
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Compensating Service Transaction
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Composition Autonomy
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Agnostic Sub-Controller
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 20: Service Interaction Security Patterns
Data Confidentiality
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Data Origin Authentication
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Direct Authentication
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Brokered Authentication
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Chapter 21: Transformation Patterns
Data Model Transformation
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Data Format Transformation
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
Protocol Bridging
  roblem
  Solution
  Application
  Impacts
  Relationships
  Case Study Example
 
Part V: Supplemental
Chapter 22: Common Compound Design Patterns
"Compound" vs. "Composite"
Compound Patterns and Pattern Relationships
Joint Application vs. Coexistent Application
Compund Patterns and Pattern Granularity
Orchestration
Enterprise Service Bus
Service Broker
Canonical Schema Bus
Official Endpoint
Federated Endpoint Layer
Three-Layer Inventory
 
Chapter 23: Strategic Architecture Considerations
Architectural Impact of Increased Federation
Increased Intrinsic Interoperability
Increased Vendor Diversity Options
Increased Business and Technology Alignment
Increased ROI
Increased Organizational Agility
Reduced IT Burden
 
Chapter 24: Principles and Patterns at the U.S. Department of Defense
The Business Operating Environment (BOE)
Principles, Patterns, and the BOE
The Future of SOA and the DoD
SOADoD.org
 
Part VI: Appendices
Appendix A: Case Study Conclusion
  Cutit Saws Ltd.
  Alleywood Lumber Company
  Forestry Regulatory Commission
 

Appendix B: Candidate Patterns
 

Appendix C: Principles of Service-Orientation
  Standardized Service Contract
  Service Loose Coupling
  Service Abstraction
  Service Reusability
  Service Autonomy
  Service Sttelessness
  Service Discoverability
  Service Composability
 

Appendix D: Patterns and Principles Cross-Reference
 

Appendix E: Patterns and Architecture Types Cross-Reference
 

About the Author
About the Contributors
Index of Patterns
Index
 
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.