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 tomorrow for delivery by Fri 2 Jan 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

    © 2025 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