Certain information must be accessible to the message bus in order to route the messages and for the clients and pillars to distinguish messages. On the other hand, for confidentiality and integrity reasons it is desirable that most information is exchanged within the signed and possibly encrypted xml in the message body.
The basic principle in the Bit Repository is that all information needed for the receiving party will be contained within the xml body of the broker messages, which is, in JMS/NMS terms a text message.
Additionally some data elements may be repeated in message header fields for convenience and queue operation. Data which might be considered confidential should not appear in message headers.
Currently the following message elements are proposed to be transmitted in the header as well as in the message xml:
XML field |
JMS header |
NMS header |
---|---|---|
correlationID |
|
NMSCorrelationID |
replyTo |
|
NMSReplyTo |
|
|
|
MessageType |
|
|
BitRepositoryCollectionID |
org.bitrepository.messages.collectionid |
org.bitrepository.messages.collectionid |
- correlationID (present by default)
- replyTo (present by default)
- BitRepostitoryCollectionID - enables pillars to quickly discard irrelevant messages on a common topic
- MessageType
- To (destination topic/queue)
In ActiveMQ the message type is stored in a string property with the name "org.bitrepository.messages.type", and te BitepositoryCollectionID is stored in a string property with the name "org.bitrepository.messages.collectionid".