|
SOA in Practice
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
"The principles and experiences described in this book
played an important role in making SOA at T-Mobile a success
story, with more than 10 million service calls per day."
--Dr. Steffen Roehn, Member of the Executive Committee
T-Mobile International (CIO)
"Nicolai Josuttis has produced something that is rare in the
over-hyped world of SOA; a thoughtful work with deep
insights based on hands-on experiences. This book is a
significant milestone in promoting practical disciplines for
all SOA practitioners."
--John Schmidt, Chairman, Integration Consortium
"The book belongs in the hands of every CIO, IT Director and
IT planning manager."
--Dr. Richard Mark Soley, Chairman and CEO, Object
Management Group; Executive Director, SOA Consortium
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
13.2 From Remote Stored Procedures to Services
13.3 Performance and Reusability
13.4 Performance and Backward Compatibility
13.5 Summary
14. SOA and Security
14.1 Security Requirements
14.2 Dealing with Security Requirements
14.3 SOA Security in Practice
14.4 Security with XML and Web Services
14.5 When Security Comes into Play
14.6 Summary
15. Technical Details
15.1 Services and State
15.2 Idempotency
15.3 Testing and Debugging
15.4 Dealing with Technical Data (Header Data)
15.5 Data Types
15.6 Error Handling
15.7 Summary
16. Web Services
16.1 Motivation for Using Web Services
16.2 Fundamental Web Services Standards
16.3 Web Services in Practice
16.4 Closing Notes
16.5 Summary
17. Service Management
17.1 The History of Service Brokers
17.2 Repositories and Registries
17.3 Summary
18. Model-Driven Service Development
18.1 Generated Service Code
18.2 Modeling Services
18.3 Meta Models in Practice
18.4 Setting Up MDSD Processes
18.5 Tools
18.6 Avoiding Bottlenecks
18.7 Summary
19. Establishing SOA and SOA Governance
19.1 Introducing SOA
19.2 SOA Governance
19.3 SOA Step-by-Step
19.4 Other SOA Approaches
19.5 Additional Recommendations
19.6 Summary
20. Epilogue
20.1 Is SOA Something New?
20.2 Does SOA Increase Complexity?
20.3 What Are the Key Success Factors for SOA?
20.4 Where Is SOA Not Appropriate?
20.5 Does SOA Replace OOP?
References
index
|