Search code examples
mulemule-esb

Service Data Object(SDO) and Service Message Object(SMO)


can anyone explain what is Service Data Object(SDO) and Service Message Object(SMO)?

Questions: 1. what is the purpose of SDO and SMO? 2.how it works?


Solution

  • These concepts aren’t used with Mule, they seem to come from IBM. https://www.ibm.com/support/knowledgecenter/SSFTN5_8.5.7/com.ibm.wbpm.main.doc/topics/cwesb_sca_smo2.html

    The equivalent of the SMO in Mule is the Mule Event which you can read about here: https://docs.mulesoft.com/mule-runtime/4.1/about-mule-event

    A Mule event contains the core information processed by the runtime. It travels through components inside your Mule app following the configured application logic.

    It’s basically an abstraction layer so you don’t have to deal with different protocols and transports.

    A Mule Event is composed of these objects:

    A Mule Message contains a message payload and its associated attributes.

    Variables are Mule event metadata that you use in your flow.

    A Http POST for example would be represented as an event.

    The event payload would be the body data of the http request

    Where as the http headers such as content-type would be attributes on the event.

    Same for JMS. The message body would be the payload and the jms header would be attributes.

    As for SDO, each SMO has an SDO. This is very specific to that IBM article and not relevant in Mule. But from what I understand it basically allows you to access your heterogenous business data in a common way. I guess Dataweave in Mule accomplishes this as Dataweave is the transformation and expression language in Mule, it allows you to query and transform data in the same way regardless of the data type, xml, Json, CSV and so on.