Register your product to gain access to bonus material or receive a coupon.
“SOA Design Patterns is an important contribution to the literature and practice
of building and delivering quality software-intensive systems.”
- Grady Booch, IBM Fellow
“With the continued explosion of services and the increased rate of adoption of SOA through the market, there is a critical need for comprehensive, actionable guidance that provides the fastest possible time to results. Microsoft is honored to contribute to the SOA Design Patterns book, and to continue working with the community to realize the value of Real World SOA.”
- Steven Martin, Senior Director, Developer Platform Product Management, Microsoft
“SOA Design Patterns provides the proper guidance with the right level of abstraction to be adapted to each organization’s needs, and Oracle is pleased to have contributed to the patterns contained in this book.”
- Dr. Mohamad Afshar, Director of Product Management, Oracle Fusion Middleware, Oracle
“Red Hat is pleased to be involved in the SOA Design Patterns book and contribute important SOA design patterns to the community that we and our customers have used within our own SOA platforms. I am sure this will be a great resource for future SOA practitioners.”
- Pierre Fricke Director, Product Line Management, JBoss SOA Platform, Red Hat
“A wealth of proven, reusable SOA design patterns, clearly explained and illustrated with examples. An invaluable resource for all those involved in the design of service-oriented solutions.”
- Phil Thomas, Consulting IT Specialist, IBM Software Group
“This obligatory almanac of SOA design patterns will become the foundation on which many organizations will build their successful SOA solutions. It will allow organizations to build their own focused SOA design patterns catalog in an expedited fashion knowing that it contains the wealth and expertise of proven SOA best practices.”
- Stephen Bennett, Director, Technology Business Unit, Oracle Corporation
“The technical differences between service orientation and object orientation are subtle
enough to confuse even the most advanced developers. Thomas Erl’s book provides a great service by clearly articulating SOA design patterns and differentiating them from similar OO design patterns.”
- Anne Thomas Manes, VP & Research Director, Burton Group
“SOA Design Patterns does an excellent job of laying out and discussing the areas of SOA design that a competent SOA practitioner should understand and employ.”
- Robert Laird, SOA Architect, IBM
“As always, Thomas delivers again. In a well-structured and easy-to-understand way, this book provides a wonderful collection of patterns each addressing a typical set of SOA design problems with well articulated solutions. The plain language and hundreds of diagrams included in the book help make the complicated subjects of SOA design comprehensible even to those who are new to the SOA design world. It’s a must-have reference book for all SOA practitioners, especially for enterprise architects, solution architects, developers, managers, and business process experts.”
- Canyang Kevin Liu, Solution Architecture Manager, SAP
“The concept of service oriented architecture has long promised visions of agile organizations being able to swap out interfaces and applications as business needs change. SOA also promises incredible developer and IT productivity, with the idea that key services would be candidates for cross-enterprise sharing or reuse. But many organizations’ efforts to move to SOA have been mired–by organizational issues, by conflicting vendor messages, and by architectures that may amount to little more than Just a Bunch of Web Services. There’s been a lot of confusion in the SOA marketplace about exactly what SOA is, what it’s supposed to accomplish, and how an enterprise goes about in making it work.
SOA Design Patterns is a definitive work that offers clarity on the purpose and functioning of service oriented architecture. SOA Design Patterns not only helps the IT practitioner lay the groundwork for a well-functioning SOA effort across the enterprise, but also connects the dots between SOA and the business requirements in a very concrete way. Plus, this book is completely technology agnostic—SOA Design Patterns rightly focuses on infrastructure and architecture, and it doesn’t matter whether you’re using components of one kind or another, or Java, or .NET, or Web services, or REST-style interfaces.
While no two SOA implementations are alike, Thomas Erl and his team of contributors have effectively identified the similarities in composition services need to have at a sub-atomic level in order to interact with each other as we hope they will. The book identifies 85 SOA design patterns which have been developed and thoroughly vetted to ensure that a service-oriented architecture does achieve the flexibility and loose coupling promised. The book is also compelling in that it is a living document, if you will, inviting participation in an open process to identify and formulate new patterns to this growing body of knowledge.”
- Joe McKendrick, Independent Analyst, Author of ZDNet’s SOA Blog
“If you want to truly educate yourself on SOA, read this book.”
- Sona Srinivasan, Global Client Services & Operations, CISCO
“An impressive decomposition of the process and architectural elements that support serviceoriented analysis, design, and delivery. Right-sized and terminologically consistent.
Overall, the book represents a patient separation of concerns in respect of the process and architectural parts that underpin any serious SOA undertaking. Two things stand out. First, the pattern relationship diagrams provide rich views into the systemic relationships that structure a service-oriented architecture: these patterns are not discrete, isolated templates to be applied mechanically to the problem space; rather, they form a network of forces and constraints that guide the practitioner to consider the task at hand in the context of its inter-dependencies. Second, the pattern sequence diagrams and accompanying notes provide a useful framework for planning and executing the many activities that comprise an SOA engagement.”
- Ian Robinson, Principal Technology Consultant, ThoughtWorks
“Successful implementation of SOA principles requires a shift in focus from software system means, or the way capabilities are developed, to the desired end results, or real-world effects required to satisfy organizational business processes. In SOA Design Patterns, Thomas Erl provides service architects with a broad palette of reusable service patterns that describe service capabilities that can cut across many SOA applications. Service architects taking advantage of these patterns will save a great deal of time describing and assembling services to deliver the real world effects they need to meet their organization’s specific business objectives.”
- Chuck Georgo, Public Safety and National Security Architect
“In IT, we have increasingly come to see the value of having catalogs of good solution patterns in programming and systems design. With this book, Thomas Erl brings a comprehensive set of patterns to bear on the world of SOA. These patterns enable easily communicated, reusable, and effective solutions, allowing us to more rapidly design and build out the large, complicated and interoperable enterprise SOAs into which our IT environments are evolving.”
- Al Gough, Business Systems Solutions CTO, CACI International Inc.
“This book provides a comprehensive and pragmatic review of design issues in service-centric design, development, and evolution. The Web site related to this book [SOAPatterns.org] is a wonderful platform and gives the opportunity for the software community to maintain this catalogue….”
- Veronica Gacitua Decar, Dublin City University
“Erl’s SOA Design Patterns is for the IT decision maker determined to make smart architecture design choices, smart investments, and long term enterprise impact. For those IT professionals committed to service-orientation as a value-added design and implementation option, Patterns offers a credible, repeatable approach to engineering an adaptable business enterprise. This is a must read for all IT architect professionals.”
- Larry Gloss, VP and General Manager, Information Manufacturing, LLC
“These SOA patterns define, encompass, and comprise a complete repertoire of best practices for developing a world-class IT SOA portfolio for the enterprise and its organizational units through to service and schema analysis and design. After many years as an architect on many SOA projects, I strongly recommend this book be on the shelf of every analyst and technical member of any SOA effort, right next to the SOA standards and guidelines it outlines and elucidates the need for. Our SOA governance standards draw heavily from this work and others from this series.”
- Robert John Hathaway III, Enterprise Software Architect, SOA Object Systems
“A wise man once told me that wisdom isn’t all about knowledge and intelligence, it is just as much about asking questions. Asking questions is the true mark of wisdom and during the writing of the SOA Design Patterns book Thomas Erl has shown his real qualities. The community effort behind this book is huge meaning that Thomas has had access to the knowledge and experience of a large group of accomplished practitioners. The result speaks for itself. This book is packed with proven solutions to recurring problems, and the documented pros and cons of each solution have been verified by persons with true experience. This book could give SOA initiatives of any scale a real boost.”
- Herbjörn Wilhelmsen, Architect and Senior Consultant, Objectware
“This book is an absolute milestone in SOA literature. For the first time we are provided with a practical guide on how the principle centric description of service orientation from a vendor-agnostic viewpoint is actually made to work in a language based on patterns. This book makes you talk SOA! There are very few who understand SOA like Thomas Erl does, he actually put’s it all together!”
- Brian Lokhorst, Solution Architect, Dutch Tax Office
“Service oriented architecture is all about best practices we have learned since IT’s existence. This book takes all those best practices and bundles them into a nice pattern catalogue. [It provides] a really excellent approach as patterns are not just documented but are provided with application scenarios through case studies [which] fills the gap between theory and practice.”
- Shakti Sharma, Senior Enterprise Architect, Sysco Corp
“An excellent and important book on solving problems in SOA [with a] solid structure. Has the potential of being among the major influential books.”
- Peter Chang, Lawrence Technical University
“SOA Design Patterns presents a vast amount of knowledge about how to successfully implement SOA within an organization. The information is clear, concise, and most importantly, legitimate.”
- Peter B. Woodhull, President and Principal Architect, Modus21
“SOA Design Patterns offers real insights into everyday problems that one will encounter when investing in services oriented architecture. [It] provides a number of problem descriptions and offers strategies for dealing with these problems. SOA design patterns highlights more than just the technical problems and solutions. Common organizational issues that can hinder progress towards achieving SOA migration are explained along with potential approaches for dealing with these real world challenges. Once again Thomas Erl provides in-depth coverage of SOA terminology and helps the reader better understand and appreciate the complexities of migrating to an SOA environment.”
- David Michalowicz, Air and Space Operations Center Modernization Team Lead,
MITRE Corporation
“This is a long overdue, serious, comprehensive, and well-presented catalog of SOA design patterns. This will be required reading and reference for all our SOA engineers and architects. The best of the series so far!
[The book] works in two ways: as a primer in SOA design and architecture it can easily be read front-to-back to get an overview of most of the key design issues you will encounter, and as a reference catalog of design techniques that can be referred to again and again…”
- Wendell Ocasio, Architecture Consultant, DoD Military Health Systems, Agilex Technologies
“Thomas has once again provided the SOA practitioner with a phenomenal collection of
knowledge. This is a reference that I will come back to time and time again as I move forward in SOA design efforts.
What I liked most about this book is its vendor agnostic approach to SOA design patterns. This approach really presents the reader with an understanding of why or why not to implement a pattern, group patterns, or use compound patterns rather than giving them a marketing spiel on why one implementation of a pattern is better than another (for example, why one ESB is better than another). I think as SOA adoption continues to advance, the ability for architects to understand when and why to apply specific patterns will be a driving factor in the overall success and evolution of SOA. Additionally, I believe that this book provides the consumer with the understanding required to chose which vendor’s SOA products are right for their specific needs.”
- Bryan Brew, SOA Consultant, Booz Allen Hamilton
“A must have for every SOA practitioner.”
- Richard Van Schelven, Principal Engineer, Ericsson
“This book is a long-expected successor to the books on object-oriented design patterns and integration patterns. It is a great reference book that clearly and thoroughly describes design patterns for SOA. A great read for architects who are facing the challenge of transforming their enterprise into a service-oriented enterprise.”
- Linda Terlouw, Solution Architect, Ordina
“The maturation of Service-Orientation has given the industry time to absorb the best practices of service development. Thomas Erl has amassed this collective wisdom in SOA Design Patterns, an absolutely indispensible addition to any Service Oriented bookshelf.”
- Kevin P. Davis, Ph.D
“The problem with most texts on SOA is one of specificity. Architects responsible for SOA implementation in most organizations have little time for abstract theories on the subject, but are hungry for concrete details that they can relate to the real problems they face in their environment. SOA Design Patterns is critical reading for anyone with service design responsibilities. Not only does the text provide the normal pattern templates, but each pattern is applied in detail against a background case study to provide exceptionally meaningful context to the information. The graphic visualizations of the problems and pattern solutions are excellent supplementary companions to the explanatory text. This book will greatly stretch the knowledge of the reader as much for raising and addressing issues that may have never occurred to the reader as it does in treating those problems that are in more common occurrence. The real beauty of this book is in its plain English prose. Unlike so many technical reference books, one does not find themselves re-reading sections multiple times trying to discern the intent of the author. This is also not a reference that will sit gathering dust on a shelf after one or two perusings. Practitioners will find themselves returning over and over to utilize the knowledge in their projects. This is as close as you’ll come to having a service design expert sitting over your shoulder.”
- James Kinneavy, Principal Software Architect, University of California
“As the industry converges on SOA patterns, Erl provides an outstanding reference guide to composition and integration–and yet another distinctive contribution to the SOA practice.”
- Steve Birkel, Chief IT Technical Architect, Intel Corp.
“With SOA Design Patterns, Thomas Erl adds an indispensable SOA reference volume to the technologist’s library. Replete with to-the-point examples, it will be a helpful aid to any IT organization.”
- Ed Dodds, Strategist, Systems Architect, Conmergence
“Again, Thomas Erl has written an indispensable guide to SOA. Building on his prior successes, his patterns go into even more detail. Therefore, this book is not only helpful to the SOA beginner, but also provides new insight and ideas to professionals.”
- Philipp Offermann, Research Scientist, Technische Universität Berlin, Germany
“SOA Design Patterns is an extraordinary contribution to SOA best practices! Once again, Thomas has created an indispensable resource for any person or organization interested in or actively engaged in the practice of Service Oriented Architecture. Using case studies based on three very different business models, Thomas guides the reader through the process of selecting appropriate implementation patterns to ensure a flexible, well-performing, and secure SOA ecosystem.”
- Victor Brown, Managing Partner and Principal Consultant,
Cypress Management Group Corporation
In cooperation with experts and practitioners throughout the SOA community, best-selling author Thomas Erl brings together the de facto catalog of design patterns for SOA and service-orientation. More than three years in development and subjected to numerous industry reviews, the 85 patterns in this full-color book provide the most successful and proven design techniques to overcoming the most common and critical problems to achieving modern-day SOA. Through numerous examples, individually documented pattern profiles, and over 400 color illustrations, this book provides in-depth coverage of: • Patterns for the design, implementation, and governance of service inventories–collections of services representing individual service portfolios that can be independently modeled, designed, and evolved. • Patterns specific to service-level architecture which pertain to a wide range of design areas, including contract design, security, legacy encapsulation, reliability, scalability, and a variety of implementation and governance issues. • Service composition patterns that address the many aspects associated with combining services into aggregate distributed solutions, including topics such as runtime messaging and message design, inter-service security controls, and transformation. • Compound patterns (such as Enterprise Service Bus and Orchestration) and recommended pattern application sequences that establish foundational processes. The book begins by establishing SOA types that are referenced throughout the patterns and then form the basis of a final chapter that discusses the architectural impact of service-oriented computing in general. These chapters bookend the pattern catalog to provide a clear link between SOA design patterns, the strategic goals of service-oriented computing, different SOA types, and the service-orientation design paradigm.This book series is further supported by a series of resources sites, including
soabooks.com, soaspecs.com, soapatterns.org, soamag.com, and soaposters.com.
Enterprise Mashups Part I: Bringing SOA to the People
Enterprise Mashups Part II: Why SOA Architects Should Care
REST-Inspired SOA Design Patterns
SOA Pattern (#13): Canonical Protocol
SOA Pattern (#1): Service Façade
SOA Pattern (#10): Service Refactoring
SOA Pattern (#11): Event-Driven Messaging
SOA Pattern (#12): Service Layers
SOA Pattern (#14): Logic Centralization
SOA Pattern (#2): Non-Agnostic Context
SOA Pattern (#3): Domain Inventory
SOA Pattern (#4): Service Normalization
SOA Pattern (#5): Service Decomposition
SOA Pattern (#6): Canonical Schema
SOA Pattern (#7): Policy Centralization
SOA Pattern (#9): Enterprise Inventory
SOA Security 101: Patching the Firewall Hole
Targeted Client Upgrades: Creating a Flexible, Low-cost Application Upgrade Mechanism
SOA Design Patterns: Capability Composition Patterns
SOA Design Patterns: Service Governance Patterns
Understanding SOA Design Patterns
Download the sample pages (includes Chapter 16 and Index)
Foreword...xxxvii
CHAPTER 1: Introduction...1
1.1 Objectives of this Book ... 4
1.2 Who this Book is For ... 4
1.3 What this Book Does Not Cover... 4
Topics Covered by Other Books ...4
Web Service and REST Service Design Patterns ... 5
SOA Standardization Efforts... 5
1.4 Recommended Reading ... 6
1.5 How this Book is Organized... 7
Part I: Fundamentals... 8
Part II: Service Inventory Design Patterns... 8
Part III: Service Design Patterns . . 8
Part IV: Service Composition Design Patterns . . 9
Part V: Supplemental. . . 10
Part VI: Appendices . . . 10
1.6 Symbols, Figures, Style Conventions . . . 11
Symbol Legend . . . 11
How Color is Used 11
Data Flow and Directionality Conventions . . 11
Pattern Documentation Conventions . 11
1.7 Additional Information 11
Updates, Errata, and Resources (www.soabooks.com) . . . . 11
Visio Stencil (www.soabooks.com) . 12
Community Patterns Site (www.soapatterns.org) . . . . . 12
Master Glossary (www.soaglossary.com) 12
Supplementary Posters (www.soaposters.com) 12
The SOA Magazine (www.soamag.com) 12
Referenced Specifications (www.soaspecs.com). . . . . 12
Notification Service 13
Contact the Author 13
CHAPTER 2: Case Study Background . 15
2.1 Case #1 Background: Cutit Saws Ltd 17
History 18
Technical Infrastructure and Automation Environment . 18
Business Goals and Obstacles. . 18
2.2 Case #2 Background: Alleywood Lumber Company . 19
History 19
Technical Infrastructure and Automation Environment . 20
Business Goals and Obstacles. . 20
2.3 Case #3 Background: Forestry Regulatory
Commission (FRC) . . 21
History 21
Technical Infrastructure and Automation Environment . 21
Business Goals and Obstacles. . 22
PART I: FUNDAMENTALS
CHAPTER 3: Basic Terms and Concepts . . . . . 25
Purpose of this Introductory Chapter . . . 26
3.1 Architecture Fundamentals 26
A Classic Analogy for Architecture and Infrastructure . 27
Technology Architecture 27
Technology Infrastructure . 30
Software Program . 32
Relationship to Design Framework . 33
3.2 Service-Oriented Computing Fundamentals. . . . 35
Service-Oriented Computing . . . 35
Service-Orientation 36
Service-Oriented Architecture (SOA) . . . 37
Service . . . . . 37
Service Capability . 38
Service Consumer. 38
Service Composition . . . 40
Service Inventory. . 42
Service-Oriented Analysis. 43
Service Candidate. 44
3.3 Service Implementation Mediums . . . 44
Services as Components . 45
Services as Web Services 45
REST Services. . . . 46
CHAPTER 4: The Architecture of Service-Orientation . . 47
Purpose of this Introductory Chapter . . . 48
4.1 The Method of Service-Orientation 48
Principles of Service-Orientation. 48
Strategic Goals of Service-Oriented Computing. . . . . . 51
4.2 The Four Characteristics of SOA 52
Business-Driven . . 53
Vendor-Neutral . . . 54
Enterprise-Centric . 58
Composition-Centric . . . 59
4.3 The Four Common Types of SOA . 61
Service Architecture . . . 62
Information Hiding . . . . 64
Design Standards . 64
Service Contracts . 65
Service Agents . . . 67
Service Capabilities . . . 68
Service Composition Architecture . 68
Nested Compositions . . 72
Task Services and Alternative Compositions . 73
Compositions and Infrastructure. 74
Service Inventory Architecture . . 74
Service-Oriented Enterprise Architecture 76
Architecture Types and Scope . . 77
Architecture Types and Inheritance 77
Other Forms of Service-Oriented Architecture . 78
Inter-Business Service Architecture . . 78
Service-Oriented Community Architecture . . 78
4.4 The End Result of Service-Orientation . . 79
CHAPTER 5: Understanding SOA Design Patterns . 85
Purpose of this Introductory Chapter . . . 86
5.1 Fundamental Terminology. 86
What’s a Design Pattern? . 86
What’s a Compound Pattern? . . . 88
What’s a Design Pattern Language? . 88
What’s a Design Pattern Catalog? . . . 89
5.2 Historical Influences 89
Alexander’s Pattern Language . . 90
Object-Oriented Patterns . 91
Software Architecture Patterns . . 92
Enterprise Application Architecture Patterns . . 93
EAI Patterns . 93
SOA Patterns . . . . 94
5.3 Pattern Notation . 95
Pattern Symbols . . 95
Pattern Figures . . . 96
Pattern Application Sequence Figures 96
Pattern Relationship Figures. 96
Compound Pattern Hierarchy Figures 99
Capitalization. . . . 100
Page Number References. 100
5.4 Pattern Profiles . 100
Requirement . . . . 101
Icon . 101
Summary . . 102
Problem . . . . 102
Solution . . . . 102
Application . 103
Impacts . . . . 103
Relationships. . . . 103
Case Study Example. . 103
5.5 Patterns with Common Characteristics. 104
Canonical Patterns . . . 104
Centralization Patterns 105
5.6 Key Design Considerations . . 106
“Enterprise” vs. “Enterprise-wide” . . 106
Design Patterns and Design Principles 106
Design Patterns and Design Granularity . . 107
Measures of Design Pattern Application . . 108
PART II: SERVICE INVENTORY DESIGN PATTERNS
CHAPTER 6: Foundational Inventory Patterns . . . 111
How Inventory Design Patterns Relate to SOA Design
Characteristics . . 113
How Foundational Inventory and Service Patterns Relate . 114
How Case Studies are Used in this Chapter. . 114
6.1 Inventory Boundary Patterns . 114
Enterprise Inventory . 116
Problem . . . . 116
Solution . . . . 117
Application. . 118
Impacts . . . . 120
Relationships. . . . 121
Case Study Example. . 122
Domain Inventory . 123
Problem . . . . 123
Solution . . . . 124
Application. . 125
Impacts . . . . 126
Relationships. . . . 127
Case Study Example. . 128
6.2 Inventory Structure Patterns 130
Service Normalization. 131
Problem . . . . 131
Solution . . . . 132
Application. . 132
Impacts . . . . 133
Relationships. . . . 133
Case Study Example. . 135
Logic Centralization . 136
Problem . . . . 136
Solution . . . . 137
Application. . 137
Impacts . . . . 139
Relationships. . . . 140
Case Study Example. . 142
Service Layers 143
Problem . . . . 143
Solution . . . . 144
Application. . 145
Impacts . . . . 147
Relationships. . . . 147
Case Study Example. . 148
6.3 Inventory Standardization Patterns 149
Canonical Protocol 150
Problem . . . . 151
Solution . . . . 152
Application. . 153
Impacts . . . . 155
Relationships. . . . 155
Case Study Example. . 157
Canonical Schema 158
Problem . . . . 158
Solution . . . . 159
Application. . 159
Impacts . . . . 159
Relationships. . . . 160
Case Study Example. . 161
CHAPTER 7: Logical Inventory Layer Patterns . . . 163
Combining Layers 164
Business Logic and Utility Logic . . . 166
Agnostic Logic and Non-Agnostic Logic 166
Service Layers and Logic Types . . . 167
Utility Abstraction . 168
Problem . . . . 168
Solution . . . . 169
Application. . 170
Impacts . . . . 171
Relationships. . . . 171
Case Study Example. . 173
Entity Abstraction . 175
Problem . . . . 175
Solution . . . . 176
Application. . 176
Impacts . . . . 178
Relationships. . . . 178
Case Study Example. . 180
Process Abstraction . 182
Problem . . . . 182
Solution . . . . 183
Application. . 184
Impacts . . . . 185
Relationships. . . . 185
Case Study Example. . 187
CHAPTER 8: Inventory Centralization Patterns . . 191
Process Centralization 193
Problem . . . . 193
Solution . . . . 194
Application. . 195
Impacts . . . . 196
Relationships. . . . 197
Case Study Example. . 198
Schema Centralization 200
Problem . . . . 200
Solution . . . . 201
Application. . 202
Impacts . . . . 202
Relationships. . . . 203
Case Study Example. . 203
Policy Centralization . 207
Problems . . . 207
Solution . . . . 208
Application. . 209
Impacts . . . . 210
Relationships. . . . 211
Case Study Example. . 213
Rules Centralization . 216
Problem . . . . 216
Solution . . . . 217
Application. . 217
Impacts . . . . 218
Relationships. . . . 219
Case Study Example. . 222
CHAPTER 9: Inventory Implementation Patterns . 225
Dual Protocols 227
Problem . . . . 228
Solution . . . . 228
Application. . 228
Impacts . . . . 233
Relationships. . . . 234
Case Study Example. . 235
Canonical Resources 237
Problem . . . . 238
Solution . . . . 238
Application. . 239
Impacts . . . . 239
Relationships. . . . 239
Case Study Example. . 241
State Repository . . 242
Problem . . . . 242
Solution . . . . 243
Application. . 244
Impacts . . . . 244
Relationships. . . . 244
Case Study Example. . 246
Stateful Services . . 248
Problem . . . . 248
Solution . . . . 248
Application. . 250
Impacts . . . . 250
Relationships. . . . 250
Case Study Example. . 251
Service Grid . . 254
Problem . . . . 254
Solution . . . . 255
Application. . 256
Impacts . . . . 257
Relationships. . . . 258
Case Study Example. . 259
Inventory Endpoint 260
Problem . . . . 260
Solution . . . . 261
Application. . 262
Impacts . . . . 263
Relationships. . . . 263
Case Study Example. . 265
Cross-Domain Utility Layer 267
Problem . . . . 267
Solution . . . . 268
Application. . 269
Impacts . . . . 269
Relationships. . . . 270
Case Study Example. . 270
CHAPTER 10: Inventory Governance Patterns . . . 273
Canonical Expression. 275
Problem . . . . 275
Solution . . . . 275
Application. . 276
Impacts . . . . 277
Relationships. . . . 278
Case Study Example. . 279
Metadata Centralization . . . 280
Problem . . . . 280
Solution . . . . 281
Application. . 282
Impacts . . . . 283
Relationships. . . . 283
Case Study Example. . 284
Canonical Versioning 286
Problem . . . . 286
Solution . . . . 287
Application. . 287
Impacts . . . . 288
Relationships. . . . 288
Case Study Example. . 290
PART III: SERVICE DESIGN PATTERNS
CHAPTER 11: Foundational Service Patterns . . . . 295
Case Study Background 297
11.1 Service Identification Patterns . 299
Functional Decomposition . 300
Problem . . . . 300
Solution . . . . 301
Application. . 302
Impacts . . . . 302
Relationships. . . . 303
Case Study Example. . 303
Service Encapsulation 305
Problem . . . . 305
Solution . . . . 306
Application. . 307
Impacts . . . . 309
Relationships. . . . 309
Case Study Example. . 310
11.2 Service Definition Patterns 311
Agnostic Context. . 312
Problem . . . . 313
Solution . . . . 314
Application. . 315
Impacts . . . . 315
Relationships. . . . 316
Case Study Example. . 317
Non-Agnostic Context 319
Problem . . . . 319
Solution . . . . 320
Application. . 321
Impacts . . . . 322
Relationships. . . . 322
Case Study Example. . 323
Agnostic Capability324
Problem . . . . 324
Solution . . . . 325
Application. . 326
Impacts . . . . 327
Relationships. . . . 327
Case Study Example. . 328
CHAPTER 12: Service Implementation Patterns. . 331
Service Façade . . . 333
Problem . . . . 333
Solution . . . . 334
Application. . 335
Impacts . . . . 341
Relationships. . . . 342
Case Study Example. . 343
Redundant Implementation 345
Problem . . . . 345
Solution . . . . 346
Application. . 346
Impacts . . . . 347
Relationships. . . . 348
Case Study Example. . 349
Service Data Replication . . 350
Problem . . . . 350
Solution . . . . 352
Application. . 353
Impacts . . . . 353
Relationships. . . . 353
Case Study Example. . 354
Partial State Deferral . 356
Problem . . . . 356
Solution . . . . 357
Application. . 358
Impacts . . . . 359
Relationships. . . . 359
Case Study Example. . 360
Partial Validation . . 362
Problem . . . . 362
Solution . . . . 363
Application. . 364
Impacts . . . . 364
Relationships. . . . 364
Case Study Example. . 365
UI Mediator. . . 366
Problem . . . . 366
Solution . . . . 367
Application. . 368
Impacts . . . . 369
Relationships. . . . 370
Case Study Example. . 370
CHAPTER 13: Service Security Patterns . . . 373
Case Study background 374
Exception Shielding . 376
Problem . . . . 376
Solution . . . . 377
Application. . 378
Impacts . . . . 379
Relationships. . . . 379
Case Study Example. . 380
Message Screening381
Problem . . . . 381
Solution . . . . 382
Application . 382
Impacts . . . . 384
Relationships. . . . 385
Case Study Example. . 385
Trusted Subsystem 387
Problem . . . . 387
Solution . . . . 388
Application. . 388
Impacts . . . . 391
Relationships. . . . 391
Case Study Example. . 392
Service Perimeter Guard 394
Problem . . . . 394
Solution . . . . 395
Application . 395
Impacts . . . . 396
Relationships. . . . 396
Case Study Example. . 397
CHAPTER 14: Service Contract Design Patterns . 399
Decoupled Contract . 401
Problem . . . . 401
Solution . . . . 402
Application. . 403
Impacts . . . . 405
Relationships. . . . 405
Case Study Example. . 407
Contract Centralization . 409
Problem . . . . 409
Solution . . . . 410
Application. . 410
Impacts . . . . 411
Relationships. . . . 411
Case Study Example. . 413
Contract Denormalization. . 414
Problem . . . . 414
Solution . . . . 415
Application. . 416
Impacts . . . . 417
Relationships. . . . 417
Case Study Example. . 418
Concurrent Contracts 421
Problem . . . . 421
Solution . . . . 422
Application. . 423
Impacts . . . . 425
Relationships. . . . 425
Case Study Example. . 426
Validation Abstraction 429
Problem . . . . 429
Solution . . . . 430
Application. . 431
Impacts . . . . 432
Relationships. . . . 432
Case Study Example. . 433
Chapter 15: Legacy Encapsulation Patterns . . . 439
Legacy Wrapper. . . 441
Problem . . . . 441
Solution . . . . 442
Application. . 443
Impacts . . . . 444
Relationships. . . . 444
Case Study Example. . 446
Multi-Channel Endpoint . . . 451
Problem . . . . 451
Solution . . . . 452
Application. . 453
Impacts . . . . 454
Relationships. . . . 454
Case Study Example. . 456
File Gateway . 457
Problem . . . . 457
Solution . . . . 458
Application. . 458
Impacts . . . . 459
Relationships. . . . 460
Case Study Example. . 461
CHAPTER 16: Service Governance Patterns. . . . . 463
Compatible Change465
Problem . . . . 465
Solution . . . . 466
Application. . 466
Impacts . . . . 469
Relationships. . . . 469
Case Study Example. . 470
Version Identification 472
Problem . . . . 472
Solution . . . . 473
Application. . 473
Impacts . . . . 474
Relationships. . . . 474
Case Study Example. . 475
Termination Notification . . . 478
Problem . . . . 478
Solution . . . . 479
Application. . 480
Impacts . . . . 480
Relationships. . . . 481
Case Study Example. . 481
Service Refactoring484
Problem . . . . 484
Solution . . . . 485
Application. . 485
Impacts . . . . 486
Relationships. . . . 486
Case Study Example. . 488
Service Decomposition . 489
Problem . . . . 489
Solution . . . . 491
Application. . 492
Impacts . . . . 492
Relationships. . . . 494
Case Study Example. . 495
Proxy Capability . . 497
Problem . . . . 497
Solution . . . . 498
Application. . 498
Impacts . . . . 500
Relationships. . . . 500
Case Study Example. . 501
Decomposed Capability . . . 504
Problem . . . . 504
Solution . . . . 506
Application. . 507
Impacts . . . . 507
Relationships. . . . 508
Case Study Example. . 508
Distributed Capability 510
Problem . . . . 510
Solution . . . . 511
Application. . 512
Impacts . . . . 513
Relationships. . . . 513
Case Study Example. . 514
PART IV: SERVICE COMPOSITION DESIGN PATTERNS
CHAPTER 17: Capability Composition Patterns . . 519
Capability Composition . . . 521
Problem . . . . 521
Solution . . . . 521
Application. . 523
Impacts . . . . 523
Relationships. . . . 523
Case Study Example. . 524
Capability Recomposition . 526
Problem . . . . 526
Solution . . . . 527
Application. . 527
Impacts . . . . 527
Relationships. . . . 529
Case Study Example. . 530
CHAPTER 18: Service Messaging Patterns. . 531
Service Messaging 533
Problem . . . . 533
Solution . . . . 533
Application. . 534
Impacts . . . . 534
Relationships. . . . 535
Case Study Example. . 536
Messaging Metadata 538
Problem . . . . 538
Solution . . . . 538
Application. . 539
Impacts . . . . 540
Relationships. . . . 541
Case Study Example. . 542
Service Agent 543
Problem . . . . 543
Solution . . . . 544
Application. . 544
Impacts . . . . 546
Relationships. . . . 546
Case Study Example. . 548
Intermediate Routing 549
Problem . . . . 549
Solution . . . . 551
Application. . 552
Impacts . . . . 553
Relationships. . . . 553
Case Study Example. . 556
State Messaging . . 557
Problem . . . . 557
Solution . . . . 558
Application. . 560
Impacts . . . . 561
Relationships. . . . 561
Case Study Example. . 562
Service Callback . . 566
Problem . . . . 566
Solution . . . . 568
Application. . 568
Impacts . . . . 570
Relationships. . . . 570
Case Study Example. . 571
Service Instance Routing . . 574
Problem . . . . 574
Solution . . . . 576
Application. . 576
Impacts . . . . 578
Relationships. . . . 578
Case Study Example. . 579
Asynchronous Queuing . . . 582
Problem . . . . 582
Solution . . . . 584
Application. . 584
Impacts . . . . 587
Relationships. . . . 588
Case Study Example. . 589
Reliable Messaging 592
Problem . . . . 592
Solution . . . . 593
Application. . 593
Impacts . . . . 594
Relationships. . . . 595
Case Study Example. . 596
Event-Driven Messaging 599
Problem . . . . 599
Solution . . . . 600
Application. . 602
Impacts . . . . 602
Relationships. . . . 602
Case Study Example. . 604
CHAPTER 19: Composition Implementation Patterns . . 605
Agnostic Sub-Controller 607
Problem . . . . 607
Solution . . . . 608
Application. . 610
Impacts . . . . 610
Relationships. . . . 610
Case Study Example. . 612
Composition Autonomy . . . 616
Problem . . . . 616
Solution . . . . 618
Application. . 619
Impacts . . . . 619
Relationships. . . . 620
Case Study Example. . 620
Atomic Service Transaction 623
Problem . . . . 623
Solution . . . . 624
Application. . 626
Impacts . . . . 626
Relationships. . . . 628
Case Study Example. . 629
Compensating Service Transaction . . 631
Problem . . . . 631
Solution . . . . 633
Application. . 633
Impacts . . . . 635
Relationships. . . . 635
Case Study Example. . 636
CHAPTER 20: Service Interaction Security Patterns . . 639
Data Confidentiality641
Problem . . . . 641
Solution . . . . 643
Application. . 643
Impacts . . . . 644
Relationships. . . . 645
Case Study Example. . 646
Data Origin Authentication. 649
Problem . . . . 649
Solution . . . . 650
Application. . 651
Impacts . . . . 652
Relationships. . . . 653
Case Study Example. . 653
Direct Authentication 656
Problem . . . . 656
Solution . . . . 657
Application. . 657
Impacts . . . . 658
Relationships. . . . 659
Case Study Example. . 660
Brokered Authentication 661
Problem . . . . 661
Solution . . . . 662
Application. . 663
Impacts . . . . 665
Relationships. . . . 665
Case Study Example. . 666
CHAPTER 21: Transformation Patterns . . . . 669
Data Model Transformation 671
Problem . . . . 671
Solution . . . . 672
Application. . 673
Impacts . . . . 674
Relationships. . . . 674
Case Study Example. . 677
Data Format Transformation . . . 681
Problem . . . . 681
Solution . . . . 681
Application. . 683
Impacts . . . . 683
Relationships. . . . 683
Case Study Example. . 685
Protocol Bridging . 687
Problem . . . . 687
Solution . . . . 688
Application. . 688
Impacts . . . . 690
Relationships. . . . 690
Case Study Example. . 692
PART V: SUPPLEMENTAL
CHAPTER 22: Common Compound Design Patterns . . . 697
“Compound” vs. “Composite” . . . 698
Compound Patterns and Pattern Relationships . . . 698
Joint Application vs. Coexistent Application. . . . . . 699
Compound Patterns and Pattern Granularity . . . . . 700
Orchestration. 701
Enterprise Service Bus . 704
Service Broker 707
Canonical Schema Bus . 709
Official Endpoint . . 711
Federated Endpoint Layer . 713
Three-Layer Inventory. 715
CHAPTER 23: Strategic Architecture Considerations. . 717
Increased Federation . 718
Increased Intrinsic Interoperability . . 721
Increased Vendor Diversification Options. . 723
Increased Business and Technology Alignment. . . 725
Increased ROI . 727
Increased Organizational Agility 728
Reduced IT Burden. 729
CHAPTER 24: Principles and Patterns at the
U.S. Department of Defense . 731
The Business Operating Environment (BOE) . . . . . 733
Principles, Patterns, and the BOE . . 734
Incorporation of Information Assurance (IA) . . 736
Adherence to Standards . 736
Data Visibility, Accessibility, and Understandability to
Support Decision Makers 736
Loosely Coupled Services 736
Authoritative Sources of Trusted Data 737
Metadata-Driven Framework for Separation from
Technical Details . 737
Support Use of Open Source Software . . . 738
Emphasize Use of Service-Enabled Commercial
Off-the-Shelf (COTS) Software . 738
Participation in the DoD Enterprise 738
Support Mobility — Users & Devices . . 738
The Future of SOA and the DoD 739
SOADoD.org . . 739
PART VI: APPENDICES
APPENDIX A: Case Study Conclusion 743
Cutit Saws Ltd. 744
Alleywood Lumber Company 744
Forestry Regulatory Commission (FRC) . . . 745
APPENDIX B: Candidate Patterns . . 747
APPENDIX C: Principles of Service-Orientation . . 749
Standardized Service Contract . 751
Service Loose Coupling 753
Service Abstraction . 755
Service Reusability . 756
Service Autonomy . . 758
Service Statelessness . 760
Service Discoverability 762
Service Composability 764
APPENDIX D: Patterns and Principles
Cross-Reference . . . 767
APPENDIX E: Patterns and Architecture Types
Cross-Reference . . . 775
About the Author . . . 783
About the Contributors . 784
Index of Patterns . . . 791
Index . 795