Contents for Transport SDK User Guide

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

Load Balancing

Monitoring and Metrics

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

Supported Message Patterns

Support for Synchronous Transactions

Use Case 1 (Response Pipeline Processing)

Use Case 2 (Service Callout Processing)

Use Case 3 (Suspending Transactions)

Use Case 4 (Multiple URIs)

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

EndPointConfiguration

RequestMetaDataXML

RequestHeadersXML

ResponseMetaDataXML

ResponseHeadersXML

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

Context-Sensitive Help (F1)

WorkSpace Studio Help Table of Contents

ALSB Console Help

Providing Custom Transport Help in WorkSpace Studio

Providing Context-Sensitive Help in WorkSpace Studio

Providing Help in the WorkSpace Studio Help System

Help Implementation Reference

plugin.xml

toc.xml

context.xml

Help Content and Resources

Packaging Help for the Transport Plug-in

Related Topics

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)

META-INF/application.xml

WEB-INF/web.xml

Help Content and Resources

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