You are previewing Integration Patterns.
O'Reilly logo
Integration Patterns

Book Description

Get expert guidance for using architecture and design patterns as well as implementation patterns that apply specifically to Microsoft® BizTalk® Server 2004, Host Integration Server 2004, and the .NET Framework?to solve common system integration issues.

Table of Contents

  1. Integration Patterns: Patterns & Practices
  2. Preface
    1. Who Should Read This Book
    2. How This Book Is Organized
    3. Documentation Conventions
    4. Community
    5. Feedback and Support
    6. Contributors
    7. About the Principal Authors
  3. 1. Integration and Patterns
    1. The Problem of Integration
      1. Integration Architecture
      2. Applications
    2. The Global Bank Scenario
      1. Context
      2. Requirements
      3. Next Steps
    3. Patterns
      1. Patterns in Sports
      2. Patterns in Music
      3. Pattern Structure
      4. Pattern-Based Design
        1. Experience is Key
        2. Applying Patterns
    4. Patterns at Global Bank
    5. Next Chapter
  4. 2. Using Patterns to Design the Baseline Architecture
    1. Meeting the Requirements of Global Bank
      1. Using Patterns to Communicate Design Decisions
      2. The Role of a Baseline Architecture
    2. Designing the Global Bank Baseline Architecture
      1. View Scheduled Payments Use Case
        1. System Connections
          1. Connecting to the Payment System
          2. Connecting to the CRM System
          3. Connecting to the Mainframe
          4. Connecting to Loan Systems
        2. Integration Topology
      2. Adding a Message Broker for the Loan Systems
      3. Execute Scheduled Payment Use Case
        1. Focusing on the Baseline Architecture
        2. Payment Channels
        3. Using Domain Knowledge to Guide Design Decisions
        4. Using SWIFT Gateway for the Baseline Architecture
      4. Designing for Execute Scheduled Payment and Receive Payment Response
        1. Process Integration
        2. Message Broker for Payment Channels
        3. Message Broker Using Functional Integration with SOI
        4. Models for Execute Scheduled Payment and Receive Payment Response
      5. Accessing Account Services on the Mainframe
        1. Gateway
        2. Performance vs. Extensibility Tradeoff
      6. The Portal Web Application
        1. Application vs. Integration Patterns
      7. Global Bank Portal Application
      8. Implementing the Global Bank Scenario
    3. Next Chapter
  5. 3. Integrating Layer
    1. Level of Automation
    2. Level of Abstraction
    3. Maintaining State
    4. Coupling
    5. Semantic Dissonance
    6. Choosing an Integration Layer Type
      1. Portal Integration
      2. Entity Aggregation
      3. Process Integration
    7. Integrating Layer Patterns
    8. Entity Aggregation
      1. Context
      2. Problem
      3. Forces
      4. Solution
        1. Approach
          1. Straight-Through Processing
          2. Replication
        2. Design Considerations
          1. Entity Representation
          2. Schema Reconciliation
          3. References
          4. Inquiry vs. Update
          5. Ownership
          6. Change Management
      5. Example
      6. Resulting Context
        1. Benefits
        2. Liabilities
      7. Testing Considerations
      8. Security Considerations
      9. Operational Considerations
      10. Known Uses
      11. Related Patterns
    9. Process Integration
      1. Context
      2. Problem
      3. Forces
      4. Solution
      5. Implementation Details
        1. Correlating Messages and Process Instances
        2. Transactions
        3. Handling Exceptions and Compensating Transactions
      6. Example
      7. Resulting Context
        1. Benefits
        2. Liabilities
      8. Testing Considerations
      9. Related Patterns
      10. Acknowledgments
    10. Implementing Process Integration with BizTalk Server 2004
      1. Context
      2. Background
      3. Implementation Strategy
        1. Correlating Messages and Process Instances
        2. Long-Running Transactions
        3. Handling Exceptions and Compensating Transactions
        4. Implementing the Execute Scheduled Payments Orchestration
      4. Example
        1. Step 1: Receiving a Payment Request
        2. Step 2: Designing the Payment Message Schema
        3. Step 3: Calling a Web Service to Debit the Account
        4. Step 4: Handling Exceptions
        5. Step 5: Checking for Errors
        6. Step 6: Sending the Payment and Receiving an Acknowledgment
        7. Step 7: Compensating for Payment Errors
        8. Step 8: Deploying the Orchestration
        9. Step 9: Setting Up Send and Receive Ports
        10. Step 10: Setting Up the SQL Server Adapter
        11. Step 11: Starting the Orchestration
      5. Resulting Context
        1. Benefits
        2. Liabilities
      6. Testing Considerations
      7. Security Considerations
      8. Operational Considerations
      9. Related Patterns
      10. Acknowledgments
    11. Portal Integration
      1. Context
      2. Problem
      3. Forces
      4. Solution
      5. Example
      6. Resulting Context
        1. Benefits
        2. Liabilities
  6. 4. System Connections
    1. Connecting to Layered Applications
    2. Data Integration
    3. Presentation Integration
    4. Functional Integration
      1. Credit Scoring Example
      2. Kinds of Functional Integration
    5. System Connection Patterns
    6. Data Integration
      1. Context
      2. Problem
      3. Forces
      4. Solution
      5. Example
      6. Resulting Context
        1. Shared Database
        2. Maintain Data Copies
        3. File Transfer
        4. Choosing Between Alternatives
        5. Benefits
        6. Liabilities
        7. Testing Considerations
        8. Security Considerations
        9. Related Patterns
      7. Acknowledgments
    7. Functional Integration
      1. Context
      2. Problem
      3. Forces
      4. Solution
      5. Resulting Context
        1. Distributed Object Integration
        2. Message-Oriented Middleware Integration
        3. Service-Oriented Integration
        4. Choosing Between Alternatives
          1. Choosing Distributed Objects
          2. Choosing Message-Oriented Middleware Integration
          3. Service-Oriented Integration
          4. Combining Distributed Objects, Message-Oriented Middleware, and Services
        5. Benefits
        6. Liabilities
      6. Testing Considerations
      7. Security Considerations
      8. Acknowledgments
    8. Service-Oriented Integration
      1. Context
      2. Problem
      3. Forces
      4. Solution
        1. Web Services
        2. Resolving the Forces
          1. Use Document/Literal SOAP Styles and Encoding
          2. Combine Synchronous and Asynchronous Behavior to Address Temporal Coupling
          3. Global Bank’s Asynchronous Business Process
          4. Recognize Explicit Boundaries
          5. Treat Services as Autonomous
      5. Example
      6. Resulting Context
        1. Benefits
        2. Liabilities
      7. Security Considerations
      8. Related Patterns
      9. Acknowledgments
    9. Implementing Service-Oriented Integration with ASP.NET
      1. Context
      2. Background
      3. Implementation Strategy
        1. Service-Oriented Integration
        2. ASP.NET Web Services
        3. Building an ASP.NET Web Service
          1. Developing the Code First
          2. Specifying XML Schemas First
          3. Developing WSDL First
      4. Example: Building an ASP.NET Web Service to Access the Mainframe Gateway
        1. Step 1: Develop XSD Documents
        2. Step 2: Generate Data Transfer Classes
        3. Step 3: Define the Operations That the Service Exposes
        4. Step 4: Connect the Service Interface to the Service Implementation
          1. Step 4.1: Create an Interface
          2. Step 4.2: Create the Service Implementations
          3. Step 4.3: Create the Plug-in Factory
          4. Step 4.4: Implement the Web Service Method
        5. Step 5: Build and Run the Web Service
          1. Types
          2. Messages
          3. Bindings
          4. Service
        6. Step 6: Create a Test Client
      5. Resulting Context
        1. Benefits
        2. Liabilities
      6. Testing Considerations
        1. Service Interface Separation
        2. Service Stub
      7. Security Considerations
      8. Acknowledgments
    10. Implementing Service-Oriented Integration with BizTalk Server 2004
      1. Context
      2. Background
      3. Implementation Strategy
        1. Service-Oriented Integration
        2. Exposing a BizTalk Orchestration as a Web Service
      4. Example
        1. Asynchronous Interaction
        2. Implementing Asynchronous Web Services
        3. Building the Solution
          1. Step 1: Define the Message Schemas for Inbound and Outbound Messages
          2. Step 2: Define Logical Request-Response Ports
          3. Step 3: Define the Orchestration and Connect It to the Logical Port
          4. Step 4: Build and Deploy the Orchestration
          5. Step 5: Run the BizTalk Web Services Publishing Wizard
          6. Step 6: Bind the Orchestration’s Logical Port to the Physical Port
          7. Step 7: Start the Orchestration
          8. Step 8: Create a Test Client That Invokes the Web Service
      5. Resulting Context
        1. Benefits
        2. Liabilities
      6. Testing Considerations
      7. Security Considerations
      8. Operational Considerations
      9. Acknowledgments
    11. Presentation Integration
      1. Aliases
      2. Context
      3. Problem
      4. Forces
      5. Solution
      6. Example
      7. Resulting Context
        1. Benefits
        2. Liabilities
      8. Testing Considerations
      9. Security Considerations
      10. Acknowledgments
  7. 5. Integration Topologies
    1. Point-to-Point Connection
    2. Broker
      1. Broker Examples
        1. DCOM
        2. .NET Framework Remoting
        3. CORBA
        4. UDDI
        5. BizTalk Server 2004
    3. Message Bus
    4. Publish/Subscribe
      1. List-Based Publish/Subscribe
      2. Broadcast-Based Publish/Subscribe
      3. Content-Based Publish/Subscribe
    5. A More Detailed Look at Topologies
      1. Topology Levels
        1. Physical Topology Level
        2. Logical Topology Level
        3. Integration Topology Level
    6. Using Topologies Together
      1. Point-to-Point Connection
      2. Broker
      3. Message Bus and Publish/Subscribe
        1. Message Bus with Broadcast-Based Publish/Subscribe
        2. Message Bus with List-Based Publish/Subscribe
        3. Message Bus with Content-Based Publish/Subscribe
    7. Integration Topology Level Patterns
    8. Message Broker
      1. Aliases
      2. Context
      3. Problem
      4. Forces
      5. Solution
      6. Example
      7. Resulting Context
        1. Benefits
        2. Liabilities
      8. Testing Considerations
      9. Security Considerations
      10. Operational Considerations
      11. Known Uses
      12. Variants
      13. Related Patterns
      14. Acknowledgments
    9. Implementing Message Broker with BizTalk Server 2004
      1. Context
      2. Background
      3. Implementation Strategy
      4. Example
        1. Step 1: Create the Receive Port and Define Message Schemas
        2. Step 2: Define Maps to Convert Between Message Formats
        3. Step 3: Create Subscriptions to Messages
      5. Resulting Context
        1. Benefits
        2. Liabilities
      6. Testing Considerations
      7. Security Considerations
      8. Operational Considerations
      9. Variants
      10. Business Rule Engine
        1. Roles and Parties
      11. Related Patterns
      12. Acknowledgments
    10. Message Bus
      1. Context
      2. Problem
      3. Forces
      4. Solution
        1. Message Bus with List-Based Publish/Subscribe
        2. Message Bus with Broadcast-Based Publish/Subscribe
        3. Message Bus with Content-Based Publish/Subscribe
      5. Example
      6. Resulting Context
        1. Benefits
        2. Liabilities
      7. Security Considerations
      8. Operational Considerations
      9. Related Patterns
      10. Acknowledgments
    11. Publish/Subscribe
      1. Aliases
      2. Context
      3. Problem
      4. Forces
      5. Solution
        1. List-Based Publish/Subscribe
        2. Broadcast-Based Publish/Subscribe
        3. Content-Based Publish/Subscribe
        4. Applying Publish/Subscribe
          1. Related Decisions
          2. Responsibilities and Collaborations
      6. Example
      7. Resulting Context
        1. Benefits
        2. Liabilities
      8. Testing Considerations
      9. Security Considerations
      10. Operational Considerations
      11. Related Patterns
      12. Acknowledgments
  8. 6. Additional Integration Patterns
    1. Pipes and Filters
    2. Gateway
    3. Integration Layers Patterns
    4. Pipes and Filters
      1. Aliases
      2. Context
      3. Problem
      4. Forces
      5. Solution
      6. Example
      7. Resulting Context
        1. Benefits
        2. Liabilities
      8. Testing Considerations
      9. Known Uses
      10. Related Patterns
      11. Acknowledgments
    5. Implementing Pipes and Filters with BizTalk Server 2004
      1. Context
      2. Background
      3. Implementation Strategy
      4. Example
        1. Step 1: Create a Custom Send Pipeline
        2. Step 2: Assign and Configure the Filters
        3. Step 3: Build and Deploy the Pipeline
        4. Step 4: Assign Certificates to BizTalk Server 2004
        5. Step 5: Configure the Send Port to Use the Custom Pipeline
      5. Resulting Context
        1. Benefits
        2. Liabilities
      6. Testing Considerations
      7. Security Considerations
      8. Operational Considerations
      9. Acknowledgments
    6. Gateway
      1. Context
      2. Problem
      3. Forces
      4. Solution
      5. Example
      6. Resulting Context
        1. Benefits
        2. Liabilities
      7. Testing Considerations
      8. Security Considerations
      9. Operational Considerations
      10. Related Patterns
      11. Acknowledgments
    7. Implementing Gateway with Host Integration Server 2004
      1. Context
      2. Background
      3. Implementation Strategy
        1. Step 1: Select the Programming Model
          1. LU 6.2 Link Model: Components
          2. Using a Model Other Than LU 6.2 Link
        2. Step 2: Configure the Mainframe Environment
        3. Determine If Changes Are Required to the Existing Transactions
        4. Step 3: Configure the TI Metadata File
          1. Determining the Transaction’s Link-to-Program Name
          2. Importing COBOL by Using the COBOL Import Wizard in TI Designer
        5. Step 4: Configure Network Protocol Connectivity
          1. Configuring LU 6.2 Access
          2. Configuring TCP/IP Access to Mainframe Transactions
        6. Step 5: Configure a Remote Environment
        7. Step 6: Add an IIS Virtual Directory
        8. Step 7: Configure a Windows-Initiated Processing Object
        9. Step 8: Implement a .NET Framework Client Application to Invoke the TI Client Interfaces
      4. Example
        1. Components
        2. Functions
        3. Step 1: Select the Programming Model
        4. Step 2: Configure the Mainframe Environment
        5. Step 3: Configure the TI Metadata File
        6. Step 4: Configure Network Protocol Connectivity
        7. Step 5: Configure a TI Remote Environment
        8. Step 6: Add an IIS Virtual Directory
        9. Step 7: Configure a Windows-Initiated Processing Object
        10. Step 8: Implement a .NET Framework Client Application
      5. Resulting Context
        1. Benefits
        2. Liabilities
      6. Tests
  9. 7. Project Notebook
    1. Interpreting the Artifacts
    2. Global Bank Business Context
      1. Convergence in the Banking Industry
    3. Stakeholder Viewpoints
      1. Board of Directors Viewpoint
        1. Value Proposition for Online Services
        2. Capital Expenditure
      2. Chief Executive Officer
        1. Evaluating the Current Situation
        2. Formulating a Strategy
      3. General Manager of Banking
        1. Banking Services Bundle
      4. Director of Electronic Bill Presentment and Payment
      5. Electronic Bill Presentment and Payment Supervisor
    4. From Business Scenario to Technical Solution
      1. Viewpoints Within the Enterprise Architecture
      2. Business Architecture Views
        1. CEO’s View
        2. General Manager’s View
        3. Process Owner’s View
        4. Process Worker’s View
      3. Integration Architecture Views
        1. Process Value Analysis
        2. Logical Services
        3. Technical Architecture
        4. Architecturally Significant Use Cases
      4. Integration Patterns
        1. Pattern Types
        2. Patterns Instances
    5. Going Forward
  10. A. Appendix
    1. List of Patterns and Pattlets
  11. Bibliography
  12. B. Additional Resources
  13. Index
  14. About the Author
  15. Copyright