Introduction
Purpose of this Guide
Audience for this Guide
Overview of this Guide
Related Information
Design Considerations
What is a Transport Provider?
What is the Transport SDK?
Purpose of the SDK
Transport SDK Features
Handling Inbound and Outbound Messages
Deploying Transport-Related Artifacts
Processing Messages Asynchronously
Transport Provider Modes
Related Features
Do You Need to Develop a Custom Transport Provider?
When to Use the Transport SDK
When Alternative Approaches are Recommended
Transport Provider Components
Overview
Design-Time Component
Runtime Component
The Transaction Model
Overview of Transport Endpoint Properties
Transactional vs. Non-Transactional Endpoints
Support for Synchronous Transactions
Use Case 1 (Response Pipeline Processing)
Use Case 2 (Service Callout Processing)
Use Case 3 (Suspending Transactions)
The Security Model
Inbound Request Authentication
Outbound Request Authentication
Outbound Username/Password Authentication
Outbound SSL Client Authentication (Two-Way SSL)
Outbound JAAS Subject Authentication
Link-Level or Connection-Level Credentials
Uniform Access Control to Proxy Services
Identity Propagation and Credential Mapping
The Threading Model
Overview
Inbound Request Message Thread
Outbound Response Message Thread
Support for Asynchrony
Publish and Service Callout Threading
Designing for Message Content
Overview
Sources and Transformers
Sources and the MessageContext Object
Built-In Transformations
Developing a Transport Provider
Development Roadmap
Planning
Developing
Packaging and Deploying
Before You Begin
Basic Development Steps
1. Review the Transport Framework Components
2. Create a Directory Structure for Your Transport Project
3. Create an XML Schema File for Transport-Specific Artifacts
4. Define Transport-Specific Artifacts
5. Define the XMLBean TransportProviderConfiguration
6. Implement the Transport Provider User Interface
7. Implement the Runtime Interfaces
8. Deploy the Transport Provider
Important Development Topics
Handling Messages
Overview
Sending and Receiving Message Data
Request and Response Metadata Handling
Character Set Encoding
Co-Located Calls
Returning Outbound Responses to AquaLogic Service Bus Runtime
Transforming Messages
Working with TransportOptions
Inbound Processing
Outbound Processing
Request Mode
Handling Errors
Case 1
Case 2
Case 3
Publishing Proxy Services to a UDDI Registry
When to Implement TransportWLSArtifactDeployer
Creating Help for Custom Transports
Custom Transport Help Overview
WorkSpace Studio Help Table of Contents
Providing Custom Transport Help in WorkSpace Studio
Providing Context-Sensitive Help in WorkSpace Studio
Providing Help in the WorkSpace Studio Help System
Packaging Help for the Transport Plug-in
Providing Custom Transport Help in the ALSB Console
Implementing the CustomHelpProvider Interface
Creating an HTML File to Launch
Creating a Simple Web Application to Display Expanded Help (Optional)
Packaging Transport Help for the ALSB Console
Developing ALSB Transports for WorkSpace Studio
Introduction
Services Runtime and Services Configuration
Offline Methods
Restrictions when Working Offline
Working Offline with a Remote Server
Bootstrapping Transports in Offline Mode
Packaging Transports in Offline Mode
Packaging Transports as WorkSpace Studio Plug-Ins
Transport Plug-in Resources
Transport Plug-in Packaging
Reference
Working in Different Modes
TransportProviderFactory
Extension Point Schema
plugin.xml
MANIFEST.MF
Build.xml
TransportManagerHelper Methods
Transport SDK Interfaces and Classes
Introduction
Schema-Generated Interfaces
General Classes and Interfaces
Summary of General Classes
Summary of General Interfaces
Source and Transformer Classes and Interfaces
Summary of Source and Transformer Interfaces
Summary of Source and Transformer Classes
Metadata and Header Representation for Request and Response Messages
Runtime Representation of Message Contents
Interfaces
User Interface Configuration
Overview
Summary of UI Interfaces
Summary of UI Classes
Sample Socket Transport Provider
Sample Socket Transport Provider Design
Concepts Illustrated by the Sample
Basic Architecture of the Sample
Configuration Properties
Sample Location and Directory Structure
Building and Deploying the Sample
Setting Up the Environment
Building the Transport
Deploying the Sample Transport Provider
Creating a Sample Socket Plug-in For WorkSpace Studio
Start and Test the Socket Server
Start the Socket Server
Test the Socket Transport
Configuring the Socket Transport Sample
Create a New Project
Create a Business Service
Create a Proxy Service
Edit the Pipeline
Testing the Socket Transport Provider
Deploying a Transport Provider
Packaging the Transport Provider
Deploying the Transport Provider
Transport Registration
Undeploying a Transport Provider
Deploying to a Cluster
UML Sequence Diagrams
AquaLogic Service Bus Runtime Inbound Messages
AquaLogic Service Bus Runtime Outbound Messages
Design Time Service Registration