Chapter 1 Introduction

image

1.1 Objectives of this Book

1.2 Who this Book is For

1.3 What this Book Does Not Cover

1.4 Recommended Reading

1.5 How this Book is Organized

1.6 Symbols, Figures, Style Conventions

1.7 Additional Information

While recently delivering a week-long workshop at a client location, I was required to spend a fair amount of time waiting in the reception area every day. The client was a very large company in the finance industry, and in order to enter their offices, I had to first request a visitor’s pass from the security guard and then wait until someone from the office came down to the lobby to escort me back up.

Upon entering the building for the first time, I noticed that the front door was stuck. It took me two or three tries to force it open. The security guard later told me that a delivery person had accidentally struck the door with some sort of cart, warping the frame and damaging the handle. They weren’t expecting replacement parts to be installed for another two weeks and were not allowed to keep the door open.

While waiting for my escort that day, I noticed numerous people (mostly office staff) trying to access the building via the jammed door, each going through the same experience I did. People tried different approaches, some more effective than others. At one point there was an actual line-up impatiently waiting for the person at the front to figure it out. Just about everyone who eventually entered complained about the door to the guard.

On the next day of the workshop I was again waiting in the lobby watching the same story unfold. I saw familiar faces struggling with the door again; getting it ajar seemed more a matter of luck than technique, so it was difficult to remember how one opened it the day before. On this day, the security guard ran toward the door to help people open it whenever he could. However, over time, he found himself rushing back and forth a lot, dealing with the door and tending to people at the reception desk who needed to register and request passes.

The third day came around, and I was surprised to encounter the guard standing outside by the entrance. I could see through the glass walls that someone else was taking care of reception duties. As I approached the door, the guard greeted me, and I assumed he was going to open it to let me in. Instead, he asked me not to enter and proceeded to give me a short lesson on how to open the door with two swift moves. The lesson consisted of a brief explanation and a short demonstration. I thanked him and moved to go inside, but he stopped me, shut the door, and then said “Ok, now you do it.” And so I did.

While waiting in the lobby that morning, I watched him give that same lesson to just about everyone who needed to enter. Sometimes the guard had a whole class as a group of office employees who arrived at the same time were taught together.

As I walked toward the building on the fourth day, I noticed the guard was no longer at the door. Recalling “the moves” I’d learned the day before, I proceeded to open it with relative ease. As I entered the lobby, I could see that the same guard was alone again to manage the reception area. Then, while waiting for my escort as usual, I witnessed droves of people entering the building with little to no problems.

It was even more impressive the following day during my last morning. People were coming and going without breaking a stride. It was as if the door had actually been fixed. At the end of that last day of training, I said good-bye to the guard and complimented him on how he dealt with the door issue. “You’re a true problem solver,” I said. “Yes, I know,” he responded with a grin, “I’m the smart one.”

On the taxi ride back to the airport, I thought some more about the damaged door and the solution the guard came up with. I did some rough math, taking into account how long it took the average person to get past the jammed door during the first two days and how many people I saw streaming into the building every morning. I estimated that over the last two days (after each employee was given a lesson by the guard) about 35,000 seconds were saved, translating into around 9.7 hours.

I never did find out when that door was eventually fixed, but assuming it took another week as expected, that time savings could easily be doubled or tripled. That’s potentially 20–30 extra working hours the company received, thanks to one person’s ingenuity.

This experience reminded me of why I felt strongly about putting together this catalog of design patterns. That guard spent the second day trying a variety of ways to deal with a problem until he found a proven method that was effective, easy to learn, and repeatable by anyone. On the third day he transferred that knowledge to all who needed it, and on the remaining days they put that knowledge to good use. In the end, the cumulative benefit was significant because all of the employees who saved time were able to spend that time solving new problems for the benefit of the company.

While problem solving is a fundamental skill we all possess, not everyone should have to solve the same problems. This is the basic rationale behind design patterns. There are jammed doors along the path to completing just about any IT project, perhaps even more so with SOA initiatives simply because their scope tends to be larger and more ambitious. I hope you’ll find this book an effective resource for “learning the moves” to counter problems you might have to face in pursuit of realizing your own service-oriented solutions.

1.1 Objectives of this Book

A design pattern is simply a proven design solution for a common design problem that is formally documented in a consistent manner. This book was written with one primary goal in mind: to provide a master pattern catalog and pattern language for SOA and service-orientation. This sole objective has driven this collection of design patterns through numerous rounds of reviews, revisions, and community participation.

1.2 Who this Book is For

This book is intended for IT practitioners who:

• want to learn proven design solutions and practices for building SOA implementations

• want to prepare themselves for common challenges associated with the definition and design of services and service-oriented solutions

• want to learn about SOA and service-orientation by studying detailed aspects of fundamental design

• want to learn about the different types of service-oriented architectures and understand exactly how they are distinct from other architectural models

• want to gain a deep insight into the complexion of modern-day service-oriented solution design

This book can essentially be considered a reference text for use by anyone involved with the construction of service-oriented solutions.

1.3 What this Book Does Not Cover

The following sections highlight specific subject areas not addressed in this book.

Topics Covered by Other Books

This title is dedicated to documenting design patterns only. Because most of the patterns in this catalog were specifically created in support of service-orientation, there are many cross-references to design principles whenever they are related or relevant to a particular pattern. These design principles are covered separately in SOA Principles of Service Design, a companion guide for this book.

Furthermore, this book does not contain a tutorial about Web services or service-oriented computing. There are several publications that have already covered these areas in detail. Suggestions are provided in the upcoming Recommended Reading section.

Web Service and REST Service Design Patterns

The Web services technology platform has historically influenced the evolution of service-oriented computing, affecting the complexion and feature-set of typical service-oriented architecture implementations. As a result, numerous design patterns in this book make reference to the use of Web services, and the majority of examples provided show services being implemented as Web services.

Furthermore, a series of REST-inspired design patterns were also developed for this pattern catalog but were not considered ready for inclusion in this first edition of the printed SOA Design Patterns book. These patterns have been published in the Candidate section of the SOAPatterns.org Web site where they will be subjected to on-going reviews, along with other candidate patterns.

It is important to note that the purpose of this book is to provide a catalog of design patterns that help solve problems specific to the realization of SOA and service-orientation. As has been established in previous series titles, Web services and REST services provide implementation options for building services as part of service-oriented solutions.

SOA Standardization Efforts

There are several efforts underway by different standards and research organizations to produce abstract definitions, architectural models, and vocabularies for SOA. These projects are in various stages of maturity, and several overlap in scope.

The mandate of this book series is to provide the IT community with current, real-world insight into the most important aspects of service-oriented computing, SOA, and service-orientation. A great deal of research goes into each and every title to follow through on this commitment. This research includes the detailed review of existing and upcoming technologies and platforms, relevant technology products and technology standards, architectural standards and specifications, as well as interviews conducted with key members of leading organizations in the SOA community.

As of the writing of this book there has been no indication that any of the deliverables produced by the aforementioned independent efforts will be adopted as industry-wide SOA standards. In order to maintain an accurate, real-world perspective, these models and vocabularies can therefore not be covered or referenced in this book.

However, given the unpredictable nature of the IT industry, there is always a possibility that one or more of these deliverables will attain industry standard status at some point in time. Should this occur, this book will be supplemented with online content that describes the relationship of the standards to the content of this book and further maps concepts, terms, and models to whatever conventions are established by the standards. This information would be published on SOABooks.com, as described in the Updates, Errata, and Resources page. If you’d like to be automatically notified of these types of updates, see the Notification Service section for more information.

Note

This comment refers to SOA-related specifications only. There are numerous standards initiatives that have produced and continue to produce highly relevant technology specifications, such as those used for XML and Web services. These are referenced, explained, and otherwise documented wherever appropriate in all series titles.

1.4 Recommended Reading

As already mentioned, this book establishes a master pattern catalog for SOA design patterns. Many of these patterns have roots in the following previously published pattern catalogs that are recommended reading, especially if you are new to the world of design patterns:

Design Patterns: Elements of Reusable Object-Oriented Software (E. Gamma, R. Helm, R. Johnson, J. Vlissides, Addison-Wesley 1994)

Patterns of Enterprise Application Architecture (M. Fowler, Addison-Wesley 2003)

Enterprise Integration Patterns (G. Hohpe, B. Woolf, Addison-Wesley 2003)

Pattern-Oriented Software Architecture, Volumes 1–5 (F. Buschmann, K. Henney, M. Kircher, R. Meunier, H. Rohnert, D. Schmidt, P. Sommerlad, M. Stal, Wiley 1996–2007)

How the patterns in these and other publications have influenced the SOA design patterns in this book is further discussed in the Historical Influences section in Chapter 5.

While this book includes basic patterns that describe foundational parts of SOA and service-orientation in detail, it does not provide a great deal of introductory coverage of SOA or service-oriented computing as a whole. If you are new to SOA and service-orientation, you can consider reading the following titles that are part of this book series:

SOA Principles of Service Design

Service-Oriented Architecture: Concepts, Technology, and Design

Furthermore, in preparation for those patterns that are focused on design solutions that entail the use of Web service technologies, you can use this book as a companion reference guide:

Web Service Contract Design and Versioning for SOA

Note also that the following additional series titles are in development, each of which further explores and builds upon the SOA design patterns documented in this book:

SOA with Java

SOA with .NET

ESB Architecture for SOA

SOA Governance

SOA with REST

You can check on the availability of these titles at SOABooks.com and you can further read up on fundamental topics pertaining to SOA and service-orientation at WhatisSOA.com and SOAPrinciples.com. Finally, you can take advantage of an online master glossary for this book series at SOAGlossary.com.

1.5 How this Book is Organized

This book begins with Chapters 1 and 2 providing introductory content and case study background information respectively. The remainder of the book is grouped into the following parts:

Part I: Fundamentals

Chapters 3, 4, and 5 in this first part set the stage for all of the design patterns that follow in the subsequent parts by covering key terminology and design issues and by providing an exploration of architecture design principles and the service-oriented architecture types that are later referenced by the individual design pattern descriptions. Also provided is an explanation of how pattern profiles in this book are structured, along with additional sections that cover relevant design topics, such as Web services, service design principle references, and pattern types.

Part II: Service Inventory Design Patterns

Service inventory” is a term used to represent a collection on independently standardized and governed services. Design patterns associated with the design of the service inventory technology architecture are provided in the following chapters:

Chapter 6: Foundational Inventory Patterns The baseline design characteristics of a service inventory architecture are addressed by a series of closely related design patterns that are presented in a proposed application sequence.

Chapter 7: Logical Inventory Layer Patterns How services within a service inventory can be grouped into logical layers is covered by a set of design patterns that represent the most common types of service layers.

Chapter 8: Inventory Centralization Patterns A set of patterns dedicated to centralizing key parts of a service inventory architecture is provided to build upon the preceding fundamental architectural patterns.

Chapter 9: Inventory Implementation Patterns This more specialized collection of patterns addresses a variety of implementation design issues and options for service inventory architectures.

Chapter 10: Inventory Governance Patterns Design patterns relating to the post-implementation governance of a service inventory architecture are provided.

Part III: Service Design Patterns

This part is comprised of a set of chapters specific to the design of services and service architecture:

Chapter 11: Foundational Service Patterns– A set of basic design patterns that help establish fundamental service design characteristics via a suggested application sequence. Collectively, these patterns form the most basic application of service-orientation within a service boundary.

Chapter 12: Service Implementation Patterns– A collection of specialized design patterns that provide design solutions for a range of service architecture-specific issues.

Chapter 13: Service Security Patterns– These patterns primarily shape the internal logic of services to equip them with security controls that counter common threats.

Chapter 14: Service Contract Design Patterns– A set of design patterns focused on service contract design concerns both from a contract content and architectural perspective.

Chapter 15: Legacy Encapsulation Patterns– How services can encapsulate and interact with legacy systems and resources is addressed by this set of patterns.

Chapter 16: Service Governance Patterns– For services already deployed and in use, these patterns address common governance issues related to typical post-implementation changes.

Part IV: Service Composition Design Patterns

Service composition design and runtime interaction are addressed by the patterns in the following chapters:

Chapter 17: Capability Composition Patterns– A pair of core patterns that establish the basis of service capability composition as it pertains to composition design and architecture.

Chapter 18: Service Messaging Patterns– This large collection of patterns is focused on inter-service message exchange and processing and provides design solutions for a wide range of messaging concerns.

Chapter 19: Composition Implementation Patterns– Service composition architecture design and runtime composition integrity are addressed by these patterns.

Chapter 20: Service Interaction Security Patterns– A set of patterns focused exclusively on security issues pertaining to runtime service interaction and data exchange.

Chapter 21: Transformation Patterns– Design patterns specific to the runtime transformation of messages via intermediary processing layers.

Part V: Supplemental

Chapter 22: Common Compound Design Patterns– Many of the previously documented design patterns can be combined into compound patterns that solve larger, yet still common design problems. This chapter provides examples of some of the more relevant combinations, including Enterprise Service Bus (704) and Orchestration (701).

Chapter 23: Strategic Architecture Considerations– This chapter essentially provides a strategic context for all of the content covered in previous chapters by revisiting the key goals of service-oriented computing and highlighting how the attainment of each individual goal can impact the different SOA types first established in Chapter 4.

Chapter 24: Principles and Patterns at the U.S. Department of Defense– A brief exploration of how service-orientation design principles and key design patterns are used at the DoD in relation to the Business Operating Environment (BOE).

Part VI: Appendices

Appendix A: Case Study Conclusion– The storylines for the three case studies first introduced in Chapter 2 and then further explored in subsequent chapters are concluded.

Appendix B: Candidate Patterns– The pattern review process is highlighted along with an explanation of how patterns still under review are classified as candidates.

Appendix C: Principles of Service-Orientation Summarized descriptions of the eight service-orientation design principles are provided for reference purposes.

Appendix D: Patterns and Principles Cross-Reference This appendix organizes design patterns for quick reference purposes as they pertain to service-orientation design principles.

Appendix E: Patterns and Architectural Types Cross-Reference Design patterns are cross-referenced with the four service-oriented architecture types established in Chapter 4.

Note that an alphabetical listing of all design patterns together with their page numbers is provided on the inside cover of this book.

1.6 Symbols, Figures, Style Conventions

The books in this series conform to a series of conventions, as explained here.

Symbol Legend

This book contains more than 400 diagrams that are labeled as figures. The primary symbols used throughout the figures are individually listed in the symbol legend located on the inside of the front cover.

How Color is Used

Most symbols have distinct colors associated with them so that they are easily recognized within the different figures. One exception to this convention is when portions of a figure need to be highlighted for a particular reason. In this case, symbols may be colored in red. The conflict symbol (which looks like a lightning bolt) is always red because it is used to highlight points of conflict.

Data Flow and Directionality Conventions

Some of the figures in this book deviate from traditional conventions associated with depicting data flow. This is further explained in the Service Consumer section in Chapter 3.

Pattern Documentation Conventions

Each pattern in this book is documented in a consistent format according to a set of predefined notation conventions that are explained in the Pattern Notation section in Chapter 5. Note that certain general style conventions are changed subsequent to Chapter 5, as explained on the flipside of the Part II divider page (page 110).

1.7 Additional Information

The following sections describe available supplementary information and resources for the books in the Prentice Hall Service-Oriented Computing Series from Thomas Erl.

Updates, Errata, and Resources (www.soabooks.com)

Information about other series titles and various supporting resources can be found at SOABooks.com. You are encouraged to visit this site regularly to check for content changes and corrections.

Visio Stencil (www.soabooks.com)

Prentice Hall has produced a Visio stencil containing the color symbols used by the books in this series. This stencil can be downloaded at SOABooks.com.

Community Patterns Site (www.soapatterns.org)

All of the pattern profile summary tables documented in this book are also published online at SOAPatterns.org, as part of an open site for the SOA community dedicated to SOA design patterns. This site allows you to provide feedback regarding any of the design patterns and you can further submit your own pattern candidates. More information about candidate patterns is provided in Appendix B.

Master Glossary (www.soaglossary.com)

This Web site provides a master online glossary for all series titles. The content on this site continues to grow and expand with new glossary definitions as new series titles are developed and released.

Supplementary Posters (www.soaposters.com)

SOAPosters.com provides a set of color posters available for free download as supplements for the books in this series.

The SOA Magazine (www.soamag.com)

The SOA Magazine is a regular publication provided by SOA Systems Inc. and Prentice Hall and is officially associated with the Prentice Hall Service-Oriented Computing Series from Thomas Erl. The SOA Magazine is dedicated to publishing specialized SOA articles, case studies, and papers by industry experts and professionals. The common criterion for contributions is that each explores a distinct aspect of service-oriented computing.

Referenced Specifications (www.soaspecs.com)

Various series titles reference or provide tutorials and examples of industry specifications and standards. The SOASpecs.com Web site provides a central portal to the original specification documents created and maintained by the primary standards organizations.

Notification Service

If you’d like to be automatically notified of new book releases in this series, new supplementary content for this title, or key changes to the previously listed Web sites, use the notification form at SOABooks.com.

Contact the Author

To contact me directly, visit my bio site at www.thomaserl.com.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.223.33.157