Connector processing

The connector includes a protocol listener framework for event processing and a protocol handler framework for request processing. This bi-directional functionality enables the connector framework to:

Event processing overview

Connector event processing (or event notification) is used to handle requests from HTTP clients. This event processing capability encompasses a protocol listener framework, including the following components, which are discussed in greater detail later in this chapter:

The connector uses these components to listen on the transport for calls from clients to collaborations.

When requests from clients arrive, the listener converts the request message into a business object and invokes the collaboration. If it is a synchronous request, the connector receives a response business object of the same type as the request business object. The listener converts the response business object into a response message. The listener then transports the response message to the client. Note that event sequencing is not a requirement for this connector; the connector may deliver the events in any order.

The HTTP connector utilizes the configured data handler to convert incoming request messages into business objects. To aid the data handler in determining which business object to resolve for the incoming request message, the connector provides meta information regarding its supported business objects to the data handler. From its supported business objects, the connector first makes a list of all business objects that are potential candidates for the conversion. This list is comprised of supported TLOs only. Supported TLO business objects are those that have object-level ASI ws_eventtlo=true.

The protocol listener reads the object-level ASI of the TLO as follows:

The connector inspects the request business object returned by the data handler. It uses ws_tloname ASI of this business object to extract the name of the parent TLO. This TLO will be instantiated and the request business object will be set in the TLO. Finally, this constructed TLO will be used to invoke the collaboration.

For synchronous collaboration execution, the connector utilizes the data handler to create a response or fault message to send back to the client. In this case, the connector simply passes a business object (child of TLO) to the data handler. The data handler returns a message based on the business object that it is passed to it.

Request processing overview

On behalf of a collaboration, the connector can invoke HTTP services over HTTP(S). This request processing functionality is supported by a protocol handler framework. The protocol handler framework is a configurable run-time module that consists of the HTTP-HTTPS protocol handler, which is discussed in detail later in this chapter.

Upon receipt of a collaboration request business object, which is always set in a TLO, the protocol handler framework loads the protocol handler. The protocol handler manages transport-level details required for invoking the HTTP service and (optionally) securing a response, performing three main tasks: converting a collaboration request business object into a request message, invoking the HTTP service with the request message, and, if in request/response (synchronous) mode, converting the response message into a business object and returning that object to the collaboration.

The HTTP connector is always called from a collaboration using TLOs. The connector determines the request business object from the TLO, and invokes the data handler with this business object. The data handler returns a request message which is sent on by the connector to the HTTP service.

For synchronous execution, the connector utilizes the data handler to convert response and fault messages into response and fault business objects. To aid the data handler in determining which business object to resolve for these response/faults to business object conversions, the connector provides the data handler with specific meta information. Specifically, the connector makes a list of all response and fault business objects that are children of the invoking TLO. There should be only one response business object and, optionally, many fault business objects. There may also be one and only one defaultfault business object. For the defaultfault business object, the connector simply notifies the data handler of the name of the defaultfault business object. The defaultfault business object should be resolved by the data handler as a last resort if no other fault business objects are resolved for this transformation.

Copyright IBM Corp. 1997, 2003