did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780134767420

SOA Design Patterns (paperback)

by
  • ISBN13:

    9780134767420

  • ISBN10:

    013476742X

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2017-03-02
  • Publisher: PEARSO
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $74.99 Save up to $7.50
  • Digital
    $67.49
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

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

Author Biography

Thomas Erl is a best-selling IT author and founder of CloudSchool.com™ andSOASchool.com ®. Thomas has been the world's top-selling service technology author for over five years and is the series editor of the Prentice Hall Service Technology Series from Thomas Erl (www.servicetechbooks.com ), as well as the editor of the Service Technology Magazine (www.servicetechmag.com). With over 175,000 copies in print world-wide, his eight published books have become international bestsellers and have been formally endorsed by senior members of major IT organizations, such as IBM, Microsoft, Oracle, Intel, Accenture, IEEE, HL7, MITRE, SAP, CISCO, HP, and others.

 

Four of his books, Cloud Computing: Concepts, Technology & Architecture, SOA Design Patterns, SOA Principles of Service Design, and SOA Governance, were authored in collaboration with the IT community and have contributed to the definition of cloud computing technology mechanisms, the service-oriented architectural model and service-orientation as a distinct paradigm. Thomas is currently working with over 20 authors on several new books dedicated to specialized topic areas such as cloud computing, Big Data, modern service technologies, and service-orientation.

 

As CEO of Arcitura Education Inc. and in cooperation with CloudSchool.com™ andSOASchool.com ®, Thomas has led the development of curricula for the internationally recognized SOA Certified Professional (SOACP) and Cloud Certified Professional (CCP) accreditation programs, which have established a series of formal, vendor-neutral industry certifications.

 

Thomas is the founding member of the SOA Manifesto Working Group and author of the Annotated SOA Manifesto (www.soa-manifesto.com). He is a member of the Cloud Education & Credential Committee, SOA Education Committee, and he further oversees theSOAPatterns.org and CloudPatterns.org initiatives, which are dedicated to the on-going development of master pattern catalogs for service-oriented computing and cloud computing.

 

Thomas has toured over 20 countries as a speaker and instructor for public and private events, and regularly participates in international conferences, including SOA, Cloud + Service Technology Symposium and Gartner events. Over 100 articles and interviews by Thomas have been published in numerous publications, including the Wall Street Journal and CIO Magazine.

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

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program