Description

Book Synopsis

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, Ora

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

SOA Design Patterns

    Product form

    £55.49

    Includes FREE delivery

    Order before 4pm today for delivery by Fri 26 Jun 2026.

    A Paperback / softback by Thomas Erl

    Out of stock


      View other formats and editions of SOA Design Patterns by Thomas Erl

      Publisher: Pearson Education (US)
      Publication Date: 05/05/2017
      ISBN13: 9780134767420, 978-0134767420
      ISBN10: 013476742X

      Description

      Book Synopsis

      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, Ora

      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

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account