Chapter 1 - Enterprise Service Bus (ESB) Pattern
|
|
- SOA and the ESB Pattern
- Loose Coupling
- Service Invocation and Composition
- Message Flow and Business Process
- Data Integration
- ESB in Action
- The ESB Patterns
- Service Virtualization Patterns
- Service Enablement Patterns
- Message Based Integration Patterns
- Summary
|
|
Chapter 2 - Introduction to WebSphere Integration Developer (WID) v6.2
|
|
- WebSphere Integration Developer (WID) v6.2
- SCA Basics
- Wiring Example
- Items Developed in WID
- The Project Structure
- Working With Shared Components
- Using the IDE
- The Test Server
- The Build Process
- Exporting Applications
- Module Versioning
- Summary
|
|
Chapter 3 - Introduction to Mediation Flow
|
|
- What is Mediation Flow?
- Source and Target Operations
- Message Flow Logic
- Mediation Primitives
- Anatomy of a Message
- Developing a Mediation Flow
- Routing Primitives
- Transformation Primitives
- Other Primitives
- Subflow
- Summary
|
|
Chapter 4 - Service Component Architecture (SCA)
|
|
- Need For a New Programming Model
- SCA Vendor Support
- SCA Basics
- SCA Components
- A Service Component
- References and Wires
- Wiring Example
- Service Assembly Model
- Example Assembly
- Imports
- Export
- Example Import and Export
- Summary
|
|
Chapter 5 - SOA Case Study
|
|
- The Story of Air Handling International (AHI)
- The Parts Ordering Process
- Why the Process is Not Working Well
- Opportunities and Challenges
- Solving the Problem the Old Way
- Solving the Problem the ESB Way
- Inside the ESB
- Summary
|
|
Chapter 6 - Business Objects
|
|
- What is a Business Object?
- Creating a New Business Object
- Editing a Business Object
- Setting Field Multiplicity
- Refactoring Business Objects
- Private Business Object
- Data Type Inheritance
- SimpleType Inheritance
- Abstract Business Object
- Schema Wildcards
- Specify Schema Restrictions
- Business Object Validation
- Best Practices
- Accessing Business Objects Using SDO API
- Using the SDO API
- Summary
|
|
Chapter 7 - Service Interface Design
|
|
- What is a Service Interface?
- Uses of an Interface
- The Structure of an Interface
- Creating an Interface
- The Interface Editor
- SMO Body Type
- Refactoring Interfaces
- Summary
|
|
Chapter 8 - Binding and Protocol Translation
|
|
- The Import Component
- The Export Component
- Introduction to Binding
- Supported Binding Types
- Implementing Protocol Translation Pattern
- The Web Service Binding
- Creating a Web Service Import
- Creating a Web Service Export
- Creating a New web Service
- Summary
|
|
Chapter 9 - Data Mapping
|
|
- Introduction to Mapping
- Choosing a Type of Mapping
- Embedded or Standalone Mapping
- Using Data Maps from a Mediation Flow
- Create Embedded Map for Mediation Flow
- Root of a Map
- Mapping Editor
- Mapping Header and Context
- Header Setter Primitives
- Types of Data Transformations for XML Maps
- Types of Array Data Transformations for XML Maps
- Types of Data Transformations for Business Object Maps
- Automatic Mapping
- Using Map from Business Process
- Creating a Standalone Map
- Adding Objects to the Standalone Map
- Substitution Groups
- Mapping Schema Wildcards
- Set Message Type Mediation Primitive
- Message Element Setter Primitive
- Need for Reverse Maps
- Summary
|
|
Chapter 10 - Introduction to Service Oriented Analysis & Design (SOAD)
|
|
- Introduction to SOAD
- Applying OOAD Principles
- Encapsulation
- Encapsulation in SOAD
- Inheritance
- Inheritance in SOAD
- Polymorphism
- Polymorphism in SOAD
- Why OOAD Is Not Enough
- Granularity
- The Need for Loose Coupling
- The SOAD Methodology
- The SOAD Methodology Steps
- Stage 1: Requirements Gathering & Process or Message Flow Modeling
- Stage 1: Requirements Gathering & Process Modeling
- Stage 2: Service Identification
- Stage 3: Service Implementation
- Stage 4: Process Implementation
- SOAD Stages and SOA Lifecycle
- Summary
|
|
Chapter 11 - Requirements Gathering and Message Flow Modeling
|
|
- Where are We in Stages of SOAD?
- Where are We in Service Lifecycle?
- Overview of this Phase
- Requirements Gathering Using Use Case
- Anatomy of a Business Use Case
- Example Use Case: Parts Ordering by AHI Inc.
- Modeling the Message Flow
- Anatomy of a Message Flow Model
- Scope of Use Case and Message Flow
- What is BPMN?
- Basic Structure of a Message Flow
- Start and End Events
- Message Exchange
- Conditional Flow Paths
- Parallel Execution
- Looping
- Modeling the Actors
- Summary
|
|
Chapter 12 - Service Identification and Specification
|
|
- Stages of SOAD
- Where are We in Service Lifecycle?
- The Service Identification Stage
- The Service Model
- Service Model Example #1
- Service Model Example #2
- Service Model Example #3
- Identify Service Operations from Business Process Model
- Identify Service Operations from Message Flow Model
- Group Operations as Services
- Reuse Services and Applications
- Define Logical Data Model
- Specify Service Interface
- Specify Business Process or Message Flow Interface
- Business Process Case Study
- Message Flow Case Study
- Service Contract Template
- Service Design Best Practices
- Summary
|
|
Chapter 13 - Service Invocation and Composition
|
|
- Service Invocation and Composition
- Service Invoke Mediation Primitive
- Service Invoke Mediation Primitive
- Using a Service Invoke Primitive
- Augmentation/Enrichment Pattern
- Augmentation/Enrichment Pattern - Example
- Augmentation/Enrichment Pattern – Example
- Retry the Same Service Pattern
- Retry the Same Service Pattern – Example
- Retry an Alternate Service Pattern
- Retry an Alternate Service Pattern – Example
- Sequencing Pattern
- Sequencing Pattern – Example
- Callout Node vs. Service Invoke Primitive
- Dynamic Service Invocation
- Dynamic Import Name
- Dynamic Endpoint URL
- Summary
|
|
Chapter 14 - Content-Based Routing
|
|
- Routing in Mediation
- Reasons to Perform Content-Based Routing
- Routing Pattern
- Refactoring to Implement Routing
- Routing Primitives
- Message Filter Primitive
- Type Filter Primitive
- Type Filter Output Format
- Routing to Other Primitives
- Summary
|
|
Chapter 15 - Looping, Splitting and Aggregation
|
|
- Introduction
- Implement Looping
- Access Iteration Element
- Implementing Splitting and Aggregation
- Setting up the Fan Out
- Setting up the Fan In Primitive
- Ending Fan In Wait Early
- Aggregating Service Responses
- Saving Response in Shared Context
- Mapping Body to Shared Context and Vice Versa
- Doing Things in Parallel
- Summary
|
|
Chapter 16 - Messaging Bindings
|
|
- Messaging Binding Choices
- Publishing a JMS Message
- Consuming a JMS Message
- JMS Import Binding Configuration
- Message Correlation in Import
- JMS Export Binding Configuration
- Message Correlation on Export
- Working with Native MQ Binding
- MQ Import Configuration
- MQ Export Configuration
- Messaging in WebSphere Environments
- Default Messaging
- Service Integration Bus
- Service Integration Bus
- WebSphere MQ
- Which To Use?
- Default Messaging JMS Configuration
- Relationship Between Default Messaging Components
- WebSphere MQ JMS Configuration
- Relationship Between MQ Messaging Components
- Summary
|
|
Chapter 17 - Transaction and Error Handling
|
|
- Transaction Basics
- Transaction in Mediation Flow
- Transaction Context Propagation
- Controlling Context Propagation
- Basics of Error Handling
- Error Handling in a Service
- Designing Faults
- Catching Errors in a Message Flow
- Returning a Fault from a Message Flow
- Raising an Exception
- Stopping a Flow Path
- Summary
|
|
Chapter 18 - Adapters
|
|
- What is an Adapter?
- Adapter and SOA
- Adapter Example
- The Adapter Pattern
- Adapter Support from WID
- Adapter Based Services
- Advantages of Adapter Based Services
- Generating Adapter Based Services
- Outbound Processing
- Inbound Processing
- Enterprise Discovery
- Case Study
- Flat File Adapter
- Inbound File Adapter
- Configuring the Inbound Service
- Outbound File Adapter
- Configuring Outbound Service
- Adapter Administration
- Summary
|
|
Chapter 19 - WESB Programming Best Practices
|
|
- Use the Right Module and Runtime
- Design the Module Structure
- Beaware of Data Types and Service Interface Changes
- Select Binding Type Carefully
- Document Artifacts
- Use Java Code Sparingly
- Automate Unit Test
- Use Message Context Correctly
- Use One-Way Operations Carefully
- Perform Extensive Logging
- Summary
|