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.