IB client (outbound) thread: Normal message flow

For an IB client (outbound) thread, the normal message flow for the request/response messages between an Intelligent Broker client and a server is:

  1. The Intelligent Broker client thread composes an ibmime message and sends it to Intelligent Broker which transmits it to the remote endpoint.

    The ibmime message must have these headers:

    • IBSite and IBThread, which identify the thread sending the message.
    • Content-Type: This is "multi-part/mixed" because messages can have attachments. Even without attachments, the message is still a multi-part message with a single part, that is, the message body itself.
  2. Intelligent Broker sends the message to the remote endpoint, as configured in the thread properties.
  3. When the remote endpoint sends back a response, that reply is forwarded back to the IB client thread.

The Intelligent Broker client thread in the system must select the Await Replies check box under Inbound Replies of the thread properties Inbound tab. This must be selected to receive the reply from the remote endpoint, forwarded by Intelligent Broker. If the box is not selected, then any reply from the remote endpoint is not forwarded by Intelligent Broker. The forwarded message is an ibmime message with a distinct ibmime header, IBStatus with the value APP_RESP, indicating this is a response.

The WSDL for the remote endpoint may specify that it is a request/response type of service, or a one-way type. The latter means that the web service does not return meaningful data as a reply. It is only an indication that it has received the request. The ibmime message sent back to the Intelligent Broker client, by Intelligent Broker, has a distinct header IBStatus with the value APP_ACCEPT. This indicates the request has been accepted by the remote end. Otherwise, no reply is received.

To receive this APP_ACCEPT, the thread that originates the request must select the Await Repliescheck box. This requires that Intelligent Broker always send back a reply, even when the remote web service is one-way, per its WSDL.

When that box is not selected, Intelligent Broker does not send any reply back to the thread originating the request. It does not matter that the requested web service happens to be of request/response type per its WSDL.

The IBStatus of APP_RESP and APP_ACCEPT represent normal responses from the remote endpoint.

Note: Normal business flow can include conditions where a reply indicates that the request cannot be fulfilled. For example, a withdrawal from a bank account cannot be granted because the balance is too low, or the account number is incorrect. These are all considered by Intelligent Broker as a normal reply and therefore APP_RESP is returned to the system.