The FTP protocol is used for transporting messages between service consumer and service provider.
Service Engines can exchange messages through WSDL services that have FTP Binding Component extensibility elements. The extensibility elements of the FTP Binding Components can be defined based on nature of operation or binding mechanism.
The figure illustrates a full message path including request (IN-ROUTE) and response (OUT-ROUTE). As illustrated, FTP Binding Component uses directories on FTP server as message persistence where service consumers and service providers exchange messages. During the implementation the following assumptions are made to facilitate message transportation in a FTP context.
When the FTP Binding Component acts as a JBI consumer, it puts a request (for certain service) and polls a response using the FTP protocol.
When the FTP Binding Component acts as a JBI provider, it uses the FTP protocol to route JBI normalized messages to a specified destination.
FTP Binding Component provides the following mode of operation. Each mode has two “flavors” corresponding to the Binding Schemes used. They are,
ftp:message
For Binding Schema “Message”
Inbound One Way — Poll Message
Inbound Request Response Messaging — Poll Request Message and Put Response Back (can be correlated and non-correlated)
Depends on the extensibility elements' attribute “messageCorrelate”
Outbound One Way — Put Message
Outbound Request Response Messaging — Put Request Message and Poll Response Back (can be correlated and non-correlated)
Depends on the extensibility elements' attribute “messageCorrelate”
On Demand Get Message — Get Message
ftp:transfer
For Binding Schema “Transfer”
Inbound One Way — Receive Request
Inbound Request Response Transferring — Receive Request and Send Response Back (can be correlated and non-correlated)
Depends on the extensibility elements' attribute “messageCorrelate”
Outbound One Way — Send Request
Outbound Request Response Transferring — Send Request and Receive Response Back (can be correlated and non-correlated)
Depends on the extensibility elements' attribute “messageCorrelate”
On Demand Receive Transferring — Receive Transfer
The service consumption can be synchronous, where the WS consumer posts the message to a location agreed between consumer and provider. It polls the response mutually from a location agreed between the consumer and the provider. The service consumption can be asynchronous where the WS consumer posts the message to a location agreed between the consumer and the provider. Later, it leaves a separate response to facilitate the poller to poll from a mutually agreed location.
There are two methods used to correlate a request with a corresponding response message.
Using the BPEL correlate set method.
Synchronized Request/Response Processing: This is enabled using ftp:message —> messageCorrelate (if you are using the “Message” ftpbc binding scheme). If you are using the “Transfer” ftpbc binding scheme, ftp:transfer —> messageCorrelate.