You are previewing Implementing SOA: Total Architecture in Practice.
O'Reilly logo
Implementing SOA: Total Architecture in Practice

Book Description

Putting Service-Oriented Architecture (SOA) into Practice

“This book is a must-have for enterprise architects implementing SOA. Through practical examples, it explains the relationship between business requirements, business process design, and service architecture. By tying the SOA implementation directly to business value, it reveals the key to ongoing success and funding.”
        —Maja Tibbling, Lead Enterprise Architect, Con-way, Inc.

“While there are other books on architecture and the implementation of ESB, SOA, and related technologies, this new book uniquely captures the knowledge and experience of the real world. It shows how you can transform requirements and vision into solid, repeatable, and value-added architectures. I heartily recommend it.”
        —Mark Wencek, SVP, Consulting Services & Alliances, Ultimo Software Solutions, Inc.

In his first book, Succeeding with SOA, Paul Brown explained that if enterprise goals are to be met, business processes and information systems must be designed together as parts of a total architecture. In this second book, Implementing SOA, he guides you through the entire process of designing and developing a successful total architecture at both project and enterprise levels. Drawing on his own extensive experience, he provides best practices for creating services and leveraging them to create robust and flexible SOA solutions.

Coverage includes

  • Evolving the enterprise architecture towards an SOA while continuing to deliver business value on a project-by-project basis

  • Understanding the fundamentals of SOA and distributed systems, the dominant architectural issues, and the design patterns for addressing them

  • Understanding the distinct roles of project and enterprise architects and how they must collaborate to create an SOA

  • Understanding the need for a comprehensive total architecture approach that encompasses business processes, people, systems, data, and infrastructure

  • Understanding the strategies and tradeoffs for implementing robust, secure, high-performance, and high-availability solutions

  • Understanding how to incorporate business process management (BPM) and business process monitoring into the enterprise architecture

  • Whether you’re defining an enterprise architecture or delivering individual SOA projects, this book will give you the practical advice you need to get the job done.

    Table of Contents

    1. Copyright
      1. Dedication
    2. Preface
      1. The SOA Architectural Challenges
      2. About the Book
      3. Acknowledgments
    3. About the Author
    4. I. Fundamentals
      1. 1. SOA and the Enterprise
        1. The Challenge
        2. The Concept of Total Architecture
        3. Architecture Is Structure for a Purpose
        4. Constant Changes
        5. Total Architecture Synthesis
        6. Making Total Architecture Work in Your Enterprise
        7. Key Overview Questions
      2. 2. Architecture Fundamentals
        1. Structural Organization
          1. Components
          2. Subcomponents
        2. Functional Organization
          1. Shared Resources
          2. Coping with Evolving Requirements
          3. The Temptation of Expediency
        3. Collaborative Behavior
          1. Activities
          2. Objects
          3. Communications
          4. Business Processes
        4. Total Architecture
        5. Nonfunctional Requirements
        6. Refinement
        7. The Role of the Architect
        8. Enterprise Architecture
          1. Architecture Styles
          2. Patterns
        9. Summary
        10. Key Architecture Fundamentals Questions
        11. Suggested Reading
      3. 3. Service Fundamentals
        1. What Is a Service?
          1. Operations
          2. Referenced Objects
          3. Owned Objects
          4. Owning Relationships
          5. Managing Cached Information
        2. Service Interfaces
          1. Common Access Technology
          2. Common Data Representation Technology
          3. Common Data Semantics
          4. Common Operation Semantics
          5. Choosing the Level of Interface Commonality
        3. The Rationale Behind Services
          1. Service Reuse
          2. Interface Stability
          3. Service Evolution
        4. Summary
        5. Key Service Fundamentals Questions
        6. Suggested Reading
      4. 4. Using Services
        1. Service Interaction Patterns
          1. Synchronous Request-Reply
          2. Asynchronous Request-Reply
          3. Subscription
          4. Unsolicited Notification
          5. Interaction Pattern Summary
        2. Service Access
          1. Direct Service Access
          2. Variations in Direct Service Access
            1. Service Lookup
            2. Proxy Access
          3. Direct Access Limitations
          4. Message-Based Service Access
        3. Access Control
          1. Policy Enforcement Points
          2. Access Control with Proxies
          3. Access Control with a Mediation Service
        4. Service Request Routing
          1. Load Distribution
          2. Location-Based Routing
          3. Content-Based Routing
        5. Service Composition
          1. Hard-Wired Composition
          2. Nested Composition
          3. Cached Composites
        6. Locating Services
        7. Enterprise Architecture for Services
        8. Summary
        9. Key Service Utilization Questions
        10. Suggested Reading
      5. 5. The SOA Development Process
        1. What Is Different about SOA Development?
        2. The Overall Development Process
        3. Architecture Tasks
        4. Architecture in Context
        5. Total Architecture Synthesis (TAS)
          1. Defining the Initial Scope
          2. Defining the Requirements
          3. Designing the Business Process Architecture
          4. Designing the Systems Architecture
          5. Evaluating Architectures
        6. Beware of Look-Alike Processes!
        7. Manage Risk: Architect Iteratively
        8. Summary
        9. Key Development Process Questions
        10. Suggested Reading
    5. II. The Business Process Perspective
      1. 6. Processes
        1. Triggers, Inputs, and Results
        2. Related Processes
        3. Process Maturity
        4. Continuous Processes
        5. Structured Processes
        6. Summary
        7. Key Process Questions
        8. Suggested Reading
      2. 7. Initial Project Scoping
        1. Assembling the Business Process Inventory
        2. Conducting Interviews
        3. Documenting the Inventory
          1. Goals and Stakeholders
          2. Primary Processes
          3. Related Processes
          4. Business Process Variants
          5. Process Metrics
        4. Ranking Business Processes
          1. The Ranking Scheme
          2. Combining the Scores
        5. Organizing the Remaining Work
        6. Summary
        7. Key Scoping Questions
      3. 8. The Artifice of Requirements
        1. Differentiation
          1. Differentiating Activities
          2. Differentiating Participants
          3. Design Is Differentiation
        2. Characterizing Processes
          1. Collaborations Represent Processes
          2. Collaboration Roles
          3. Participants May Be Unaware of their Roles
        3. Patterns of Interaction
          1. Use Case Descriptions
          2. Use Case Limitations
          3. UML Activity Diagrams
            1. Activity Diagram Strengths and Limitations
          4. The Interface Perspective
          5. Interaction Patterns Characterize Participants
        4. Requirements Reflect Design
          1. Requirements Specify Interaction Patterns
          2. Requirements Are Rarely Complete
        5. Summary
        6. Key Requirements Questions
        7. Suggested Reading
      4. 9. Business Process Architecture
        1. Results
        2. Participants and Their Roles
          1. Differentiating Participant Types and Roles
          2. Roles Often Require Role-Specific Activities
          3. Roles and Business Process Evolution
          4. Identifying and Understanding Roles
        3. Activities and Scenarios
          1. Scenarios and Variations
          2. Project Efficiency
        4. Modeling Scenarios
          1. Differentiating Participant Roles
          2. Assigning Activity Responsibilities
        5. Modeling Interactions
          1. Producer-Consumer Interactions
          2. Simultaneous Interactions
          3. Notational Shortcuts
          4. Scenario Variations
          5. Exception Handling
        6. How Much Detail Is Enough?
        7. Guidelines for Using Activity Diagrams
        8. Summary
        9. Key Business Process Architecture Questions
        10. Suggested Reading
      5. 10. Milestones
        1. Basic Process Milestones
        2. Variations in Milestone Sequences
        3. Grouped Milestones
        4. Recognizing Milestones Requires Design
        5. Using Milestones to Reduce Inter-Process Coupling
        6. Summary
        7. Key Milestone Questions
      6. 11. Process Constraints
        1. Business Process Constraints Drive System Constraints
        2. Performance Constraints
          1. Rates and Response Times
          2. Key Performance Indicators
          3. Performance Service-Level Agreements
        3. High Availability and Fault Tolerance
          1. Definition of Terms
          2. It’s All Relative
          3. Investment versus Risk
          4. Business Process Design Impacts Systems Investment
          5. Focus on Risk
          6. Risk-Related Service-Level Agreements
            1. Recovery Point Objective
            2. Availability
            3. Recovery Time Objective
        4. Security
        5. Reporting, Monitoring, and Management
          1. Reporting
          2. Monitoring
          3. Management
        6. Exception Handling
        7. Test and Acceptance
          1. Testing Can Impact System Design
          2. Testing Can Require Additional Components
          3. Testing Requires an Environment
        8. Compliance Constraints
        9. Summary
        10. Key Process Constraint Questions
        11. Suggested Reading
      7. 12. Related Processes
        1. Identifying Services
          1. Managing Shared State
          2. Refining the Service Definition
          3. Modeling Existing Processes
        2. Triggering Events
          1. Independent Processes
          2. Dependent Processes
          3. Towards Event-Driven Processes
        3. Summary
        4. Key Related Process Questions
      8. 13. Modeling the Domain
        1. UML Class Notation
        2. ATM Example Domain Model
        3. Reverse Engineering the Domain Model
        4. Domain Modeling Summary
        5. Key Domain Modeling Questions
        6. Suggested Reading
      9. 14. Enterprise Architecture: Process and Domain Modeling
        1. Process and Domain Modeling Responsibilities
        2. Establishing Standards and Best Practices
        3. Managing Process and Domain Knowledge Transfer
        4. Reviewing Project Models
        5. Maintaining the Business Process and Domain Model Repository
        6. Defining Business Process Patterns
        7. Defining Common Data Model Representations
        8. Summary
        9. Key Enterprise Process and Domain Modeling Questions
    6. III. The Systems Perspective
      1. 15. Systems Architecture Overview
        1. The Challenge of Architecting Distributed Systems
        2. Learning from the CORBA Experience
        3. Efficiently Exploring Architectures
          1. Sequencing Architecture Issues
          2. Periodic Architecture Evaluation
        4. Summary
        5. Key Systems Architecture Overview Questions
      2. 16. Top-Level Systems Architecture
        1. First-Cut Structure
        2. Initial Evaluation
        3. Communications and Modularization
          1. Communications Latency
          2. Communications Bandwidth
          3. Data Marshalling
          4. Geographic Distribution
          5. Consider Other Modularization Approaches
        4. Service Identification and Performance
        5. Modeling System Interactions
        6. Modeling Deployment
        7. Addressing Performance
          1. Peak Loads
          2. Response Times
          3. Response Time Test Specifications
        8. Early Architecture Evaluation
        9. Key Top-Level SystemsArchitecture Questions
        10. Suggested Reading
    7. IV. Communications
      1. 17. Transport
        1. Transport Technology
          1. Person-to-Person Interactions
          2. Human-to-System Transport
          3. System-to-System Transport
        2. Selecting Transports
        3. Messaging Server Topology
          1. Coping with Capacity Limitations
          2. Coping with Geographic Distribution
        4. Capacity
        5. Point-to-Point Interaction Patterns
        6. Point-to-Point Intermediaries
        7. Transport-Supplied Services
        8. Summary
        9. Key Transport Questions
        10. Suggested Reading
      2. 18. Adapters
        1. API-Based Adapters
        2. Database-Based Adapters
        3. Combining API and Database Approaches
        4. File-Based Adapters
        5. Protocol-Based Adapters
        6. Documenting Adapter Usage
        7. Summary
        8. Key Adapter Questions
      3. 19. Enterprise Architecture: Communications
        1. Defining a Communications Strategy
        2. Interaction Standards
        3. Standardizing Adapters
        4. Summary
        5. Key Enterprise Architecture Communications Questions
    8. V. Data and Operations
      1. 20. Data Challenges
      2. 21. Messages and Operations
        1. Message Semantics and Operation Names
          1. Message Semantics
          2. Operation Naming
        2. Transport Destinations and Operation Bundling
          1. Bundling Advantages
          2. Bundling Disadvantages
          3. Compromises
          4. Mediated Transports
        3. Content Representation
        4. Content Transformation
        5. Reference Data in Content Transformation
        6. Summary
        7. Key Messages and Operations Questions
      3. 22. Data Consistency: Maintaining One Version of the Truth
        1. Approaches to Maintaining Data Consistency
        2. Cached Data with a Single System of Record
        3. Coordinated Updates via Distributed Transactions
        4. Edit Anywhere, Reconcile Later
        5. Dealing with Data Inconsistencies
        6. Data Management Business Processes
        7. Summary
        8. Key Data Consistency Questions
        9. Suggested Reading
      4. 23. Common Data Models (CDM)
        1. What Is a Common Data Model?
        2. CDM Relationship to the Domain Model
        3. The Need for Multiple CDM Representations
        4. Planning for CDM Changes
          1. Schema Versioning
            1. Versioning with Point-to-Point Communications
            2. Versioning with Broadcast Communications
          2. Versioning with Additive Changes
          3. Schema Migration Governance
        5. When to Use Common Data Models
          1. Criteria for Choosing Direct Transformation
          2. Criteria for Choosing a Common Data Model
        6. Summary
        7. Key Common Data Model Questions
      5. 24. Identifiers (Unique Names)
        1. Identity (Unique Name) Authorities
        2. Hierarchical Identifiers
          1. Hierarchical Identifiers within the Enterprise
          2. UUIDs and GUIDs
        3. Coping with Identity Errors
          1. Consequences of Identity Errors
          2. Sources of Identity Errors
          3. Associating an Identifier with the Wrong Object
          4. Associating an Identifier with More than One Real-World Object
            1. Recycling Identifiers
            2. Mistakes in Merging Information
            3. Design Considerations
          5. Multiple Identifiers for the Same Object
        4. Mapping Identifiers
          1. Correlating Identifiers
        5. Summary
        6. Key Identifier Questions
      6. 25. Results Validation
        1. Checking Enumerated Values
        2. Where and When to Validate
        3. Summary
        4. Key Data Validation Questions
      7. 26. Enterprise Architecture: Data
        1. Naming Schemes
        2. Architecting Content Transformation
        3. Systems of Record
        4. Common Data Models
        5. Identifiers
        6. Data Quality Management
        7. Summary
        8. Key Enterprise Architecture Data Questions
    9. VI. Coordination
      1. 27. Coordination and Breakdown Detection
        1. Activity Execution Management Patterns (AEMPs) Involving Interactions
        2. Coordination Pattern Styles
        3. Fire-and-Forget Coordination Patterns
          1. Event-Driven Two-Party Fire-and-Forget
          2. Event-Driven Multi-Party Fire-and-Forget
          3. Breakdown Detection in Fire-and-Forget
          4. Non-Event-Driven Fire-and-Forget
        4. Request-Reply Patterns
          1. Event-Driven Two-Party Request-Reply
          2. Reply-Time Service-Level Agreements
          3. Event-Driven Multi-Party Request-Reply
          4. Event-Driven Asynchronous Request-Reply
          5. Complexities in Asynchronous Request-Reply
          6. Synchronous Promise with Asynchronous Result
        5. Delegation
        6. Delegation with Confirmation
        7. Summary
        8. Key Coordination Questions
      2. 28. Transactions: Coordinating Two or More Activities
        1. Two-Phase Commit Distributed Transactions
        2. Limitations of Two-Phase Commit Protocols
        3. Compensating Transactions
        4. Working around the Limitations of Compensating Transactions
        5. Summary
        6. Key Transaction Questions
        7. Suggested Reading
      3. 29. Process Monitors and Managers
        1. Process Monitoring
        2. Minimizing the Impact of Monitoring Breakdowns
        3. The Process Manager as a Monitor
        4. Process Management Limitations
        5. Summary
        6. Key Process Monitoring and Management Questions
      4. 30. Detecting and Responding to Breakdowns
        1. Selecting Coordination Patterns to Improve Breakdown Detection
        2. Responding to Breakdowns
          1. Recording Breakdowns
          2. Annunciating Breakdowns
          3. Responding to Breakdown Annunciations
          4. Recovering from Breakdowns
            1. Resiliency
            2. Recovering Work in Progress
            3. Automated versus Manual Recovery Implementation
        3. Summary
        4. Key Breakdown Detection and Recovery Questions
      5. 31. Enterprise Architecture: Coordination
        1. Preferred Coordination Patterns
        2. Breakdown Recording
        3. Breakdown Annunciation
        4. Recovery Processes
        5. Summary
        6. Key Enterprise Coordination Questions
    10. VII. High Availability, Fault Tolerance, and Load Distribution
      1. 32. High Availability and Fault Tolerance Fundamentals
        1. Fault Tolerance Strategies
        2. Failure Detection Strategies
          1. Direct Component Monitoring
          2. Heartbeat Monitoring
            1. The Ping-Pong Effect (Split-Brain Syndrome)
            2. Brain-Dead Failures
          3. Liveness Checks
        3. Failover Management
        4. Redirecting Clients
        5. Summary
        6. Key High-Availability and Fault Tolerance Questions
      2. 33. Stateless and Stateful Failover
        1. Stateless and Stateful Components
        2. Stateless Failover
        3. Saving Work in Progress through Coordination
        4. Stateful Failover
        5. Storage Replication
          1. Synchronous Replication within a Component
          2. Synchronous Replication between Components
          3. Asynchronous Replication and Data Loss
          4. Persistent-State Component Failover
        6. Summary
        7. Key Failover Questions
        8. Suggested Reading
      3. 34. Multiple Component Failover
        1. Intra-Site versus Inter-Site Failover
        2. Clustering: An Intra-Site Failover Technique
        3. Coordinating Peer Application Failover with Asynchronous Replication
        4. Making a Business Process Fault-Tolerant
        5. Summary
        6. Key Multi-Component Failover Questions
      4. 35. Workload Distribution
        1. Work Assignment Strategies
        2. Distribution Management and Work Completion
        3. The Sequencing Problem
          1. Centralized Sequence Management
          2. Distributed Sequence Management
        4. Access to Shared Persistent State
        5. Geographic Workload Distribution
        6. Summary
        7. Key Workload Distribution Questions
      5. 36. Enterprise Architecture: Fault Tolerance, High Availability, and Load Distribution
        1. Business Process Categorization
        2. Information Storage
        3. Individual Component and Service Failover Patterns
        4. Composite Patterns for FT and HA Services
        5. Composite Patterns for FT and HA Business Processes
        6. Summary
        7. Key Enterprise Fault Tolerance, High-Availability, and Load Distribution Questions
        8. Suggested Reading
    11. VIII. Completing the Architecture
      1. 37. Process Security
        1. Security Information Classification
        2. Identity and Authentication
          1. The Authentication Process
          2. Reference Data for Authentication
        3. Authorization
          1. The Granularity Problem
          2. Groups and Roles
          3. Group and Role Limitations
        4. Encryption
        5. Digital Signatures
        6. Other Security-Related Requirements
        7. Reference Data Servers and Performance
        8. Trust Zones
        9. Channel Enforcement
        10. Zone Enforcement and Policy Agents
        11. Multi-Zone Security
        12. Summary
        13. Key Security Questions
        14. Suggested Reading
      2. 38. Process Monitoring
        1. Performance Monitoring
          1. Monitoring at One Point
          2. Uncorrelated Monitoring at Two Points
          3. Correlated Monitoring at Two Points
        2. Monitoring Process Status
        3. Supervisory Processes
        4. The Impact of Monitoring on Performance
        5. Summary
        6. Key Process Monitoring Questions
      3. 39. Architecture Evaluation
        1. Usability
        2. Performance
          1. Component Resource Demand Analysis
          2. Estimating CPU Requirements
          3. Messaging and Disk Performance
            1. Estimating Disk Performance
            2. Achieving Throughputs in Excess of Estimated Single-Disk Capacity
          4. Deployment Load Analysis
          5. Evolving the Load Model
        3. Cost and Schedule Feasibility
        4. Observability
        5. Ability to Evolve
        6. Ability to Handle Stress Situations
        7. Summary
        8. Key Architecture Evaluation Questions
        9. Suggested Reading
      4. 40. Testing
        1. Unit Testing, Test Harnesses, and Regression Testing
        2. Integration Testing and Order of Assembly
        3. Environments for Functional and System Testing
        4. Performance Testing
          1. Making Capacity Measurements
          2. System Capacity Testing
        5. Failure Mode Testing
        6. Summary
        7. Key Testing Questions
    12. IX. Advanced Topics
      1. 41. Representing a Complex Process
        1. Eliding Communications Detail
        2. Eliding Participant Activity Details
        3. Eliding Supporting Participants
        4. Abstracting Subprocesses
        5. Summary
        6. Key Complex Process Representation Questions
      2. 42. Process Management and Workflow
        1. Process Management
          1. Process Management Goals
          2. The Management Process Is Not the Work Process!
          3. Maintaining Separation between Processes and Work
            1. Explicitly Represent Milestone Status
            2. Store Work-Related Data outside the Workflow Engine
        2. Styles of Work Assignment
          1. Work Queues and Work Assignments
            1. Individual Queues
            2. Group Queues
        3. Initiating Workflow
        4. Making the Management Process Fault Tolerant
          1. Using Fault-Tolerant Workflow Engines
          2. Checkpointing the Management Process State
          3. Request-Reply Invocation of the Management Process
          4. Hybrid Fault Tolerance Techniques
        5. Human Interfaces
          1. Work Assignment Responsibilities
          2. Data Responsibilities
          3. User Interface Failure Recovery
        6. Related Processes
        7. Prioritized Work
        8. Dynamic Work Assignments
        9. Dynamic Result and Process Definitions
          1. Representing a Design
          2. Specifying an Implementation Process
          3. Accommodating Subsequent Changes
        10. Summary
        11. Key Process Management and Workflow Questions
        12. Suggested Reading
      3. 43. The Enterprise Architecture Group
        1. Half a Group Is Better than None—But Not Good Enough
        2. Best Practice Development
        3. Knowledge Transfer
          1. Documentation
          2. Training
          3. Mentoring
        4. Governance
        5. Designing with Evolving Requirements
          1. Hierarchical Architectures
          2. Geographic Deployment
          3. Organizational Alignment
        6. Summary
        7. Key Enterprise Architecture Group Questions
      4. Afterword
        1. Focus Your Work
        2. Seek the Expertise of Others
        3. Be Pragmatic, But Consider the Long View