You are previewing SOA Approach to Integration.
O'Reilly logo
SOA Approach to Integration

Book Description

XML, Web services, ESB, and BPEL in real-world SOA projects

  • Service-Oriented Architectures and SOA approach to integration

  • SOA architectural design and domain-specific models

  • Common Integration Patterns and how they can be best solved using Web services, BPEL and Enterprise Service Bus (ESB)

  • Concepts behind SOA standards, security, transactions, and how to efficiently work with XML

In Detail

Integration of applications within a business and between different businesses is becoming more and more important. The needs for up-to-date information that is accessible from almost everywhere and developing e-business solutions -- particularly business to business -- require that developers find solutions for integrating diverse, heterogeneous applications, developed in different architectures and programming languages and on different platforms. They have to do this quickly and cost effectively, but still preserve the architecture and deliver robust solutions that are maintainable over time.

Integration is a difficult task. This book focuses on the SOA approach to integration of existing (legacy) applications and newly developed solutions, using modern technologies, particularly web services, XML, ESB, and BPEL. The book shows how to define SOA for integration, what integration patterns to use, which technologies to use, and how to best integrate existing applications with modern e-business solutions. It also shows how to develop web services and BPEL processes, and how to process and manage XML documents from the JEE and .NET platforms. Finally, it also explains how to integrate both platforms using web services and ESBs.

What you will learn from this book?

  • How to design and develop SOA for integration

  • Integration architecture patterns, principles, and best practices, with focus on the process-centric SOA approach

  • The role of XML, web services, and ESBs in SOA for integration

  • The role of service composition and BPEL in integration

  • J2EE and .NET integration

  • Why and how to use web services and XML for integration

Approach

After explaining the challenges, levels, and strategies of integration the book explains SOA, web services, and the Enterprise Services Bus before covering processing XML and web services on the .Net and JEE platforms in more detail. Then it covers BEPL and demonstrates service composition into business processes with a realistic, although simple example BPEL process. Finally it shows how ESB provides a concrete infrastructure for SOA.

Who this book is written for?

This book is for architects and senior developers who are responsible for setting up SOA for integration for applications within the enterprise (intra-enterprise integration) and applications across enterprises (inter-enterprise integration or B2B).

Table of Contents

  1. SOA Approach to Integration
    1. SOA Approach to Integration
    2. Credits
    3. About the Authors
    4. About the Reviewers
    5. Preface
      1. What This Book Covers
      2. Who is This Book for
      3. Conventions
      4. Reader Feedback
      5. Customer Support
        1. Errata
        2. Questions
    6. 1. Integration Architecture, Principles, and Patterns
      1. Integration Challenges
        1. Current Situation
        2. Effective Information Systems
        3. Replacing Existing Applications
      2. Requirements and Strategies
        1. Single Data Input
        2. Information Access with Low Latency
      3. Importance of a Centrally Managed Integration Project
        1. Responsibility to Define Integration Architecture
        2. Responsibility to Select Integration Infrastructure and Technologies
        3. Development and Maintenance of Integration Documentation
      4. Integration Architecture Steps and Approaches
        1. Bottom-Up Approach
        2. Top-Down Approach
        3. Sound Integration Architecture Benefits
      5. Types of Integration
        1. Data-Level Integration
        2. Application Integration
        3. Business Process Integration
        4. Presentation Integration
        5. Business-to-Business Integration
      6. Integration Infrastructure
        1. Communication
        2. Brokering and Routing
        3. Transformation
        4. Business Intelligence
        5. Transactions
        6. Security
        7. Lifecycle
        8. Naming
        9. Scalability
        10. Management
        11. Rules
      7. Integration Technologies
        1. Database Access Technologies
        2. Message-Oriented Middleware
        3. Remote Procedure Calls
        4. Transaction Processing Monitors
        5. Object Request Brokers
        6. Application Servers
        7. Web Services
        8. Enterprise Service Buses
      8. The Integration Process
        1. Choosing the Steps and Defining the Milestones
        2. Sound Practices
          1. Iterative Development
          2. Incremental Development
          3. Prototyping
          4. Reuse
        3. Integration Process Activities and Phases
      9. Integration Patterns
      10. Summary
    7. 2. Service- and Process-Oriented Architectures for Integration
      1. Defining Service-Oriented Architectures
        1. Why SOA in the Integration Space?
          1. Islands in the Enterprise IT Landscape
          2. The Integration Problem
        2. Custom Integration Application and Its Issues
        3. Inverted View: Reusable Services, Simple Integration Processes
        4. Enter SOA: A Services-Based Integration Architecture
      2. Concepts and Principles of SOA
        1. Paradigm Shift — from Self-Contained Applications towards "Services"
        2. Service Orientation
        3. Component-Based Services
          1. The Internet Simplifies Remote Services
        4. Consuming Services
      3. Introducing SOA Architecture
          1. Service Abstractions
          2. Service Invocation and Service Implementation
          3. Process Engines
          4. Messaging Abstractions
          5. Synchronous and Asynchronous Messages
          6. Service Registries
          7. Quality of Service
          8. Communication Infrastructure
          9. What is a "Bus"?
      4. XML and Web Services: SOA Foundation
        1. Using XML in Middleware
          1. Middleware Mechanics for Services
          2. XML-Based Mechanism to "Invoke" Services
          3. Services over the Web via SOAP
        2. Web Services — Protocols for SOA
          1. Technology Agnostic System-to-System Interaction
          2. Service Description — Using WSDL
          3. Discovering the Services — UDDI
          4. Containers to Host Web Services
        3. Standards Foundation
          1. Application Platforms (JAVA EE) Hosting Web Services
      5. Using Services to Compose Business Processes
          1. Simple Integration Applications
          2. Simple Business Processes — Orchestrating the Services
            1. Advantages of Business Processes
          3. Choreography — Multi-Party Business Process
            1. Collaboration between Enterprises (B2B)
      6. SOA Security and Transactions
        1. Security Challenges in a Services Environment
        2. Simple Middleware Systems Security
          1. Security in Java Infrastructure
          2. Microsoft.NET Security
        3. Web Services Security for Loosely Coupled Services
          1. Emerging Web Services Security Standards
        4. Transactions in SOA
          1. Web Services Transaction — A Standard
      7. Infrastructure Needed for SOA
        1. Service Execution and Communications
          1. Types of Component Services
          2. Service Containers (Execution Engines)
          3. Communication Infrastructure — Under the Covers
          4. Communication "Bus" — At the Core
          5. MOM
        2. XML Backbone (XML, Transformations, and Persistence)
        3. Reliability and Scalability
          1. Managing a Distributed SOA Environment
        4. Options for SOA Infrastructure
          1. Web Services
          2. Application Platforms (JAVA EE / .NET)
          3. Simple Messaging-Based Custom Infrastructure
          4. Integration Platforms (EAI)
          5. ESB — Enterprise Service Bus
      8. Designing Services and Processes for Portability
        1. Adoption Considerations
          1. Think Services
          2. Model the Business Data as XML
          3. Processes in BPEL
          4. New Applications — Prepare for SOA/POA
        2. Design for Infrastructure (Vendor) Independence
      9. Transition to Process-Oriented Architectures
        1. Services and Processes Coexist — But Services First
          1. Process — Orchestration of Services
        2. POA — Shifting the Focus to "Processes First"
        3. Concepts and Principles of Process-Oriented Architectures
          1. POA — Processes First. Services... Maybe!
          2. POA Enables Top-down Design — Using just Processes
          3. Analysts Become Programmers
          4. POA Changing Software Development Roles
        4. Process Standards
        5. Infrastructure for Process-Oriented Architectures
      10. Summary
    8. 3. Best Practices for Using XML for Integration
      1. Introduction
        1. Domain-Specific XML Schemas
        2. Sending and Receiving XML Documents
        3. Validating XML Documents
        4. Mapping Schemas
        5. Choosing Processing Models
        6. Fragmenting Incoming XML Documents
        7. Design Recommendations
      2. Tips for Designing XML Schemas
        1. Default Namespace — targetNamespace or XMLSchema?
        2. Localize Namespace vs. Expose Namespaces
          1. Requirements for Localizing the Schema
          2. Advantages of Localizing Component Namespaces within the Schema
          3. Advantages of Exposing Namespaces in Instance Documents
        3. Global vs. Local Declaration
          1. Russian Doll and Salami Slice Designs
        4. Element vs. Type
        5. Zero, One, or Many Namespaces
          1. Use the Heterogeneous Namespace Design
          2. Use the Homogeneous Namespace Design
          3. Use the Chameleon Design
      3. Using XSL for Transformation
        1. xsl:import and xsl:include
      4. Securing XML Documents
        1. XML Security Threats
        2. XML Encryption
          1. Encrypting an XML File
          2. Encrypting a Single Element
          3. SSL versus XML Encryption
          4. XML Signatures
        3. Guidelines for Securing Your Services
      5. XML Streaming and DOM
        1. Pull Parsing versus Push Parsing
        2. What is StAX?
          1. StAX and Other JAXP APIs
          2. Performance Considerations
        3. Limit Parsing of Incoming Documents
        4. Use the Appropriate API
        5. Choosing Parser
        6. Reduce Validation Cost
        7. Referencing External Entities
        8. Dynamically Generated Documents
        9. Using XML Judiciously
      6. Summary
    9. 4. SOA and Web Services Approach for Integration
      1. Designing Service-Oriented Architectures
        1. SOA Evolution
        2. IT Evolution
        3. Patterns
          1. Business Patterns
          2. Integration Patterns
          3. Composite Patterns
          4. Application Patterns
          5. Runtime Patterns
          6. Product Mappings
        4. Guidelines
      2. Designing Sound Web Services for Integration
        1. Web Services Architecture
        2. Web Services Benefits
          1. Self-Contained
          2. Self-Describing
          3. Modular
          4. Accessible Over the Web
          5. Language, Platform, Protocol Neutral
          6. Open and Standards-Based
          7. Dynamic
          8. Composable
        3. Patterns
        4. Self-Service Business Pattern
          1. Guidelines
        5. Extended Enterprise Business Pattern
          1. Guidelines
        6. Application Integration Pattern
          1. Application Integration Patterns
          2. Direct Connection Application Pattern
            1. Guidelines
          3. Broker Application Pattern
            1. Guidelines
          4. Serial Process Application Pattern
            1. Guidelines
          5. Parallel Process Application Pattern
            1. Guidelines
        7. Runtime Patterns
          1. Nodes
            1. Application Server/Services
            2. Rules Repository
            3. Router
            4. Protocol Firewall Node
            5. Domain Firewall Node
          2. Connectors
            1. Adapter Connector
            2. Path Connector
          3. Direct Connection Runtime Pattern
            1. Direct Connection Pattern using Single Adapter
            2. Direct Connection using Coupling Adapter
            3. Direct Connection using Service Bus
          4. Runtime Patterns for Broker
      3. Differences between B2B and EAI Web Services
        1. Interface Design
        2. Use of a Service Registry
      4. Writing Interoperable WSDL Definitions
        1. Validating Interoperable WSDL
      5. Interoperability Challenges in Web Services
        1. WS-I Specifications
          1. WS-I Basic Profile 1.0
          2. WS-I Basic Profile 1.1
            1. SOAP Changes
            2. WSDL Changes
          3. WS-I Basic Profile 1.2
            1. SOAP Changes
            2. WSDL Changes
          4. WS-I Basic Security Profile 1.0
      6. Guidelines for Creating Interoperable Web Services
        1. Avoid using Vendor-Specific Extensions
        2. Use the Latest Interoperability Tests
        3. Understand Application Data Models
        4. Understand Interoperability of Data Types
      7. Java EE and .NET Integration using Web Services
        1. Sample Integration Scenario
        2. Developing the Java Web Service
          1. Deploying the Service
          2. WSDL for Java Web Service
          3. Developing the .NET Web Service
          4. Deploying the .NET Web Service
        3. Developing the Test Client
      8. Summary
    10. 5. BPEL and the Process-Oriented Approach to Integration
      1. Process-Oriented Integration Architectures
      2. Service Composition
        1. Orchestration and Choreography
        2. Complexity of Business Services
        3. Identifying Business Services
        4. Development Lifecycle
      3. SOA and Executable Business Processes
        1. Example Business Process
      4. BPEL for Service Composition
        1. What We Can Do with BPEL
        2. Executable and Abstract Processes
        3. BPEL and Other Process Languages
          1. Languages for Choreography
          2. Modeling Notations
      5. Writing BPEL Processes
        1. Process Interface
        2. Partner Links
        3. Partner Link Types
        4. Variables
        5. Handlers
          1. Fault Handlers
          2. Event Handlers
          3. Compensation Handler
        6. Scopes
        7. Overview of BPEL Activities
      6. Developing an Example BPEL Process
        1. Services Used in the Process
          1. Resource Data Service
            1. CollectData Operation
            2. ProcessData Operation
            3. OnFault Operation
          2. Rating Service
            1. ApplyPricing Operation
            2. ApplyDiscounting Operation
          3. Billing Service
            1. CalculateTotal Operation
            2. CreateSendBill Operation
          4. Adding Partner Link Types to the Service's WSDL
            1. Partner Link Type for Resource Data Service
            2. Partner Link Type for Rating Service
            3. Partner Link Type for Billing Service
        2. Define a WSDL Interface for the BPEL Process
        3. Writing the BPEL Process Logic
          1. Process Declaration
          2. Defining Partner Links
          3. Declaring Variables
          4. Writing the Process Definition
            1. CollectResourceData Scope
            2. ProcessResourceData Scope
            3. ApplyPricing and ApplyDiscounting Scopes
            4. CalculateTotal and CreateSendBill Scopes
            5. Returning a Callback to the Client
        4. Adding a Fault Handler
        5. Adding an Event Handler
        6. Deploy and Run the Process
      7. Summary
    11. 6. Service- and Process-Oriented Approach to Integration Using Web Services
        1. From Just Services to an Enterprise Bus
            1. We Need Web Services and More
            2. Enter Enterprise Service Bus (ESB)
        2. ESB Architecture
          1. Defining ESB
          2. Middleware for Middleware Technologies
          3. Modeling the Enterprise Document Flows
            1. Service: Procedure Centric or Document Centric?
            2. XML Fits in Nicely in the Bus
          4. ESB Services: Built on Documents/Messages
            1. Abstracting the Service Location with Endpoints
            2. Documents — Route, Transform, and Process
          5. ESB Infrastructure Components
          6. Built on Web Services Standards
        3. Service Containers — The Primary Tier of the Bus
          1. Inside the Container
                1. Why Standards?
          2. External View of Services: Documents Sent to Abstract "Endpoints"
          3. JBI — A Standard Container to "host" Services
          4. Communication Infrastructure
        4. Bus Services — Mediation, Transformations, and Process Flows
          1. Why Mediation?
            1. Physical Address Indirection Enables Mediation
          2. Infrastructure Mediation
          3. Intelligent Content-Based Routing
          4. Transformation Services
            1. The Need to Transform
            2. Transformation using XSLT
            3. XQuery for More Complex XML Document Manipulation
          5. ESB Processes: Extending the WS Process Model
            1. Processes — n the "Fabric"
              1. Document Itineraries are ESB Processes
            2. Itineraries — Processing Schedules for Business Documents
            3. ESB Process vs. Orchestrated Process
        5. Security and Transactions
          1. Security Considerations in Integration Architecture
            1. Building on Application Platforms Security (.NET & Java EE)
          2. ESB Security — Built on WS-Security
            1. WS-Security and Related Specifications
            2. Security across the Enterprise
          3. Transaction Semantics for Enterprise Integration
            1. Transaction Strategies for EAI and B2B
          4. Distributed Transactions and Web Services
            1. Web Service Transaction Standards
          5. Realizing Transactions in ESB
            1. ESB Transactions Built on the Messaging Layer
            2. Process Driven Local Transaction Semantics
        6. Reliability, Scalability, and Management
          1. Reliability Concepts
            1. Reliable Messaging Basics
            2. WS-Standards for Reliability
          2. Achieving Reliable Communication through ESB
          3. High Availability in ESB — Leveraging the Messaging Platform
            1. Location Transparency at the Core
            2. Multiple, Configurable Interaction Models
          4. Scalability and Performance of ESB
            1. Load Balancing and Load Scaling in ESB
          5. Control and Management of ESB
            1. Controlling and Monitoring the Services
            2. Management Information Standards
            3. Infrastructure for ESB Management
        7. Application Development Considerations
          1. Integration Application Constituents
          2. ESB — Application Design Approach
          3. Comparing ESB with Other Technologies
            1. ESB — Improves upon Web Services
              1. XML-Based Data Easily Exchanged
              2. Designed for Remote Access, Across Heterogeneous Platforms
              3. Leverage WS-RM for Reliable Interoperability
              4. Security using WS-S
              5. Where does ESB better Web Services?
              6. Higher Level of Abstraction in ESB
            2. EAI: Cannot Span Integration Brokers
            3. Application Servers: Hub-and-Spoke Model Limits Scalability
          4. ESB — Helps Avoid Vendor Lock-Ins
            1. Messaging Platforms: ESB Extends the Message Model
        8. Extending ESB to Partners
      1. Summary