Home > Store

SOA Design Patterns

  • By
  • Published Dec 31, 2008 by Pearson.

eBook

  • Your Price: $57.59
  • List Price: $71.99
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Acrobat® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Also available in other formats.

Register your product to gain access to bonus material or receive a coupon.

Description

  • Copyright 2009
  • Pages: 864
  • Edition: 1st
  • eBook
  • ISBN-10: 0-13-263946-7
  • ISBN-13: 978-0-13-263946-0

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.

Sample Content

Table of Contents

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

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020