<!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>TuCSoN Coordination for MAS Situatedness: Towards a Methodology</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>ALMA MATER STUDIORUM-Universita` di Bologna</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ALMA MATER STUDIORUM-Universita` di Bologna</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>-Agent-based technologies embed solutions for critical issues in agent-oriented software engineering. In this paper we describe the coordination-based approach to MAS situatedness as promoted by the TuCSoN middleware, by sketching the steps of an agent-oriented methodology from the TuCSoN meta-model down to the TuCSoN programming environment.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>COORDINATION AND SITUATEDNESS IN MAS</title>
      <p>
        The need for situatedness in multi-agent systems (MAS)
is often translated into the requirement of being sensitive to
environment change [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], possibly influencing the environment
in turn. Such a requirement lays at the core of the notion
of situated action – complementing that of social action [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
–, as those actions arising from strict interaction with the
environment [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This leads to recognise dependencies among
agents and the environment as one of the fundamental sources
of complexity within a MAS—the other being dependencies
between agents’ activities [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Therefore, coordination – as
the discipline of managing dependencies [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] – could be used
to deal with both social and situated interaction, by exploiting
coordination artefacts [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for handling both social and situated
dependencies [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Accordingly, in this paper we introduce the situated
coordination approach promoted by the TuCSoN model and
technology for agent coordination [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to handle situatedness
in MAS as a coordination issue. In particular, we describe the
support that TuCSoN provides to MAS programmers in each
macro-stage of a typical software engineering process applied
to a MAS: the abstractions available for the requirement
analysis (Section II), the reference run-time architecture for the
design phase (Section III), the API supporting the concept of
situated coordination (Section IV). Finally, to help the reader
understanding our methodological approach, we sketch how
to deploy a TuCSoN-coordinated situated infrastructure for
smart home appliances coordination (Section V).
      </p>
      <p>II.</p>
    </sec>
    <sec id="sec-2">
      <title>REQUIREMENT ANALYSIS: THE TuCSoN</title>
      <p>META-MODEL</p>
      <p>
        The availability of well-known and established
development frameworks and middleware often lead to (implicit)
methodologies which are essentially driven by the abstractions
promoted and supported by the technology [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. This typically
happens when the maturity of technologies precedes that
of methodologies—and actually happened for agent-oriented
technologies in the last decade [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        What influences the process of MAS engineering based
on an agent-oriented framework is first of all the conceptual
framework provided by the technology, and in particular the
meta-model behind it, which fundamentally shapes the space
of the solutions: the availability of different abstractions to
elaborate over the application problem usually leads to
different designs and implementations—and ultimately, to different
solutions, too. This is why in the remainder of this section we
describe the meta-model of the TuCSoN model and
technology for agent coordination [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]; that is, the set of abstractions
provided by TuCSoN in order to model application problems
since the very beginning of the engineering stage. Three are the
TuCSoN core concepts for MAS engineering, which motivate
the architecture described in Section III: activities, environment
change, dependencies.
      </p>
      <p>
        Activities are the goal-directed/oriented proceedings
resulting into actions of any sort, which “make things happen” in
a MAS. Through actions, activities in a MAS are social [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
and situated [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Activities are usually modelled through the
agent abstraction: the reason for this choice is that, often, MAS
designers are not merely interested in modelling an action “as
is”, but they also want / need to model the motivations behind
that action—namely, their goal. Thus, from the standpoint
endorsed here, agents do not exist because they resemble some
“real-world” entity; they exist as the means through which
activities can be modelled in a MAS—as a way to model
actions along with their driving goals.
      </p>
      <p>Environment change represents the (possibly unpredictable)
variations in the properties or structure of the world
surrounding a MAS that affect it in any way—thus, which the
MAS needs to account for. Such variations do not express
any specific goal, either because this does not exist, or
because it is not to be / cannot be modelled in the MAS.
Also, variations may not correspond to actual changes in the
real-world properties or structure, but simply variations in
the perception of the world the MAS has—in other words,
what the MAS observes may vary independently of whether
the environment actually changes too. Environment (change)
is usually modelled through the resource abstraction, as a
non-intelligent entity either continuously producing events or
reactively waiting for requests to perform its function.</p>
      <p>Finally, in any non-trivial MAS, activities depend on other
activities (social dependencies), as well as on environment
change (situated dependencies). Thus, dependencies motivate
and cause interaction, both social and situated, based on the
sort of dependency taking place.</p>
      <p>Furthermore, the core notion linking the TuCSoN
architecture to its meta-model is that of event. Despite their
intrinsic diversity, activities and environment change constitute
altogether the only sources of dynamics – thus complexity – in
a MAS. In order to provide a uniform representation of MAS
dynamics and to promote a coordination-oriented approach
in modelling social as well as situated dependencies, both
activities and environment changes trigger events. Therefore, in
TuCSoN, events reify any social and any situated interaction
taking place within the MAS, driving the coordination process.</p>
      <p>Given the above abstractions, MAS designers should think
about the problem at hand in terms of (i) a bunch of
goaldirected/oriented activities (agents) (ii) interacting with each
other and influenced by / influencing some sort of (iii) changes
in their environment (resources), therefore (iv) generating
events, which (v) have to be properly coordinated.</p>
      <p>III.</p>
    </sec>
    <sec id="sec-3">
      <title>MODEL &amp; DESIGN: THE TuCSoN ARCHITECTURE</title>
      <p>In this section we first overview the TuCSoN architecture
by describing its main components, directly stemming from
the TuCSoN meta-model introduced in Section II. Then we
sketch how such components collaborate to properly support
the modelling of activities and environment changes in
TuCSoN (Subsection III-A and Subsection III-B), in particular
focussing on agent-environment interactions—that is, situated
dependencies (Subsection III-C).</p>
      <p>
        TuCSoN1 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is a Java-based, tuple-based coordination
infrastructure for open distributed MAS. Its main architectural
run-time components are—as depicted in Fig. 1:
agents
— Any computational entity willing to exploit
TuCSoN coordination services [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is a TuCSoN
agent. In order for agents to be recognised as
coordinables [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] by TuCSoN, they need to obtain
an ACC (see below), released by TuCSoN itself.
      </p>
      <p>Agents (interaction-oriented) activities result into
coordination operations, targeting the
coordination media (a tuple centre, see below) actually
handled by the ACC.</p>
      <p>
        ACC — Agent Coordination Contexts [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] are
TuCSoN architectural components devoted to
represent and mediate agents activities within the
MAS. In particular, an ACC maps coordination
operations (thus both social and situation actions)
into events, dispatches them to tuple centres, waits
for the outcome of dependency resolution (that
is, coordination), then sends the operation result
back to the agent. ACC are also the fundamental
run-time entities that preserve agent autonomy
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]: in fact, while the ACC takes care of
asynchronously dispatching events – consequence of
agent’s activity – to tuple centres, the agent is
free to undertake other activities. This enables
decoupling in control, reference, space and time.
probes — Environmental resources in TuCSoN are called
probes. They can be either sources of
perceptions (like sensors), targets of actions (like
actuators), or even both: TuCSoN models them in
the same way, using transducers. In fact, actions
over probes are carried out by transducers: as for
agents with ACC, probes do not directly interact
with the MAS, but through transducer mediation.
transducers — Analogously to ACC for agents,
TuCSoN transducers [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] are the architectural
runtime components in charge of representing and
mediating environment changes regarding probes.
      </p>
      <p>Each probe is assigned a transducer, which is
specialised to handle events to/from that probe.</p>
      <p>
        So, in particular, transducers translate (i) probes
properties changes into events, to be dispatched
to tuple centres and properly coordinated, and
(ii) MAS events into properties changes, to be
sensed/effected on probes.
events — TuCSoN adopts the ReSpecT [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] event
model – adapted from [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] in TABLE I on page 8
–, representing any sort of event happening in the
MAS in a uniform way—both the events
generated from agents activities and those from changes
in the environment. Events are the data structure
reifying all the relevant information about the
activity or change that generated them. In
particular, TuCSoN events record: the immediate and
primary cause of the event [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], its outcome, who
is the source of the event, who is its target, when
and where the event was generated. Thus, any
event captured by TuCSoN – through ACC and
transducers – is situated both in space and time,
as well as within its execution context. This lays
at the core of the notion of situated coordination,
meaning that tuple centres can effectively
coordinate events (thus resolve dependencies) while
accounting for the situated nature of interactions.
tuple centres — ReSpecT tuple centres [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] are the
TuCSoN architectural component mediating all
interactions happening in the MAS, thus in charge of
handling events in order to resolve dependencies.
      </p>
    </sec>
    <sec id="sec-4">
      <title>They are run by the TuCSoN middleware to rule</title>
      <p>
        and decouple (in control, reference, space, and
time) dependencies between agent activities as
well as environment change—in other words, both
social and situated interactions [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. By adopting
ReSpecT tuple centres, TuCSoN relies on (i)
the ReSpecT language to program coordination
laws, and (ii) the ReSpecT situated event model
to implement events.
      </p>
      <p>Summing up, MAS designers aiming at exploiting TuCSoN
coordination services should: (i) rely on ACC and therein
defined primitives to interact with other TuCSoN-coordinated
entities, (ii) define suitable transducers to represent the relevant
portions of MAS environment, (iii) program TuCSoN tuple
centres through ReSpecT specifications to handle TuCSoN
events—therefore, to effectively coordinate the MAS.</p>
      <p>As a last note, we would like to highlight that ReSpecT
event model (TABLE I) is general enough to model any kind of
social/situated coordination event, not any kind of (whatever)
event which can happen in a MAS. In particular, we do not
aim at foreseeing at design time all possible events which can
happen in a MAS; rather, we simply aim at foreseeing the
general structure of any coordination-related event, to be later
instantiated through a TuCSoN event at run-time. Then,
considering only such a restricted subset of events, we can achieve
adaptation as well as tolerance to unpredictability thanks to
ReSpecT programmability and TuCSoN transducers,
respectively. In fact, programmability of ReSpecT reactions makes it
possible to change event handling (thus, coordination policies)
at run-time, whereas run-time addition/removal of transducers
along with situatedness of ReSpecT events instantiation helps
in dealing with unpredictability of environment.</p>
      <sec id="sec-4-1">
        <title>A. Agent side</title>
        <p>The agent side of a TuCSoN-coordinated MAS is basically
represented by the run-time relationships between agents,
ACC, and tuple centres.</p>
        <p>
          First of all, as depicted in Fig. 2, TuCSoN agents have to
acquire an ACC before issuing any sort of coordination
operation towards the TuCSoN infrastructure. They do so by asking
the TuCSoN middleware to release an ACC. Whether an ACC
is actually released, and which one among those available2 is
2See the TuCSoN official guide at http://www.slideshare.net/andreaomicini/
the-tucson-coordination-model-technology-a-guide.
dynamically determined by the TuCSoN middleware itself,
based upon the agent request and its expected role inside the
MAS [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>Once a TuCSoN agent obtains an ACC, all of its
interactions are mediated by the ACC itself, with no role for the
TuCSoN node. In particular, as depicted in Fig. 3, in the case
a coordination operation is requested through a synchronous
invocation:
(i) first of all (messages 2 2:1:2), the target tuple centre
associated to the ACC is dynamically instantiated by the
TuCSoN run-time infrastructure, and its network address
given to the ACC for further reference
(ii) then (message 2:2), the ACC takes charge of building
the corresponding event and of dispatching it to the tuple
centre target of the interaction
(iii) finally (messages 2:2:1 2:2:2:1), the ACC is notified
when the outcome of the coordination operation
requested is available – after a proper coordination stage,
possibly involving other events from other entities – so
that it can send the operation result back to the agent
Only the coordination operation request from the agent to its
ACC is a synchronous method call: any other interaction is
asynchronous as well as event-driven. This is necessary in
every open and distributed scenario, and enables the already
mentioned decoupling in control, reference, space, and time.
Nevertheless, in such a scenario – synchronous operation
invocation – the control flow of the caller agent is retained
by the ACC as long as the operation result is not available
(message 2:2:2:1).</p>
        <p>Conversely, Fig. 4 depicts the asynchronous invocation
scenario: the only difference w.r.t. the synchronous one lays in
the fact that the control flow is given back to the caller agent as
soon as the corresponding event is dispatched to the target tuple
centre (messages 3:3 3:4). The actual result of the requested
coordination operation is dispatched to the agent as soon
as it becomes available, asynchronously (message 3:3:2:1).
TuCSoN lets client agents choose which semantics to use for
their coordination operations invocation, either synchronous or
asynchronous. As a side note, the scenario depicted in Fig. 4
assumes that the target tuple centre is already up and running
– e.g., as a consequence of a previous operation invocation
– thus, the TuCSoN node simply retrieves its reference, and
passes it to the ACC.</p>
        <p>Whenever an agent no longer needs TuCSoN coordination
services, it should release its ACC back to TuCSoN
middleware, which promptly destroys it in order to prevent resources
leakage—as depicted in Fig. 5. It should be noticed that there is
no way to re-acquire an already-released ACC – e.g., to restore
interactions history –, since whenever an ACC is requested
a new one is created and assigned. Since ACC are used to
represent and identify agents within a TuCSoN-coordinated
MAS, an agent obtaining an ACC multiple times is recognised
every time as a new agent by the TuCSoN middleware.</p>
        <p>Summing up, designers of agents exploiting TuCSoN
should make their agents: (i) acquire an ACC; (ii) choose
each operation invocation semantics, and (iii) expect operations
result to be available accordingly; (iv) release their ACC when
TuCSoN services are no longer needed—notice at agents
shutdown TuCSoN automatically releases “orphan” ACCs.</p>
      </sec>
      <sec id="sec-4-2">
        <title>B. Environment side</title>
        <p>On the environment side of the TuCSoN architecture,
agents and ACC are replaced by probes and transducers,
Fig. 6. Probes registration and transducers association. No events can be
perceived nor actions undertaken on a probe prior to transducer association.
respectively—as depicted by Fig. 6. Thus, first of all, probes
should register to the TuCSoN middleware in order to get their
transducer and interact. After probe registration, any
interaction resulting from environmental property change affecting
the MAS is mediated by the transducer. Fig. 7 depicts the
interaction among TuCSoN run-time entities in the case of a
sensor probe, thus a sensor transducer, whereas Fig. 8 shows
the case of an actuator probe. By comparing the two pictures,
the flow of interactions is almost the same, except for the first
invocation, which depends on the nature of the probe—either
sensor (Fig. 7) or actuator (Fig. 8).</p>
        <p>In particular, a perception by a sensor probe works as
follows—Fig. 7:
(i) first of all (messages 2 2:1:2), the target tuple centre
associated to the transducer is dynamically instantiated
by the TuCSoN run-time infrastructure, and its network
address passed to the transducer for further reference
(i) then (message 2:2), the transducer builds the event
corresponding to the perception operation, and dispatches it to
the tuple centre target of the interaction
(i) finally (messages 2:2:1 2:2:2), the tuple centre enacts
the coordination process triggered by such event (if any),
properly dispatching its outcome
As far as probe interaction is concerned, there is no distinction
between synchronous or asynchronous semantics. In fact,
being representations of environmental resources, probes are
not supposed to expect any feedback from the MAS: they
simply cause / undergo changes that are relevant to the MAS.
For this reason, the semantics of situation operations invocation
on probes is always asynchronous—as depicted in Fig. 7 and
Fig. 8: the control flow is always returned to the probe as soon
as the corresponding event is generated.</p>
        <p>When a probe is no longer needed, it should be
deregistered from TuCSoN, which subsequently destroys the
associated transducer—as depicted in Fig. 9.</p>
        <p>Wrapping up, TuCSoN situatedness services require MAS
designers to: (i) always register probes causing their
transducer instantiation; (ii) be aware that environmental events
are always generated asynchronously; (iv) de-register probes
when they are no longer needed—no automatic de-registration
is performed by the TuCSoN middleware.</p>
        <p>C. Between agents and environment: Situated coordination</p>
        <p>
          Putting together the agent and the environment side of
the TuCSoN event-driven architecture, Fig. 10 and Fig. 11
depict a synchronous interaction of an agent with a sensor,
and an asynchronous interaction of an agent with an actuator,
respectively. By inspecting the whole interaction sequence, one
could see how (i) TuCSoN ACC and transducers play a central
role in supporting distribution and decoupling of agents and
probes within the MAS, and (ii) how TuCSoN tuple centres
and the ReSpecT language are fundamental to support both
situatedness and objective coordination [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
        <p>In particular, in Fig. 10 the agent is issuing a
synchronous coordination operation request involving a given
tuple sense(temp(T))—message 1. After event dispatching
(all the dynamic instantiation interactions were left out for the
sake of clarity), the tuple centre target of the operation reacts
to such invocation by triggering the ReSpecT reaction in
annotation 1:1:1, which generates a situated event (step 1:1:2)
aimed at executing a situation operation (getEnv(temp,
T)) on the probe (sensor). The transducer associated to the
tuple centre and responsible for the target probe intercepts such
an event and takes care of actually executing the operation on
the probe (message 1:1:2:1). The sensor probe reply (message
1:1:2:2) generates a sequence of events propagation
terminating in the response to the original coordination operation issued
by the agent (message 1:1:2:3:2:1).</p>
        <p>The role of the tuple centre in supporting situatedness
should pointed out here: in fact, step 1:1:2:3:1 properly reacts
to the completion of situation operation getEnv(temp, T)
by the sensor probe, emitting exactly the tuple originally
requested by the agent (sense(temp(T))).</p>
        <p>In Fig. 11 the sequence of interactions as well as the
annotations are very similar to those in Fig. 10. In
particular, annotation 2:1:1 shows how the ReSpecT reaction
triggering event matches the event raised as a consequence
of agent coordination operation request (act(temp(T))),
while annotation 2:1:2:3:1 highlights how the tuple centre
maps the situation operation outcome (setEnv(temp, T))
in the original tuple (act(temp(T))) through a proper
ReSpecT reaction. The only differences w.r.t. Fig. 10 are the
asynchronous invocation semantics used by the agent and the
actuator nature of the interacting probe—thus, the names of
messages 2:1:2:1 and 2:1:2:2.</p>
        <p>In summary, as shown by Fig. 10 and Fig. 11, ReSpecT
is fundamental to program TuCSoN tuple centres so as to
correctly bind coordination operations with situation
operations – while preserving the autonomy of interacting entities
–, ultimately supporting agent-environment interactions – thus,
situatedness – in distributed, open environments</p>
        <p>IV.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>IMPLEMENTATION: ReSpecT API</title>
      <p>This section focusses on ReSpecT programming for
situatedness and events handling, by discussing the ReSpecT
language API. In particular, it is meant to explain what
programmers can do in the implementation stage of
TuCSoNcoordinated MAS by exploiting ReSpecT situated event
model to its full extent. Notice, what follows is not merely
done to describe implementation details; instead, it is meant
to show which situatedness-related properties are available for
inspection/handling and how these properties are dynamically
instantiated: this contributes to clarify what situatedness means
and how it can be supported.</p>
      <p>
        Starting from the reaction annotating message 1:1:1 in
Fig. 10, and according to ReSpecT formal syntax and
semantics [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], we can distinguish:
in(sense(temp(T))) — (part of) the triggering event.
      </p>
      <p>As soon as the operation invocation event
generated by the ACC arrives to the target tuple
centre (message 1:1), the ReSpecT VM scans
its ReSpecT program searching for any
reactions whose triggering event matches the one
received—where matching means unification in
the first-order logic ReSpecT language. Any
reaction found is collected and candidate for
execution. In this case, the triggering event
corresponds to an Activity , using the terminology</p>
      <p>Asynchronous situation operation commanding an actuator. As in Fig. 10, ReSpecT role in enabling situatedness is visible in annotations 2:1:1 and
hStartCausei , hCausei , hEvaluationi
hActivityi j hChangei , hSourcei , hTargeti , hTimei , hSpace:Placei
hAgentIdi j hTCIdi j hProbeIdi j ?
? j fhResultig
of ReSpecT event model in TABLE I—that is,
something coming from an agent.
(operation, invocation) — the guard predicates.</p>
      <p>Triggered reactions are further filtered based upon
evaluation of their guards, that is, logic
predicates allowing fine-grained control over reaction
triggering, which can evaluate to either true
or false. In this case, the operation guard
filters coordination operation events whereas the
invocation guard filters events from the ACC
to the tuple centre. If all the guards of the reaction
are evaluated to true, such reaction is scheduled
for execution.
[...] ? getEnv(temp, T) — the actual reaction.</p>
      <p>After guard-based filtering phase, the tuple centre
non deterministically selects one reaction from
the pool of those scheduled and starts executing
it. In this case, the only computation to carry
out is a Change, again, using the terminology
of TABLE I. In particular, the situation operation
(getEnv(...)) on probe sensor – whose full
name is the hProbeIdi in TABLE I –, which
causes a situation operation event to be generated
and dispatched first to the associated transducer,
then to the actual probe.</p>
      <p>After the request is served, field hEvaluationi from TABLE I
is still empty—waiting for completion to be carried out. In
fact, due to the asynchronous nature of events dispatching in
TuCSoN, the tuple centre itself does not suspend execution
waiting for a response from the probe. This is necessary, e.g.,
to face the issues of network communications in a distributed
scenario.</p>
      <p>For these reasons, the ReSpecT reaction annotating
message 1:1:2:3:1 in Fig. 10 is complementary and necessary to
complete the situated interaction in a meaningful way. In such
reaction, the triggering event, the guards, and the reaction are,
respectively:
getEnv(temp, T) — the situation operation event
corresponding to the Change execution by the
tuple centre (through the probe transducer) in the
first reaction (messages 1:1:2 - 1:1:2:3). The first
reaction, in fact, requests the operation execution
to the probe transducer, whereas this reaction
manages such request reply.
(from_env, completion) — filtering situation
operation events (from_env) representing the
outcome of an execution (completion). Using
these guards, MAS programmers are guaranteed
to make the tuple centre react only when the
requested situation operation has been actually
executed on the target probe.</p>
      <p>out(sense(temp(T))) — the computation emitting
in the tuple centre the tuple reifying the
information perceived by the sensor probe. Such a
tuple perfectly matches the one used as argument
of the coordination operation issued by the
interacting agent: thus, coupled with the synchronous
invocation semantics chosen, this ensures MAS
programmers that their agent will resume its
execution only when the perception operation has
been successfully carried out.</p>
      <p>The above description of ReSpecT reactions machinery
should make the role played by the tuple centre coordination
abstraction in supporting situatedness evident—thus, the
concept of situated coordination. The reactions annotating Fig. 11
can be explained in a similar way, thus they are left out from
discussion.</p>
      <p>Finally, a list of some of the methods available in the
Respect2PLibrary Java class within TuCSoN distribution
follows in the remainder of this section, which exposes the
API for ReSpecT programmers. Such API allows inspection
of any event property on any TuCSoN event from within any
ReSpecT reaction, according to the event model in TABLE I.</p>
      <p>In the particular scenario depicted by ReSpecT reaction 1:1:1
of Fig. 10, for instance:
event_predicate_1(Term p) — makes it possible
to inspect the hActivityi j hChangei field of the
event which directly caused (hCausei) the
triggering of the ReSpecT reaction. In this case, it
unifies p with in(sense(temp(T))).
event_source_1(Term s) — makes the hSourcei of
the event observable—that is, who caused event
generation. In this case, it unifies s with the
hAgentIdi of the agent issuing the coordination
operation (message 1).
event_target_1(Term t) — allows inspection of
the hTargeti field of the event. In this case, it
unifies t with the hTCIdi of the tuple centre target
of the event (message 1:1).
event_time_1(Term t) — makes the hTimei when
the event was generated observable. In this case, it
unifies t with the time at which the ACC receives
the coordination operation request (message 1).
event_place_1(Term s, Term p) — allows the
hSpace:Placei field of the event to be inspected,
once the sort of space is chosen from a pre-defined
set of admissible spaces—either absolute
physical position (s=ph), IP address (s=ip), domain
name (s=dns), geographical location (s=map),
organisational position (s=org). In this case, it
unifies p with, e.g., the network address of the
agent which caused reaction triggering.</p>
      <p>If the same methods were used in ReSpecT reaction
annotating message 1:1:2:3:1, the results would be different—due to
situatedness of events:
event_predicate_1(Term p) — would unify p</p>
      <p>with getEnv(temp, T).
event_source_1(Term s) — would unify s with
the hProbeIdi of the probe source of the event
(message 1:1:2:2).
event_target_1(Term t) — would unify t with
the hTCIdi of the tuple centre target of the event
(message 1:1:2:3).
event_time_1(Term t) — would unify t with the
time at which the transducer receives the situation
operation completion (message 1:1:2:2).
event_place_1(Term s, Term p) — would unify
p with, e.g., the network address of the sensor
probe that caused reaction triggering.</p>
    </sec>
    <sec id="sec-6">
      <title>DEPLOYMENT: SMART HOME APPLIANCES</title>
      <p>COORDINATION</p>
      <p>In this section, we look at a smart home scenario with
the aim of deploying TuCSoN as its underlying situated
coordination infrastructure. This allows us to sketch how
requirement analysis and modelling &amp; design can be dealt with
while evaluating (in principle) both the TuCSoN approach and
its architecture—the implementation is left out being it too
application-specific.</p>
      <p>Scenario: In order to lose as less generality as possible,
we could depict a smart home scenario. There, many different
“smart appliances” (e.g., smart fridge, smart thermostat, smart
lights, smart A/C, etc.) are scattered in an indoor environment
(e.g., a flat). Either inhabitants have an Android smartphone
or a desktop PC is available in the environment (or even
both)—this ensures the TuCSoN middleware can be
running, being the JVM its only requirement. Some kind of
connection is available at least between each appliance and
the smartphone/desktop—appliances may also be connected
together to improve distribution thus resilience, although not
strictly necessary. Inhabitants want the “smart home system”
to self-manage toward a given goal (e.g., always optimise
power consumption) according to their preferences (e.g., prefer
turning on fans rather than switching A/C on), while keeping
the capability to control it despite such self-management, when
desired (e.g., “I want frozen beers now, forget about power
consumption!”).</p>
      <p>Requirement Analysis: Essentially, the core requirement of
our proposed scenario is that environmental resources (e.g., the
A/C, the fridge, etc.) should be able to adapt to environment
change (e.g., temperature drops, food depletion, etc.) as well as
user actions (e.g., I’m coming home late, order pizza), striving
to achieve a system goal (e.g., optimise inhabitants comfort)
while accounting for each user desires.</p>
      <p>According to the TuCSoN meta-model as described in
Section II, this can be interpreted as follows:
users continuously and unpredictably perform their
daily activities. . .
. . . which may depend on the environment being in a
certain “enabler state” (e.g., food must be available to
enable cooking dinner), as well as may both impact
and be affected by (other form of dependencies) the
environment. . .
. . . causing some change to happen (e.g., since I’ll be
late delay lights turn on time, there is no food thus I
must go to the grocery shop)
Once we recognise that activities and environment changes
both make events happen, thus managing dependencies
between activities and change ultimately amount to managing
events, we have a perfect and complete match with TuCSoN
reference meta-model.</p>
      <p>Modelling &amp; Design: Once the problem at hand (smart
home appliances coordination) has being re-interpreted
according to the TuCSoN meta-model, TuCSoN architecture
provides all the necessary components to build a solution.
Thus: activities of users are generated by agents, making it
possible to also ascribe goals to actions, and mediated by
ACCs, enabling and constraining interactions according to
the system goals; changes in the environment are generated
by probes and mediated by transducers, enabling a uniform
representation of environmental properties despite appliances
heterogeneity; both activities and changes (thus ACCs and
transducers) generate events as their own representation within
the situated MAS coordinated by TuCSoN, which are then
managed by tuple centres suitably programmed with adaptable
coordination laws.</p>
      <p>Consequently, in our smart home we have: agents deployed
to users’ personal devices (smartphone/desktop pc), probes
deployed to home appliances, ACCs and transducers deployed
either on-board along with agents and probes, respectively
(e.g., on the smartphone), or remotely (e.g., on the desktop),
tuple centres deployed again either on board or remotely, all
performing activities and enacting/undergoing changes
generating events, automatically handled by TuCSoN according to
designed coordination laws.</p>
      <p>
        Considerations: Notice a similar scenario is depicted in
[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], although much more thoroughly. There, TuCSoN is taken
as the underlying infrastructure on top of which the “Butlers
Architecture” for smart home management is deployed—
further evaluating its architecture (in principle, at least). In
particular, it should be noticed that agents are used therein to
model environmental resources as well (e.g., home appliances),
whereas our proposed approach would model them as probes,
thus handled (coordinated) within the MAS by transducers.
Benefits of doing so are not limited to a cleaner architecture
and separation of concerns, but also include smaller
computational load (transducers are “simpler” than full-fledged agents),
better run-time adaptiveness (replacing a transducer is much
simpler than replacing an agent), improved management of
heterogeneity (despite probes API differences, transducers map
any event to a common event structure).
      </p>
      <p>VI.</p>
    </sec>
    <sec id="sec-7">
      <title>CONCLUSION</title>
      <p>
        Comparing the methodological approach discussed here
with the whole lot of AOSE methodologies available
nowadays would be unfeasible for reasons of space. However, it
may easily be noted that the only AOSE methodology that
clearly resembles our coordination-based approach is SODA
[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], in particular regarding its concern with interaction and
environment in MAS. Also, most of the possible remarks can
be easily found in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], where the issues of situatedness and
environment engineering in MAS, along with the relationship
between agent infrastructure and methodologies, is throughly
reviewed.
      </p>
      <p>So, in this paper we introduce the TuCSoN approach to
situated coordination in MAS, by describing the support to
situated MAS engineering provided by the TuCSoN model
and architecture in each typical stage of software development:
the abstractions to be used for the requirement analysis step,
the architectural components available to model the MAS at
hand, the software API to program situatedness-related aspects
from a coordination standpoint.</p>
      <p>The solutions promoted by the TuCSoN technology to
deal with the issues of open and distributed MAS are also
highlighted: in particular, the need to rely on mediating
abstractions such as ACC, transducers, and tuple centres as the
means to decouple individual components (agents and probes)
interactions, along with the need for an asynchronous
eventdriven communication model to correctly deal with the most
common issues of system distribution.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ferber</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Mu</surname>
          </string-name>
          <article-title>¨ller, “Influences and reaction: A model of situated multiagent systems</article-title>
          ,
          <source>” in 2nd International Conference on Multi-Agent Systems (ICMAS-96)</source>
          , M. Tokoro, Ed. Tokio, Japan: AAAI Press, Dec.
          <year>1996</year>
          , pp.
          <fpage>72</fpage>
          -
          <lpage>79</lpage>
          . [Online]. Available: http://aaaipress.org/Papers/ICMAS/1996/ICMAS96-009.pdf
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Castelfranchi</surname>
          </string-name>
          , “
          <article-title>Modelling social action for AI agents</article-title>
          ,
          <source>” Artificial Intelligence</source>
          , vol.
          <volume>103</volume>
          , no.
          <issue>1-2</issue>
          , pp.
          <fpage>157</fpage>
          -
          <lpage>182</lpage>
          , Aug.
          <year>1998</year>
          . [Online]. Available: http://www.sciencedirect.com/science/article/pii/ S0004370298000563
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L. A.</given-names>
            <surname>Suchman</surname>
          </string-name>
          , “
          <article-title>Situated actions,” in Plans and Situated Actions: The Problem of Human-Machine Communication</article-title>
          . New York, NYU, USA: Cambridge University Press,
          <year>1987</year>
          , ch. 4, pp.
          <fpage>49</fpage>
          -
          <lpage>67</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>T. W.</given-names>
            <surname>Malone</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Crowston</surname>
          </string-name>
          , “
          <article-title>The interdisciplinary study of coordination,” ACM Computing Surveys</article-title>
          , vol.
          <volume>26</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>87</fpage>
          -
          <lpage>119</lpage>
          ,
          <year>1994</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <fpage>174668</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <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>Coordination artifacts as first-class abstractions for MAS engineering: State of the research,” in Software Engineering for Multi-Agent Systems IV: Research Issues and Practical Applications, ser</article-title>
          . Lecture Notes in Computer Science,
          <string-name>
            <given-names>A. F.</given-names>
            <surname>Garcia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Choren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lucena</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Giorgini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Holvoet</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Romanovsky, Eds. Springer Berlin Heidelberg, Apr.
          <year>2006</year>
          , vol.
          <volume>3914</volume>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>90</lpage>
          , invited Paper. [Online]. Available: http://link.springer.
          <source>com/10.1007/11738817 5</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mariani</surname>
          </string-name>
          , “
          <article-title>Coordination for situated MAS: Towards an event-driven architecture</article-title>
          ,” in International Workshop on Petri Nets and
          <article-title>Software Engineering (PNSE'13), ser</article-title>
          . CEUR Workshop Proceedings, D. Moldt and H. Ro¨lke, Eds., vol.
          <volume>989</volume>
          .
          <string-name>
            <surname>Sun SITE Central Europe</surname>
          </string-name>
          , RWTH Aachen University, 6 Aug.
          <year>2013</year>
          , pp.
          <fpage>17</fpage>
          -
          <lpage>22</lpage>
          . [Online]. Available: http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>989</volume>
          /paper00.pdf
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <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>
          . [Online]. Available: http://springerlink. metapress.com/content/uk519681t1r38301/
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Molesini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Nardini</surname>
          </string-name>
          , E. Denti,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Situated process engineering for integrating processes from methodologies to infrastructures,”</article-title>
          <source>in 24th Annual ACM Symposium on Applied Computing (SAC</source>
          <year>2009</year>
          ),
          <string-name>
            <given-names>S. Y.</given-names>
            <surname>Shin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ossowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Menezes</surname>
          </string-name>
          , and M. Viroli, Eds., vol. II. Honolulu,
          <source>Hawai'i, USA: ACM</source>
          ,
          <fpage>8</fpage>
          -
          <lpage>12</lpage>
          Mar.
          <year>2009</year>
          , pp.
          <fpage>699</fpage>
          -
          <lpage>706</lpage>
          . [Online]. Available: http://dl.acm.org/citation.cfm?id=
          <fpage>1529429</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Molesini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          , “Environment in AgentOriented Software Engineering methodologies,
          <source>” Multiagent and Grid Systems</source>
          , vol.
          <volume>5</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>57</lpage>
          ,
          <year>2009</year>
          , special Issue “
          <article-title>Engineering Environments in Multi-Agent Systems”</article-title>
          . [Online]. Available: http://iospress.metapress.com/content/q38j30vw612rg5g8/
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Coordination as a service,” Fundamenta Informaticae</article-title>
          , vol.
          <volume>73</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>507</fpage>
          -
          <lpage>534</lpage>
          ,
          <year>2006</year>
          , special Issue:
          <source>Best papers of FOCLASA</source>
          <year>2002</year>
          . [Online]. Available: http://iospress. metapress.com/link.asp?id=5uefwmu39gt3gmvp
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciancarini</surname>
          </string-name>
          , “
          <article-title>Coordination models and languages as software integrators,” ACM Computing Surveys</article-title>
          , vol.
          <volume>28</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>300</fpage>
          -
          <lpage>302</lpage>
          , Jun.
          <year>1996</year>
          . [Online]. Available: http://portal.acm.org/citation.cfm?id=
          <fpage>234732</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Towards a notion of agent coordination context,” in Process Coordination</article-title>
          and
          <string-name>
            <given-names>Ubiquitous</given-names>
            <surname>Computing</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Marinescu</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Lee</surname>
          </string-name>
          , Eds. Boca Raton, FL, USA: CRC Press, Oct.
          <year>2002</year>
          , ch. 12, pp.
          <fpage>187</fpage>
          -
          <lpage>200</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Casadei</surname>
          </string-name>
          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>
          ),
          <string-name>
            <given-names>S. Y.</given-names>
            <surname>Shin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ossowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <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]. Available: http://portal.acm.org/citation.cfm?id=
          <volume>1529282</volume>
          .
          <fpage>1529586</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <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>
          . [Online]. Available: http://www.sciencedirect.com/science/ article/pii/S1571066107003519
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Mariani</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Space-aware coordination in ReSpecT,” in From Objects to Agents, ser</article-title>
          . CEUR Workshop Proceedings, M. Baldoni,
          <string-name>
            <given-names>C.</given-names>
            <surname>Baroglio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Garro, Eds., vol.
          <volume>1099</volume>
          .
          <string-name>
            <surname>Turin</surname>
          </string-name>
          , Italy: Sun SITE Central Europe, RWTH Aachen University,
          <fpage>2</fpage>
          -
          <lpage>3</lpage>
          Dec.
          <year>2013</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          , xIV Workshop (WOA
          <year>2013</year>
          ). Workshop Notes. [Online]. Available: http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1099</volume>
          /paper3.pdf
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>The A&amp;A programming model and technology for developing agent environments in MAS,” in Programming Multi-Agent Systems, ser</article-title>
          . LNCS,
          <string-name>
            <surname>M. Dastani</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>El Fallah Seghrouchni</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Ricci</surname>
          </string-name>
          , and M. Winikoff, Eds. Springer, Apr.
          <year>2008</year>
          , vol.
          <volume>4908</volume>
          , pp.
          <fpage>89</fpage>
          -
          <lpage>106</lpage>
          . [Online]. Available: http://www.springerlink.com/content/92370q174328841j/
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          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="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          , “
          <article-title>Infrastructure for RBACMAS: An approach based on Agent Coordination Contexts</article-title>
          ,
          <source>” Applied Artificial Intelligence: An International Journal</source>
          , vol.
          <volume>21</volume>
          , no.
          <issue>4- 5</issue>
          , pp.
          <fpage>443</fpage>
          -
          <lpage>467</lpage>
          , Apr.
          <year>2007</year>
          , special Issue:
          <article-title>State of Applications in AI Research from AI*</article-title>
          <year>IA 2005</year>
          . [Online]. Available: http: //www.tandfonline.com/doi/abs/10.1080/08839510701253674
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M.</given-names>
            <surname>Schumacher</surname>
          </string-name>
          ,
          <article-title>Objective Coordination in Multi-Agent System Engineering. Design and Implementation, ser</article-title>
          .
          <source>LNCS</source>
          . Springer, Apr.
          <year>2001</year>
          , vol.
          <year>2039</year>
          . [Online]. Available: http://www.springerlink.com/ content/t65dbp4hmj7r/
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Ossowski</surname>
          </string-name>
          , “
          <article-title>Objective versus subjective coordination in the engineering of agent systems,” in Intelligent Information Agents: An AgentLink Perspective, ser</article-title>
          . LNAI:
          <article-title>State-of-the-</article-title>
          <string-name>
            <surname>Art Survey</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Klusch</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Bergamaschi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Edwards</surname>
          </string-name>
          , and P. Petta, Eds. Springer,
          <year>2003</year>
          , vol.
          <volume>2586</volume>
          , pp.
          <fpage>179</fpage>
          -
          <lpage>202</lpage>
          . [Online]. Available: http://www.springerlink.com/content/cvx82e7ej1j9c65n/
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>E.</given-names>
            <surname>Denti</surname>
          </string-name>
          , “
          <article-title>Novel pervasive scenarios for home management: the butlers architecture</article-title>
          ,
          <source>” SpringerPlus</source>
          , vol.
          <volume>3</volume>
          , no.
          <issue>52</issue>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>January 2014</year>
          . [Online]. Available: http://www.springerplus.com/content/3/1/52/ abstract
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “SODA:
          <article-title>Societies and infrastructures in the analysis and design of agent-based systems,” in Agent-Oriented Software Engineering, ser</article-title>
          . Lecture Notes in Computer Science,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciancarini and M. J. Wooldridge</surname>
          </string-name>
          , Eds. Springer-Verlag,
          <year>2001</year>
          , vol.
          <year>1957</year>
          , pp.
          <fpage>185</fpage>
          -
          <lpage>193</lpage>
          , 1st International Workshop (AOSE
          <year>2000</year>
          ), Limerick, Ireland,
          <volume>10</volume>
          Jun.
          <year>2000</year>
          . Revised Papers. [Online]. Available: http: //link.springer.com/chapter/10.1007/3-540-44564-1 12
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>