<!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>Space-aware Coordination in ReSpecT</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefano Mariani</string-name>
          <email>s.mariani@unibo.it</email>
        </contrib>
      </contrib-group>
      <abstract>
        <p>-Spatial issues are essential in new classes of complex software systems, such as pervasive, multi-agent, and selforganising ones. Understanding the basic mechanisms of spatial coordination is a fundamental issue for coordination models and languages in order to deal with such systems, governing situated interaction in the spatio-temporal fabric.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Complex socio-technical systems in pervasive computing
scenarios are stressing more and more the requirements for
coordination middleware [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In particular, the availability
of a plethora of mobile devices, with motion sensors and
motion coprocessors, is pushing forward the needs for
spaceawareness of computations and systems: awareness of the
spatial context is often essential to establish which tasks to
perform, which goals to achieve, and how.
      </p>
      <p>
        More generally, spatial issues are fundamental in many
sorts of complex software systems, including intelligent,
multiagent, adaptive, and self-organising ones [2]. In most of the
application scenarios where situatedness plays an essential
role, coordination is required to be space aware. This is
implicitly recognised by a number of proposals in the coordination
field trying to embody spatial mechanisms and constructs into
the coordination languages – such as TOTA [3], -LINDA
[4], GEOLINDA [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and SAPERE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] – which, however, are
mostly tailored around specific application scenarios.
      </p>
      <p>In this paper we aim at devising out the basic mechanisms
and constructs required to generally enable and promote
spaceaware coordination. Along this line, we introduce the general
notion of space-aware coordination medium (Section II), then
we show how the ReSpecT coordination media and language
can be extended to support space-aware coordination
(Section III). After sketching the semantics of the spatial extension
(Section IV), Section V shows some meaningful examples
of spatial coordination using ReSpecT. Section VI discusses
related research, then Section VII provides for final remarks.</p>
    </sec>
    <sec id="sec-2">
      <title>II. SPACE-AWARE COORDINATION MEDIA</title>
      <p>Spatial coordination requires spatial situatedness and
awareness of the coordination media, which translates in a
number of technical requirements.</p>
      <p>a) Situatedness: First of all, situatedness requires that
a space-aware coordination abstraction should at any time
be associated to an absolute positioning, both physical (i.e.,
the position in space of the computational device where the
medium is being executed on) and virtual (i.e. the network
node on which the abstraction is executed). If not a
musthave, geographical positioning is also desirable, and quite a
cheap requirement, too, given the widespread availability of
mapping services nowadays.</p>
      <p>More generally, this concerns both position and motion
– every sort of motion –, which in principle include speed,
acceleration, and all variations in the space-time fabric, also
depending on the nature of space. In fact, software abstractions
may move along a virtual space – typically, the network –
which is usually discrete, whereas physical devices (robots,
mobile devices) move through a physical space, which is
mostly continuous; software abstractions, however, may also
be hosted by mobile physical devices, and share their motion.
As a result, a coordination abstraction may move through either
a physical, continuous space, (e.g., I am in a given position
of a tridimensional physical space) or a virtual, discrete space
(e.g., I am on a given network node).</p>
      <p>Physical positioning could be either absolute (say, I am
currently at latitude X, longitude Y, altitude Z), geographical
(I am in via Sacchi 3, Cesena, Italy), or organisational (I am
in Room 5 of the DISI, site of Cesena). Absolute
positioning is more or less always available in the days of mobile
devices, usually through GPS services—which, coupled with
mapping services, typically provide some sort of geographical
positioning, too. Virtual positioning is available as a network
service, and might be also labelled as either absolute (in terms
of the node IP number, for instance) or relative (for instance,
as a domain/subdomain localisation via DNS). Organisational
location should be instead defined application- or
middlewarelevel, and related to either absolute or virtual positioning.</p>
      <p>Furthermore, a notion of locality may be available—so as
to allow for the local vs. global dynamics which is typical of
complex distributed systems such as pervasive ones. Locality
could be strictly bound to positioning, but not necessarily so:
being in the same position is not always the same as being in
the same location.</p>
      <p>b) Awareness: The main requirement of spatial
awareness is that the ontology of a space-aware coordination medium
should contain some notion of space. This means, first of
all, that the position of the coordination medium should be
available to the coordination laws it contains in order to make
them capable of reasoning about space—so, to implement
space-aware coordination laws. So, generally speaking, a
range of predicates / functions should be provided to
access spatial information associated to any event occurring in
the coordination medium (e.g., where the action causing the
event took place, where the coordination medium is currently
executing), and to perform simple computations over spatial
information.</p>
      <p>Also, space has to be embedded into the working cycle
of the coordination medium: the event model should include
spatial events, which affect coordination activity by
triggering some space-related computation within the coordination
abstraction. In fact, associating spatial information to generic
events is not enough: space-related laws like “when at home,
switch on the lights” cannot be expressed only referring to
actions actually performed, but instead require a specialised
notion of spatial event (such as “I am at home”) to be triggered.
So, a spatial event should be generated within a coordination
medium, conceptually corresponding to changes in space—so,
related to motion, such as starting from / arriving to a place.
Spatial events should then be captured by the coordination
medium, and used to activate space-aware coordination laws,
within the normal working cycle of the coordination
abstraction.</p>
      <sec id="sec-2-1">
        <title>B. Spatial Tuple Centres</title>
        <p>Tuple centres are introduced in TuCSoN [6] as
coordination media meant at encapsulating any computable
coordination policy within the coordination abstraction. Technically, a
tuple centre is a programmable tuple space, i.e., a tuple space
whose behaviour in response to events can be programmed so
as to specify and enact any coordination policy [7], [8]. Tuple
centres can then be thought as general purpose coordination
abstractions, which can be suitably forged to provide specific
coordination services. So, the core idea behind tuple centres is
to have first-class coordination abstractions powerful enough
to encapsulate and enforce at execution time the laws required
to support coordination in complex distributed systems. This
does not happen, for instance, in basic LINDA-like models [9],
where complex coordination activities surpassing the limited
expressive power of tuple-based coordination force spreading
the global logic of coordination among individual agents [10].</p>
        <p>In the same way as timed tuple centres empower tuple
centres with the ability of embodying timed coordination laws
[11], spatial tuple centres extend tuple centres so as to address
the spatial issues depicted in the previous subsection.</p>
        <p>First of all, the location a tuple centre is obtained through
the notions of current place: which could be, for instance, the
absolute position in space of the computational device where
the coordination medium is being executed on, or the domain
name of the TuCSoN node hosting the tuple centre, or the
location on the map. Then, motion is conceptually represented
by two sorts of spatial events: moving from a starting place,
and stopping at an arrival place—in any sort of space / place.</p>
        <p>With respect to the formal model defined in [12], this is
achieved by extending the input queue of the environment
events to become the multiset SitE of time, environment, and
spatial events, handled as input events by the situation
transition ( !s)—as shortly discussed in Section IV. Whenever
some motion of any sorts occurs (such as the physical device
starting / stopping, or the node identifier changes), a spatial
event is generated, and put in the tuple centre SitE multiset,
to be handled by the situation transition.</p>
        <p>Then, analogously to operation and time events, it is
possible to specify reactions triggered by spatial events—the
so-called spatial reactions. Spatial reactions follow the same
semantics of other reactions: once triggered, they are placed
in the triggered-reaction set and then executed, atomically, in
a non-deterministic order. As a result, a spatial tuple centre
can be programmed to react to the motion either in physical
or in virtual space, so as to enforce space-aware coordination
policies.</p>
        <p>Finally, a simple notion of locality is provided by the
TuCSoN node abstraction: when coordination primitives are
invoked with no node specification, they are handled as
implicitly referring to the local interaction space hosted by the node;
when a node identifier is instead associated to the invocation,
then the primitive explicitly refers to the global interaction
space [6].</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. SPATIAL ReSpecT</title>
      <p>ReSpecT tuple centres are tuple centres based on
firstorder logic, adopted both for the communication language
(logic tuples), and for the behaviour specification language
(ReSpecT) [13]. Basically, reactions in ReSpecT are
defined as Prolog-like facts of the form reaction(Activity,
Guards, Goals) which specify the list of the operations
(Goals) to be executed when a given event occurs (called
triggering event, caused by an Activity) and some conditions
on the event hold (Guards evaluate to true). Such operations
make it possible to insert / read / remove tuples from the tuple
space and the specification space of the tuple centre, but also
to observe the properties of the triggering event, as well as
to invoke operations over other coordination media. The core
syntax of ReSpecT is shown in TABLE I.</p>
      <p>According to the abstract model described in
Subsection II-B, the ReSpecT language is extended to address
spatial issues (i) by introducing some spatial predicates to
get information about the spatial properties of both the tuple
centre and the triggering event, and (ii) by making it possible
to specify reactions to the occurrence of spatial events. The
extension to the ReSpecT is shown in TABLE II.</p>
      <p>In particular, the following observation predicates are
introduced for getting spatial properties of triggering events
within ReSpecT reactions:1
current_place(@S,?P) succeeds if P unifies with
the position of the node which the tuple centre belongs
to
event_place(@S,?P) succeeds if P unifies with the
position of the node where the triggering event was
originated
start_place(@S,?P) succeeds if P unifies with the
position of the node where the event chain that led to
the triggering event was originated
1A Prolog-like notation is adopted for describing the modality of arguments:
+ is used for specifying input argument, - output argument, ? input/output
argument, @ input argument which must be fully instantiated.
hSpecificationi ::=
hReactioni ::=
hActivityi ::=
hOperationi ::=
hSituationi ::=
hGuardsi ::=
hGuardi ::=
time( hTimei ) j env( hKeyi , hValuei ) j from( hSpacei , hPlacei ) j to( hSpacei , hPlacei )
request j response j success j failure j endo j exo j intra j inter j from_agent j to_agent j from_tc j to_tc j
before( hTimei ) j after( hTimei ) j from_env j to_env j at( hSpacei , hPlacei ) j near( hSpacei , hPlacei , hRadiusi )
(activity j source j target) ( hTermi ) j time( hTermi ) j place( hSpacei , hTermi )
ph j ip j dns j map j org
where the node position can be specified as either its absolute
physical position (S=ph), its IP number (S=ip), its domain
name (S=dns), its geographical location (S=map) – as typically
defined by mapping services like Google Maps –, or its
organisational position (S=org)—that is, a location within an
organisation-defined virtual topology.</p>
      <p>As an example, the reaction specification tuple
reaction( in(q(X)),
( operation, completion ),
( current_place(ph,DevPos),
event_place(ph,AgentPos),
out(in_log(AgentPos,DevPos,q(X))) )).
when executed, inserts a new tuple (in_log/3) with spatial
information each time a TuCSoN agent retrieves a tuple of
the form q(_) from the tuple centre: this implements a sort of
spatial log, recording absolute positions of both the querying
agent and the device hosting the tuple centre.</p>
      <p>Also, the following guard predicates are introduced to
select reactions to be triggered based on spatial event properties:</p>
      <p>So, for instance, near(dns,’apice.unibo.it’,2)
succeeds when the tuple centre is currently executing on a device
whose second-level domain is .unibo.it.</p>
      <p>Reactions to spatial events are specified similarly to
ordinary reactions, by introducing the following new event
descriptors:
from(?S,?P) matches a spatial event raised when
the device hosting the tuple centre starts moving from
position P, specified according to S.
to(?S,?P) matches a spatial event raised when the
device hosting the tuple centre stops moving and
reaches position P, specified according to S.</p>
      <p>As a result, the following are admissible reaction specification
tuples dealing with spatial events:
reaction(from(?Space,?Place), Guards, Goals).</p>
      <p>reaction(to(?Space,?Place), Guards, Goals).</p>
      <p>As a simple example, consider the following specification
tuples (wherever Guards is omitted, it is by default true):
reaction( from(ph,StartP),
( current_time(StartT)</p>
      <p>out(start_log(StartP,StartT)) )).
reaction( to(ph,ArrP),
( current_time(ArrT)</p>
      <p>out(stop_log(ArrP,ArrT)) )).
reaction( out(stop_log(ArrP,ArrT)),
( internal, completion ),
( in(start_log(StartP,StartT))
in(stop_log(ArrP,ArrT))
out(m_log(StartP,ArrP,StartT,ArrT)) )).
which altogether record a simple physical motion log,
including start / arrival time and position. In fact, the first reaction
stores information about the beginning of a physical motion
in a start_log/2 tuple, the second the end of the motion
in a stop_log/2 tuple, whereas the last removes both sort
of tuples and records their data altogether in a m_log/4
tuple, representing the essential information about the whole
trajectory of the mobile device hosting the tuple centre.</p>
    </sec>
    <sec id="sec-4">
      <title>IV. SEMANTICS</title>
      <p>The basic ReSpecT semantics was first introduced in [13],
then extended towards time-aware coordination in [11],
reshaped to support the notion of coordination artefact in [8],
finally enhanced with situatedness in [12]—which represents
the reference semantics for ReSpecT till now.</p>
      <p>In order to formalise the semantics for the space-aware
extension of ReSpecT, two are the main changes with respect
to [12]. First of all, a new, generalised event model should be
defined to include both spatial events, and spatial information
for any sort of event. Then, the environment transition, already
handling both time and general environment events, should
be extended to include spatial events. All other required
extensions (such as the formalisation of each spatial construct’s
semantics) are technically simple, and trivially extend tables
in [12].</p>
      <sec id="sec-4-1">
        <title>A. Event Model</title>
        <p>The first fundamental extension to the event model is
clearly depicted in TABLE II: a new sort of spatial hActivityi
is introduced. In particular, the notion of hSituationi is
extended with the two spatial activities from( hSpacei hPlacei ),
to( hSpacei hPlacei ), reflecting the initial and final stages of
a motion trajectory, respectively—in whatever sort of space.</p>
        <p>However, spatial extension of the event model cannot
be limited to introducing spatial activities: another issue is
represented by spatial qualification of events, that is, in short,
making all ReSpecT events featuring spatial properties—in
the same way as temporal properties were introduced for all
ReSpecT events in [11]. This is represented by the hPlacei
property featured by hCausei – and hStartCausei, of course
–, as shown in TABLE III, where the extended ReSpecT
event model is depicted. Essentially, all ReSpecT events are
in principle qualified with both time and space properties—
the latter one defined as the position (in whichever sort of
space) where the (initial) cause of the event takes place. Of
course such properties may be defined or not, depending on the
facility available when the event is generated. For instance, if
absolute physical positioning is made available by the hosting
device, and the device is currently in location P when an event
is generated, the coordination middleware associates P to the
event as its physical location—which otherwise would be left
undefined.</p>
      </sec>
      <sec id="sec-4-2">
        <title>B. Transition</title>
        <p>According to [12], the operational semantics of a
ReSpecT tuple centre is expressed by a transition
system over a state represented by a labelled triple
OpE;SitEhTu; Re; OpinOutE —abstracting away from the
specification tuples , which are not of interest in this paper. In
particular, Tu is the multiset of the ordinary tuples in the tuple
centre; Re is the multiset of the triggered reactions waiting to
be executed; Op is the multiset of the requests waiting for a
response; OpE is the multiset of incoming hOperationi events;
SitE is the multiset of incoming hSituationi events, including
time, spatial, and general environment events; OutE is the
outgoing event multiset; n is the local tuple centre time.</p>
        <p>OutE is automatically emptied by emitting the outgoing
events, with no need for special transitions. In the same way,
OpE and SitE are automatically extended whenever a new
incoming (either operation or situation) event enters a tuple
centre—again, no special transitions are needed for incoming
events. In particular, SitE is added new environment events by
the associated transducers [12], new time events by the passing
of time [11], and – in the spatial extension of ReSpecT
presented here – also new spatial events whenever some sort
of motion takes place.</p>
        <p>So, as described in [12], the behaviour of a ReSpecT
tuple centre is modelled by a transition system composed of
four different transitions: reaction ( !r), situation ( !s),
operation ( !o), log ( !l). Quite intuitively, spatial events
are handled – in the same way as time and environment
events – by the situation transition, which triggers ReSpecT
reactions in response to spatial events. As a result, the
situation transition is the fundamental, and now finally complete,
ReSpecT machinery supporting situatedness in the full
acceptation of the term—that is, suitably handling reactiveness
of the coordination abstraction to time, space, and general
environment events.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>V. EXAMPLES</title>
      <sec id="sec-5-1">
        <title>A. Spheric Broadcasting</title>
        <p>In order to demonstrate the simplicity and effectiveness
of the new ReSpecT spatial features, in the following we
show the ReSpecT implementation of a sort of
communication pattern, widely diffused in nature-inspired systems
[14]: spheric broadcasting. There, a message has to be locally
spread in the environment, so to be perceived only by nearby
agents. In principle, the distance defining such “diffusion
neighbourhood” can be thought of as a “straight-line” radius,
identifying a three-dimensional sphere around the point where
the message is firstly created. Nevertheless, if this message
is, e.g., a digital pheromone left by an ant-like agent, other
properties may affect message broadcasting: such as time, for
instance, making the message unavailable after a while—which
can be programmed in ReSpecT, too, thanks to its timed
extension [11].</p>
        <p>Since we are mainly concerned with the gain in
expressiveness provided by the spatial extension to ReSpecT here
proposed, the following ReSpecT specification is focussed
on spatial-sensitivity only, and can be logically split into
two parts: Reactions 1.1, 1.2 manage spheric broadcasting
requests, whereas Reactions 2.1, 2.2 enact the spreading
process.
% 1) Get agent message
% 1.1) Delete garbage tuple
reaction( out(spheric(Msg,Radius)), completion,</p>
        <p>in(spheric(Msg,Radius)) ).
% 1.2) Check range then forward
reaction( out(spheric(Msg,Radius)), completion,
( current_place(ph,RecPos), % Current position
start_place(ph,SendPos), % Starting position
in_range(ph,RecPos,SendPos,Radius), % Prolog computation
start_source(Sender), start_time(Time),
out(msg(Msg,Sender,Time)),
hStartCausei , hCausei , hEvaluationi
hActivityi , hSourcei , hTargeti , hTimei , hSpace:Placei
hAgentIdi j hTCIdi j hEnvResIdi j ?
? j fhResultig
hGPSCoordinatesi , hIPAddressi , hDomainNamei , hMapLocationi , hVirtualPositioni
Reaction 1.2 reacts to spheric broadcasting requests:
by acquiring spatial information about the
physical position of the ReSpecT tuple centre
currently managing the request, as well as
about the entity – either an agent or another
tuple centre – sending the request;
by checking if current tuple centre is within
the given Radius w.r.t. the sender’s position;
if so, it actually stores the message – along
with some contextual information – then starts
the spreading process;
if not so, ReSpecT transactional semantics
makes the whole reaction fail, rollbacking all
changes made (if any).</p>
        <p>Reaction 1.1 simply consumes the request tuple—no
longer needed both in case of in_range/3 predicate
success and failure.</p>
        <p>Reaction 2.2 exploits the linkability feature of
ReSpecT tuple centres to forward spheric broadcast
request to each neighbour, iteratively.</p>
        <p>Reaction 2.1 simply removes the forwarding tuple
when all neighbours have been considered.</p>
        <p>Given a virtual topology is reified in the tuple neighbours –
e.g. resembling physical network links between nodes – and
the above ReSpecT specification is installed on every tuple
centre of a network, we get that any message embedded in
a spheric tuple is autonomously spread solely to
“Radiusreachable” neighboring tuple centres. This is made possible
by the start_place/2 observation predicate, available in
every tuple centre to inspect the place where the first spheric
broadcast request was issued, thus enabling (physical) range
check regardless of the number of tuple centre hops taken to
forward the request.</p>
        <p>Furthermore, one should note how completely different
communication patterns could be obtained through small
modifications of the ReSpecT code above:
by replacing the space qualifier ph with ip or dns,
one could achieve, e.g., subnet broadcasting, that is, a
broadcast communication limited to a given subnet,
where such a subnet can be arbitrarily computed
through the in_range/4 predicate.
by replacing event view predicate start with event,
one could achieve, e.g., neighborhood-driven, global
broadcast, that is, a broadcast communication
covering the whole network, where each node forwards
messages to its (spheric) neighborhood solely, but
recursively. This is made possible by the fact that event
considers the direct cause of the event, not the original
one – as start does –, hence predicate in_range/4
is in turn affected. Nevertheless, suitable ReSpecT
reactions should be added to avoid flooding.</p>
        <p>This should illustrate the expressive power conveyed by every
single predicate: changing even a few of them in a ReSpecT
reaction has the potential to strongly impact on the semantics
of a ReSpecT specification—and then, on the coordinative
behaviour of a ReSpecT tuple centre.</p>
      </sec>
      <sec id="sec-5-2">
        <title>B. Monitored Motion</title>
        <p>The second example, while focussing on the expressiveness
gain given by ReSpecT spatial extension like the previous
one, is also meant to whow how the different features of
ReSpecT – space-time awareness, situatedness, and
programmability – can be combined to cope with complex problems, such
as monitored motion.</p>
        <p>We call “monitored motion” the problem in which a mobile
device – e.g. a simple wheel-equipped robot – has to reach a
given destination, which implies (i) to start moving when asked
to do so; (ii) to monitor its own position so as to understand
when given destination is reached, if obstacles are on its way,
etc.; (iii) to finally stop when due. In the following ReSpecT
specification – where the three reactions resemble the three
different stages composing monitored motion – we explicitly
monitor arrival to destination only, for the sake of simplicity.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>More specifically, looking at the code below</title>
      <p>Reaction 1 reacts to movement requests by:
recording current position to compute the
“movement vector” to follow, based on given
destination;
sampling current time to schedule a monitoring
reaction when specified in TStep—exploiting
time awareness;
setting environmental properties, in particular,
direction of motion and engine state of a
motion_dev actuator on the hosting device
(Node)—exploiting situatedness.</p>
      <p>Reaction 2 is responsible of motion monitoring:
first (predicate check/2), it perceives current
position and given destination to understand if
controlled device is arrived;
if check/2 returns true, the motion engine
is turned off so to stop;
if check/2 returns false, the reaction
reschedules itself to continue monitoring.</p>
      <p>Reaction 3 does some clean-up when destination is
reached, and spatial event to(Dest) is generated.
% 1) Compute motion vector then start moving.</p>
      <p>reaction( out(move(Dest,TStep)), completion,
( current_place(ph,Here), current_time(Now),</p>
      <p>Check is Now+TStep,
direction(Dest,Here,Vec), % Prolog computation
out_s( % Reaction #2 ), % Schedule monitoring
current_target(_@Node), % Get node id
motion_dev@Node &lt;- env(dir,Vec), % Set direction
motion_dev@Node &lt;- env(engine,’on’) )). % Move on
% 2) Monitor destination arrival.</p>
      <p>reaction( time(Check), internal, % Time to check
( current_place(ph,Here),
rd(move(Dest,TStep)),
( check(Here,Dest), % Prolog computation
current_node(Node),
motion_dev@Node &lt;- env(engine,’off’)
; % ’if-then-else’
current_time(Now), Check is Now+TStep,
out_s( % Reaction #2 ) ) )).
% 3) Arrival clean-up.</p>
      <p>reaction( to(Dest),
internal, in(move(Dest,_)) ).</p>
      <p>% Destination reached
VI.</p>
      <p>RELATED WORKS</p>
      <p>The need for coordination models and languages to support
adaptiveness and reactiveness to the contingencies that may
occur in the spatio-temporal fabric was recognised by several
proposals in the literature, accounting for spatial issues and/or
enforcing spatial properties.</p>
      <p>-LINDA [4] extends the LINDA model in three ways to
enable the emergence of spatio-temporal patterns for tuples
configuration in a distributed setting:
tuples are replaced by “space-time activities”, that is,
processes manipulating the space-time configuration
of tuples in the network;
space operators neigh, $distance and
$orientation are added to allow respectively
to send broadcast messages to the neighborhood
spaces, measure the distance toward any of them,
devise the relative orientation of a target space w.r.t.
the current one;
time operators next, $delay and $this are added
allowing (respectively) to delay an activity execution,
measure the flow of time, access current coordination
space identifier.</p>
      <p>
        GEOLINDA [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], another LINDA extension, deals with spatial
aspects by attempting to reflect physical spatial properties in
a mobile tuple space setting:
each tuple and each reading operation is associated to
a geometrical volume (addressing shape);
the semantics of reading operations is changed so as
to unblock only when the shape of a matching tuple
intersects with the addressing shape of the operation;
each coordination space is associated to a
communication range to allow detection of incoming and outgoing
tuples/volumes.
      </p>
      <p>The TOTA middleware [3] considers a distributed tuple space
setting in which each tuple is equipped by two additional fields
other than its content:
a propagation rule, determining how the tuple should
propagate and distribute across the network of linked
tuple spaces—e.g. in terms of maximum number of
hops, conditional rules upon the presence of other
tuples, even how the tuple can change while moving
a maintenance rule, dictating how the tuple should
react to the flow of time and/or to spatial events
The combination of these rules makes it possible for TOTA to
support self-organising computational fields, that is, distributed
data structures – such as gradients – enforcing spatial
properties in the configuration of tuples, eventually exploited by
coordinating agents.</p>
      <p>
        Finally, the SAPERE coordination model [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a
chemicalinspired model for pervasive applications, enacting spatial
computing patterns and gradient-based interaction [15].
      </p>
      <p>Although the above coordination models deal with some
spatial-related issues, they are mostly tailored to a specific
problem or application domain, and lack of an exhaustive
analysis of which are the basic mechanisms required to enable
and promote “general-purpose” space-aware coordination.</p>
      <p>VII.</p>
    </sec>
    <sec id="sec-7">
      <title>CONCLUSION &amp; FUTURE WORKS</title>
      <p>In this paper we take the ReSpecT coordination media
and language [8], and extend it with few basic constructs and
mechanisms required to build space-aware coordination media
able to deal with spatial issues.</p>
      <p>Future work will be devoted to explore real-world case
studies to put to test both the expressiveness and the
effectiveness of the space-aware ReSpecT model in the coordination
of complex systems, such as pervasive and adaptive ones. For
instance, the recent availability of the TuCSoN middleware
[16], exploiting ReSpecT tuple centres, upon Android devices
makes it possible to actually experiment with spatial
coordination in pervasive scenarios.</p>
    </sec>
    <sec id="sec-8">
      <title>ACKNOWLEDGMENTS</title>
      <p>This work has been partially supported by the
EU-FP7FET Proactive project SAPERE – Self-aware Pervasive Service
Ecosystems, under contract no. 256874.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Castelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Ferrari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mamei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rosi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Di Marzo Serugendo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Risoldi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.-E.</given-names>
            <surname>Tchao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dobson</surname>
          </string-name>
          , G. Stevenson,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ye</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Nardini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Montagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferscha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Maschek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Wally</surname>
          </string-name>
          , “
          <article-title>Self-aware pervasive service ecosystems,” Procedia Computer Science</article-title>
          , vol.
          <volume>7</volume>
          , pp.
          <fpage>197</fpage>
          -
          <lpage>199</lpage>
          , Dec.
          <year>2011</year>
          ,
          <source>proceedings of the 2nd European Future Technologies Conference and Exhibition</source>
          <year>2011</year>
          (
          <article-title>FET 11)</article-title>
          . [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1877050911005667 [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Beal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Michel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>U. P.</given-names>
            <surname>Schultz</surname>
          </string-name>
          , “
          <article-title>Spatial computing: Distributed systems that take advantage of our geometric world</article-title>
          ,
          <source>” ACM Trans.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Auton. Adapt. Syst.</surname>
          </string-name>
          , vol.
          <volume>6</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>11</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          :
          <fpage>3</fpage>
          ,
          <string-name>
            <surname>Jun</surname>
          </string-name>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Methodol.</surname>
          </string-name>
          , vol.
          <volume>18</volume>
          , no.
          <issue>4</issue>
          , pp.
          <volume>15</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
          :
          <fpage>56</fpage>
          ,
          <string-name>
            <surname>Jul</surname>
          </string-name>
          .
          <year>2009</year>
          . [Online].
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          Available: http://doi.acm.
          <source>org/10</source>
          .1145/1538942.1538945
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Pianini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Beal</surname>
          </string-name>
          , “
          <article-title>Linda in space-time: an adaptive coordination model for mobile ad-hoc environments,” in Coordination Languages and Models, ser</article-title>
          . LNCS, M. Sirjani, Ed. Springer-Verlag,
          <fpage>14</fpage>
          -
          <lpage>15</lpage>
          Jun.
          <year>2012</year>
          , vol.
          <volume>7274</volume>
          , pp.
          <fpage>212</fpage>
          -
          <lpage>229</lpage>
          , 14th Conference (Coordination
          <year>2012</year>
          ), Stockholm (Sweden).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Pauty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Couderc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Banatre</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Berbers</surname>
          </string-name>
          , “
          <article-title>Geo-Linda: a geometry aware distributed tuple space</article-title>
          ,
          <source>” in Advanced Information Networking and Applications</source>
          ,
          <year>2007</year>
          . AINA '
          <volume>07</volume>
          . 21st International Conference on, may
          <year>2007</year>
          , pp.
          <fpage>370</fpage>
          -
          <lpage>377</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          , “
          <article-title>Coordination for Internet application development</article-title>
          ,” Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , vol.
          <volume>2</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>251</fpage>
          -
          <lpage>269</lpage>
          , Sep.
          <year>1999</year>
          , special Issue:
          <article-title>Coordination Mechanisms for Web Agents</article-title>
          . [Online]. Available: http://springerlink.metapress.com/content/uk519681t1r38301/ A. Omicini and E. Denti, “
          <article-title>From tuple spaces to tuple centres,” Science of Computer Programming</article-title>
          , vol.
          <volume>41</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>277</fpage>
          -
          <lpage>294</lpage>
          , Nov.
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Formal ReSpecT in the A&amp;A perspective,”</article-title>
          <source>Electronic Notes in Theoretical Computer Science</source>
          , vol.
          <volume>175</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>97</fpage>
          -
          <lpage>117</lpage>
          , Jun.
          <year>2007</year>
          , 5th
          <source>International Workshop on Foundations of Coordination Languages and Software Architectures (FOCLASA'06)</source>
          , CONCUR'06,
          <string-name>
            <surname>Bonn</surname>
          </string-name>
          , Germany,
          <volume>31</volume>
          Aug.
          <year>2006</year>
          .
          <article-title>Post-proceedings</article-title>
          . [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1571066107003519 D. Gelernter, “Generative communication in Linda,
          <source>” ACM Transactions on Programming Languages and Systems</source>
          , vol.
          <volume>7</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>80</fpage>
          -
          <lpage>112</lpage>
          , Jan.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <year>1985</year>
          . [Online]. Available: http://portal.acm.org/citation.cfm?id=2433
          <string-name>
            <given-names>E.</given-names>
            <surname>Denti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Natali</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Programmable coordination media,” in Coordination Languages and Models, ser</article-title>
          . LNCS,
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          and D. Le Me´tayer, Eds. Springer-Verlag,
          <year>1997</year>
          , vol.
          <volume>1282</volume>
          , pp.
          <fpage>274</fpage>
          -
          <lpage>288</lpage>
          , 2nd International
          <source>Conference (COORDINATION'97)</source>
          , Berlin, Germany,
          <fpage>1</fpage>
          -
          <lpage>3</lpage>
          Sep.
          <year>1997</year>
          . Proceedings. [Online]. Available: http://link.springer.com/chapter/10.1007/3-540-63383-9 86
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          , “
          <article-title>Time-aware coordination in ReSpecT,” in Coordination Models and Languages, ser</article-title>
          . LNCS, J.-M.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Jacquet</surname>
            and
            <given-names>G. P.</given-names>
          </string-name>
          <string-name>
            <surname>Picco</surname>
          </string-name>
          , Eds. Springer-Verlag,
          <year>Apr</year>
          .
          <year>2005</year>
          , vol.
          <volume>3454</volume>
          , pp.
          <fpage>268</fpage>
          -
          <lpage>282</lpage>
          , 7th International Conference (COORDINATION
          <year>2005</year>
          ), Namur, Belgium,
          <fpage>20</fpage>
          -
          <lpage>23</lpage>
          Apr.
          <year>2005</year>
          . Proceedings. [Online]. Available: http://www.springerlink.com/content/kbcmbqed8jta590g/ M. Casadei and
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Situated tuple centres in ReSpecT,”</article-title>
          <source>in 24th Annual ACM Symposium on Applied Computing (SAC</source>
          <year>2009</year>
          ), S. Y.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Ossowski</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Menezes</surname>
          </string-name>
          , and M. Viroli, Eds., vol. III. Honolulu,
          <source>Hawai'i, USA: ACM</source>
          ,
          <fpage>8</fpage>
          -
          <lpage>12</lpage>
          Mar.
          <year>2009</year>
          , pp.
          <fpage>1361</fpage>
          -
          <lpage>1368</lpage>
          . [Online].
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          Available: http://portal.acm.org/citation.cfm?id=
          <volume>1529282</volume>
          .1529586
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          and E. Denti, “Formal ReSpecT,” Electronic Notes in Theoretical Computer Science, vol.
          <volume>48</volume>
          , pp.
          <fpage>179</fpage>
          -
          <lpage>196</lpage>
          , Jun.
          <year>2001</year>
          , declarative Programming -
          <source>Selected Papers from AGP</source>
          <year>2000</year>
          ,
          <string-name>
            <given-names>La</given-names>
            <surname>Habana</surname>
          </string-name>
          , Cuba,
          <fpage>4</fpage>
          -
          <lpage>6</lpage>
          Dec.
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Nature-inspired coordination models: Current status, future trends</article-title>
          ,
          <source>” ISRN Software Engineering</source>
          , vol.
          <year>2013</year>
          ,
          <year>2013</year>
          , article ID 384903,
          <string-name>
            <surname>Review</surname>
            <given-names>Article.</given-names>
          </string-name>
          [Online]. Available: http://www.hindawi.com/isrn/se/2013/384903/ M. Viroli,
          <string-name>
            <given-names>M.</given-names>
            <surname>Casadei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Montagna</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          , “
          <article-title>Spatial coordination of pervasive services through chemical-inspired tuple spaces</article-title>
          ,
          <source>” ACM Transactions on Autonomous and Adaptive Systems</source>
          , vol.
          <volume>6</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>14</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          :
          <fpage>24</fpage>
          ,
          <string-name>
            <surname>Jun</surname>
          </string-name>
          .
          <year>2011</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <volume>1968513</volume>
          .1968517 TuCSoN, “Home page,” http://tucson.unibo.it/,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>