Information Technology Reference
In-Depth Information
(a)
(b)
Fig. 12.
Weak Sequencing interpretation Versus Strong Sequencing interpretation
between
M1
and
M2
is inherited by
ReceiveM1
and
ReceiveM2
via the solid
refinement lines in Fig. 12(a).
An important question is whether there is an ordering constraint between
ReceiveM1
and
SendM2
. Two interpretations are possible. First it is possible for
SendM2
to occur before or after
ReceiveM1
. This is represented by an example
of the message sequencing in Scenario 2 in Fig. 12(b) where the sequencing
between these two events does not matter. We refer to this lack of sequencing
as
weak
sequencing. In this sample it assumed that the channel is a fifo channel,
message
M1
is sent before sending message
M2
and also message
M1
is received
before receiving message
M2
, but there is not any sequencing order between
receiving
M1
and sending
M2
.
Strong
sequencing, on the other hand, would be
represented by the message sequencing sample in Scenario 1 in Fig. 12(b), where
it is important that
SendM2
would executed only after
ReceiveM1
.
While not being explicit about this, [7] implicitly assumes that there is no
ordering constraint between
ReceiveM1
and
SendM2
. This means that Butler
in [7] implicitly accepts weak sequencing. Jackson's JSD diagrams allow multi-
ple levels of decomposition but since they are intended to represent sequential
processes, they implicitly assume strong sequencing [13].
If we accept weak sequencing as the default interpretation (which is useful for
many distributed systems), then we need additional notation to indicate further
sequencing. For our purposes we found the use of explicit
guard
lines to be
convenient. A guard line is an explicit line from one event to another, indicating
that the target event must occur after the source event. An example is shown in
Fig. 13. In this figure, according to our default there is weak sequencing between
events, as a result
SendM2
can be occur after or before
ReceiveM1
.Inthecase