SOA Design Patterns

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

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

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.

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 

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 Defence

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

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

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

Summarized descriptions of the eight service-orientation design principles are provided for reference purposes.

 

 

 

Appendix D: Patterns and Principles Cross-Reference

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

Design patterns are cross-referenced with the four service-oriented architecture types established in Chapter 4.

X