Receiver Responsibilities
Receiver Responsibilities of an Interaction will be defined for the target receiver of the message. The receiver responsibilities will be cast in terms of one of several interactions to be sent as a result of receiving the message and/or as one trigger event out of a set of trigger events the receiver will fire after receipt of the message.
Implementers will need to take care that applications that can send an interaction are capable of receiving the ‘receiver responsibility’ interactions, and vice versa.
Definition
Receiver Responsibilities are a set of mutually exclusive responsibility options that are triggered by the receipt of an interaction. Each responsibility option includes a description that describes the circumstances under which that option should be fired. These circumstances are all mutually exclusive, such that one and only one responsibility option fires in response to a given interaction. The recipient must invoke one and only one of the receiver responsibilities (provided that at least one is defined) when they receive the interaction.
An individual responsibility consists of:
- Returning an Interaction. This is what's sent as an Application Response, a.k.a. 'application acknowledgment'.
- Firing a Trigger Event. Note that firing a trigger event may result in the initiation of zero or more interactions to various applications, possibly including the sender of the originating interaction. These interactions are NOT sent as Application Responses, but as interactions which initiate a new Interaction Pattern.
- Returning an Interaction and firing a Trigger Event. Note that firing a trigger event may result in the initiation of zero or more interactions to various applications, possibly including the sender of the originating interaction. These interactions are NOT sent as Application Responses, but as interactions which initiate a new Interaction Pattern.
However, for reasons of dynamic conformance, the following constraint applies: either all receiver responsibilities have interactions or none do. In other words: if one of the individual receiver responsibities is to "return an interaction", then all individual receiver responsibities shall "return an interaction".
It is NOT be possible to define something that amounts to:
- the receiver will either trigger an event, OR sent an interaction.
- the receiver will either Do Nothing, OR sent an interaction.
Notes
- All interactions have the (not explicitly documented) default receiver responsability of sending a Syntax Level Acknowledgement (a.k.a. accept-level reject) message in case of syntax or conformance errors. This resposibility is conditional on the value of the Message.acceptAckCode attribute.
- It is possible that an interaction (sent when a receiver fulfills its receiver resposibilities) will itself have receiver responsibilities, resulting in a prolonged conversation between sender and receiver.
- An Event Replay Request has no Receiver Responsibilities; it is however the initial interaction of an Interaction Pattern.