behaviors can lead to better study the detection,
reasons behind each problem, and developing
solutions for each type of emergent behavior. The
six types that we have classified are:
TYPE TP1: Process p may have an implied
scenario when it has some shared states in two or
more MSCs and it sends one or more messages to
different processes in these MSCs. The send action
of process p can be in or after its shared states.
TYPE TP2: This type is similar to TP1. In this type,
the send actions of process p are a response to its
previous interactions with various processes, where
these interactions are exactly before or in shared
states of process p. This type is important in cases
that security or privacy issues should be
implemented. The interaction details of process p
may be shown in the designs, but should be hidden
in the implementations. Therefore, the design and
implementation are not equal. This difference, can
lead to an implied scenario.
TYPE TP3: Consider that process p is sending
messages in MSC M1 and process q is sending
messages in MSC M2. The combination of
projections of these MSCs is a new scenario M3 that
is implied to the system. In M3, which is not in the
designs, both processes p and q are sending
messages.
TYPE TP4: This class of implied scenario
originates from the asynchronous concatenation of
MSCs; a case that the processes perform their tasks
independently. In other words, a process may
proceed to the next MSC, while other processes are
still involved in the previous MSCs. Therefore, there
is no guarantee that all events in MSC M2 are
performed after all events in MSC M1, where M2 is
designed to execute after M1 in hMSC. We have
specified various subcategories of this type of
implied scenario and the situations that may result in
having TP4.
TYPE TP5: A sub category of TP4 is known as
non-local or branching choice. In this case, different
processes can follow different choices according to
the hMSC. However, the result is that some
processes follow a branch and the rest follow
another MSC. Consequently, the result is not in
accordance with any of the branching choices in the
hMSC. We have devised this type as a separate class
of implied scenarios because of the importance of
investigating the interactions of processes in
branching choices. We have found that, not all of the
processes can follow various branches in a
branching choice in hMSC. The processes that may
behave differently are the ones that start an
interaction in those MSCs and do not depend on
receiving some messages from other processes to
continue their actions. We call these active
processes.
TYPE TP6: The local visual order of process p is
not always preserved in the execution time.
Therefore, a change in the order of events on a
process life line can lead to TP6. A subcategory of
this type is known as race conditions. In race
conditions, two or more processes compete in
reaching a resource (sending a message to one
process in our case).
For each type, we specify the situations that can lead
to an implied scenario. Based on the required
information for the occurrence of each type,
different vectors are defined and extracted from the
models for the detection algorithms.
5 EXPECTED OUTCOME
The classification of common types of emergent
behaviors is based on the reasons and various
conditions that can lead to each case. Therefore, the
classification will help devising the detection
algorithms, specifically to each category, which can
also lead to suggest solutions on how to omit the
problem or change the designs to fix the detected
emergent behavior or implied scenario.
In this section, we focus on one of the emergent
behavior types (TP4) that can occur because of
asynchronous concatenation of MSCs. The
asynchronous concatenation of MSCs is interpreted
as concatenation of processes’ actions
independently. In other words, in an hMSC, one
process can proceed to the next MSC, while another
process is still involved in the previous MSC. The
asynchronous concatenation of MSCs can cause two
main problems that should be detected, in order to
prevent emergent behaviors. These two problems,
which we refer to as issues I1 and I2, are
investigated here. In general, for this type, the high
level structure
of each process is identified. This
structure is compared with the structure of hMSC.
The
of each active process, should have the same
loops, initial and final MSCs as the hMSC. If the
initial MSC of
for an active process is not the
same as initial MSC of hMSC, there is a chance to
emerge an implied scenario. The reason is that, the
active process can start to perform its actions
without depending on the other processes. Thus, this
process may start its tasks in its own initial MSC,
while the other processes are not performing the
ANewApproachfortheDetectionofEmergentBehaviorsandImpliedScenariosinDistributedSoftwareSystems-
ExtractingCommunicationsfromScenarios
17