SOA in Practice: Table of Contents 


Now available:

Nicolai M. Josuttis

SOA in Practice
The Art of Distributed System Design


IISBN-10: 0-596-52955-4
ISBN-13: 978-0-596-52955-0

The first half of the book covers the basics (spiced with some practical experience), while the second half of the book discusses specific aspects of introducing and running SOA.

The following table lists all chapters. In addition, it gives some examples about experiences from and hints for the practice, which might be new or surprising for you.

  Chapter Contents Example for Relevancy to Practice
1 Motivation This chapter explores why you want to use SOA in the context of large distributed systems, explores how SOA emerged, tells the tale of the Magic Bus, and gives a brief overview of SOA. Understand characteristis of large distributed system landscapes.
2 SOA This chapter examines and consolidates the different definitions of SOA and its major properties.

Understand how and why SOA definitions differ.

3 Services

This chapter examines and consolidates definitions of the many services involved in SOA.

Understand the difference between business-driven and technical-driven business interfaces.
Learn which properties services really have.

4 Loose Coupling

This chapter introduces and discusses loose coupling, a key concept in SOA and building large distributed systems generally.
Read this as sample chapter.

Get to know 11 forms of loose coupling.
Understand why a common object model does not scale.

5 Enterprise Service Bus This chapter takes a look at the enterprise service bus (ESB), the infrastructure foundation for high interoperability in a SOA landscape.

Compare different approaches to implement an ESB.
Discuss about the tasks an ESB is or might be responsible for.

6 Service Classification This chapter shows how to categorize services so that you can deal with different service classes, service layers, and stages of SOA expansion.
Understand the major categorization of services and different terminology used for it.
Understand the difference of business processes running in services and business processes running in backends.
7 Business Process Management This chapter introduces business process management (BPM) as an approach for identifying services as part of business processes. It includes orchestration, Business Process Execution Language (BPEL), portfolio management, and choreography.

Learn how to come from a business requirement to a service-based solution.
Learn why BPEL and orchestration are not the only way to compose services.

8 SOA and the Organization This chapter discusses the impacts SOA strategies have on organizations and companies.

Learn why SOA can be a problem detector for the culture of organizations.
Learn why CEO/CIO support is a key success factor.

9 SOA in Context This chapter explores how SOA fits with other architectures and approaches, and how
to deal with the various levels of processing at different parts of a business.

Compare different architectural views of soa based system landscapes.
Learn why SOA leads to a special programming model for frontends.

10 Message Exchange Patterns This chapter introduces and discusses message exchange patterns (MEPs). MEPs define the sequence of messages in a service call or operation. One of these patterns will lead to events and event-driven architectures (EDA).

Understand why two one-way messages are different from a request/response message exchange pattern.
Understand the impact of unreliable protocols (such as HTTP).

11 Service Lifecycle This chapter follows the lifecycle of services, from needs identification to implementation, and from running to withdrawing.
Learn why having a policy not to have more than three versions of a service in operation in practice does not work.
12 Versioning This chapter discusses the thorny question of version services, including versioning of associated data types.

Understand the different forms of versioning.
Learn why data type versioning can become a nightmare.

13 SOA and Performance This chapter discusses how performance, especially running time, affects the design and reusability of services.
Learn how performance has an impact on the granularity and reuse of services.
14 SOA and Security This chapter presents security issues in SOA implementations and how to address them. Learn about the "XML bomb" and why SSL (HTTPS) is not enough to deal with security.
15 Technical Details This chapter explores some key details of SOA, including statefulness, idempotency, testing and debugging, and fundamental data types.

Learn how to implement idempotency to deal with nonreliable protocols.
Understand why services should have a common exception/fault type.

16 Web Services This chapter examines Web Services and their position as a de facto standard for SOA infrastructure. It presents the most important Web Services standards, and what their application means in practice.

Learn why Web Services do not necessarily provide interoperability and how to deal with this problem.
Understand the lifecycle of WSDL files.

17 Service Management This chapter discusses using repositories and registries to manage services.
Learn about the difference of repositories and registries and why you don't need repositories from the beginning.
18 Model-Driven Service Development This chapter describes the consequences of specifying services as models, and generating code from those models.

Understand the role of meta models and why XSLT is not appropriate in complex code generations.

19 Establishing SOA and SOA Governance This chapter examines how SOA might or should be established in an organization, and explores its governance moving forward.

Learn why central service teams should make themselves unnecessary.
Benefit from a policy table

20 Epilogue This conclusion finally discusses some major questions about SOA, including whether it is really new, where its use is appropriate, and whether it increases or reduces complexity.
Get the ultimate answer to the question whether SOA is something new.
  References see soa-references.html  
  Glossary see soa-glossary.html  

Copyright 2007 by Nicolai M. Josuttis