the basic execution constraints between
elementary interactions
are discussed.
As seen in the milestone example, a precedes
relationship between two
interactions means that an instance of the
target interaction can occur only
if the instance of the source interaction has
already occurred. If in a logistics
environment a delivery acknowledgment message
should be sent only after a
delivery notification has been received, a
precedes relationship between the
respective elementary interactions can be used
to represent this business rule.
An inhibits relationship indicates that an
instance of the target interaction
can occur only if no instance of the source
interaction has occurred yet. In
an example involving an order process, an
invoice should not be sent after an
order cancellation by the buyer has been
received.
Also, scenarios where two interactions inhibit
each other, i.e., an instance
where either one or the other interaction can
complete, are very common.
Consider, for instance, a travel agency that
either receives a confirmation
message from the customer or a cancellation
message from the airline. To
cater to these situations, a specific
notational element for vice-versa-inhibits
is introduced.
A weak precedes relationship means that an
instance of the target interaction
can occur only after the instance of the
source interaction has already
completed or was skipped. Imagine a project
management scenario where the
project leader expects status updates from a
subcontractor that are merged
into a status report for the employer.
However, in special cases the project
leader and the subcontractors can agree that
no status update is needed.
The lifecycle of interaction instances is
shown in Figure 5.37. Interaction
instances can be in the states initialized,
enabled, completed, and skipped. An
interaction instance becomes skipped if any of
the inhibiting instances has
completed.
An interaction instance becomes enabled if
there are no precedes or weak
precedes relationships targeting the
corresponding interaction or all preceding
instances are completed and all weakly
preceding instances have been
completed or were skipped.
An instance must execute, i.e., the actual
message exchange occurs, only
if it is enabled. After the message exchange,
the instance is in the completed
state. The conversation starts with the Seller
sending an Auction creation request
message to the Auctioning service. The
precedes relationship defines that, if
this message arrived, an Account creation
request message can be sent to the
Seller. Then, the Seller sends a Registration
info message to the Auctioning
service, which responds with an Registration
confirmation message.
The weak precedes relationship connecting the
last elementary interactions
defines that the Auctioning service can send
an Auction creation confirmation
to the Seller if it has either sent a
Registration confirmation message before or if
the sending of that message was skipped. The
latter is used to cater to
situations in which a Seller is already
registered at the Auctioning service.
No comments:
Post a Comment