SOA Design Patterns by Thomas Erl

SOA Design Patterns

byThomas Erl

Kobo ebook | December 31, 2008

not yet rated|write a review

Pricing and Purchase Info

$63.99 online 
$79.92 list price save 19%

Available for download

Not available in stores

about

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.

About The Author

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

Details & Specs

Title:SOA Design PatternsFormat:Kobo ebookPublished:December 31, 2008Publisher:Pearson EducationLanguage:English

The following ISBNs are associated with this title:

ISBN - 10:0138158193

ISBN - 13:9780138158194

Customer Reviews of SOA Design Patterns

Reviews

Extra 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