IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Services and service-related functions > Building mediation flows > Mediation flows overview
Service message objects
A message is a communication sent from one application or service to another application or service. Messages in mediation flows are represented as service message objects (SMOs)
Service message objects are enhanced business objects that include the application data and header information related to the transport protocol used to invoke a service such as SOAP or JMS. A service message object is composed of a body that contains the application data (also known as the payload or operation message) in a business object, and headers containing additional context information.
You can use XPath 1.0 expressions to access elements in a message. The following picture represents a service message object:
In IBM Integration Designer, service message objects are used only within mediation flows. Other components consume and transmit business objects, which are transformed into service message objects when they enter a mediation flow component. On leaving the mediation flow component, the service message object is transformed back into business objects.
- context: is the message context where information that is unrelated to the payload is stored. The context has these elements.
- correlation
- makes the property persist throughout the duration of the request and response flows, and is used for passing values from the request flow to the response flow.
- transient
- makes the property available for the duration of the current flow (either the request flow or the response flow), and is used to pass values between mediation primitives in the same flow.
- shared
- makes the property available during aggregation operations using the Fan Out / Fan In combination. It is not intended for general data storage.
- failInfo
- contains exception information about execution failure in a mediation primitive; it contains the message exception chain, and identifies the primitive where the failure occurred. This information is propagated to the fail terminal.
- primitiveContext
- contains context information for primitives.
- EndpointLookupContext contains the result of a WebSphere Service Registry and Repository query.
- endpointReference contains the information needed to access the service endpoint.
- registryAnnotations contains information for the user-defined properties.
- headers contain header information associated with the message. These are the elements in the headers section:
- SMOHeader
- contains information that defines the message; such as the unique message id, message version and message type. An SMO header is always present in a service message object.
- Target contains the dynamic endpoint used by the runtime if the Use dynamic endpoint property is set and there is a valid endpoint in the field.
- address the address of the target.
- JMSHeader
- contains JMS headers, when a JMS import or export binding is used.
- SOAPHeader
- contains SOAP header information when a web services import or export binding is used.
- SOAPFaultInfo
- contains information about SOAP faults such as fault code and fault string
- Properties[]
- properties put in the message header by the application
- MQHeader
- contains WebSphere MQ header information, when an MQ binding is used.
- HTTPHeader
- contains HTTP Headers, when a HTTP import or export binding is used.
- body contains the application data in a business object. Application data is also known as the payload, or operation message type.
- attachments contains SOAP attachments of various types. For more information , see SMO attachments.
- See "Building XPath expressions" in the topic "Building mediation flows" for an example of the relationship between a business object in an interface and an XPath 1.0 condition.