<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Compatibility Control of Asynchronous Communicating Systems with Unbounded Buffers</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>D. Dahmani</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M.C. Boukala</string-name>
          <email>mboukala@usthb.dz</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>H. Mountassir</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S. Chouali</string-name>
          <email>schouali@femto-st.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Femto-ST/DISC, Comp. Sci. Dept, Burgundy, Franche-Comté University</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>MOVEP</institution>
          ,
          <addr-line>Comp. Sci. Dept, USTHB, Algiers</addr-line>
        </aff>
      </contrib-group>
      <fpage>69</fpage>
      <lpage>84</lpage>
      <abstract>
        <p>The composition of heterogeneous software components is required in many domains to build complex systems. However, such compositions raise mismatches between components such as unspecified messages. Checking compatibility for asynchronously communicating systems with unbounded channels is undecidable. In this paper, we propose a compatibility control approach based on a coverability product, which is a finite abstraction of the asynchronous products of I/O-transition systems. This coverability product is used to check UR-compatibility, without requiring a synchronizabity of the peers. We distinguish between messages brought by acyclic path and those brought by cycles. This allows us to overcome over-approximation for some arcs. Furthermore, we define relationships, called patterns, to check a good choreography between peers in terms of emission and reception activities.</p>
      </abstract>
      <kwd-group>
        <kwd>communicating systems</kwd>
        <kwd>compatibility analysis</kwd>
        <kwd>coverability product</kwd>
        <kwd>patterns</kwd>
        <kwd>infinite systems</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Component-based development aims at facilitating the construction of very
complex applications by reusing and composing existing components. The assembly
of components offers a great potential for reducing cost and time to build
complex software systems and improving system maintainability and flexibility. A
software component is generally developed independently and is assembled with
other components, which have been designed separately, to create complex
systems. Normally glue code is written to realize such an assembly. Compatibility
checking is used to control if composed components can work together without
errors. This verification is very important for ensuring correct interaction
between components and may be done by using different formal models such as
interface automata, I/O-transition systems, -calcul, Petri nets and state
machines [
        <xref ref-type="bibr" rid="ref1 ref12 ref8 ref9">1, 8, 9, 12</xref>
        ].
      </p>
      <p>
        There are several incompatibility notions: (1) label incompatibility concerns
messages exchanged between components which can be handled differently. For
instance, messages are named differently, methods are called with parameters
which don’t match perfectly (incompatible types, different orders, ...) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. (2)
The bidirectional notion requires that when a component sends a message, there
is another component which eventually receives it, and when a component is
waiting to receive a message, there is another which must send that message.
(3) The unspecified reception (UR-compatibility) is less restrictive than the
bidirectional notion, since the reception of messages expected is not required for
unspecified reception notion. The UR-compatibility requires that the
composition of components doesn’t contain any deadlock, i.e. starting from their initial
states, all components can either evolve or terminate if they are in final states
and their buffers are empty [
        <xref ref-type="bibr" rid="ref1 ref6">1, 6</xref>
        ].
      </p>
      <p>
        To deal with incompatible components, pessimistic and optimistic approaches
have been proposed. The pessimistic approach considers that two components
are compatible if they can always work together in any environment while, in
the optimistic approach, two components are compatible if they can be used
together in some helpful environment [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Components can interact synchronously or asynchronously. In synchronous
communications, a send action is a lock-step, since it is allowed only when the
receiver is ready to perform the corresponding reception. Thus, send and receive
actions are performed simultaneously. In asynchronous communications, a send
action is not a lock-step. The messages sent are added to the receiver buffers.
Such buffers may be ordered or unordered. Analyzing asynchronous
communicating components with unbounded buffers is a complex task, undecidable in
general [
        <xref ref-type="bibr" rid="ref10 ref13">10, 13</xref>
        ], since it may lead to an infinite state space. Several works aiming
at analyzing such systems bound the size of buffers or the number of iterations
per cycles. Bounding such parameters is not a good solution since new
unexpected errors can occur when the values of parameters change or exceed the fixed
bounds. Thus, the main problem of these approaches is to choose the
appropriate bounds to study the compatibility of the infinite communicating systems. In
this paper, we propose a compatibilty control approach, based on a
coverability product, for asynchronous communicating components with unordered and
unbounded buffers.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related works</title>
      <p>
        Brand and Zafiropulo are among the first to have proposed works in the area of
service compatibility checking [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. They use communicating finite state machines
to model interacting processes executed in parallel and exchanging messages via
FIFO buffers. Their works focus on unspecified receptions compatibility notion
for interaction protocols. When considering unbounded buffers, the authors show
that the resulting state spaces may be infinite, and the problem becomes
undecidable.
      </p>
      <p>
        The works in [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ] use Petri net models to treat incompatibility problems.
Some works rely on extensions of Petri nets, like open nets to model
communicating processes, assuming asynchronous communication over non-ordered message
buffers. As far as asynchronous semantics is considered, compatibility analysis
has been proven to be undecidable for unbounded open nets. The authors deal
only with limited-communications which give bounded open nets. In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
authors use the so-called state equation, which is based on the standard linear
programming in Petri nets, to find a necessary but not sufficient condition for
compatibility control.
      </p>
      <p>
        Recently, Bouajjani and Emmi [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] consider a bounded analysis of
asynchronous message-passing programs with ordered message queues. Their
approach does not limit the number of communicating processes nor the buffers’
size. However, the number of iterations of communication cycles is limited.
Despite the potential for huge exploration of unbounded process contexts, the
proposed bounding scheme gives rise to a simple and efficient program analysis by
reduction to sequential programs.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], an approach on checking the compatibility of peers communicating
asynchronously by message exchange over unbounded buffers is proposed. The
approach requires that peers are synchronisable. In this case, the synchronous
system behaves like the asynchronous one for any buffer size. Thus, the
compatibility check on the asynchronous version of the system is reduced to the
synchronous version, which is finite and decidable. However, the approach
cannot conclude anything about non synchronizable peers. In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], authors focus on
the verification of weak asynchronous compatibility relying on half-duplex
systems instead of synchronizability and provide a decidable criterion that ensures
weak asynchronous compatibility.
3
      </p>
      <p>Motivation</p>
      <p>!a
s0
s1</p>
      <p>
        !b
s2
(a)
s0
0
?b
s0
1
?a
their emission. The peers are compatible with unordered queues but not with
FIFO queues. In Figure 1.b, peer 1 (resp. peer 2) sends message a (resp. b) and
loops infinitely by consuming b (resp. a) and then sending a (resp. b). All works
based on synchronizability property [
        <xref ref-type="bibr" rid="ref13 ref2 ref3">2, 3, 13</xref>
        ] cannot conclude anything about
the compatibility of such a system, since peers are not synchronizable. However,
they are free of deadlock and any message sent is consumed. Consider Figure
1.c and suppose that s0 is the initial state of the left peer. This latter can
either loop on the emission of c followed by a, or the reception of b. Peer 2 can
indefinitely receive c, send b and then receive a. Despite the perfect coherence
between the production and consumption patterns of these peers, there is no
conclusion about their compatibility based on synchronizability property.
In this paper, we propose an approach to control the compatibility of
asynchronous communicating peers without requiring the synchronizability property.
Our solution is mainly based on the construction of a coverability asynchronous
product which is always finite. Some analysis techniques are also proposed to
overcome the over-approximation of a coverability asynchronous product and
check the coherence of peers’s production and consumption patterns in their
cyclic stages.
4
      </p>
    </sec>
    <sec id="sec-3">
      <title>Coverability product</title>
      <sec id="sec-3-1">
        <title>4.1 I/O-transition systems</title>
        <p>First we give the definition of an I/O-transition system.</p>
        <p>Definition 1 An I/O-transition system A is a 4-tuple (SA; SAinit; A; A) such
that:</p>
        <sec id="sec-3-1-1">
          <title>1. SA is a finite set of states.</title>
          <p>2. SAinit SA a set of initial states.
3. A = AI [ AO [ H , where AI ,
input, output and internal actions.</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>4. A SA A SA is a set of steps.</title>
          <p>AO and</p>
          <p>AH are finite disjoint sets of
In an I/O-transition system, each input (resp. output, internal) action is
preceded by the symbol ? (resp. !, ;). A finite execution in an I/O-transition
system is an alternating sequence of states and actions s0 a!1 s1 : : : a!n sn
such that si ai+!1 si+1 2 A. For the sake of clarity, we suppose that SAinit is
reduced to a single state.
4.2</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Coverability product construction</title>
        <p>
          The asynchronous product of I/O-transition systems with unbounded buffers
may be infinite. In this paper, we propose to build a finite coverability product,
inspired from the standard approach of constructing a coverability graph for P/T
nets [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. The coverability graph covers all reachable states where !, a specific
symbol, is used to represent reachable states with unbounded messages.
        </p>
        <p>In our approach, we distinguish between the message occurrences brought by
elementary paths and those brought by cycles. The former are explicitly
represented in the product, while the latter are abstracted by a set . Thus, gives
the set of unbounded messages. In the sequel, we confuse between terms message
and action.</p>
        <p>Let A1 = (SA1 ; s0A1 ; A1 ; 1) and A2 = (SA2 ; s0A2 ; A2 ; A2 ) be two
I/Otransition systems. Automata A1 and A2 fulfils the following conditions: AI1 \</p>
        <p>AO2 = ; and AO1 \ AI2 = ;. Let = A1 [ A2 be the set of actions of A1
and A2.</p>
        <sec id="sec-3-2-1">
          <title>Definition 2 The coverability product of A1 and A2, denoted by A1 A2, is</title>
          <p>a 7-tuple (V; 1; 2; ; M; ; v0). V is the set of nodes, with v0 2 V being the
root. i (with i = 1;2) is a function from V to SAi . V V is the
set of labelled arrows. M is a function from V to N, assigning an ordinary
marking to every node. is a function from V to 2 giving, for a node v, the
set of its infinite actions (messages).</p>
          <p>A step of A1 A2 is either a step of A1 or A2. The following definitions are
useful to build A1 A2.
node v of A1</p>
          <p>A2 iff 9s !a s0 2 Ai and i(v)=s and either:
Definition 3 (Enabling condition) A state s of SAi , for i 2 f1; 2g, enables a
–
– or
2 f! ; ; g,
=? ) (a 2</p>
          <p>(v) _ M (v)(a) &gt; 0 ).</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>Definition 4 Let u and v be two nodes of A1 are equal, denoted by u = v, iff 1(u) = 1(v),</title>
          <p>M (u)(a) = M (v)(a) and (u) = (v).</p>
        </sec>
        <sec id="sec-3-2-3">
          <title>A2. Two nodes u and v</title>
          <p>2(u) = 2(v), 8a 2 ,</p>
        </sec>
        <sec id="sec-3-2-4">
          <title>Definition 5 Let u and v be two nodes of A1 A2. Node u is less than v</title>
          <p>, denoted by u &lt; v, iff 1(u) = 2(v), 2(u) = 2(v), 9a 2 , M (u)(a) &lt;
M (v)(a), 8b 2 , (M (u)(b) M (v)(b) or b 2 (u)) and (u) (v).</p>
          <p>Given two I/O-transition systems A1 and A2, the algorithm 1 constructs the
coverability product A1 A2. For the sake of clarity we present the product for
two I/O-transition systems. However, the algorithm can be easily extended to n
I/O-transition systems.
Algorithm 1: Coverability graph construction
[ fv !a wg
end
end</p>
          <p>unprocessed [ fv0g ;
32
33 end
/* This loop is repeated for each edge s !a s0 of A2 .
unprocessed unprocessed n fvg ;
*/
*/</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>Reduction of I/O-transition systems</title>
        <p>The interleaving between some actions of A1 and A2 are not necessary for the
properties we target (dealock and UR-reception). They only increase the size of
A1 A2. For instance, from state s0 of Figure 1.c, message c is sent and then
message a. These actions can be done by the left peer without any interaction
with the right peer. Hence, they can be replaced by a single and an atomic
action !ca. Furthermore, the path s0 !!c s1 !!a s0 is reduced to s0 !c!a s0. This
transition produces one occurrence of message a and another of b. We can also
reduce sequences of internal or/and emission actions. However, the reduction of
a sequence sj ? 0a!0 : : : kak !1 sj+k of Ai, i 2 f1;2g, is not always possible.
Conditions required to reduce a path are given below:
1. No interaction: 0; : : : k 1 2 f!;; g.
2. No intermediary branching states: 8j &lt; h &lt; j + k, sh is not a branching
state.
3. Occurrence in an elementary cycle: Either all the arcs of the sequence
are in an elementary cycle or all are not.</p>
        <p>The first point states that there is no interaction between the peer and its
correspondent, whereas the two other points allow to preserve the behavior of
the peer.</p>
        <sec id="sec-3-3-1">
          <title>Example 1 Consider again the I/O-transition systems depicted in Figure 1.c</title>
          <p>and suppose that s2 is the initial state of the left peer. Only the left
automaton can be reduced by replacing the edges s0 !!c s1 and s1 !!a s0 by s0 !c!a s0.
The coverability product, constructed by Algorithm 1, is shown in Figure 2.
Unbounded actions of a node v, (v) are given between brackets. The occurrences
of actions brought by elementary path are explicitly represented. In the reachable
state (s0;s00; a;fc;ag), say u, the current state 1(u) of the first (resp. 2(u)
of the second) I/O-transition system is s0 (resp. s00). The marking M of u is
reduced to one occurrence of a (M (u)(a)=1, M (u)(b)=0 and M (u)(c)=0) and
(u) = fc;ag meaning that the occurrences a and c are potentially infinite.</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>Non-travial scc are bordred by dashed boxes and C1 is terminal scc. Some</title>
          <p>arcs are represented by gray lines to highlight the over-approximation
notion,which will be introduced in the following section.</p>
          <p>Notation 1 A strongly connected component (scc) C of a graph G is a maximal
set of nodes C SG, where SG is the set of nodes of graph G, such that for every
pair of nodes u and v in C, there is a directed path from u to v and a directed
path from v to u. A scc C composed of one node is said trivial, otherwise non
trivial. A path or cycle in G is called elementary if no node occurs more than
once. A cycle is called simple if no edge occurs more than once. A scc is terminal
if it has no outgoing edge. Let be a sequence of transitions or an elementary
cycle of A1 A2. #( ;!a) (resp. #( ;?a)) gives the number of occurrences !a
(resp. ?a) in and #( ;a) represents #( ;!a) #( ;?a).
?a
?b
!b
!ca
s0; s00; fc;a;bg</p>
          <p>!ca
?c
s0; s01; fc;a;bg
?b
?a</p>
          <p>C1
s0; s02; b; fc;a;bg ?b
s0; s02; fc;a;bg</p>
          <p>!ca
?b
!ca
!ca
!ca</p>
        </sec>
        <sec id="sec-3-3-3">
          <title>Definition 6 The set of actions which may accumulate in the nodes of a</title>
          <p>cycle , denoted by ( ;!), corresponds to fa 2 j #( ;a) &gt; 0g. A cycle may
consume accumulated actions, those in ( ;?) = fa 2 j#( ;a) &lt; 0g.</p>
          <p>In Figure 2, each cycle labelled by !ca is an infinite producer of c and
a (#( ;c) = 1 and #( ;a) = 1). Similarly, for instance, cycle =?c !b ?b ?a
consumes actions c and a which are not produced by (#( ;c) = 1 and
#( ;a) = 1) but accumulated by cycles labelled by !ca.
4.4</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>Over-approximation of coverability product</title>
        <p>We give in Figure 3.b a part of the coverability product of peers in 3.a. In node
v1, peer A2 does not block, since peer A1, at state s0, is able to provide messages
a. Now consider the sequence v0 !!a v1 !!a v1 ?!a v2 !!b v3 ?!b v4. At the end
of this sequence, peers A1 and A2 are in states s1 and s02, respectively. Observe
that A2 waits indefinitely message a which will never be provided by peer A1.
Indeed, at state s1, peer A1 cannot produce message a. Hence, node v4, contray
to v1, is a potential deadlock for peer A2.</p>
        <p>s0</p>
        <p>?b
s1
!a
Both edges v1 ?!a v2 and v4 ?!a v5 are over-approximated. However, the first
is always possible, whereas the second is only possible for some executions. An
over-approximated edge v ?!a v0 deserves special attention, since, for some
executions, node v0 is never reached. Hence, their presence makes A1 A2 not
reliable. A loop v ?!a v is not considered as over-approximated even if M (v)(a) = 0.</p>
        <p>In this section, we propose a technique aiming at discarding gradually the
over-approximated status for some edges. Algorithm 2 summarises this
technique. Its input is a strongly connected component C of A1 A2. The algorithm
returns false whenever some edges remain over-approximated, otherwise it
returns true. The algorithm uses the sets simpleCycles(C) and reliableCycles(C,v),
with v a node of C. The former contains all simple cycles of C and the second is
a subset of simpleCycles(C) where each cycle contains node v and is composed
of non over-approximated edges only.</p>
        <p>The algorithm builds a set of nodes called Vover. A node of Vover is an
initial extremity of at least one over-approximated edge. The algorithm is
iterative. At each step, Vover is computed. The over-approximated status of each
edge v ?!a v0, with v 2 Vover is discarded whenever there is a reliable cycle
2reliableCycles(C,v) producing indefinitely action a, i.e. a 2 ( ;!). At the
next step, Vover is updated, since some edges turn into non over-approximated.
Hence, new cycles become reliable.</p>
        <p>The termination of the algorithm is ensured since there is a finite number
of simple cycles, actions and edges. The algorithm is applied to the strongly
connected components of A1 A2. It is obvious that if the product contains no
over-approximated edges, then it is reliable and can be used to check the free of
deadlock and UR-compatibility properties.</p>
        <p>Consider again the coverability product of Figure 2. Applying the precedent
algorithm to non trivial scc (C1) induces the following steps.
1. Gray edges (over-approximated) of C1 compose Eover.
Algorithm 2: dealOverapproxation</p>
        <p>Data: a strongly connected components C of A1</p>
        <p>Result: boolean
1 new =true;
A2
2 Eover = fv ?!a v0 an edge of C s.t. M (v)(a) = 0 and v 6= v0g ;</p>
        <p>/* Eover contains the set of over-approximated edges
3 8 2 simpleCycles(C), :visited = f alse ;
4 while new do
*/</p>
        <p>Vover = fv a node Cj9v ?!a v0 2 Eoverg;
new=f alse ;
foreach v 2 Vover do
actions = fa 2 ja 2 ( ;!) ^ 2 reliableCycles(C;v) ^ : :visitedg ;
foreach 2 reliableCycles(C;v) do</p>
        <p>:visited = true
end
foreach over-approximated edge e = v ?!a v0 do
if a 2 actions then</p>
        <p>Eover = Eover n feg ;
new = true;
2. In the first iteration, Vover contains the three nodes of C1 which are initial
extremities of gray arcs. A reliable simple cycle, labelled by !ca, loops around
each node of Vover. Thus, the set of actions fc;ag is associated to each node
of Vover. All gray edges are then removed from Eover.
3. In the second iteration, Vover is empty and there is no change about edge
status, inducing the termination of the algorithm. The algorithm returns
true.</p>
        <p>Likewise, the algorithm 2 is applied to the other scc of A1 A2 depicted in
Figure 2. We can easily see that the coverability product depicted in Figure 2 is
free of deadlock.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>UR compatibility verification</title>
      <p>In this section, we focus on the widely notion unspecified receptions U R. A set
of peers is U R-compatible if they do not deadlock and each sent message by
a peer is received by another one. Consider the peers given in Figure 1.c and
consider s0 as initial state of the left peer. It is obvious that there are a good
choreography and proper interactions between the peers, since the right peer
requires an equality between messages a and c, a relation satisfied by the left
peer of the Figure 1.c. However, when we add a cycle, for instance, s0 !!a s0 for
the left peer, the equality relation between a and c is lost inducing a mess in
the consumption activity. In this paper, we propose an approach to determine
relationships between unbounded actions and use such relationships to check the
U R compatibility through A1 A2.
5.1</p>
      <sec id="sec-4-1">
        <title>Pattern of a strongly connected component</title>
        <p>In this paper, we suppose that a turn of any cycle may produce (or consume)
at most one occurrence of a given action. In other terms, 1 #( ;a) 1 for
any action a of any cycle of A1 A2.</p>
        <p>Consider a non-trivial scc C of a free of deadlock coverability product.
It is worth noting that, by construction, the set of unbounded actions is the
same for any node of C; we use (C) to denote such a set. The
relationships between unbounded actions within C consists to partition set (C) to
P(C) = fP1; : : : ; Png such that for any node v of C, any cycle v ! v and any
part Pj 2 P(C), the accumulated actions of (C) verify the following equality:
a; b 2 Pj , #( ;a) = #( ; b). P(C) is called the pattern of C.</p>
        <p>We inductively build P(C), by considering the elementary cycles of C.
Initially, the partition associated with C is empty. At step i, a new partition is
computed according to the partition in the previous step i 1 by considering
a new elementary cycle of C. Cycle may alter the relationships between
some actions. In other terms, it may change the relationships between the part’s
elements of the partition computed in step i 1, since it brings some actions
and consumes other actions, with the same rhythm. Thus, taking into account
the restriction presented at the beginning of this section, each part P of the old
partition is split into three subsets E, R and N .</p>
        <p>– A subset E gathering actions of P produced by . Each action of E wins
one occurrence for each turn of .
– A subset R gathering actions of P consumed by . Each action of R loses
one occurrence for each turn of .</p>
        <p>– A subset N gathering actions of P which are not changed by .</p>
        <p>Furthermore, the set E ( ; !) (resp. R ( ; ?)) whose actions don’t belong
to any part of the old partition is added to the partition being computed. E
(resp. R) constitutes a fresh equality relationship.</p>
        <p>Example 2 Consider a partition Pi(C) = ffa;b;c;d;eg;ff;ggg, obtained at the
ith iteration, and a new elementary cycle =!a !b ?b ?c !f ?e !h ?i?j, so:
- ( ;!) = fa;f;hg, ( ;?) = fc;e;i;jg,
Algorithm 3: Pattern computation
- Partition obtained at the next iteration Pi+1(C) = ffag; fb;dg; fc;eg;ff g; fgg; fhg; fi;jgg.</p>
        <p>Part fa;b;c;d;eg is split into three subsets, fag; fb;dg; fc;eg since #( ;a) = 1,
#( ;b) = #( ;d) = 0 and #( ;c) = #( ;e) = 1, idem for the part ff;gg. Cycle
brings new actions, h 2 ( ;!) and i; j 2 ( ;?), inducing two parts fhg, fi;jg
in Pi+1(C). It is worth noting that cycle has broken the equality of a with the
other actions of its part in Pi(C), keeps an equality between b and d (resp. c and
e) and so on.
5.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Choreography Checking</title>
        <p>The pattern of a scc must C also take into account the elementary cycles of the
ascendants scc of C. It is worth noting that the action occurrences, brought by
elementary paths, are explicitly represented in the coverability product and are
not included in the computation of the patterns of the scc. Consider again the
coverability product of Figure 2, the pattern of scc C0 (resp. C1), computed in
isolation is ffc; agg (resp. ffc; ag;fbgg). The pattern of C0 is preserved when
considering the ascendant scc, idem for C1.</p>
        <sec id="sec-4-2-1">
          <title>Definition 7 There is a choreography compatibility within a scc C of a cov</title>
          <p>erability product if for any elementary cycle of C, ( ;?) 2 P(C).</p>
          <p>Consider an element E 2 P(C). By construction, there is an equality
relationship, in some nodes of A1 A2, between occurrences of actions of E. Any
elementary cycle such that ( ;?) = E consumes, at each turn, a same number
of elements of E preserving the relationship. Thus, the comsumption is in a step
with the production rythm.</p>
        </sec>
        <sec id="sec-4-2-2">
          <title>Example 3 Consider the coverability graph of Figure 2. The pattern of its</title>
          <p>unique terminal Scc is P(C1) = ffc;ag; fbgg. There is a choreography
compatibility within C1, since cycles of C1 fulfill definition 7. For instance, ( ;?) =
fa;cg 2 P(C1) for cycle =?c !b ?a 2 C1, idem for ( ;?) = fbg 2 P(C1) for
cycle =?b 2 C1.
5.3</p>
        </sec>
      </sec>
      <sec id="sec-4-3">
        <title>UR compatibility Checking</title>
        <p>The UR compatibility requires that each message sent is eventually received. To
ensure that all sent messages are received, we must have in all terminal strongly
connected components, cycles able to consume accumulated actions. These cycles
are garbage collectors.</p>
        <p>Definition 8 A cycle
( ;!) = ;.</p>
        <p>of A1</p>
        <p>A2 is a garbage collector iff: ( ;?) 6= ; and</p>
        <p>A garbage collector is able to clean the actions ( ;?). In the other hand,
the cycle does not produce residual messages. Consider again the coverability
product of Figure 2. The cycle labelled by ?b is a garbage collector of action b,
whereas the cycle labelled by ?c!b?b?a is a garbage collector of actions a and b.
Proposition 1 Two automata A1 and A2 are UR-compatible if the coverability
product A1 A2 is free of deadlock and for any terminal scc C of A1 A2 the
following conditions hold:
– There is a choreography compatibility within C.
– For any node v of C and any action a of (v), there is a garbage collector
of a.</p>
        <p>– 8a 2 , 9 a node v of C, such that M (v)(a) = 0.</p>
        <p>Proof. The first point states that there are proper interactions between peers,
while the second ensures that peers are able to clean the accumulated actions.
Finally, the last point indicates that the peer’s buffers always reach a state where
any action brought by an elementary path has been emptied.</p>
        <p>The coverability product of Figure 2 holds the conditions of the previous
proposition. Thus, the peers of example 1 are U R-compatible.
6</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, we presented a new approach to check compatibility of
asynchronous communicating infinite systems, using unbounded and unordered buffers.
We do not have any restrictions on the number of cycle iterations, size of buffers
nor on number of components. Our main result is that our approach does not
require any synchronizability property. In our approach, we proposed a
coverability product by constructing a finite state space. We define the concept of
patterns associated with messages occurring in the cycles of a strongly
connected component. These patterns are jointly used with the covering graph to
check the UR-compatibility of the components. The patterns allow to make an
underlying analysis of strongly connected components. Thus, they show if there
is a good choreography between components.</p>
      <p>We have implemented our approach, which is under experimentation as future
work, we aim to consider systems with FIFO unbounded buffers. This work could
be a promising base to tackle with infinite systems.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>L.</given-names>
            <surname>Alfaro</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.A.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          .
          <article-title>Interface automata</article-title>
          .
          <source>In Proceedings of the Ninth Annual Symposium on Foundations of Software Engineering (FSE)</source>
          , ACM, pages
          <fpage>109</fpage>
          -
          <lpage>120</lpage>
          . Press,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Samik</given-names>
            <surname>Basu</surname>
          </string-name>
          and
          <string-name>
            <given-names>Tevfik</given-names>
            <surname>Bultan</surname>
          </string-name>
          .
          <article-title>On deciding synchronizability for asynchronously communicating systems</article-title>
          .
          <source>Theor. Comput. Sci.</source>
          ,
          <volume>656</volume>
          :
          <fpage>60</fpage>
          -
          <lpage>75</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Samik</given-names>
            <surname>Basu</surname>
          </string-name>
          , Tevfik Bultan, and
          <string-name>
            <given-names>Meriem</given-names>
            <surname>Ouederni</surname>
          </string-name>
          .
          <article-title>Deciding choreography realizability</article-title>
          .
          <source>In Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL</source>
          <year>2012</year>
          , Philadelphia, Pennsylvania, USA, January
          <volume>22</volume>
          -
          <issue>28</issue>
          ,
          <year>2012</year>
          , pages
          <fpage>191</fpage>
          -
          <lpage>202</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Blondin</surname>
          </string-name>
          , Alain Finkel, Christoph Haase, and
          <string-name>
            <given-names>Serge</given-names>
            <surname>Haddad</surname>
          </string-name>
          .
          <article-title>Approaching the coverability problem continuously</article-title>
          .
          <source>In TACAS</source>
          <year>2016</year>
          ,
          <article-title>Held as Part ETAPS 2016, Eindhoven</article-title>
          ,
          <source>The Netherlands, April 2-8</source>
          ,
          <year>2016</year>
          , Proceedings, pages
          <fpage>480</fpage>
          -
          <lpage>496</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Ahmed</given-names>
            <surname>Bouajjani</surname>
          </string-name>
          and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Emmi</surname>
          </string-name>
          .
          <article-title>Bounded phase analysis of message-passing programs</article-title>
          .
          <source>STTT</source>
          ,
          <volume>16</volume>
          (
          <issue>2</issue>
          ):
          <fpage>127</fpage>
          -
          <lpage>146</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Brand</surname>
          </string-name>
          and
          <string-name>
            <given-names>Pitro</given-names>
            <surname>Zafiropulo</surname>
          </string-name>
          .
          <article-title>On communicating finite-state machines</article-title>
          .
          <source>J. ACM</source>
          ,
          <volume>30</volume>
          (
          <issue>2</issue>
          ):
          <fpage>323</fpage>
          -
          <lpage>342</lpage>
          ,
          <year>April 1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>C.</given-names>
            <surname>Canal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Poizat</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Salaun</surname>
          </string-name>
          .
          <article-title>Model-based adaptation of behavioral mismatching components</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>34</volume>
          (
          <issue>4</issue>
          ):
          <fpage>546</fpage>
          -
          <lpage>563</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Djaouida</given-names>
            <surname>Dahmani</surname>
          </string-name>
          , Mohand Cherif Boukala, and
          <string-name>
            <given-names>Hassen</given-names>
            <surname>Mountassir</surname>
          </string-name>
          .
          <article-title>A Petri net approach for reusing and adapting components with atomic and non-atomic synchronisation</article-title>
          .
          <source>In International Workshop on Petri Nets and Software</source>
          , Tunis, Tunisia,
          <year>Juin 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Djaouida</given-names>
            <surname>Dahmani</surname>
          </string-name>
          , Mohand Cherif Boukala, and
          <string-name>
            <given-names>Hassen</given-names>
            <surname>Mountassir</surname>
          </string-name>
          .
          <article-title>Reusing and adapting components using atomic and non-atomic strong synchronisations. In Conférence francophone sur l'Architecture Logicielle</article-title>
          , CAL'
          <year>2014</year>
          , Paris, France,
          <fpage>10</fpage>
          -
          <lpage>11</lpage>
          Juin
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Serge</surname>
            <given-names>Haddad</given-names>
          </string-name>
          , Rolf Hennicker, and
          <string-name>
            <surname>Mikael</surname>
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Møller</surname>
          </string-name>
          .
          <article-title>Channel properties of asynchronously composed petri nets</article-title>
          .
          <source>In Application and Theory of Petri Nets and Concurrency - 34th International Conference, PETRI NETS</source>
          <year>2013</year>
          , Milan, Italy, June 24-28,
          <year>2013</year>
          . Proceedings, pages
          <fpage>369</fpage>
          -
          <lpage>388</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Rolf</surname>
            <given-names>Hennicker</given-names>
          </string-name>
          , Michel Bidoit, and
          <string-name>
            <surname>Thanh-Son Dang</surname>
          </string-name>
          .
          <article-title>On synchronous and asynchronous compatibility of communicating components</article-title>
          .
          <source>In Coordination Models and Languages - 18th IFIP WG 6</source>
          .1 International Conference, COORDINATION 2016,
          <article-title>Held as Part of the 11th International Federated Conference on Distributed Computing Techniques</article-title>
          ,
          <source>DisCoTec</source>
          <year>2016</year>
          , Heraklion, Crete, Greece, June 6-9,
          <year>2016</year>
          , Proceedings, pages
          <fpage>138</fpage>
          -
          <lpage>156</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Olivia</given-names>
            <surname>Oanea</surname>
          </string-name>
          and
          <string-name>
            <given-names>Karsten</given-names>
            <surname>Wolf</surname>
          </string-name>
          .
          <article-title>An efficient necessary condition for compatibility</article-title>
          .
          <source>In Oliver Kopp and Niels Lohmann</source>
          , editors,
          <source>ZEUS</source>
          , volume
          <volume>438</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <fpage>81</fpage>
          -
          <lpage>87</lpage>
          . CEUR-WS.org,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Meriem</surname>
            <given-names>Ouederni</given-names>
          </string-name>
          , Gwen Salaün, and
          <string-name>
            <given-names>Tevfik</given-names>
            <surname>Bultan</surname>
          </string-name>
          .
          <article-title>Compatibility checking for asynchronously communicating software</article-title>
          .
          <source>In Formal Aspects of Component Software - 10th International Symposium, FACS</source>
          <year>2013</year>
          , Nanchang, China,
          <source>October 27- 29</source>
          ,
          <year>2013</year>
          , Revised Selected Papers, pages
          <fpage>310</fpage>
          -
          <lpage>328</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>