SOA in Practice

Book 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
"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

Publisher resources

View/Submit Errata

Table of contents

  1. Preface
    1. What You Should Know Before Reading This Book
    2. Structure of the Book
    3. Conventions Used in This Book
    4. Additional Information
    5. Safari® Books Online
    6. Feedback, Comments, and Questions
    7. Acknowledgments
  2. 1. Motivation
    1. Characteristics of Large Distributed Systems
    2. The Tale of the Magic Bus
    3. What We Can Learn from the Tale of the Magic Bus
    4. History of SOA
    5. SOA in Five Slides
      1. Slide 1: SOA
      2. Slide 2: Policies and Processes
      3. Slide 3: Web Services
      4. Slide 4: SOA in Practice
      5. Slide 5: SOA Governance and Management Support
  3. 2. SOA
    1. Definitions of SOA
      1. SOA Is a Paradigm
      2. SOA Aims to Improve Flexibility
    2. SOA Drivers
      1. Distributed Systems
      2. Different Owners
      3. Heterogeneity
    3. SOA Concepts
      1. Services
      2. High Interoperability
      3. Loose Coupling
    4. SOA Ingredients
      1. Infrastructure
      2. Architecture
      3. Processes
      4. Governance
    5. SOA Is Not a Silver Bullet
    6. SOA Is Not a Specific Technology
    7. SOA Versus Distributed Objects
    8. SOA Terminology
    9. Summary
  4. 3. Services
    1. Services
      1. Services Represent Business Functionality
    2. Interfaces and Contracts
    3. Additional Service Attributes
      1. Self-Contained
      2. Coarse-Grained
      3. Visible/Discoverable
      4. Stateless
      5. Idempotent
      6. Reusable
      7. Composable
      8. Technical
      9. QoS- and SLA-Capable
      10. Pre- and Post-Conditions
      11. Vendor-Diverse
      12. Interoperable
      13. Implemented As Web Services
    4. Summary
  5. 4. Loose Coupling
    1. The Need for Fault Tolerance
    2. Forms of Loose Coupling
      1. Asynchronous Communication
      2. Heterogeneous Data Types
      3. Mediators
      4. Weak Type Checking
      5. Binding
      6. Platform Dependencies
      7. Interaction Patterns
      8. Compensation
      9. Control of Process Logic
      10. Deployment
      11. Versioning
    3. Dealing with Loose Coupling
    4. Summary
  6. 5. The Enterprise Service Bus
    1. ESB Responsibilities
    2. Heterogeneous ESBs
    3. ESB Differences
      1. Point-to-Point Connections Versus Mediation
      2. Interceptors
      3. Protocol-Driven Versus API-Driven ESB
    4. Value-Added ESB Services
      1. Data Mapping
      2. Intelligent Routing
      3. Dealing with Security
      4. Dealing with Reliability
      5. Service Management
      6. Monitoring and Logging
      7. Business Activity Monitoring (BAM)
      8. Service Implementation Support
    5. Summary
  7. 6. Service Classification
    1. A Fundamental Service Classification
    2. Basic Services
      1. Basic Data Services
      2. Basic Logic Services
      3. Fundamental SOA
    3. Composed Services
      1. Composed Services for Multiple Backends
      2. Composed Services for One Backend
      3. Federated SOA
      4. Security
    4. Process Services
      1. Process-Enabled SOA
      2. Service State Versus Backend State
    5. Other Service Classifications
      1. Dealing with Different Types of Consumers
      2. Reading Versus Writing Services
      3. Business Categorizations
        1. Categorization according to Erl
        2. Categorization according to Allen
    6. Technical and Infrastructure Services
    7. Beyond Services
    8. Summary
  8. 7. Business Process Management
    1. BPM Terminology
    2. BPM and SOA
    3. Example for BPM with Services
    4. Business Process Modeling
      1. Using Business Process Modeling Tools
      2. BPEL
      3. Other Business Process Modeling Standards
      4. Business Process Modeling with BPEL in Practice
    5. Other Approaches to Identifying Services
      1. Portfolio Management
      2. Don’t Switch Off Your Brain
    6. Orchestration Versus Choreography
      1. Choreography and SOA
    7. A Few More Things to Think About
    8. Summary
  9. 8. SOA and the Organization
    1. Roles and Organizations
      1. From Monolithic Systems to Distribution
      2. Solution Management
      3. Collaboration
      4. Management Support
    2. Funding Models
    3. Summary
  10. 9. SOA in Context
    1. SOA-Based Architecture Models
      1. Logical Architecture Models
      2. Mixed Architecture Models
      3. Technical Architecture Models
      4. Choosing the Right Architecture Model
    2. Dealing with Frontends and Backends
      1. Roles and Responsibilities
      2. Multilayer Validation
      3. Multifrontendchannel Scenarios
      4. Multiapplication Frontends
      5. Future Management
    3. Summary
  11. 10. Message Exchange Patterns
    1. Introduction to MEPs
    2. Basic MEPs
      1. Request/Response
      2. One-Way
      3. Request/Response Versus Two One-Way Messages
    3. More Complicated MEPs
      1. Request/Callback
      2. Publish/Subscribe
    4. Dealing with Reliability and Errors
      1. Fault Messages
      2. Technical Errors
    5. Dealing with Different MEP Layers
    6. Event-Driven Architecture
    7. Summary
  12. 11. Service Lifecycle
    1. Services Under Development
      1. Iterative Service Development
      2. Service Identification
    2. Services in Production
      1. Modifying Services in Production
      2. Withdrawing a Service
    3. Summary
  13. 12. Versioning
    1. Versioning Requirements
    2. Domain-Driven Versioning
      1. Trivial Domain-Driven Versioning
      2. Nontrivial Domain-Driven Versioning
    3. Versioning of Data Types
      1. Using Different Types for Different Versions of a Data Type
      2. Using the Same Type for Different Versions of a Data Type
      3. Using Generic Data Types
      4. Summary of Versioning of Data Types
    4. Configuration-Management-Driven Versioning
    5. Versioning in Practice
      1. Modifications Should Impact Only the Provider and Consumer(s)
      2. Call Constraints Should be Considered
    6. Summary
  14. 13. SOA and Performance
    1. Where Performance Matters
    2. From Remote Stored Procedures to Services
    3. Performance and Reusability
      1. Call Constraints
      2. Customized Services
      3. Reusability in Practice
    4. Performance and Backward Compatibility
    5. Summary
  15. 14. SOA and Security
    1. Security Requirements
    2. Dealing with Security Requirements
      1. Interoperability Versus Security
      2. Heterogeneity and Security
      3. Distributed Processes and Many Layers of Abstraction
      4. Multiclient Capabilities
    3. SOA Security in Practice
      1. Infrastructures Don’t Provide Sufficient Security
      2. Dealing with Confidentiality and Integrity
      3. Security as a Service
      4. Security, Performance, and State
      5. Security in Reality
    4. Security with XML and Web Services
      1. SAML
      2. XML and Web Services Security Standards
      3. XML and Web Services Attacks
    5. When Security Comes into Play
    6. Summary
  16. 15. Technical Details
    1. Services and State
      1. Stateless Services
      2. Stateful Services
      3. Why Stateless Services Are Better
      4. Stateless Services in Practice
    2. Idempotency
      1. Idempotent Services
      2. Implementing Idempotency
    3. Testing and Debugging
      1. Unit Tests
      2. Distributed Testing
      3. Correlation IDs
    4. Dealing with Technical Data (Header Data)
    5. Data Types
      1. Fundamental Data Types
      2. Reference Semantics
      3. Higher Data Types
    6. Error Handling
    7. Summary
  17. 16. Web Services
    1. Motivation for Using Web Services
      1. What Are Web Services?
      2. History of Web Services
    2. Fundamental Web Services Standards
      1. WSDL
      2. WSDL by Example
      3. SOAP
      4. UDDI
    3. Web Services in Practice
      1. Open Standardization
      2. Protocol Aspects
      3. The WSDL Lifecycle
      4. WSDL Deficits
      5. So, Should You Use Web Services?
    4. Closing Notes
    5. Summary
  18. 17. Service Management
    1. The History of Service Brokers
    2. Repositories and Registries
      1. Designing Repositories and Registries
      2. Establishing Repositories and Registries
    3. Summary
  19. 18. Model-Driven Service Development
    1. Generated Service Code
    2. Modeling Services
      1. Terminology
      2. The Model-Driven Tool Chain
    3. Meta Models in Practice
    4. Setting Up MDSD Processes
      1. Consumer-Driven Transformations
      2. Provider-Driven Transformations
      3. Third-Party-Driven Transformations
      4. MDSD Processes in Practice
      5. Labeling
      6. Debugging
      7. Manually Modified Generated Code
      8. The Code-Generation Granularity Dilemma
      9. Deployment and Robustness
    5. Tools
      1. XSLT
      2. MDSD Tools
    6. Avoiding Bottlenecks
    7. Summary
  20. 19. Establishing SOA and SOA Governance
    1. Introducing SOA
    2. SOA Governance
      1. Definition of Governance
      2. Central SOA Teams
    3. SOA Step-by-Step
      1. Step 1: Understand SOA
      2. Step 2: The SOA Pilot
      3. Step 3: The Second and Third SOA Projects
      4. Step 4: Grow and Become a General Strategy
      5. Tasks Necessary over All Steps
    4. Other SOA Approaches
      1. The “Four Ps,” by Pulier and Taylor
      2. Architectural Roadmap, by Krafzig, Banke, and Slama
      3. Top-Down or Bottom-Up, by Krafzig and Slama
      4. SOA Drivers, by Anne Thomas Manes
      5. Essence of Different SOA Approaches
    5. Additional Recommendations
      1. Policies
      2. Dealing with People
      3. SOA Maturity Models
    6. Summary
  21. 20. Epilogue
    1. Is SOA Something New?
    2. Does SOA Increase Complexity?
    3. What Are the Key Success Factors for SOA?
    4. Where Is SOA Not Appropriate?
    5. Does SOA Replace OOP?
  22. References
  23. Glossary
  24. Index
  25. About the Author
  26. COLOPHON
  27. Copyright

Product information

  • Title: SOA in Practice
  • Author(s): Nicolai M. Josuttis
  • Release date: August 2007
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9780596529550