ArticlePDF Available

Towards Dynamic Updates in Service Composition

Authors:

Abstract

We survey our results about verification of adaptable processes. We present adaptable processes as a way of overcoming the limitations that process calculi have for describing patterns of dynamic process evolution. Such patterns rely on direct ways of controlling the behavior and location of running processes, and so they are at the heart of the adaptation capabilities present in many modern concurrent systems. Adaptable processes have named scopes and are sensible to actions of dynamic update at runtime; this allows to express dynamic and static topologies of adaptable processes as well as different evolvability patterns for concurrent processes. We introduce a core calculus of adaptable processes and consider verification problems for them: first based on specific properties related to error occurrence, that we call bounded and eventual adaptation, and then by considering a simple yet expressive temporal logic over adaptable processes. We provide (un)decidability results of such verification problems over adaptable processes considering the spectrum of topologies/evolvability patterns introduced. We then consider distributed adaptability, where a process can update part of a protocol by performing dynamic distributed updates over a set of protocol participants. Dynamic updates in this context are presented as an extension of our work on choreographies and behavioural contracts in multiparty interactions. We show how update mechanisms considered for adaptable processes can be used to extend the theory of choreography and orchestration/contracts, allowing them to be modified at run-time by internal (self-adaptation) or external intervention.
Jos´e Proenc¸a and Massimo Tivoli (Eds.):
14th International Workshop on Foundations of
Coordination Languages and Self-Adaptive Systems (FOCLASA15)
EPTCS 201, 2015, pp. 1–17, doi:10.4204/EPTCS.201.1
c
M. Bravetti
This work is licensed under the
Creative Commons Attribution License.
Towards Dynamic Updates in Service Composition
Mario Bravetti
University of Bologna, Italy / INRIA, France
mario.bravetti@unibo.it
We survey our results about verification of adaptable processes. We present adaptable processes as
a way of overcoming the limitations that process calculi have for describing patterns of dynamic
process evolution. Such patterns rely on direct ways of controlling the behavior and location of
running processes, and so they are at the heart of the adaptation capabilities present in many modern
concurrent systems. Adaptable processes have named scopes and are sensible to actions of dynamic
update at runtime; this allows to express dynamic and static topologies of adaptable processes as well
as different evolvability patterns for concurrent processes. We introduce a core calculus of adaptable
processes and consider verification problems for them: first based on specific properties related to
error occurrence, that we call bounded and eventual adaptation, and then by considering a simple
yet expressive temporal logic over adaptable processes. We provide (un)decidability results of such
verification problems over adaptable processes considering the spectrum of topologies/evolvability
patterns introduced. We then consider distributed adaptability, where a process can update part of
a protocol by performing dynamic distributed updates over a set of protocol participants. Dynamic
updates in this context are presented as an extension of our work on choreographies and behavioural
contracts in multiparty interactions. We show how update mechanisms considered for adaptable
processes can be used to extend the theory of choreography and orchestration/contracts, allowing
them to be modified at run-time by internal (self-adaptation) or external intervention.
1 Introduction
We survey our work about verification of adaptable processes [2, 3, 1] presenting theories that we pre-
viously introduced in different contexts and connecting them for the first time. We start from adaptation
mechanisms where updates take place on individual processes only and weclassify them according to up-
date patterns and adaptable process topologies. Within such classification we present separation results
based un(decidability) of verification of adaptation properties/sets of temporal logic formulae. Then,
we consider a more complex setting where we exploit our foundational study of adaptable processes
to devise update mechanisms that involve several participants of a distributed protocol, expressed, for
example, by a choreography.
In order to introduce adaptation mechanisms and present a spectrum of topologies/evolvability pat-
terns we consider simple extensions to process calculi. Process calculi aim at describing formally the
behavior of concurrent systems. A leading motivation in the development of process calculi has been
properly capturing the dynamic character of concurrent behavior. In fact, much of the success of the
π
-calculus [21] can be fairly attributed to the way it departs from CCS [20] so as to describe mobile
systems in which communication topologies can change dynamically. Subsequent developments can be
explained similarly. For instance, the Ambient calculus [18] builds on
π
-calculus mobility to describe the
dynamics of interaction within boundaries and hierarchies, as required in distributed systems. A com-
monality in these calculi is that the dynamic behavior of a system is realized through a number of local
changes, usually formalized by reduction steps. Indeed, while in the
π
-calculus mobility is enforced by
the reconfiguration of individual linkages in the communication topology, in the Ambient calculus spatial
2
Towards Dynamic Updates in Service Composition
mobility is obtained by individual modifications to the containment relations within the ambient hierar-
chy. This way, the combined effect of a series of changes at a local level (links, containment relations)
suffices to explain dynamic behavior at the global (system) level.
There are, however, interesting forms of dynamic behavior that cannot be satisfactorily described as
a combination of local changes, in the above sense. These are behavioral patterns which concern change
at the process level (i.e., the process as a whole), and describe process evolution along time. In general,
forms of process evolvability are characterized by an enhanced control/awareness over the current be-
havior and location of running processes. Crucially, this increased control is central to the adaptation
capabilities by which processes modify their behavior in response to exceptional circumstances in their
environment.
This survey reports about the attempt we did to address these shortcomings. In particular, here we
present the contents of [2, 3, 1] at a level of detail that allows us to connect them and to discuss the
consequences of relating their machinery (this will also lead to new ideas for future work). In partic-
ular, we present, in Section 2, a core calculus of adaptable processes expressing a variety of topolo-
gies/evolvability patterns and (un)decidability results of verification problems for them (the technical
machinery is taken from [2, 3]). We will then, in Section 3, introduce distributed adaptability of proto-
cols as an extension, with update mechanisms similar to those considered for adaptable processes, of the
theory of choreography and orchestration/contracts (the technical machinery is taken from [1]). Finally,
in Section 4 we discuss some related work and in Section 5 we provide concluding remarks.
2 A Core Calculus of Adaptable Processes: the E Calculus
We start by presenting adaptable processes and results about verification problems for them. The tech-
nical machinery presented in this section is taken from [2, 3] (to which the reader is referred for details).
We introduced in [2] the concept of adaptable processes that have a location and are sensible to
actions of dynamic update at runtime. While locations are useful to designate and structure processes into
hierarchies, dynamic update actions implement a sort of built-in adaptation mechanism. We illustrate this
novel concept by introducing E , a core process calculus of adaptable processes. The E calculus arises as
a variant of CCS without restriction and relabeling, and extended with primitive notions of location and
dynamic update. In E , a[P] denotes the adaptable process P located at a. Name a acts as a transparent
locality: P can evolve on its own but also interact freely with its environment. Localities can be nested,
and are sensible to interactions with update prefixes. An update prefix ea{U} decrees the update of the
adaptable process at a with the behavior defined by U, a context with zero or more holes, denoted by
. The evolution of a[P] is realized by its interaction with the update prefix ea{U}, which leads to the
process obtained by replacing every hole in U by P, denoted UhhPii.
We consider several variants of E , obtained via two orthogonal characterizations. The first one is
structural, and distinguishes between static and dynamic topologies of adaptable processes. The former
is enforced by constraining the latter so that the topology of adaptable processes a[P] not to vary along
the evolution of the system: they cannot be destroyed nor new ones can appear. The second charac-
terization is behavioral, and concerns update patterns—the context U in an update prefix ea{U}. As
hinted at above, update patterns determine the behavior of running processes after an update action. In
order to account for different evolvability patterns, we consider three kinds of update patterns, which
determine three families of E calculi—denoted by the superscripts 1, 2, and 3, respectively. In our view,
these variants capture a fairly ample spectrum of scenarios that arise in the joint analysis of correct-
ness and adaptation concerns in evolvable systems. They borrow inspiration from existing programming
M. Bravetti
3
languages, development frameworks, and component models.
We now present the E calculus, its different variants, and its operational semantics. We refer to [2]
for further details and discussions. The E calculus is a variant of CCS [20] without restriction and re-
labeling, and extended with constructs for evolvability. As in CCS, in E , processes can perform actions
or synchronize on them. We presuppose a countable set N of names, ranged over by a,b,. .., possibly
decorated as
a,b and ea,
e
b. As customary, we use a and a to denote atomic input and output actions, re-
spectively. The syntax of E processes extends that of CCS with primitive notions of adaptable processes
a[P] and update prefixes ea{U}.
Definition 2.1 The classes of E processes, prefixes, and update patterns are described by the following
grammars:
P ::= a[P] | P k P | !
π
.P |
iI
π
i
.P
π
::= a | a | ea{U}
U ::= a[U] | U kU | !
π
.U |
iI
π
i
.U |
Intuitively, update patterns above represent a context, i.e., a process with zero or more holes. The in-
tention is that when an update prefix ea{U} is able to interact, the current state of an adaptable process
named a is used to ll the holes in the update pattern U. Given a process P, process a[P] denotes the
adaptable process P located at a. Notice that a acts as a transparent locality: process P can evolve on
its own, and interact freely with external processes. Localities can be nested, so as to form suitable hi-
erarchies of adaptable processes. The rest of the syntax follows standard lines. A process
π
.P performs
prefix
π
and then behaves as P. Parallel composition P k Q decrees the concurrent execution of P and
Q. We abbreviate P
1
k ··· k P
n
as
n
i=1
P
i
, and use
k
P to denote the parallel composition of k instances
of process P. Given an index set I = {1,..,n}, the guarded sum
iI
π
i
.P
i
represents an exclusive choice
over
π
1
.P
1
,.. .,
π
n
.P
n
. As usual, we write
π
1
.P
1
+
π
2
.P
2
if |I|= 2, and 0 if I is empty. Process !
π
.P defines
guarded replication, i.e., unboundedly many occurrences of P in parallel, which are triggered by prefix
π
.
Given an update pattern U and a process Q, we write UhhQii for the process obtained by filling in
with Q those holes in U not occurring inside update prefixes (a formal definition can be found in [2]).
Hence, {·} can be seen as a scope delimiter for holes in ea{U}.
We now move on to consider three concrete instances of update patterns U.
Definition 2.2 We shall consider the following three instances of update patterns for E :
1. Full E (E
1
). The first update pattern admits all kinds of contexts for update prefixes. This variant,
corresponding to the above E is denoted also with E
1
.
2. Unguarded E (E
2
). In the second update pattern, holes cannot occur in the scope of prefixes in
U:
U ::= P | a[U] | U kU |
The variant of E that adopts this update pattern is denoted E
2
.
3. Preserving E (E
3
). In the third update pattern, the current state of the adaptable process is always
preserved (i.e. ” must occur exactly once in U). Hence, it is only possible to add new adaptable
processes and/or behaviors in parallel or to relocate it:
U ::= a[U] | U k P |
The variant of E that adopts this update pattern is denoted E
3
.
4
Towards Dynamic Updates in Service Composition
(SUM)
iI
π
i
.P
i
π
j
P
j
( j I)
(REPL)
!
π
.P
π
P k!
π
.P
(COMP)
a[P]
a[P]
(LOC)
P
α
P
a[P]
α
a[P
]
(ACT1)
P
1
α
P
1
P
1
k P
2
α
P
1
k P
2
(TAU1)
P
1
a
P
1
P
2
a
P
2
P
1
k P
2
τ
P
1
k P
2
(TAU3)
P
1
a[Q]
P
1
P
2
ea{U}
P
2
P
1
k P
2
τ
P
1
{
UhhQii
/} kP
2
Figure 1: LTS for E . Rules (ACT2), (TAU2), and (TAU4)—the symmetric counterparts of (ACT1),
(TAU1), and (TAU3)—have been omitted.
The process semantics is given in terms of a Labeled Transition System (LTS). It is generated by
the set of rules in Figure 1. In addition to the standard CCS actions (input, output,
τ
), we consider two
complementary actions for process update: ea{U} and a[P]. The former represents the possibility to enact
an update pattern U for the adaptable process at a; the latter says that an adaptable process at a, with
current state P, can be updated. We define as
τ
, and write P
α
if P
α
P
, for some P
.
Definition 2.3 The LTS for E , denoted
α
, is defined by the rules in Figure 1, with transition labels
defined as:
α
::= a | a | a[P] | ea{U} |
τ
In Figure 1, rules (SUM), (REPL), (ACT1), and (TAU1) are standard. Rule (COMP) represents the
contribution of a process at a in an update operation; we use to denote a unique placeholder. Rule
(LOC) formalizes transparency of localities. Rule (TAU3) formalizes process evolvability. To realize the
evolution of an adaptable process at a, it requires: (i) a process Q—which represents its current state; (ii)
an update action offering an update pattern U for updating the process at a—which is represented in P
1
by (cf. rule (COMP)) As a result, in P
1
is replaced with process UhhQii. Notice that this means that
the locality being updated is discarded unless it is re-created by UhhQii.
We introduce some definitions that will be useful in the following. We denote with
the reflexive
and transitive closure of the relation . We define Pred(s) as the set {s
S | s
s} of immediate
predecessors of s, while Pred
(s) denotes the set {s S | s
s} of predecessors of s. We will also
assume point-wise extensions of such definitions to sets, i.e. Pred(S) =
S
sS
Pred(s) and similarly for
Pred
(S).
2.1 The static E Calculus
Static variants of E are defined in [2]. Informally speaking, the static characterization of E processes is
related to tree-like structures obtained by nesting of located processes. In dynamic adaptable processes,
the class here considered, update actions which modify the nesting structure are allowed; in contrast,
in static adaptable processes such actions are disallowed: this guarantees that no adaptable process is
created nor destroyed along computation. By adding such a static topology constraint we get three static
variants E
1
s
, E
2
s
and E
3
s
for the three kind of update patterns considered in the E
1
, E
2
and E
3
languages.
From now on we will denote the latter with E
1
d
, E
2
d
and E
3
d
to distinguish them from their static variants.
M. Bravetti
5
E
d
– Dynamic Topology E
s
– Static Topology
E
1
BA undec / EA undec BA undec / EA undec
E
2
BA dec / EA undec BA dec / EA undec
E
3
BA dec / EA undec BA dec / EA dec
Table 1: Summary of (un)decidability results for dialects of E .
2.2 Eventual and Bounded Adaptation
In [2], we study two verification problems associated to E processes and their (un)decidability. They
are defined in terms of standard observability predicates (barbs), which indicate the presence of a des-
ignated error signal. We thus distinguish between correct states (i.e., states in which no error barbs are
observable) and error states (i.e., states exhibiting error barbs). The rst verification problem, bounded
adaptation (abbreviated BA) ensures that, given a finite k, at most k consecutive error states can arise in
computations of the system—including those reachable as a result of dynamic updates. In other words,
the number of consecutive erroneous states that can be traversed during a computation is bound by some
given number k. The second one, eventual adaptation (abbreviated EA), is similar but weaker: it ensures
that if the system enters into an error state then it will eventually reach a correct state (the system cannot
enter a sequence of consecutive erroneous states that lasts forever). We believe that BA and EA t well
in the kind of correctness analysis that is required in a number of emerging applications. For instance,
on the provider side of a cloud computing application, these properties allow to check whether a client is
able to assemble faulty systems via the aggregation of the provided services and the possible subsequent
updates. On the client side, it is possible to carry out forms of traceability analysis, so as to prove that if
the system exhibits an incorrect behavior, then it follows from a bug in the provider’s infrastructure and
not from the initial aggregation and dynamic updates provided by the client.
The main technical results of the paper are summarized in Table 1. The calculus E
1
is shown to
be Turing complete, and both BA and EA are shown to be undecidable for E
1
processes. The Turing
completeness of E
1
says much on the expressive power of update actions. In fact, it is known that
fragments of CCS without restriction can be translated into finite Petri nets, so they are not Turing
complete. Update actions in E thus allow to “jump” from finite Petri nets to a Turing complete model. We
show that in E
2
BA is decidable, while EA remains undecidable. Interestingly, EA is already undecidable
in E
3
d
, while it is decidable in E
3
s
.
2.3 A Logic for Adaptable Processes
We also considered, in [3], a simple yet expressive temporal logic L over adaptable processes. Con-
cerning model-checking with formulas of the entire logic L we have the same decidability results as for
the eventual adaptation property, while for a fragment of the logic, denoted with L
r
, we have the same
decidability results as for the bounded adaptation property (see Table 1).
Definition 2.4 The set At of atomic predicates p is given by the following syntax:
p ::= a
a
T.
Predicates a and
a hold true for states/terms that may perform transitions a and a, respectively. The
intention is that the interpretation of atomic predicates should coincide with the notion of barb in the
process model. T is the true predicate that holds true for every state/term. In the following, we use
α
to
range over labels a,
a, for some name a.
6
Towards Dynamic Updates in Service Composition
Definition 2.5 The set L of logic formulae
φ
,
ψ
,.. . is given by the following syntax, where p At:
φ
::= p
φ
φ
φ
φ
¬
φ
φ
φ
The set of logical operators includes atomic predicates p At, the usual boolean connectives (, ,
and ¬), as well as dynamic connectives (the next and eventuality modalities, and
). The interpreta-
tion of L over LTSs is given below, where each formula is mapped into the set of states/terms satisfying
it.
[[
α
]] =
s E |s
α
[[T]] = E [[
φ
]] = Pred([[
φ
]]) [[
φ
]] = Pred
([[
φ
]])
[[
φ
1
φ
2
]] = [[
φ
1
]] [[
φ
2
]] [[
φ
1
φ
2
]] = [[
φ
1
]] [[
φ
2
]] [[¬
φ
]] = E \[[
φ
]]
Connectives are interpreted as usual. We usually write s |=
φ
if s [[
φ
]].
Definition 2.6 A formula
φ
is called monotone if it does not contain occurrences of ¬.
Restricted monotone formulae are those monotone formulae in which conjunctions are always of the
form p
φ
, for some p At and a monotone formula
φ
L .
Definition 2.7 A formula
φ
is restricted monotone if it is monotone and, for any occurrence of
φ
1
φ
2
inside
φ
, there exists i {1,2} such that
φ
i
is a predicate p At.
Restricted logic L
r
is the logic composed by, possibly negated, restricted monotone formulae.
Definition 2.8 The restricted logic is composed by the set L
r
of formulae of the form
φ
or ¬
φ
, where
φ
is a restricted monotone formula.
We now give some examples of formulas in L and L
r
. We take
+
φ
def
= ♦♦
φ
. Possibly the most
natural safety property one would like to ensure is the absence of k consecutive barbs (representing, e.g.,
errors, as for the bounded adaptation property):
CB
k
(e)
def
= ¬♦
e(e(e... e))
|
{z }
e appears k times
Observe how CB
k
(e) L
r
. Another example of a sensible property to ensure is monotone correctness:
once solved, errors do not reappear. In L this can be expressed as:
MC(e)
def
= ¬♦
e
+
(¬e
+
e)
Assuming a designated barb ok, signaling a correct (error-less) state, the above can be captured in L
r
as
follows:
MC
r
(ok,e)
def
= ¬♦
e
+
(ok
e)
The extension of MC
r
(ok,e) to consider k different error phases (it cannot happen that an error re-appears
up to k times) is straightforward:
MC
r
k
(ok,e)
def
= ¬♦
e
+
(ok
(e
+
(ok... (ok
e))))
|
{z }
ok appears k times
The latter is used in [3] to model-check a case study about effective scaling in cloud computing, modeled
with a E
2
d
process (thus model-checking is decidable).
In [3] we also conjecture that decidability results for L
r
can be extended to monotone formulae
(dropping the restricted monotone constraint) and we discuss extensions of the logic with a recursion
operator. In particular, we claim that for L
r
with recursion, that would allow us to express properties like
eventual adaptation, we have the same (un)decidability results as for formulae of L (without recursion).
M. Bravetti
7
3 Choreographies and Orchestrations with Dynamic Updates
We now discuss a possible approach for expressing distributed dynamic updates of protocol specifica-
tions. The technical machinery presented in this section is taken from [7, 1] (to which the reader is
referred for details).
Dynamic updates in this context are presented as an extension of our work on choreographies and
behavioural contracts in multiparty interactions [5, 7, 9]. We consider distributed adaptability, where
a process can update part of a protocol by performing dynamic distributed updates over a set of pro-
tocol participants (denoted by roles in the choreographical description of the protocol). In particular,
we show how update mechanisms considered for adaptable processes can be used to extend the the-
ory of choreography and orchestration/contracts, allowing them to be modified at run-time by internal
(self-adaptation) or external intervention. This entails both an extension of choreography and orches-
tration/contract languages with primitives for distributed updates and named adaptable parts similar to
operators ea{U} and a[P] considered in the previous section. Moreover also related theories must be
extended, such as choreography well-formedness (by, e.g., connectedness constraints) and derivation of
participant orchestrations from a choreography by projection.
We start by presenting the choreography and orchestration calculi (representing individual participant
behaviour) and then we relate them by projection. Finally, we will extend the the theory presented with
distributed dynamic update mechanisms starting from the operators introduced in the previous section.
3.1 The Choreography Calculus
We assume a denumerable set of action names N , ranged over by a,b,c,... and a set of roles Roles
ranged over by r,s,l.
Definition 3.1 (Choreographies) The set ofChoreographies, ranged over by H,L,··· is defined by the
following grammar:
H ::= a
rs
| H + H | H;H | H|H | H
The invocations a
rs
means that role r invokes the operation a provided by the role s. The other operators
are choice
+ , sequential ; , parallel | , and repetition
.
The operational semantics of choreographies considers two auxiliary terms 1 and 0. They are used
to model the completion of a choreography, which is relevant in the operational modeling of sequential
composition. The formal definition is given in Table 2 where we take
η
to range over the set of labels
{a
rs
| a N ,r,s Roles}{
} (the label
denotes successful completion). The rules in Table 2
are rather standard for process calculi with sequential composition and without synchronization; in fact,
parallel composition simply allows for the interleaving of the actions executed by the operands (apart
from completion labels
that are required to synchronize).
Choreographies are especially useful to describe the protocols of interactions within a group of col-
laborating services. To clarify this point, we present a simple example of a protocol described with our
choreography calculus.
Example 3.2 (Buyer/Seller/Bank) Let us consider the following choreography composed of three
roles: Buyer, Seller and Bank
Request
BuyerSeller
;( Offer
SellerBuyer
|PayDescr
SellerBank
);
Payment
BuyerBank
;( Confirm
BankSeller
|Receipt
BankBuyer
)
8
Towards Dynamic Updates in Service Composition
a
rs
a
rs
1 1
0 H
0
H
η
H
H+L
η
H
H
η
H
η
6=
H;L
η
H
;L
H
H
L
η
L
H;L
η
L
H
H
L
L
H|L
H
|L
H
η
H
η
6=
H|L
η
H
|L
H
η
H
η
6=
H
η
H
;H
Table 2: Semantic rules for choreographies (symmetric rules omitted).
According to this choreography, the Buyer initially sends an item request to the Seller that subsequently,
in parallel, replies with an offer and sends a payment description to the Bank. Then the Buyer per-
forms the actual payment to the Bank. The latter in parallel replies with a receipt and sends a payment
confirmation to the Seller.
3.2 The Orchestration Calculus
As for choreographies, we assume a denumerable set of action names N , ranged over by a,b,c,.. . . We
use
τ
/N to denote an internal (unsynchronizable) computation.
Definition 3.3 (Orchestrations and Systems) The syntax of orchestrations is defined by the following
grammar
C ::= 0 | 1 |
τ
| a | a
r
|
C;C | C+C | C|C | C
The set of all orchestrations C is denoted by P
orc
. Differently from choreographies, orchestration syntax
makes it possible to specify orchestrations that fail 0 or successfully terminate 1. The reason of such
a difference is that, conceptually, choreographies represent the desired overall system behaviour, while
orchestrations can be used to reason about concrete (possibly failing) participant implementations.
The syntax of systems (parallel composition of orchestrations) is defined by the following grammar
P ::= [C]
r
| P||P
A system P is well-formed if: (i) every orchestration subterm [C]
r
occurs in P at a different role r and (ii)
no output action with destination r is syntactically included inside an orchestration subterm occurring
in P at the same role r, i.e. actions
a
r
cannot occur inside a subterm [C]
r
of P. The set of all well-
formed systems P is denoted by P. In the following we will just consider well-formed systems and, for
simplicity, we will call them just systems.
We take
α
to range over the set of syntactical actions SAct = N {a
r
| a N r Roles}{
τ
}.
The operational semantics of orchestrations is defined by the rules in Table 3 (plus symmetric rules).
The operational semantics of systems is defined by the rules in Table 4 plus symmetric rules. We take
β
to range over the set Act of actions executable by orchestrations and systems, i.e. Act = SAct {a
l
| a
N l Roles}{a
rs
| a N r, s Roles}{
a
rs
| a N r, s Roles}. We take
λ
to range over
the set of transition labels Act {
}, where
denotes successful termination.
M. Bravetti
9
1
0
α
α
1
C
λ
C
C+D
λ
C
C
λ
C
λ
6=
C;D
λ
C
;D
C
C
D
λ
D
C;D
λ
D
C
C
D
D
C|D
C
|D
C
λ
C
λ
6=
C|D
λ
C
|D
C
0
C
λ
C
λ
6=
C
λ
C
;C
Table 3: Semantic rules for orchestrations (symmetric rules omitted).
C
a
C
[C]
r
a
r
[C
]
r
C
a
s
C
[C]
r
a
rs
[C
]
r
P
λ
P
λ
6=
P||Q
λ
P
||Q
P
a
s
P
Q
a
rs
Q
P||Q
a
rs
P
||Q
P
P
Q
Q
P||Q
P
||Q
Table 4: Semantic rules for systems (symmetric rules omitted).
Here and in the remainder of the paper we use the following notations: P
λ
to mean that there
exists P
such that P
λ
P
and, given a sequence of labels w =
λ
1
λ
2
···
λ
n1
λ
n
(possibly empty, i.e.,
w =
ε
), we use P
w
P
to denote the sequence of transitions P
λ
1
P
1
λ
2
···
λ
n1
P
n1
λ
n
P
(in case
of w =
ε
we have P
= P, i.e., P
ε
P). Moreover, for completely specified systems P (i.e. terms P
not included as subterms in a larger term P
), we do not consider transitions corresponding to unmatched
input and output actions: namely, we consider only transitions labeled with
τ
(local internal actions),
(global successful termination) and a
rs
(completed interactions).
We now define the notion of correct composition of orchestrations. This notion is the same as in [5].
Intuitively, a system composed of orchestrations is correct if all possible computations may guarantee
completion; this means that the system is both deadlock and livelock free (there can be an infinite com-
putation, but given any possible prefix of this infinite computation, it must be possible to extend it to
reach a successfully completed computation).
Definition 3.4 (Correct orchestration composition) System P P is a correct orchestration compo-
sition, denoted P, if for every P
such that P
w
P
there exists P
′′
such that P
w
P
′′
.
10
Towards Dynamic Updates in Service Composition
3.3 Choreography Implementation, Projection and Well-Formedness
We are now ready to formalize the notion of correct implementation of a choreography. With P
τ
P
we denote the existence of a (possibly empty) sequence of
τ
-labeled transitions starting from the system
P and leading to P
. Given the sequence of labels w =
λ
1
···
λ
n
, we write P
w
=P
if there exist P
1
,··· ,P
m
such that P
τ
P
1
λ
1
P
2
τ
···
τ
P
m1
λ
n
P
m
τ
P
.
Intuitively, a system implements a choreography if it is a correct composition of orchestrations and
all of its conversations (i.e. the possible sequences of message exchanges), are admitted by the choreog-
raphy.
Definition 3.5 (Choreography implementation) Given the choreography H and the system P, we say
that P implements H (written P H) if
P is a correct orchestration composition and
given a sequence w of labels of the kind a
rs
, if P
w
= P
then there exists H
such that H
w
H
.
Note that it is not necessary for an implementation to include all possible conversations admitted by
a choreography.
Example 3.6 (Implementation of Buyer/Seller/Bank) As an example, we present a possible imple-
mentation of the choreography reported in the Example 3.2.
[
Request
Seller
;Offer;Payment
Bank
;Receipt]
Buyer
||
[Request;(Offer
Buyer
|PayDescr
Bank
);Confirm]
Seller
||
[PayDescr;Payment;(
Receipt
Buyer
|Confirm
Seller
)]
Bank
We now present the notion of choreography projection, which yields an orchestration C for each role
of a choreography H. The definition is very simple thanks to the idea, we introduced in [7], of projecting
communication atoms and then applying homomorphism over all the algebra operators.
Definition 3.7 (Choreography projection) Given a choreography H, the projection H on the role r,
denoted with [[H]]
r
, is defined inductively on the syntax of H in such a way that
[[a
rs
]]
t
=
a
s
if t = r
a if t = s
1 otherwise
and that it is a homomorphism with respect to all operators.
It is interesting to observe that given a choreography H, the system obtained composing its projec-
tions is not ensured to be an implementation of H. For instance, consider the choreography a
rs
; b
tu
.
The system obtained by projection is [
a
s
]
r
|| [a]
s
|| [b
u
]
t
|| [b]
u
. Even if this is a correct composition of
orchestrations, it is not an implementation of H because it comprises the conversation b
tu
a
rs
which is
not admitted by H.
The problem is not in the definition of the projection, but in the fact that the above choreography
cannot be implemented preserving the message exchanges specified by the choreography. In fact, in
order to guarantee that the communication between t and u is executed after the communication between
r and s, it is necessary to add a further message exchange (for instance between s and r) which is not
considered in the choreography.
M. Bravetti
11
In order to have the guarantee that the system obtained by projection is consistent with the initial
choreography, it is reasonable to consider a subset of well formed choreographies. The most general and
intuitive notion of well formedness, we introduced in [7], can be obtained by considering only all those
choreographies for which the system obtained by projection is ensured to be a correct implementation.
Definition 3.8 (Well formed choreography) A choreography H, defined on the roles r
1
,··· ,r
n
, is well
formed if [[[H]]
r
1
]
r
1
|| ··· || [[[H]]
r
n
]
r
n
H
It is worthwhile to note that well formedness is decidable. In fact, given a choreography H, it is sufficient
to take the corresponding system P obtained by projection, then consider P and H as nite state automata,
and finally check whether the language of the first automaton is included in the language of the second
one. Note that the terms P and H can be seen as finite state automata thanks to the fact that their infinite
behaviours are defined using Kleene-star repetitions instead of general recursion. This decidability result
clearly follows from the fact that we restrict to finite state choreographies.
In the literature, syntactic versions of well formedness exist (see e.g. [14, 19, 4]). A sound charc-
terization of well-formedness is obtained, following [19, 4], by introducing a notion of connectedness
for our choreography calculus. The idea is to impose syntactic restrictions in order to avoid the three
possible ways in which a system obtained by projection can have a different behaviour w.r.t. its chore-
ography: connectedness for sequence, related to the H;H
operator and guaranteeing that an interaction
of H
cannot occur before an interaction of H; unique point of choice, related to the H + H
operator and
guaranteeing that all the roles involved in H and H
are aware of the selected branch; and no operation
interference, related to the H|H
operator and guaranteeing that a message sent within an interaction of
one of H or H
cannot be intercepted by a receive action in an interaction of the other one (see [19, 4] for
details).
Theorem 3.9 Let H be a choreography satisfying the connectedness for sequence, unique point of
choice and no operation interference conditions. Then H is well formed.
3.4 Behavioural Contracts and Contract Refinement
Behavioural contracts make it possible to reason about protocol participant correct composition indepen-
dently of the language (syntax and semantics) used for expressing the orchestration of a participant. A
behavioural contract is defined, basically, as a Labeled Transition System with the same set of labels we
considered for the semantics of an orchestration (see, e.g., [10] for a precise definition). An orchestration,
therefore, gives rise to a behavioral contract as the labeled transition system obtained by its semantics.
Behavioural contracts are important in the context of service oriented computing for dealing with the
problem of service retrieval. Assuming that services expose in their interface an abstract description of
their behaviour (a behavioural contract) it is desirable to define an automatic procedure that can be used to
check whether a service may correctly play a given role of a choreography. It is therefore crucial to define
an, as coarse as possible, notion of contract refinement that makes it possible to establish if a discovered
service can play a given role, based on the behavioural contract of the service and the behavioural contract
derived, by projection, from the choreography. We, thus, define contract refinement as the coarsest
preorder over behavioural contracts which preserves correct composition when applied to members of
a set of behavioural contracts (one for each role of a choreography). See [5, 6, 7, 8, 9, 10, 11, 12] for
formal definitions considering several form of communications/notions of correct composition.
12
Towards Dynamic Updates in Service Composition
3.5 Introducing Distributed Dynamic Updates
Dynamic updates are specified, similarly as in Section 2, by defining scopes X[H] (where X is a scope
name) that delimit parts of choreographies that, at runtime, may be replaced by a new choreography,
coming from either inside or outside the system. Updates coming from outside may be decided by the
user through some adaptation interface, by some manager module, or by the environment. In contrast,
updates coming from inside represent self-adaptations, decided by a part of the system towards itself or
towards another part of the system, usually as a result of some unsatisfactory interaction. Updates from
outside and from inside are indeed quite similar, e.g., an update decided by a manager module may be
from inside if the manager behavior is part of the choreography term, from outside if it is not.
Scopes X[H] are updated by means of
e
X{H
} operators similarly as described in Section 2. However,
for the sake of simplicity, here we just consider updates
e
X{H
} where H
does not have holes , i.e. in
Section 2 this corresponds to the case in which an update pattern U is just a term P (without any ).
Moreover, we assume
e
X{H
} to just update the content of scope X[H], thus leading to X[H
]. Therefore,
in terms of the machinery in Section 2, this corresponds to having scopes a[Q], for some Q, to be updated
by ea{U} where U is a[P] for some P, thus a[Q] is replaced by a[P]hhQii = a[P]. According to the
classification introduced in Section 2, updates of this kind fall in the category of Unguarded update
patterns (those of E
2
d
language) but not in that of Preserving update patterns (those of E
3
d
language). This
because in the latter category update patterns are required to have one hole . Moreover, the language
topology is not static in that, when a named scope X[H] is updated by means of
e
X{H
}, H
can have a
different set of named scopes with respect to H and, moreover, due to usage of the “;” operator, named
scopes can be created and destroyed at run-time.
Differently from process calculi considered in Section 2 (E family), here scope updates are not
applied by channel based communication (that would not make sense in the context of a choreography,
where communication is just a basic action a
rs
), but by replacement. Thus
e
X{H
} updates all scopes
X[H] (with the same name X) occurring anywhere in the choreography. This also justifies the change of
notation from a[P]/ea{U} to X[H]/
e
X{H
}: in the former a represents a channel on which to communicate,
in the latter X represents a syntactic variable to replace. Moreover, notice that, now when a scope X[H]
is updated, we are actually performing a distributed update that encompasses all the roles involved in H:
at the orchestration level, as we will see, we have an X scope for each of such roles and an update on X
must update all of them in a distributed way.
Formally speaking, the Choreography Calculus is extended with scopes and updates as follows (with
respect to the notation above we add roles and we omit ˜ in updates):
H ::= ...
| X : T[H] (scope) | X{r : H} (update)
where X is used to range over a set of scope names and T is a set of roles.
Construct X : T[H] defines a scope named X currently executing choreography H the name is
needed to designate it as a target for a particular adaptation. Type T is the set of roles (possibly) occurring
in the scope. This is needed since a given update can be applied to a scope only if it specifies how all
the involved roles are adapted. Operator X{r : H} defines internal updates, i.e., updates offered by a
participant of the choreography. Here r denotes the role offering the update, X is the name of the target
scope, and H is the new choreography.
The operational semantics for the new Choreography Calculus with updates is defined only for a
proper subset of well defined choreographies.
1
First of all, type T related conditions are added in order
1
We refer the reader to [1] for a formal definition of this subset of well defined choreographies, here we simply informally
M. Bravetti
13
(COMMUPD)
X{r : H}
X{r: H}
1
(SEQUPD)
H
1
X{r: H}
H
1
H
1
; H
2
X{r: H}
H
1
;(H
2
[H/X])
(PARUPD)
H
1
X{r: H}
H
1
H
1
| H
2
X{r: H}
H
1
| (H
2
[H/X])
(STARUPD)
H
1
X{r: H}
H
1
H
1
X{r: H}
H
1
; (H
1
[H/X])
(SCOPEUPD)
H
1
X{r: H}
H
1
X : T[H
1
]
X{r: H}
X : T[H]
(SCOPECOMM)
H
1
a
r
1
r
2
H
1
X : T[H
1
]
a
r
1
r
2
X : T[H
1
]
(SCOPE)
H
1
η
H
1
X : T[H
1
]
η
X : T[H
1
]
η
6= X{r : H}for any r,H
Table 5: Semantics of Choreographies with updates
to guarantee that: every scope X : T[H
] occurring in H has the same type T, denoted with type(X);
and every update X{r : H} injects a choreography H that considers only roles explicitly indicated in the
type T of the updated part(s) X : T[H
] (at least one scope X is required to occur in the choreography).
Moreover, also syntactic restrictions are imposed in order to guarantee that it will never occur that two
distinct scopes with the same name are contemporaneously active. This is necessary for the following
reason: when a scope is projected, it is distributed among several independent roles running in parallel,
and in order to avoid interferences between two distinct scopes with the same name X we assume that
only one scope X can be active at a time.
The operational semantics is defined by adding the rules dealing with scopes and updates reported
in Table 5. The transition labels
η
now include the label X{r : H} indicating the execution of an update
action. In the rules, we use H[H
/X] to denote the substitution that replaces all scopes X : T[H
′′
] with
name X occurring in H (not inside update prefixes) with X : T[H
].
We briefly comment the rules in Table 5. Rule (COMMUPD) makes an internal update available,
moving the information to the label. Updates propagate through sequence, parallel composition, and
Kleene star using rules (SEQUPD), (PARUPD), and (STARUPD), respectively. Note that, while propa-
gating, the update is applied to the continuation of the sequential composition, to parallel terms, and to
the body of Kleene star. Notably, the update is applied to both enabled and non enabled occurrences of
the desired scope. Rule (SCOPEUPD) allows a scope to update itself (provided that the names coincide),
while propagating the update to the rest of the choreography. Rule (SCOPE) allows a scope to compute.
Example 3.10 (Adaptable Buyer/Seller/Bank) Here, we consider a version of the Buyer/Seller/Bank
example discussed in the Example 3.2 where it is possible to update the payment interaction between
the buyer and the bank by using, for instance, a new version of the payment protocol according to which
the buyer sends its VISA code to the bank and the bank subsequently confirms its correctness. Let us
consider the following choreography composed of three roles: Buyer, Seller and Bank
Request
BuyerSeller
;( Offer
SellerBuyer
|PayDescr
SellerBank
);
X{Buyer,Bank}[Payment
BuyerBank
];( Confirm
BankSeller
|Receipt
BankBuyer
)
report the imposed limitations.
14
Towards Dynamic Updates in Service Composition
According to the operational semantics defined above, this choreography could, for instance, perform
the initial Request interaction and then receives an external update:
X{r : VISAcode
BuyerBank
;VISAok
BankBuyer
}
and then becomes the following choreography:
( Offer
SellerBuyer
|PayDescr
SellerBank
);
X{Buyer,Bank}[VISAcode
BuyerBank
;VISAok
BankBuyer
];( Confirm
BankSeller
|Receipt
BankBuyer
)
We are now ready to present the definition of our Orchestration Calculus extended with operators for
dynamic updates:
C ::= ...
| X[C]
F
(scope) | X{(r
1
,.. ., r
n
) : C
1
,.. .,C
n
} (update)
where F is a flag that is either A, standing for active (running) scope, or
ε
, denoting a scope still to
be started (
ε
is omitted in the following). X[C]
F
denotes a scope named X executing C. F is a flag
distinguishing scopes whose execution has already begun (A) from scopes which have not started yet
(
ε
). In order for scopes to become active, orchestrations starting execution of scopes with the same
name X must synchronize. Also, when all participants in a scope X complete their respective execu-
tions, a synchronisation is needed in order to synchronously remove the scope. The update operator
X{(r
1
,.. ., r
n
) : C
1
,.. .,C
n
} provides an update for scope named X, involving roles r
1
,.. ., r
n
. The new
behaviour for role r
i
is C
i
.
As in the previous sections, systems are of the form [C]
r
, where r is the name of the role and C its
behaviour. Systems, denoted P, are obtained by parallel composition of orchestrations:
P ::= [C]
r
| P||P
In this presentation, we do not formally define a semantics for orchestrations: we just point out that
it should include labels corresponding to all the labels of the semantics of choreographies, plus some
additional labels corresponding to partial activities, such as an input. We also highlight the fact that all
scopes that correspond to the same choreography scope evolve together: they are endowed with scope
start transitions (transforming a scope from inactive to active, setting its flag F to A) that are synchro-
nized; and with scope end transitions (syntactically removing the entire scope) that are synchronized
as well. The fact that choreographies feature at most one scope with a given name is instrumental in
ensuring this property.
We now discuss how to extend the notion of projection presented in Definition 3.7 for the case
without updates.
Definition 3.11 (Projection for choreographies with updates) The projection of a choreography H on
a role r, denoted by [[H]]
r
, is defined as in Definition 3.7 plus the clauses below for scopes and updates:
[[X{r
: H}]]
r
=
(
X{(r
1
,.. ., r
n
) : [[H]]
r
1
,.. ., [[H]]
r
n
}with {r
1
,.. ., r
n
} = type(X) if r = r
1 otherwise
[[X : T[H]]]
r
=
(
X[[[H]]
r
] if r type(X)
1 otherwise
M. Bravetti
15
Example 3.12 We now present the projection of the choreography in the Example 3.10 (we omit
unnecessary 1 terms):
[
Request
Seller
;Offer;X[Payment
Bank
];Receipt]
Buyer
||
[Request;(
Offer
Buyer
|PayDescr
Bank
);Confirm]
Seller
||
[PayDescr;X[Payment];(
Receipt
Buyer
|Confirm
Seller
)]
Bank
It is interesting to note that the projection clearly identifies where a possible update of the payment should
have an effect; namely, only the roles Buyer and Bank are affected by the update in precise parts of their
behaviour. For instance, if X{(Buyer, Bank) :
VISAcode
Bank
;VISAok
,
VISAcode;VISAok
Buyer
} is
executed after the first Request interaction occurs, then the system becomes:
[Offer;X[
VISAcode
Bank
;VISAok];Receipt]
Buyer
||
[(Offer
Buyer
|PayDescr
Bank
);Confirm]
Seller
||
[PayDescr;X[VISAcode;VISAok
Buyer
];(Receipt
Buyer
|Confirm
Seller
)]
Bank
where the projections of the new protocol are precisely injected in the behaviour of the affected roles.
Ideally, traces of the projected system should correspond to the traces of the original choreography.
Actually, we conjecture that this occurs for choreographies satisfying connectedness conditions obtained
by extending those already discussed in Section 3.3. We finally point out two main aspects of the ex-
pected correspondence result between choreographies and their projections in the case of the calculi
extended with dynamic updates. First, labels X{r : H} of transitions of the choreography should be
mapped to labels of the transitions of the Orchestration Calculus obtained by appropriate label projec-
tions. Second, orchestration traces should not consider unmatched input and output labels.
4 Related Work
The E calculus is related to higher-order process calculi such as, e.g., the higher-order
π
-calculus [22],
Kell [23], and Homer [13]. (Further comparisons between E and other calculi and languages can be
found in [2].) In such calculi, processes can be passed around, and so communication involves term
instantiation, as in the
λ
-calculus. Update actions in E are a form of term instantiation: they can be
seen as a streamlined version of the passivation operator of Kell and Homer, which allows to suspend
a running process. It would be interesting to investigate if the results and techniques developed in this
paper can apply to Kell and Homer (or to some interesting fragments of them).
Concerning theories related to choreographies and orchestrations/contracts, among our main contri-
butions we can mention: (i) The formalisation of the relationship between global choreographic descrip-
tions and systems obtained as parallel compositions of peers, (ii) The definition of suitable notions of
behavioural contract refinement, and (iii) The proposal of mechanisms for dynamic updates for both the
choreography and the orchestration calculi. Concerning (i), we have defined well-formedness for chore-
ographies based on natural projection and the notion of implementation. We have introduced the simple
technique of obtaining orchestrations by projection, defining it for communication actions and then ex-
ploiting homomorphism over all the process algebraic operators. Moreover our approach leads to a more
general notion of well-formedness w.r.t. other approaches like, e.g., [14], where it is defined in terms of
three connectedness constraints similar to those we have mentioned in Section 3.3. Concerning (ii), our
main contribution is related to the idea of refining all peers guaranteeing that all of them continue to reach
local success. This differs from other popular approaches, like those initiated by Fournet et al. [17] or
16
Towards Dynamic Updates in Service Composition
Padovani et al. [15], where the focus is on the success of one specific peer (usually, the so-called, client).
Concerning (iii), it is worth to mention that [16] has been a source of inspiration for the present work:
the main difference is our choice of expressing adaptation in terms of scopes and code update constructs,
rather than using rules. This approach appears more adequate for the definition of a general theory of
behavioural typing to be used on more general languages where multiple protocols/choreographies can
interleave inside the same program.
5 Conclusion
We just present some observations about the reported results and remarks concerning current/future work.
Choreography and orchestration languages of Section 3 make use, as common in this context, of
Kleene-star instead of general recursion (or replication as for E calculi considered in Section 2). As a
consequence (see Section 3.3), they always give rise to finite-state transition systems, for which verifi-
cation problems are decidable. Given that update mechanisms we introduced in this context belong to
the class of those considered in the E
2
d
language of Section 2, verification of properties like bounded
adaptability or formulae of a restricted logic like L
r
could be still decidable even if we extend such
languages with some more expressive form of recursion. This, for instance, could introduce the possi-
bility, similarly as for the E family, to generate new participants (or participant instances) at run-time.
Notice that such a correspondence between decidability results for the E family and for choreography
and orchestration languages would be possible because, as common in the context of latter languages,
name binders (CCS restriction) are not considered, which would otherwise make them Turing complete.
We are currently working on applying the theory of updatable choreographies/orchestrations in the
context of session types for typing a concrete language with session spawning, where choreographies
play the role of global types attached to sessions and we use orchestrations for checking, via typing
rules, that the code actually conforms with the specified global types. In this context, extending our
contract refinement theory [5, 7, 9, 10, 12] to updatable choreographies/orchestrations would make it
possible to define a notion of semantic subtyping.
References
[1] Bravetti M., Carbone M., Hildebrandt T., Lanese I., Mauro J., Perez J.A., Zavattaro G.: Towards
Global and Local Types for Adaptation. Proc. of 2nd International Workshop on Behavioural Types
SEFM’13 Colocated Workshops pages 1–12, volume 8378 of Lecture Notes in Computer Science,
Springer-Verlag, 2013. doi:10.1007/978-3-319-05032-4
1
[2] Bravetti, M., Di Giusto, C., P´erez, J. A., Zavattaro, G.: “Adaptable processes”, in Logical Methods in
Computer Science, 8(4), 2012. doi:10.2168/LMCS-8(4:13)2012
[3] Bravetti, M. , Di Giusto, C., P´erez, J. A., Zavattaro, G.: “Towards the Verification of Adaptable Pro-
cesses., in Proc. of 5th InternationalSymposium on Leveraging Applications of Formal Methods, Veri-
fication and Validation. Technologiesfor Mastering Change(ISoLA2012)Part I, LNCS7609: 269–283,
Springer 2012. doi:10.1007/978-3-642-34026-0
20
[4] Bravetti, M., Lanese, I., Zavattaro, G.: Contract-Driven Implementation of Choreographies. Proc. TGC
2008: LNCS 5474, Springer, 2009, 1–18. doi:10.1007/978-3-642-00945-7 1
[5] Bravetti, M., Zavattaro, G.: Contract based Multi-party Service Composition, Proc. FSEN’07, LNCS
4767, Springer, 2007, 207–222. doi:10.1007/978-3-540-75698-9
14
[6] Bravetti, M., Zavattaro, G.: A Theory for Strong Service Compliance, Proc. Coordination’07, LNCS
4467, Springer, 2007, 96–112. doi:10.1007/978-3-540-72794-1
6
M. Bravetti
17
[7] Bravetti, M., Zavattaro, G.: Towards a Unifying Theory for Choreography Conformance and Contract
Compliance, Proc. SC’07, LNCS 4829, Springer, 2007, 34–50. doi:10.1007/978-3-540-77351-1
4
[8] Bravetti, M., Zavattaro, G.: Contract Compliance and Choreography Conformance in the
Presence of Message Queues, Proc. WS-FM’08, volume to appear of LNCS, 2008.
doi:10.1007/978-3-642-01364-5
3
[9] Bravetti, M., Zavattaro, G.: A Foundational Theory of Contracts for Multi-party Service Composition,
Fundamenta Informaticae 89(4):451–478, IOS Press, 2008.
[10] Bravetti, M., Zavattaro, G.: Contract-Based Discovery and Composition of Web Services, 9th Interna-
tional School on Formal Methods for the Design of Computer, Communication and Software Systems:
Web Services (SFM-09:WS), LNCS 5569, Springer, 2009, 34–50. doi:10.1007/978-3-642-01918-0
7
[11] Bravetti, M., Zavattaro, G.: A Theory of Contracts for Strong Service Compliance, Math-
ematical Structure in Computer Science 19(3):601–638, Cambridge University Press, 2009.
doi:10.1017/S0960129509007658
[12] Bravetti, M., Zavattaro, G.: Service Discovery and Composition based on Contracts and Choreographic
Descriptions, Adaptive Web Services for Modular and Reusable Software Development: Tactics and
Solutions, IGI Global, 2012. doi:10.4018/978-1-4666-2089-6
[13] M. Bundgaard, J. C. Godskesen, and T. Hildebrandt. Bisimulation congruences for homer a cal-
culus of higher order mobile embedded resources. Technical Report TR-2004-52, IT University of
Copenhagen, 2004.
[14] Carbone M., Honda K., Yoshida N.: Structured Communication-Centred Programming for Web Ser-
vices. In ESOP’07, volume to appear of LNCS, 2007. doi:10.1007/978-3-540-71316-6 2
[15] Carpineti S., Castagna G., Laneve C., Padovani L.: A Formal Account of Contracts for Web Services.
In WS-FM’06, volume 4184 of LNCS, pages 148-162, 2006. doi:10.1007/11841197
10
[16] Dalla Preda M., Giallorenzo S., Lanese I., Mauro J., Gabbrielli M.: AIOCJ: A Choreographic Frame-
work for Safe Adaptive Distributed Applications. Proc. SLE 2014: LNCS 8706, Springer, 2014, 161
170. doi:10.1007/978-3-319-11245-9
9
[17] Fournet C., Hoare C.A.R, Rajamani S.K., Rehof J.: Stuck-Free Conformance. In Proc. CAV’04, volume
3114 of LNCS, pages 242–254, 2004. doi:10.1007/978-3-540-27813-9
19
[18] L. Cardelli and A. D. Gordon. Mobile ambients. Theor. Comput. Sci., 240(1):177–213, 2000.
doi:10.1016/S0304-3975(99)00231-5
[19] Lanese I., Guidi C., Montesi F., Zavattaro G.: Bridging the gap between Interaction- and
Process-Oriented Choreographies. Proc. of 6th IEEE International Conferences on Software En-
gineering and Formal Methods (SEFM’08), pages 323–332, IEEE Computer Society press, 2008.
doi:10.1109/SEFM.2008.11
[20] R. Milner. Comunication and Concurrency. Prentice Hall, 1989.
[21] R. Milner, J. Parrow, and D. Walker. A Calculus of Mobile Processes, I. Inf. Comput., 100(1):1–40,
1992. doi:10.1016/0890-5401(92)90008-4
[22] D. Sangiorgi. Expressing Mobility in Process Algebras: First-Order and Higher-Order Paradigms.
PhD thesis CST–99–93, University of Edinburgh, Dept. of Comp. Sci., 1992.
[23] A. Schmitt and J.-B. Stefani. The kell calculus: A family of higher-order distributed pro-
cess calculi. In Global Computing, volume 3267 of LNCS, pages 146–178. Springer, 2004.
doi:10.1007/978-3-540-31794-4
9
ResearchGate has not been able to resolve any citations for this publication.
Conference Paper
Full-text available
Choreographies allow designers to specify the protocols followed by participants of a distributed interaction. In this context, adaptation may be necessary to respond to external requests or to better suit a changing environment (a self-update). Adapting the behavior of a participant requires to update in a coordinated way possibly all the participants interacting with him. We propose a language able to describe a choreography together with its adaptation strategies, and we discuss the main issues that have to be solved to enable adaptation on a participant code dealing with many interleaved protocols.
Conference Paper
Full-text available
We present AIOCJ, a framework for programming distributed adaptive applications. Applications are programmed using AIOC, a choreographic language suited for expressing patterns of interaction from a global point of view. AIOC allows the programmer to specify which parts of the application can be adapted. Adaptation takes place at runtime by means of rules, which can change during the execution to tackle possibly unforeseen adaptation needs. AIOCJ relies on a solid theory that ensures applications to be deadlock-free by construction also after adaptation. We describe the architecture of AIOCJ, the design of the AIOC language, and an empirical validation of the framework.
Article
Full-text available
We extend Howe's method for proving that late labelled trans ition bisimula- tions are congruences to a core process passing calculus wit h local names, extended with non-linear active process mobilityand nested locations, as found in the Seal calculus, M-calculus, and Kell-calculus. The calculus we consider, called Homer for Higher-order Mobile Embedded Resources, has a very simple syntax and semantics, which conserva- tively extend the standard syntax and semantics for process passing calculi. The extension of Howe's method gives a sound characterisation of barbed bi simulation congruence in terms of a late contextual bisimulation. We show that early contextual bisimulation is complete with respect to barbed bisimulation congruence, but that the late bisimulation is in fact strictly included in the early bisimulation. We discuss the issue of scope ex- tension through location boundaries in detail, in particul ar the difference between fresh name generation and static local names. We propose free name extension as a primitive construct in calculi with non-linear process mobility, exp licit locations and local names.
Article
Full-text available
We propose the concept of adaptable processes as a way of overcoming the limitations that process calculi have for describing patterns of dynamic process evolution. Such patterns rely on direct ways of controlling the behavior and location of running processes, and so they are at the heart of the adaptation capabilities present in many modern concurrent systems. Adaptable processes have a location and are sensible to actions of dynamic update at runtime; this allows to express a wide range of evolvability patterns for concurrent processes. We introduce a core calculus of adaptable processes and propose two verification problems for them: bounded and eventual adaptation. While the former ensures that the number of consecutive erroneous states that can be traversed during a computation is bound by some given number k, the latter ensures that if the system enters into a state with errors then a state without errors will be eventually reached. We study the (un)decidability of these two problems in several variants of the calculus, which result from considering dynamic and static topologies of adaptable processes as well as different evolvability patterns. Rather than a specification language, our calculus intends to be a basis for investigating the fundamental properties of evolvable processes and for developing richer languages with evolvability capabilities.
Conference Paper
Full-text available
We define a formal contract language along with subcontract and compliance relations. We then extrapolate contracts out of processes, that are a recursion-free fragment of ccs. We finally demonstrate that a client completes its interactions with a service provided the corresponding contracts comply. Our contract language may be used as a foundation of Web services technologies, such as wsdl and wscl.
Thesis
We study mobile systems, i.e. systems with a dynamically changing communication topology, from a process algebras point of view. Mobility can be introduced in process algebras by allowing names or terms to be transmitted. We distinguish these two approaches as first-order and higher-order. The major target of the thesis is the comparison between them. The prototypical calculus in the first-order paradigm is the π-calculus. By generalising its sort discipline we derive an w-order extension called Higher-Order π-calculus (HOπ). We show that such an extension does not add expressiveness to the π-calculus: Higher-order processes can be faithfully compiled down to first-order, and respecting the behavioural equivalence we adopted in the calculi. Such an equivalence is based on the notion of bisimulation, a fundamental concept of process algebras. Unfortunately, the standard definition of bisimulation is unsatisfactory in a higher-order calculus because it is over-discriminating. To overcome the problem, we propose barbed bisimulation. Its advantage is that it can be defined uniformly in different calculi because it only requires that the calculus possesses an interaction or reduction relation. As a test for barbed bisimulation, we show that in CCS and π-calculus, it allows us to recover the familiar bisimulation-based equivalences. We also give simpler characterisations of the equivalences utilised in HOπ. For this we exploit a special kind of agents called triggers, with which it is possible to reason fairly efficiently in a higher-order calculus notwithstanding the complexity of its transitions. Finally, we use the compilation from HOπ to π-calculus to investigate Milner's
Conference Paper
Laboratory We introduce a calculus describing the movement of processes and devices, including movement through administrative domains.
Conference Paper
In prior work, with the aim of formally modeling and analyzing the behavior of concurrent processes with forms of dynamic evolution, we have proposed a process calculus of adaptable processes. Our proposal addressed the (un)decidability of two safety properties related to error occurrence. In order to allow for a more comprehensive verification framework for adaptable processes, the ability to express general properties is most desirable. In this paper we address this important issue: we explain how the proof techniques for (un)decidability results for adaptable processes generalize to a simple yet expressive temporal logic over adaptable processes. We provide examples of the expressiveness of the logic and its significance in relation with the calculus of adaptable processes.
Conference Paper
We present a novel refinement relation (stuck-free conformance) for CCS processes, which satisfies the substitutability property: If I conforms to S, and P is any environment such that P | S is stuck-free, then P | I is stuck-free. Stuck-freedom is related to the CSP notion of deadlock, but it is more discriminative by taking orphan messages in asynchronous systems into account. We prove that conformance is a precongruence on CCS processes, thereby supporting modular refinement. We distinguish conformance from the related preorders, stable failures refinement in CSP and refusal preorder in CCS. We have implemented conformance checking in a new software model checker, zing, and we report on how we used it to find errors in distributed programs.
Conference Paper
In service oriented computing, choreography languages are used to specify multi-party service compositions. Two main approaches have been followed: the interaction-oriented approach of WS-CDL and the process-oriented approach of BPEL4Chor. We investigate the relationship between them. In particular, we consider several interpretations for interaction-oriented choreographies spanning from synchronous to asynchronous communication. Under each of these interpretations we characterize the class of interaction-oriented choreographies which have a process-oriented counterpart, and we formalize the notion of equivalence between the initial interaction-oriented choreography and the corresponding process-oriented one.