Chapter 1. Introduction: 1.1. Why This Book Is Important
Chapter 1. Introduction: 1.1. Why This Book Is Important
Introduction
1.1 Why this book is important
I cannot recall any one term causing as much confusion as “service-oriented.” Its
apparent ambiguity has led vendors, IT professionals, and the media to claim their
own interpretations. This, of course, makes grasping the meaning of a technical
architecture labeled as “service-oriented” all the more difficult.
SOA, as an abstract paradigm, has traditionally represented a baseline distributed
architecture with no reference to implementation. While relevant to us, this model
represents only a subset of SOA in its most common and contemporary form.
Coupled with the Web services platform and a set of commonly accepted service-
orientation principles, SOA has emerged as an architectural platform explicitly
distinct from its predecessors. It introduces new concepts supported by select
technologies that significantly augment characteristics of traditional distributed
computing platforms—so much so that service-oriented environments often end up
redefining IT infrastructure.
This contemporary variety of SOA has received its share of attention. It has been
promoted as a platform capable of revolutionizing enterprise environments by
leveraging advancements in Web services technology and injecting organizations
with hopes of federation, agility, and cross-platform harmony.
Many have been led to the notion that a technical architecture deemed service-
oriented is simply one comprised of Web services. This is a common but
dangerous assumption that leads to the number one mistake made by organizations
intending to adopt SOA—the perception that the benefits promised by current
mainstream SOA are attainable solely through a deeper investment in the Web
services platform.
We all have ideals that we aspire to attain. Ideals represent a state of excellence
that motivate us to accomplish things beyond what we may have been able to
without the ideal to look up to.
The service-orientation ideal has sparked a movement that has positioned SOA as
the next phase in the evolution of business automation. In the same manner in
which mainframe systems were succeeded by client-server applications, and client-
server environments then evolved into distributed solutions based on Web
technologies, the contemporary, Web services-driven SOA is succeeding
traditional distributed architecture on a global scale.
All major software manufacturers and vendors are promoting support for SOA—
some even through direct involvement in the development of open standards. As a
result, every major development platform now officially supports the creation of
service-oriented solutions. It would appear as though the realization of the SOA
ideal is well underway. Why, then, is the false SOA so common?
1.1.3. The real SOA
The reality is that the rise of the false SOA has distorted the vision of the ideal
SOA. Not only is the false SOA divergent from the “true path of service-
orientation,” it reinforces SOA anti-patterns by extending and further entrenching
the traditional distributed computing model to which SOA offers an alternative.
The eventual realization that initial expectations will not be fulfilled can be further
compounded once the costs, effort, and overall ugliness of a retro-fitting effort are
calculated.
A real SOA requires real change, real foresight, and real commitment. Most of all,
though, it requires guidance. This last requirement is what this book intends to
assist you with.
1.2. OBJECTIVES OF THIS BOOK
Let’s revisit the two primary goals we established earlier and elaborate on each.
1.2.1. Understanding SOA, service-orientation, and Web services
This book will therefore be useful to various IT professionals who are interested in
learning more about the following:
• how to build SOA
• service-orientation principles
• designing different types of services for SOA
• service-oriented business modeling
• features provided by key WS-* specifications
• orchestration with WS-BPEL
• SOA support in J2EE and .NET platforms
• modeling business-centric services
• creating design standards for SOA-based solutions
• Web services technology within the context of SOA
1.4. WHAT THIS BOOK DOES NOT COVER
While issues relating to integration and interoperability are referenced and
discussed throughout this book, service-oriented integration as a specific topic is
not covered. This is to prevent overlap with Service-Oriented Architecture: A Field
Guide to Integrating XML and Web Services, this book’s companion guide.
The Field Guide is dedicated to matters of integration and explores numerous
service-oriented integration architectures, strategies, and best practices.
Also though this book will be useful to developers who want to understand how to
build services for SOA and how different technology platforms support the SOA
model, this is not a book that explains how to program Web services using any
particular programming language. The step-by-step instructions provided focus on
building and orchestrating service endpoints—not the underlying component logic.
We therefore supply tutorials and/or code examples for the following open Web
services languages: WSDL, SOAP, XML Schema, WS-BPEL, WS-Coordination,
WS-Policy, WS-MetadataExchange, WS-Security, WS-Addressing, and WS-
ReliableMessaging.
Note
A common thread across all parts of the book is the consistent use of case studies.
Over 125 individual case study examples are interspersed throughout the chapters
to provide constant real-life reference points that further demonstrate key topics.
Case studies are introduced in Chapter 2, which establishes background
information for two fictional organizations.
Let’s now take a closer look at what’s covered in the remaining chapters.
Key SOA concepts are explained, a look at how SOA has evolved from past
platforms follows, and then a description of the Web services framework wraps up
this first part of the book.
Introducing SOA (Chapter 3)
We start off with a chapter dedicated to nailing down a clear definition of what
SOA actually is and is not. We accomplish this by first studying the core
characteristics of what constitutes a fundamental or “primitive SOA.” We
supplement this by introducing the principles of service-orientation, and then look
at the many influences that are elevating the primitive service-oriented architecture
into a broader, enterprise-level platform.
We then move on to identifying and explaining the key benefits behind adopting
SOA. Although these benefits are discussed throughout this book, it is important to
separate them ahead of time so that we can form a clear vision of what it is we are
accomplishing by transitioning to this architectural model.
Finally, we conclude this chapter with a look at the most common pitfalls facing
any organization on the path toward SOA. Understanding these “worst practices”
is important not only to avoiding a whole lot of problems, but also to better
appreciate the reasoning behind some of the analysis and design processes
provided in later chapters.
The Evolution of SOA (Chapter 4)
This chapter continues with an exploration of how SOA came to be. Specifically,
we follow a timeline that looks at the following:
• Past architectural platforms from which SOA has evolved and inherited traits and
qualities.
• Current influences (as fueled by XML and Web services technology platforms)
that have shaped SOA into what it is now.
• The ongoing activity of standards organizations and contributing vendors that are
further extending the breadth of the SOA platform.
We begin with a brief historical account of XML and Web services and discuss
how these now established technologies have shaped SOA and are, to a large
extent, responsible for its success. Subsequently, we turn the tables and discuss
how the resulting popularity of SOA has changed the manner in which some XML
and Web services technologies have been traditionally positioned and utilized.
We then dive into the current world of SOA as we discuss who and what is making
SOA happen. Organizations and software vendors involved with developing
contemporary SOA specifications and products are discussed. Most notably, the
roles played by the following organizations are explained:
• World Wide Web Consortium (W3C)
• Web Services Interoperability Organization (WS-I)
• Organization for the Advancement of Structured Information Standards (OASIS)
Note that this chapter introduces a new feature of the book called In Plain English.
Even though all sections in this chapter are supplemented with examples that are
part of our continuing case studies, they are further outfitted with these
intentionally simplistic, non-technical analogies.
We begin with a review of the fundamental mechanics behind the Web services
communications framework.
We follow this section with an explanation of how SOAP is being used to address
the messaging needs of SOA. The standardized messaging format provided by
SOAP is discussed, along with a look at the SOAP message structure and the
runtime roles played by SOAP processing nodes.
This chapter picks up the tempo by venturing into the WS-* landscape. This is the
first of two chapters dedicated to exploring how SOA can be extended using
features provided by WS-* specifications.
Concepts relating to the latter five items in the above list are derived from the
following WS-* specifications:
• WS-Coordination
• WS-AtomicTransaction
• WS-BusinessActivity
• WS-BPEL (formerly known as BPEL4WS)
• WS-CDL (formerly known as WS-Choreography)
Because this book intentionally separates concepts from technology, the actual
language and syntax-level details for these WS-* extensions are covered in Part V:
Building SOA (Technology and Design).
Further, this chapter explains how these specifications and their associated
concepts inter-relate, as well as how they individually tie into and fulfill the
predefined characteristics of contemporary SOA. Finally, it is also worth
mentioning that this chapter continues providing In Plain English sections to help
clarify concepts using non-technical analogies.
Web Services and Contemporary SOA—Part II: Advanced Messaging, Metadata, and Security
(Chapter 7)
This chapter dives even more deeply into the world of SOA extensions, as we
study and explain another series of concepts related to additional WS-*
specifications.
The concepts behind each of these topics are derived from the following WS-*
specifications:
• WS-Addressing
• WS-ReliableMessaging
• WS-Policy Framework (including WS-PolicyAttachments and WS-
PolicyAssertions)
• WS-MetadataExchange
• WS-Security (including XML-Encryption and XML-Signature)
• WS-Notification Framework (including WS-BaseNotification, WS-Topics, and
WS-BrokeredNotification)
• WS-Eventing
As with Chapter 6, only concepts are discussed at this stage. The respective
languages of the first five specifications in the above list are explained later
in Chapter 17.
Also as with the previous chapter, how the individual extensions inter-relate and
address specific characteristics of contemporary SOA is explained and
supplemented with additional In Plain Englishsections.
1.5.3. Part III: SOA and Service-Orientation
Next, we dissect a logical SOA and study its most fundamental parts. We begin
this process with an examination of the core components of the Web services
framework and then illustrate how these are positioned and augmented within
SOA. We continue this exercise by examining how the components of an SOA
inter-relate.
The chapter concludes with an important revelation. After explaining the principles
of service-orientation, we compare them with the feature set supplied by the first-
generation Web services platform. This then tells us which of the service-
orientation principles are provided automatically by the mere use of Web services
and which require explicit effort to realize. This is an important piece of
knowledge, as it gives us a checklist of design issues that we later incorporate in
the step-by-step design processes.
Service Layers (Chapter 9)
These layers establish the basis for a series of standardized services that are
discussed and further explained in subsequent chapters. Next, we raise some issues
in relation to the creation of solution-agnostic services and then conclude this
chapter with an exploration of eight different service layer configuration scenarios
that illustrate a range of possible SOA designs.
1.5.4. Part IV: Building SOA (Planning and Analysis)
All of the previous chapters provide a knowledge of concepts and theory that can
now be applied to the real world. These next two chapters structure an SOA
delivery project around the creation of a contemporary SOA and then supply
detailed guidance as to how business and application logic can be defined and
modeled into service candidates.
SOA Delivery Strategies (Chapter 10)
The pros and cons of each are contrasted, and an emphasis is placed on the agile
strategy, which attempts to blend the benefits and requirements of the top-down
and bottom-up approaches.
Service-Oriented Analysis—Part I: Introduction (Chapter 11)
For the most part, the sections in this chapter assist you in preparing for the step-
by-step service modeling process described in the following chapter.
Service-Oriented Analysis—Part II: Service Modeling (Chapter 12)
We now embark on a twelve-step analysis process wherein we apply service-
orientation to an existing business workflow and derive business and application
service candidates.
This important part of building SOA allows us to create service candidates that
become a primary input for the ultimate SOA design we finalize as part of the
service-oriented design processes described in upcoming chapters. Our service
modeling process is supplemented with detailed case study examples that
demonstrate the execution of individual process steps.
Finally, we complete this chapter with another detailed case study example
wherein the second of our two fictional companies takes us through the service
modeling process again, this time applying the aforementioned classification
system. Additionally, this example results in the creation of three different service
candidate combinations for the purpose of contrasting approaches.
1.5.5. Part V: Building SOA (Technology and Design)
This, the largest part in the book, provides step-by-step processes for designing
specialized SOA services and creating a service-oriented business process.
Numerous technology tutorials are supplied to help understand the code examples
used throughout these chapters. This part concludes with an overview of what
constitutes an SOA technology platform, including a review of current SOA
support provided by the .NET framework and the J2EE platform.
Service-Oriented Design—Part I: Introduction (Chapter 13)
This chapter continues where we left off when we completed the service-oriented
analysis phase. We now prepare to move our service candidates into service-
oriented design.
The first step is an SOA composition exercise that helps identify the architectural
boundary of our planned solution (this step is detailed in Chapter 14). The
remaining steps consist of the following individual design processes:
• Entity-centric business service design
• Application service design
• Task-centric business service design
• Service-oriented business process design
These exercises will result in the creation of WSDL definitions that implement
service candidates (which originated from the service-oriented analysis process).
Therefore, this chapter helps us further prepare by providing short tutorials for the
following key language elements:
• WSDL
• WSDL-related XML Schema elements
• SOAP message structure elements
Note that the language elements described are limited to those used in the case
study code samples.
Chapter 14 kicks off the service-oriented design process by providing guidance for
composing a service-oriented architecture based on known functional requirements
and technical limitations. As part of this procedure, we provide guidelines for
choosing service layers and positioning identified standards and SOA extensions.
Each process description is supplemented with extensive case study examples that
demonstrate the application of individual process steps in real-world scenarios.
This important chapter is then concluded with a set of service design guidelines
applicable to the previously described processes.
Service-Oriented Design—Part IV: Business Process Design (Chapter 16)
Our SOA so far consists of a set of services that establish up to three levels of
abstraction, along with a service-oriented business process responsible for
orchestrating them. This next chapter provides technical insight into how the
feature set of SOA can be extended with the WS-* specifications we introduced
in Chapter 7.
Key elements and constructs for the following specifications are covered:
• WS-Addressing
• WS-ReliableMessaging
• WS-Policy
• WS-MetadataExchange
• WS-Security
Our final chapter takes a close look at what constitutes an implementation platform
for SOA. The individual parts that comprise the development and runtime
environments required to build and host a service-oriented solution are explained,
along with an “under the hood” look at the implementation logic behind a typical
Web service.
Appendix A acts as a bookend to the case study storylines that began in Chapter 2.
The progress of each organization is reviewed, and the resulting solution
environments are studied. The original objectives established at the beginning of
the book are revisited to ensure that all have been met.
Service Models Reference (Appendix B)
This appendix provides a quick reference table for all of the service models
described in this book.
1.5.6. Conventions
Some of the contents in this book originated from research I performed for SOA
Systems Inc. (formerly XMLTC Consulting Inc.), as part of the XML & Web
Services Integration Framework (XWIF) project. For more information,
visit www.soasystems.com or www.xwif.com.
1.6.2. www.serviceoriented.ws
Updates, source code, and various other supporting resources can be found
at www.serviceoriented.ws. I am interested in your feedback. Any experiences
you’d like to share or suggestions you may have as to how I can continue to
improve this book would be much appreciated.
1.6.3. Contact the Author