<!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>AgentSimJS: A Web-based Multi-agent simulator with 3D capabilities</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>G. Web-API Integrator</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Tobia Calenda, Massimiliano De Benedetti, Fabrizio Messina, Giuseppe Pappalardo, Corrado Santoro University of Catania - Dept. of Mathematics and Computer Science Viale Andrea Doria</institution>
          ,
          <addr-line>6 - 95125 - Catania</addr-line>
          ,
          <country country="IT">ITALY</country>
        </aff>
      </contrib-group>
      <fpage>118</fpage>
      <lpage>123</lpage>
      <abstract>
        <p>-This paper describes the architecture of AgentSimJs, a web-based multi-agent simulator written in Javascript. The simulator is capable to render a 3D scene with objects and agents and allows the programmer to arrange simulations by specifying the behavior of agents. The architecture of AgentSimJs is highly modular, as several different components have been designed to enrich the simulator with the desired functionalities. AgentSimJs also has the capability of distributing the simulation among different machines and/or different thread, forming group of agents for broadcast communications.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>I. INTRODUCTION</p>
      <p>
        Agent-based modeling and simulation (ABMS) is a wide
used technique to model systems of autonomous, interacting
agents [18], [13], [15], [7], [
        <xref ref-type="bibr" rid="ref7">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">8</xref>
        ]. There are various
applications which range from stock market simulations [
        <xref ref-type="bibr" rid="ref8">10</xref>
        ],
[29] supply chains, consumer markets [27], [19], [22], as well
as problems related to complex networks [
        <xref ref-type="bibr" rid="ref1">4</xref>
        ], [3], [
        <xref ref-type="bibr" rid="ref20">21</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">20</xref>
        ],
[
        <xref ref-type="bibr" rid="ref20">21</xref>
        ], as predicting the spread of epidemics, the threat of
biowarfare and multi-robot simulations [
        <xref ref-type="bibr" rid="ref24">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">26</xref>
        ], [6], [12], [
        <xref ref-type="bibr" rid="ref23">24</xref>
        ]
The theoretical and practical foundations of ABMS have been
widely studied [18], and a wide variety of toolkits and methods
for developing agent models can be found in the literature [17].
      </p>
      <p>In this work we present AgentSimJs, a JavaScript-based 3D
simulation framework developed to build web based, 3D
multiagent simulations. Running this kind of simulation in a Web
Browser has several advantages. The first benefit is that the
simulator is multi-platform, as browsers natively support the
JavaScript language, which is used nowadays to develop web
application [11]. Moreover, AgentSimJs allows an easy
collaboration between researchers, since running a simulation simply
implies to start a web browser and connect to a specific link.
Such a collaboration aspect is also stressed by AgentSimJs
since, thanks to its modular architecture, algorithms and code
developed for agents behaviors can be easily rescued.</p>
      <p>The architecture of AgentSimJs is highly modular. Two
different components handle agent behavior and agent interaction.
The simulator also includes a component designed to manage
group of agents, while the simulated physical environment is
handled by a further dedicated component, which deals with
the computation of the interactions among agents and between
agents and scene objects. Code reuse and information sharing
is properly managed in order to share all the algorithms and
behaviors developed for the agents. Last but not least, the
simulator offers the opportunity to distribute the simulation
among several machines/thread through the component named
Web-API integrator.</p>
      <p>The paper is structured as follows. Section II discusses
related work. Section III contains a detailed description of the
architecture of the simulator. Section IV briefly describes a
case study in order to highlight the capabilities of the simulator.
Finally, Section V reports the conclusions.</p>
      <p>II.</p>
      <p>One of the most used graphical environments for agent
simulation is NetLogo [32], Java-based tool started in 1999
and still active. The aim of NetLogo is mainly modelling
the evolution of complex systems where hundreds or
thousands of agents can operate independently. It include also
an authoring environment that allows researchers to publish
their own models. In fact, it comes with the Models Library,
which is a collection of pre-built simulation models to use
and modify for biology, physics, computer science and so on.
NetLogo gives also the opportunity to the user to run into
a “classroom participatory-simulation” tool called HubNet,
which allows students to control an agent in a simulation
through the network.</p>
      <p>Another tool, intended for SMP-aware, high performance,
complex network simulations is ComplexSim [23], a C-based
simulation platform developed to support the study of complex
networks. Its architecture is based on two layers, the parallel
simulation kernel and the complex network data and runtime.
The simulator does not provide a graphical environment, and
offers a simple a C-based programming APIs which, although
simple, leads the programmer to write C code and implement
his own data structures to program the behaviors entities.</p>
      <p>
        Breve is a 3D simulation environment designed for
simulation of decentralized systems and artificial life [
        <xref ref-type="bibr" rid="ref15">16</xref>
        ]. With
respect to NetLogo, Breve is able to simulate continuous time
and continuous 3D space, and, therefore,is suited to a different
class of simulations. Breve includes an interpreted
objectoriented language, an OpenGL display engine, collision
detection, and the support for articulated body physical simulation
and collision resolution with static and dynamic friction. Agent
behavior can be written in Python [1] or by through a language
named “steve”, which is easy-to-use. Nevertheless, Breve is no
longer maintained from 2009, but the simulation environment
is still used, indeed Jon klein, brave author, has partially
restored the website1. Furthermore, a JavaScript version of
brave is available online 2 and it allows the researcher to build
simple simulations.
      </p>
      <p>1www.spiderland.org
2http://artificial.com/breve.js/</p>
      <p>PALAIS [31] is a 3D virtual simulation environment for
artificial intelligence with a special focus on games. It
provides functionality for prototyping, testing, visualization and
evaluation of game AI. It allows the definition and execution
of arbitrary, three-dimensional game scenes and behavior. It
provides also a scripting environment along with a
programming interface, simulation control and data visualization tools.
As stated by the authors, the scripting interface is minimal and
can be accessed via simple JavaScript. PALAIS projects can
be easily shared, in order to, e.g., collaborate with peers and
build up showcases for algorithms and behaviors.</p>
      <p>ARGoS [30] is an open source multirobot simulator
capable of simulating at real-time large heterogeneous swarms
of robots. The authors state that ARGoS is highly modular,
therefore users can easily add custom features and allocate
further computational resources where needed. Furthermore,
multiple physics engines can be used and assigned to different
parts of the environment. Results show that ARGoS is able
to allocate and simulate about 10,000 simple wheeled robots
40% faster than real-time.</p>
      <p>
        FLAME [
        <xref ref-type="bibr" rid="ref14">2</xref>
        ] is another agent-based modelling framework
for high performance computing. The strength of the
framework is that parallel programming expertise are not required to
modelers, that can concentrate only to design the model. The
authors used half a million of agents and 432 processors to
show that a parallel efficiency of above 80% can be reached.
      </p>
      <p>III.</p>
      <p>ARCHITECTURE</p>
      <p>AgentSimJs is a tool exploiting the library threejs 3 for the
3D engine. Furthermore, JavaScript Web Workers are used to
implement a sort of parallelism in executing agent behaviors
and the supporting message communication.</p>
      <p>The architecture of AgentSimJs, which is depicted in
Figure 1, is composed by the several components:</p>
      <p>Agent. It is core component of the framework, as it
contains the primitives needed for the simulation of
the behavior.
•
•
•
•
•
•
•
•
•
•
•
•
•</p>
      <p>Communication Bus. It allows the simulation of a
communication system during the multi-agent
simulation and handles agent interaction.</p>
      <p>Group controller. It enables the formation of groups
of agents that will perform different tasks.</p>
      <p>Environment. It is used to simulate the graphical
scenario and to handle physical interactions and
(possible) collision among agents and the other objects
present on the scenario.</p>
      <p>Algorithms Library. It is used by the programmer
to design the algorithms that the agents will use to
perform their task, as it provides an interface and some
basic algorithms to be used by the simulation designer.
IndexedDB Manager. This component is responsible
to store the simulation data in a temporary cache in
order to be export after the simulation.</p>
      <p>Web-API integrator. It enables the execution of
several simulation on different machines by means of
a shared environment (through a web-api or a socket
interface).</p>
    </sec>
    <sec id="sec-2">
      <title>A. Agent</title>
      <p>JavaScript class Agent is the main component of the
framework, as it represents the agent abstraction at framework
level and it contains the implementation of some methods
which implement several functionality, listed below:
Movement: all the methods that can be used to set
the position of the Agent, type of motion and path to
follow. Indeed, each agent is able to perform a certain
number of predefined motions (e.g. parabolic, linear,
circular).</p>
      <p>Status: the methods used to get the agents status (e.g.
agent position, agent role, agent group).</p>
      <p>Communication: it’s an interface of the
communication system of the framework (bus) that allows the
agent to exchange messages with the others agents.
Communication proxy: it’s an embedded message
proxy that can be used to build an overlay network
among the agents.</p>
      <p>Environment: all the methods involved in the
interaction between the agent and the environments.</p>
      <p>Geometry: these primitives enables the definition of
the agent shape and the related reference system on
the 3D scene.</p>
      <p>Proximity sensor: to make each agent aware of the
environment a proximity sensor (laser scanner like) is
simulated with a variable radius.</p>
      <p>The status of any agent is represented by a set of variables
that are managed by the status primitives, which allow to
each agent to send its own status to the peers through the
communication bus. Class Agent may be extended by the
programmer through the addition of specific methods.</p>
      <p>A (shared) data structure among agent instances is used to
store the history of the agent position or to set the path of
the agents. Path planning can be performed by setting high
level strategies in the group controller. A fine tuning may
be performed by means of the Algorithm API and methods
available for setting the movement of the single agent. In
particular, the position methods of the agent instances – that
compute/update the position of every agents – may be invoked
run on a dedicated worker (movement worker) for each agent,
as depicted in figure III-A.</p>
      <p>For a high number of agents the movement worker can
be centralized, i.e. a singleton instance may be used, in this
case all the operations related to the computation of the agent
positions will be managed by a single worker. The worker
(Figure 3) has the responsibility to evaluate the position of each
simulated agent at each simulation step, by computing the next
position of the agent by means of the motion equation in a fixed
time interval. In order to update the agent position, the worker
may use the native web-worker communication interface or the
bus communication of the framework.</p>
      <p>In the centralized approach the movement worker will
publish a message containing the agent position and ID for
each agent; then every agent will receive the message and will
update it’s position if the Id of the message match with its
own ID, otherwise the agent will discard the message.</p>
      <p>The communication bus is an important component of
the simulation framework. Through the communication bus
each agent can exchange information with other agents in a
centralized way; the communication bus can be also used by
other components of the framework to exchange simulation
data.</p>
      <p>The type of messages exchanged in the communication bus
can be listed as follow:
•
•
•</p>
      <p>Agent Data Message: this type of message are
exchanged among the agents to share information about
position, objects, environments, task etc.; each
message will contain the Id of the sender and the Id of
the receiver.</p>
      <p>Group Data Message: this type of message are sent
from the group controller to each member of the group
(a sub-set of agents); each message will contain the
Id of the group that must receive the message.</p>
      <p>Agent-Environment Collision/Interaction: this type of
message contains information about the interaction
between the agents and the environment. The
information are computed by the environment and sent to
a specific agent.</p>
      <p>As depicted in Figure 4, the communication bus can handle
several kind of messages sent by actors of different levels, e.g.
a message can travel from agent to agent or from a group
controller to an agent. It enables also a remote integration
between several simulations that runs in different machine.
Figure 5 shows that through the web-api integrator several
different actors, e.g. group controller and agents, can exchange
simulation data while running in different machine. By the
web-api integrator, agents will be able to send and receive
message with the same approach.</p>
      <p>Each agent is capable to join an overlay network with
the other agents by communicating with within the maximum
transmission range. In this case the communication bus is not
needed, as only the agent communication proxy primitives
of agents are used. In order to build an overlay network the
message sent by the agent’s will contain the Id of the sender
and the number of agents that have to read the message. As in a
real overlay network, if an agent is outside the range of another
agents, it will not receive any message from it. Each agent that
receive the message will perform the following operation:
•
check if its own Id is included in the Id list of the
agents that have already read the message. If not, the
agent must add its own Id into the list and eventually
Fig. 5. AgentSimJs Communication bus
store the information and re-send the message to the
near agents.</p>
      <p>If the Id is already included in the list, the agent will
discard the message.</p>
    </sec>
    <sec id="sec-3">
      <title>C. Environment</title>
      <p>A component named Environment is responsible to create
the 3D scene. Its geometry can be defined by a set of 3D
primitives (that can be enhanced by the user). It is also capable
to place the objects on the scene in a specific position chosen
by the user and compute the potential collision among the
agents and between the agents and the objects. The collision
are evaluated by a batch process that compute the distance
between every objects on the scene and then compare these
distances with a fixed threshold. If the distance is lower than
a given threshold a collision between the selected objects will
occur.</p>
      <p>Once a collision is detected the Environment will send a
message to the involved agent, the message will set the agent
status as off-line and will contain the Id of the scene object that
has caused the collision. The simulation of the collision can
be avoided by setting a specific parameter. The environment is
the only component that is aware of the positions and status
of every object on the scenes. The object on the scene can be
placed also in a random way through a specific method during
the scene initialization; the static objects can be added also at
run-time. If a simulation is executed on several machines, each
environment component will set a sharing of the information
about all the objects in the scene during the initialization
phase. This means that, at runtime, each environment will
compute the collision and then will broadcast a message to
the involved agents and the others environments through the
communication bus. The environments that will receive the
message will update the scene and the information about the
involved agents and objects. In this way each environment that
will detect the collision at the same time will send a message
to the agents involved and this redundancy will make the
simulation robust also when performed remotely. The slowest
environment will receive the information and will align the
scene to the others environment.</p>
    </sec>
    <sec id="sec-4">
      <title>D. Group Controller</title>
      <p>The group controller is used to create groups among the
agents, to assign them several different tasks and manage the
agents of the group. In particular, the group controller expose
an interface with methods to select the agents that will form
a specific group by assigning a GroupID to agents and group
and manage the groups during the simulation.</p>
      <p>Groups can be modified at runtime by reassigning the
agents to different groups. Through the communication bus the
group controller can send a broadcast message to the agents of
a single group in order to share specific information with them,
as well as a heartbeat periodic message to monitoring their
status. In particular, an agent can be considered off-line/not
available if the environment detects a collision between the
agent and another item (i.e. an object or another agents). In
this case the environment will send a message to the agent
that will set its status as off-line, and the agent can send a
message to the group controller to notify its new status. As
alternative, it may ignore the heartbeat message by the group
controller which, after a timeout, will consider the agent as
off-line. The group controller is capable to manage only the
agents that are running in the same machine, as it cannot send
or receive message by the communication bus to the agents
running in another machine. The main reason of this choice is
represented by the network latency which will may become a
bottleneck.</p>
    </sec>
    <sec id="sec-5">
      <title>E. Algorithms Library</title>
      <p>The algorithms API provides an interface that can be used
to implements a specific algorithm that can be used during the
simulation. The interface defines how the agents have to send
its status and how they’ll receive the result. This approach
allows to separate the agent low level model and primitives
from its behaviors.</p>
      <p>The methods exposed by the Algorithms Library can be
invoked by each agent, such that the agents behaviors will
run in a distributed way through a shared knowledge (i.e. the
algorithms), which will represent the common logic of the
agents. The Algorithms Library will define also a library that
can be enhanced during time by all the users that will use the
AgentSimJs framework.</p>
    </sec>
    <sec id="sec-6">
      <title>F. IndexedDB Manager</title>
      <p>The design of the framework requires a DB which will
store a cache of that can be hosted inside a web-browser. The
IndexedDB manager, which relies on the IndexedDB API [28],
is responsible to store all the simulation data on an embedded
database that can be used as a data-cache for the client. The
information stored in the database can be sent to any database
on cloud (eg. through a web-api) or can be exported in CSV
format to be further analysed by the user. The embedded
datacache capability ensures that the simulation can be launched
without any remote connection requirement through a simple
html page.</p>
      <p>In order to add the capability of performing a simulation in
several machine through a web-browser a specific component
has been developed. The Web-API integrator is responsible
to build a remote communication bus that can exchange
messages through remote machines. The approach builds a
shared communication bus composed by each embedded bus
(that is hosted in each remote machine), each bus is connected
to the others through a web-api or a socket. This means that
each message in each bus will be sent in a bus overly network.
To perform a remote connection the web-api integrator can use
a custom web-api or a specific socket (cenno sui socket e su
come si possono gestire tramite JavaScript).</p>
      <p>The web-api integrator will map each remote machine,
will store simulation Id and status. The embedded data-cache
can be connected to the web-api integrator to share data
also in an asynchronous way or as a data-buffer. The remote
machines are managed also through an “heartbeat” message
containing the information about the status of the single remote
machine and connection data (e.g. IP address, timestamp, etc.).
If the heartbeat is not received by a given time threshold the
machine will be set as off-line. The simulation will run without
the agents of the disconnected remote machine (the Web-api
integrator will send a message to the environment to eliminate
from the simulation the external agents, the static object will
persist on the scene).</p>
      <p>IV.</p>
      <p>CASE STUDY: SIMULATION OF SENSOR RELEASING</p>
      <p>BY UAVS</p>
      <p>AgentSimJs has been recently employed to simulate a
scenario on which a variable number of coordinated UAVs [14],
[5] are employed to release sensors in a certain area of terrain,
in order to accomplish the construction and management of a
Wireless Sensor Network (WSN). The behavior of the UAVs
has been set in order to perform a sensor releasing pattern
which leads to a higher density towards the centroid of the
zone. The simulator can be tested the following address:
http://globus.dmi.unict.it/node.</p>
      <p>The UI of the simulator provides a first interface useful
to design a single circular area (hot zone, Figure 6), and an
overall graphical view useful to manage all the created areas.
In particular, for each area, it is possible to set some parameters
that relate to the designed releasing model.</p>
      <p>Furthermore, a simulation can be executed in two different
modes: graphical and batch. In both cases, there is an option
to stop the log stream which appears in the upper part of the
simulation panel (see Figure 7). An interesting feature of the
simulator is the generation of the set of coordinates where
sensors have to be released. These data are used to perform
the analysis needed to understand whether the deployment
schema gives real advantages in terms of energy consumption
and duration of the resulting wireless sensor network.</p>
      <p>This paper has described the architecture of AgentSimJs,
a web based based multi-agent simulation framework written
in JavaScript. The simulator is capable to render a 3D scene
with objects and agents and allows the programmer to arrange
simulations by specifying the behavior of agents. The
architecture of AgentSimJs is highly modular, as several different
components have been designed to endow the simulator with
the desired functionalities. With AgentSimJs the simulation
can be distributed among different machines and/or different
thread, agents can form groups for broadcast communications.
Particular care was given to data storage, which has been
addressed by a component relying on IndexedDB API.</p>
      <p>We are working to realize a web portal to give the
opportunity to use the framework to students and researchers, as
well as releasing publicly the source code of the framework.
The portal should provide the capability to store configurations
[1] “The python language reference
https://docs.python.org/3/reference/index.html.
manual,”
2016,
S. Coakley, M. Gheorghe, M. Holcombe, S. Chin, D. Worth, and
C. Greenough, “Exploitation of high performance computing in the
flame agent-based simulation framework,” in High Performance
Computing and Communication &amp; 2012 IEEE 9th International Conference
on Embedded Software and Systems (HPCC-ICESS), 2012 IEEE 14th
International Conference on. IEEE, 2012, pp. 538–545.</p>
      <p>A. Comi, L. Fotia, F. Messina, G. Pappalardo, D. Rosaci, and G. M.
Sarne´, “An evolutionary approach for cloud learning agents in
multicloud distributed contexts,” in 2015 IEEE 24th International Conference
on Enabling Technologies: Infrastructure for Collaborative Enterprises.</p>
      <p>IEEE, 2015, pp. 99–104.
of simulations and code of agent behaviors developed by
researchers. Furthermore, we planned to integrate the
framework with a library for real time physics simulation. At the
moment there is an attempt of porting of Bullet physics engine
to JavaScript, named ammo.js. Finally, we have planned to
integrate the framework with the JavaScript interface provided
by ROS (Robotic Operating System) 4.</p>
      <p>ACKNOWLEDGEMENTS</p>
      <p>This work is partially supported by projects PRISMA
PON04a2 A/F and CLARA funded by the Italian Ministry of
University.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [4] -, “
          <article-title>Using semantic negotiation for ontology enrichment in elearning multi-agent systems</article-title>
          ,” in Complex,
          <source>Intelligent, and Software Intensive Systems (CISIS)</source>
          ,
          <source>2015 Ninth International Conference on. IEEE</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>474</fpage>
          -
          <lpage>479</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>M. De Benedetti</surname>
          </string-name>
          ,
          <string-name>
            <surname>F. D'Urso</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Messina</surname>
            , G. Pappalardo, and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Santoro</surname>
          </string-name>
          , “
          <article-title>Uav-based aerial monitoring: A performance evaluation of a selforganising flocking algorithm,” in 2015 10th International Conference on P2P, Parallel</article-title>
          , Grid, Cloud and
          <string-name>
            <given-names>Internet</given-names>
            <surname>Computing</surname>
          </string-name>
          (
          <year>3PGCIC</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          ,
          <year>2015</year>
          , pp.
          <fpage>248</fpage>
          -
          <lpage>255</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>M. De Benedetti</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>DUrso</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Messina</surname>
            , G. Pappalardo, and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Santoro</surname>
          </string-name>
          , “
          <article-title>Self-organising uavs for wide area fault-tolerant aerial monitoring</article-title>
          ,”
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>P. De Meo</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Messina</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Rosaci</surname>
            , and
            <given-names>G. M.</given-names>
          </string-name>
          <string-name>
            <surname>Sarne</surname>
          </string-name>
          ´, “
          <article-title>Recommending users in social networks by integrating local and global reputation</article-title>
          ,
          <source>” in International Conference on Internet and Distributed Computing Systems</source>
          . Springer International Publishing,
          <year>2014</year>
          , pp.
          <fpage>437</fpage>
          -
          <lpage>446</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [8] -,
          <string-name>
            <surname>“</surname>
          </string-name>
          2d-socialnetworks:
          <article-title>away to virally distribute popular information avoiding spam,” in Intelligent Distributed Computing VIII</article-title>
          . Springer International Publishing,
          <year>2015</year>
          , pp.
          <fpage>369</fpage>
          -
          <lpage>375</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [9] -,
          <string-name>
            <surname>“</surname>
          </string-name>
          <article-title>An agent-oriented, trust-aware approach to improve the qos in dynamic grid federations</article-title>
          ,
          <source>” Concurrency and Computation: Practice and Experience</source>
          , vol.
          <volume>27</volume>
          , no.
          <issue>17</issue>
          , pp.
          <fpage>5411</fpage>
          -
          <lpage>5435</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [10]
          <string-name>
            <surname>-</surname>
            ,
            <given-names>“</given-names>
          </string-name>
          <article-title>An agent-oriented, trust-aware approach to improve the qos in dynamic grid federations</article-title>
          ,
          <source>” Concurrency and Computation: Practice and Experience</source>
          , vol.
          <volume>27</volume>
          , no.
          <issue>17</issue>
          , pp.
          <fpage>5411</fpage>
          -
          <lpage>5435</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>D.</given-names>
            <surname>Flanagan</surname>
          </string-name>
          ,
          <article-title>JavaScript: the definitive guide</article-title>
          . ”
          <string-name>
            <surname>O'Reilly Media</surname>
          </string-name>
          , Inc.”,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>G.</given-names>
            <surname>Fortino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Russo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Santoro</surname>
          </string-name>
          , “
          <article-title>Translating statecharts-based into bdi agents: The dsc/profeta case</article-title>
          ,
          <source>” in German Conference on Multiagent System Technologies</source>
          . Springer,
          <year>2013</year>
          , pp.
          <fpage>264</fpage>
          -
          <lpage>277</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <given-names>T.</given-names>
            <surname>French</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bessis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Xhafa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Maple</surname>
          </string-name>
          , “
          <article-title>Towards a corporate governance trust agent scoring model for collaborative virtual organisations</article-title>
          ,”
          <source>International Journal of Grid and Utility Computing</source>
          , vol.
          <volume>2</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>98</fpage>
          -
          <lpage>108</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>S.</given-names>
            <surname>Gupte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. I. T.</given-names>
            <surname>Mohandas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Conrad</surname>
          </string-name>
          , “
          <article-title>A survey of quadrotor unmanned aerial vehicles</article-title>
          ,” in Southeastcon,
          <source>2012 Proceedings of IEEE.</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          ,
          <year>2012</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Higashino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Hayakawa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Takahashi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kawamura</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Sugahara</surname>
          </string-name>
          , “
          <article-title>Management of streaming multimedia content using mobile agent technology on pure p2p-based distributed e-learning system</article-title>
          ,”
          <source>International Journal of Grid and Utility Computing</source>
          <volume>26</volume>
          , vol.
          <volume>5</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>198</fpage>
          -
          <lpage>204</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Klein</surname>
          </string-name>
          , “
          <article-title>Breve: a 3d environment for the simulation of decentralized systems</article-title>
          and artificial life,”
          <source>in Proceedings of the eighth international conference on Artificial life</source>
          ,
          <year>2003</year>
          , pp.
          <fpage>329</fpage>
          -
          <lpage>334</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Kl</surname>
          </string-name>
          <article-title>u¨gl and</article-title>
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Bazzan</surname>
          </string-name>
          , “
          <article-title>Agent-based modeling</article-title>
          and simulation,”
          <source>AI Magazine</source>
          , vol.
          <volume>33</volume>
          , no.
          <issue>3</issue>
          , p.
          <fpage>29</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <surname>C. M. Macal and M. J. North</surname>
          </string-name>
          , “
          <article-title>Agent-based modeling</article-title>
          and simulation,” in Winter simulation conference.
          <source>Winter simulation conference</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>86</fpage>
          -
          <lpage>98</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Messina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Pappalardo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rosaci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Santoro</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. M.</surname>
          </string-name>
          <article-title>Sarne´, “A trust model for competitive cloud federations</article-title>
          ,
          <source>” Complex, Intelligent, and Software Intensive Systems (CISIS)</source>
          , pp.
          <fpage>469</fpage>
          -
          <lpage>474</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [20]
          <article-title>-, “A distributed agent-based approach for supporting group formation in p2p e-learning,” in Congress of the Italian Association for Artificial Intelligence</article-title>
          . Springer International Publishing,
          <year>2013</year>
          , pp.
          <fpage>312</fpage>
          -
          <lpage>323</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [21]
          <string-name>
            <surname>-</surname>
          </string-name>
          ,
          <string-name>
            <surname>“Hyson</surname>
          </string-name>
          :
          <article-title>A distributed agent-based protocol for group formation in online social networks</article-title>
          ,
          <source>” in German Conference on Multiagent System Technologies</source>
          . Springer Berlin Heidelberg,
          <year>2013</year>
          , pp.
          <fpage>320</fpage>
          -
          <lpage>333</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Messina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Pappalardo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rosaci</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. M.</surname>
          </string-name>
          <article-title>Sarne´, “An agent based architecture for vm software tracking in cloud federations</article-title>
          ,” in Complex,
          <source>Intelligent and Software Intensive Systems (CISIS)</source>
          , 2014 Eighth International Conference on. IEEE,
          <year>2014</year>
          , pp.
          <fpage>463</fpage>
          -
          <lpage>468</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Messina</surname>
          </string-name>
          , G. Pappalardo, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Santoro</surname>
          </string-name>
          , “
          <article-title>Complexsim: a flexible simulation platform for complex systems</article-title>
          ,”
          <source>International Journal of Simulation and Process Modelling</source>
          <volume>6</volume>
          , vol.
          <volume>8</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>202</fpage>
          -
          <lpage>211</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [24]
          <article-title>-, “Integrating cloud services in behaviour programming for autonomous robots,” in International Conference on Algorithms and Architectures for Parallel Processing</article-title>
          . Springer International Publishing,
          <year>2013</year>
          , pp.
          <fpage>295</fpage>
          -
          <lpage>302</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [25]
          <string-name>
            <surname>-</surname>
          </string-name>
          , “Designing autonomous robots using golem,” in XV Workshop ”Dagli Oggetti agli Agenti” , vol.
          <volume>1260</volume>
          .
          <string-name>
            <surname>CEUR-WS</surname>
          </string-name>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [26]
          <string-name>
            <surname>-</surname>
          </string-name>
          , “
          <article-title>A goal-centric framework for behaviour programming in autonomous robotic systems,” in Mechatronic and Embedded Systems and Applications</article-title>
          (MESA),
          <source>2014 IEEE/ASME 10th International Conference on. IEEE</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          <string-name>
            <given-names>F.</given-names>
            <surname>Messina</surname>
          </string-name>
          , G. Pappalardo,
          <string-name>
            <given-names>C.</given-names>
            <surname>Santoro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rosaci</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. M.</surname>
          </string-name>
          <article-title>Sarne´, “An agent based negotiation protocol for cloud service level agreements,” in 2014 IEEE 23rd International WETICE Conference</article-title>
          . IEEE,
          <year>2014</year>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Ogiela</surname>
          </string-name>
          and U. Ogiela, “
          <article-title>Linguistic approach to cryptographic data sharing</article-title>
          ,” in 2008 Second International Conference on Future
          <source>Generation Communication and Networking</source>
          , vol.
          <volume>1</volume>
          . IEEE,
          <year>2008</year>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <string-name>
            <given-names>C.</given-names>
            <surname>Pinciroli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Trianni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. O</given-names>
            <surname>'Grady</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Pini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Brutschy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brambilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Mathews</surname>
          </string-name>
          , E. Ferrante,
          <string-name>
            <given-names>G. Di</given-names>
            <surname>Caro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ducatelle</surname>
          </string-name>
          et al.,
          <article-title>“Argos: a modular, multi-engine simulator for heterogeneous swarm robotics</article-title>
          ,” in
          <source>2011 IEEE/RSJ International Conference on Intelligent Robots and Systems</source>
          . IEEE,
          <year>2011</year>
          , pp.
          <fpage>5027</fpage>
          -
          <lpage>5034</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <string-name>
            <given-names>P.</given-names>
            <surname>Schwab</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Hlavacs</surname>
          </string-name>
          , “
          <article-title>Palais: A 3d simulation environment for artificial intelligence in games</article-title>
          ,”
          <source>in Proceedings of the AISB Convention</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          <string-name>
            <given-names>S.</given-names>
            <surname>Tisue</surname>
          </string-name>
          and U. Wilensky, “
          <article-title>Netlogo: Design and implementation of a multi-agent modeling environment,” in Proceedings of agent</article-title>
          , vol.
          <year>2004</year>
          ,
          <year>2004</year>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>