Messages in primitives: repeats information
There has been a design decision to make messages in primitives. The reason is i.e. that identifiers are repeated. The reason for this choice is that we want to support asynchronous communication with as little need for memory of previous operation as possible. This enables clients to maintain a minimum of state.
General Message format
All Bit Repository messages contain the following elements:
- CorrelationID: Identifies the Conversation this message is part of. The correlationID should be unique for a given collection. This can be approximated by assigning an UUID as correlationID to the first message in a conversation.
- CollectionID: Identifies the Collection this message is used in.
- To: Identifies the Destination which is used to send this message.
- From: Identifies the Destination any replies will be received on.
See Message xsd for further details.
The full message format is specified in the xsd's located here, where the XSD is placed under the xsd folder and XML examples based on the XSDs are placed in the examples folder.
Structure in XSD
The XSD is represented in following files:
- BitRepositoryElements (xsd elements, groups and types) - which includes the definition of general elements for messages, e.g. DataID.
- BitRepositoryMessages - which includes all messages that can be accepted by the message broker. This includes the Message, MesssageRequest and MessageResponse super types.
- BitRepositoryData - which includes xml for data which can be passed as part of a message or via the file exchange protocol.
The XML examples includes examples of all messages. The examples are divided into to folders named after the examples included, i.e. messages and data.