Sunday, October 4, 2009

Basic Control Flow Relating Interactions:

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