SOA Design Patterns

Hardcover
from $0.00

Author: Thomas Erl

ISBN-10: 0136135161

ISBN-13: 9780136135166

Category: Software Engineering

“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...

Search in google:

“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.

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