Description
This book demonstrates service-oriented architecture (SOA) as a concrete discipline rather than a hopeful collection of cloud charts. Built upon the author's firsthand experience rolling out a SOA at a major corporation, SOA in Practice explains how SOA can simplify the creation and maintenance of large-scale applications. Whether your project involves a large set of Web Services-based components, or connects legacy applications to modern business processes, this book clarifies how -- and whether -- SOA fits your needs.
SOA has been a vision for years. This book brings it down to earth by describing the real-world problems of implementing and running a SOA in practice. After defining SOA's many facets, examining typical use patterns, and exploring how loose coupling helps build stronger applications, SOA in Practice presents a framework to help you determine when to take advantage of SOA. In this book you will:
- Focus squarely on real deployment and technology, not just standards maps
- Examine business problems to determine which ones fit a SOA approach before plastering a SOA solution on top of them
- Find clear paths for building solutions without getting trapped in the mire of changing web services details
- Gain the experience of a systems analyst intimately involved with SOA
Table of Contents
Preface
1. Motivation
1.1 Characteristics of Large Distributed Systems
1.2 The Tale of the Magic Bus
1.3 What We Can Learn from the Tale of the Magic Bus
1.4 History of SOA
1.5 SOA in Five Slides
2. SOA
2.1 Definitions of SOA
2.2 SOA Drivers
2.3 SOA Concepts
2.4 SOA Ingredients
2.5 SOA Is Not a Silver Bullet
2.6 SOA Is Not a Specific Technology
2.7 SOA Versus Distributed Objects
2.8 SOA Terminology
2.9 Summary
3. Services
3.1 Services
3.2 Interfaces and Contracts
3.3 Additional Service Attributes
3.4 Summary
4. Loose Coupling
4.1 The Need for Fault Tolerance
4.2 Forms of Loose Coupling
4.3 Dealing with Loose Coupling
4.4 Summary
5. The Enterprise Service Bus
5.1 ESB Responsibilities
5.2 Heterogeneous ESBs
5.3 ESB Differences
5.4 Value-Added ESB Services
5.5 Summary
6. Service Classification
6.1 A Fundamental Service Classification
6.2 Basic Services
6.3 Composed Services
6.4 Process Services
6.5 Other Service Classifications
6.6 Technical and Infrastructure Services
6.7 Beyond Services
6.8 Summary
7. Business Process Management
7.1 BPM Terminology
7.2 BPM and SOA
7.3 Example for BPM with Services
7.4 Business Process Modeling
7.5 Other Approaches to Identifying Services
7.6 Orchestration Versus Choreography
7.7 A Few More Things to Think About
7.8 Summary
8. SOA and the Organization
8.1 Roles and Organizations
8.2 Funding Models
8.3 Summary
9. SOA in Context
9.1 SOA-Based Architecture Models
9.2 Dealing with Frontends and Backends
9.3 Summary
10. Message Exchange Patterns
10.1 Introduction to MEPs
10.2 Basic MEPs
10.3 More Complicated MEPs
10.4 Dealing with Reliability and Errors
10.5 Dealing with Different MEP Layers
10.6 Event-Driven Architecture
10.7 Summary
11. Service Lifecycle
11.1 Services Under Development
11.2 Services in Production
11.3 Summary
12. Versioning
12.1 Versioning Requirements
12.2 Domain-Driven Versioning
12.3 Versioning of Data Types
12.4 Configuration-Management-Driven Versioning
12.5 Versioning in Practice
12.6 Summary
13. SOA and Performance
13.1 Where Performance Matters
1