The Message class is an abstract entity, parent for Feedback, PullRequest, PullResponse, Push and Acknowledgment entities. These subtypes structures of the Message itself represent the operations and message exchange patterns available in CISE with the capability to transport inside the Data Model entity in their payload. These subtypes of Message in conjunction with the indication of the entity service type (e.g. VesselService, RiskService) cover all current services identified for CISE and allow an easier extension and flexibility for the future.
All communication protocols use specific message types (i.e. PullRequest, PullResponse, etc.) that extend the common Message class. In this section we will describe the attributes of this root Message class.
The Message class attributes have the following attributes:
Element | Required | Value | Description |
---|---|---|---|
MessageID | Yes | String. Example: fd5b2bb2-8095-4acf-b6cb-3dd78ba8a572. | Identifier of the message. It is unique for the CISE participant who created the message. |
CorrelationID | No | String. Example: ad5b9bb2-6095-4xcf-b6cb-1dd78ba8a773. | This identifier correlates the request and response messages of/to a service (for the Pull or the Publish/Subscribe communication patterns). In other words, when create a response message, value this attribute with the original MessageID. |
ContextID | No | String | This identifier correlates the messages that share an operational need. For instance, in order to update the information of an incident, several CISE entity services need to be invoked (e.g., IncidentService, EventLocationService, etc.) Thus, the messages exchanged with these CISE entity services are related by this ID type. |
CreationDateTime | Yes | Datetime format: "YYYY-MM-DDThh:mm:ss". Example: 2002-05-30T09:00:00 | The date and time when this messaging object was created. |
Priority | Yes | One of the different priority of a message:
| Priority of the message, to help the receiver of the message to deal with prioritizing the messages received. |
RequiresAck | No | Boolean value as true, false, and also “1” (for true) and “0” (for false). | Indication that Sender wants to receive an asynchronous Acknowledgement upon delivery of this message in the final destination. |
Sender | Yes | See The Service. | This field describes the sender of the message. |
Recipient | No | See The Service. | This field describes the recipient of the message. |
Payload | No | See the The CoreEntityPayload. | This entity contains the business payload of the message and the metadata related to this payload. This is used by all messages types expect the Acknowledgement type. |
Reliability | No | Allowed values :
| This entity contains information about the retry strategy in case of error during the transmission of the message. |
CcRecipients | No | See The Service. | Other recipients that also received this message. Can be repeated unlimited. |
Note: after the last element "CcRecipients" comes the specific attributes of the extended message types, as for example, some specifics for the PullRequest/PullResponse message, etc.