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
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Service Data Replication
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Partial State Deferral
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Partial Validation
Problem
Solution
Application
Impacts
Relationships
Case Study Example
UI Mediator
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Chapter 13: Service Security Patterns
Exception Shielding
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Message Screening
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Trusted Subsystem
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Service Perimiter Guard
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Chapter 14: Service Contract Design Patterns
Decoupled Contract
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Contract Centralization
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Contract Denormalization
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Concurrent Contracts
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Validation Abstraction
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Chapter 15: Legacy Integration Patterns
Legacy Wrapper
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Multi-Channel Endpoint
Problem
Solution
Application
Impacts
Relationships
Case Study Example
File Gateway
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Chapter 16: Service Governance Patterns
Compatible Change
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Version Identification
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Termination Notification
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Service Decomposition
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Decomposed Capability
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Proxy Capability
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Distributed Capability
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Service Refactoring
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Part IV: Service Composition Design Patterns
Chapter 17: Capability Composition Patterns
Capability Composition
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Capability Recomposition
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Chapter 18: Service Messaging Patterns
Service Messaging
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Messaging Metadata
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Service Agent
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Intermediate Routing
Problem
Solution
Application
Impacts
Relationships
Case Study Example
State Messaging
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Service Callback
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Service Instance Routing
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Asynchronous Queuing
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Reliable Messaging
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Event-Driven Messaging
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Chapter 19: Composition Implementation Patterns
Atomic Service Transaction
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Compensating Service Transaction
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Composition Autonomy
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Agnostic Sub-Controller
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Chapter 20: Service Interaction Security Patterns
Data Confidentiality
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Data Origin Authentication
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Direct Authentication
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Brokered Authentication
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Chapter 21: Transformation Patterns
Data Model Transformation
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Data Format Transformation
Problem
Solution
Application
Impacts
Relationships
Case Study Example
Protocol Bridging
Problem
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