This is one of the important aspect in the overall integration pattern. Message details what information, in what fashion, in what organization, in which mode should be shared from the sender application to the receiver application.
Ideally Message structure should be agreed between the two integrating systems and then the data should be exchanged over that. below diagram describes my view on the message structure:
Sender, includes the details about the who is sending the message.
Recipients List can be 1..N where the message can destined for more than one receiver application.
Meta information, is any additional information that is not part of data for ex, security related or message consumption related.
Body Header, includes common data which describes or summarizes the business data that is followed in the message. It can detail the data type, correlation details etc.
Common Properties, This includes a sub part of business data where the common data i.e. is not specific to sub groups of data structure.
Business Data, This includes the actual business data.
The basic data structure for any Message can vary but industry standard uses XML Message to organize the data structure. There are various implementation of Message interfaces:
I personally love, TextMessage and StreamMessage. TextMessage for the ease of implementation adn StreamMessage for the flexibility it gives.
Hope you like this explaination. Please share your ideas on the same.