You are previewing SOA in Practice.
O'Reilly logo
SOA in Practice

Book Description

This book demonstrates service-oriented architecture (SOA) as aconcrete discipline rather than a hopeful collection of cloudcharts. Built upon the author's firsthand experience rolling out aSOA at a major corporation, SOA in Practice explains howSOA can simplify the creation and maintenance of large-scaleapplications. Whether your project involves a large set of WebServices-based components, or connects legacy applications tomodern 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 earthby describing the real-world problems of implementing and running aSOA in practice. After defining SOA's many facets, examiningtypical use patterns, and exploring how loose coupling helps buildstronger applications, SOA in Practice presents aframework to help you determine when to take advantage of SOA. Inthis book you will:

  • Focus squarely on real deployment and technology, not juststandards maps

  • Examine business problems to determine which ones fit a SOAapproach before plastering a SOA solution on top of them

  • Find clear paths for building solutions without getting trappedin the mire of changing web services details

  • Gain the experience of a systems analyst intimately involvedwith SOA

  • "The principles and experiences described in this book played animportant role in making SOA at T-Mobile a success story, with morethan 10 million service calls per day."--Dr. Steffen Roehn, Member of the Executive Committee T-MobileInternational (CIO)"Nicolai Josuttis has produced something that is rare in theover-hyped world of SOA; a thoughtful work with deep insights basedon hands-on experiences. This book is a significant milestone inpromoting practical disciplines for all SOA practitioners."--John Schmidt, Chairman, Integration Consortium"The book belongs in the hands of every CIO, IT Director and ITplanning manager."--Dr. Richard Mark Soley, Chairman and CEO, Object ManagementGroup; Executive Director, SOA Consortium

    Table of Contents

    1. SOA in Practice
      1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
      2. 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
      3. 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
      4. 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
      5. 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
      6. 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
      7. 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
      8. 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
      9. 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
      10. 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
      11. 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
      12. 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
      13. 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
      14. 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
      15. 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
      16. 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
      17. 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
      18. 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
      19. 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
      20. 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
      21. 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
      22. 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?
      23. References
      24. Glossary
      25. Index
      26. About the Author
      27. COLOPHON
      28. SPECIAL OFFER: Upgrade this ebook with O’Reilly