<!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>An overview of agent mobility in heterogeneous environments</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dejan Mitrovi´c</string-name>
          <email>dejan@dmi.uns.ac.rs</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mirjana Ivanovi´c</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Zoran Budimac</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Milan Vidakovi´c</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Mathematics and Informatics, Faculty of Sciences, University of Novi Sad</institution>
          ,
          <country country="RS">Serbia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Faculty of Technical Sciences, University of Novi Sad</institution>
          ,
          <country country="RS">Serbia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <fpage>52</fpage>
      <lpage>58</lpage>
      <abstract>
        <p>Mobility is an important feature of some software agents, allowing them to leave their host and continue task execution on another machine in the network. For the mobility to work, however, the network needs to be comprised of interoperable multi-agent systems. Currently, there exists a large number of multi-agent system solutions which, unfortunately, do not satisfy this requirement, due to standards incompliance, different implementation technologies, and so on. This paper provides an overview of existing approaches to solving this problem, and enabling seamless agent mobility in heterogeneous environments.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Agent technology represents one of the most consistent approaches to distributed
software development. And although there is no generally agreed upon definition
of the term, software agents can be described as executable software entities
with various degrees of intelligence, that act autonomously in order to reach
their design objectives.</p>
      <p>Agents live in an environment which enables them to execute their tasks.
These environments, called multi-agent systems (MAS ), control the agent
lifecycle, incorporate security mechanisms that protect both the agent and the
environment itself, provide the inter-agent communication infrastructure, and
so on.</p>
      <p>
        An important feature of some software agents is mobility. Mobility enables an
agent to (physically) leave its current host machine and continue the execution
on another machine in the network. The mobility feature can be used to provide
efficient and elegant solutions for a large variety of problems. From the past
experience of the authors, it is worth noting the application of mobile agent in
workflow [
        <xref ref-type="bibr" rid="ref23 ref6">23, 6</xref>
        ] and document management [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] systems.
      </p>
      <p>
        In general, the process of agent migrating to another location involves several
steps [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]:
1. Suspending the agent’s execution flow
2. Saving the runtime state
3. Transferring the code and state to the target machine
4. Restoring the runtime state at the target machine and resuming the
execution flow
Two basic types of mobility can be distinguished, based on what is assumed
to be the agent’s ”runtime state”: weak and strong. The systems supporting
weak mobility save and restore only the runtime values of (all or some of) the
agent’s properties. The agent’s execution is resumed on the target machine by,
for example, automatically sending a pre-defined message to the agent. Strong
mobility, on the other hand, includes saving and restoring the entire runtime
state of the agent, including the execution stack, the program counter, and so
on. Strong mobility is more transparent than weak, in the sense that agent is
completely unaware of it. However, it is technically more difficult to implement,
requiring support in the underlying implementation platform (e.g. modified Java
Virtual Machine [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]).
      </p>
      <p>
        Currently, there exists a large number of multi-agent systems supporting
either weak or strong agent mobility. The most notable examples include JADE
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and Aglets [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], supporting weak, as well as D’Agents [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and NOMADS [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ],
supporting strong mobility.
      </p>
      <p>
        Over the time, there have been several attempts to standardize the
architecture and design of multi-agent systems. One of the most important goals was
to assure interoperability between systems developed by different vendors. The
two notable standardization attempts are the FIPA specification set [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and the
OMG MASIF specification [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The key issue among existing MAS solution,
however, is exactly the lack of interoperability. According to [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]: ”Two mobile
agent systems are interoperable if a mobile agent of one system can migrate to
the second system, the agent can interact and communicate with other agents
(local or even remote agents), the agent can leave this system, and it can resume
its execution on the next interoperable system”. The lack of interoperability
arises as a consequence of standards incompliance, usage of different
implementation technologies, different sets of APIs offered to hosted agents, etc. This is
a severely limiting factor in agent development, and in the wide-spread use of
agent technology.
      </p>
      <p>Several approaches have been developed in order to solve problems arising
from incompatibility between existing MAS solutions. These approaches are
discussed in the following section.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Approaches to agent mobility</title>
      <p>
        According to an analysis published in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], based on the types of multi-agent
systems that appear on the agent’s migration path, several types of mobility can
be distinguished:
– Homogeneous. This assumes that all MAS nodes on an agent’s path are
based on the same implementation technology (e.g. Java), offer the same set
of APIs, etc. No changes to the agent’s code are needed during the migration.
Obviously, this type of migration is the easiest to handle.
– Cross-platform. The agent migrates between different multi-agent systems,
but all of which are implemented using the same platform. This means that
what needs to adapted is the way in which the agent makes API calls to its
hosting MAS ; its executable code remains the same.
– Agent-regeneration. The agent migrates between instances of the same MAS ,
but running on different virtual machines or platforms. As a consequence,
the agent’s executable code needs to be regenerated at each host.
– Heterogeneous. Nodes in the agent’s migration path are instances of different
types of multi-agent systems, and are running on different virtual machines
or platforms. This scenario requires regeneration of the agent’s executable
code as well as modification of the API calls it makes to the hosting MAS .
      </p>
      <p>In practice, although there is a large number of available MAS
implementations, the majority is developed using Java and running on Java Virtual Machine.
The key problem to solve would, therefore, be defined by the cross-platform
mobility pattern. Much more flexibility, however, is offered by agent-regeneration
and heterogeneous mobility types.
2.1</p>
      <sec id="sec-2-1">
        <title>Cross-platform mobility</title>
        <p>The most common approach to solving the problem of interoperability in the
cross-platform mobility pattern is through a form of software layering. The core
idea of this approach is to build abstraction layers on top of existing multi-agent
systems. The abstraction layer serves as an intermediary between an agent and
its host MAS – it offers a unique set of API to the agent, and translates agent’s
calls to these functions into ”native” calls to the underlying MAS .</p>
        <p>
          Grid Mobile-Agent System (GMAS ) [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] is a system that introduces three
software layers in order to support cross-platform MAS interoperability:
– GMAS API: the common API, placed between an agent and a MAS
– Foreign2GMAS : a translation layer, with the task of translating agent’s
native calls into calls to the GMAS API
– GMAS2Native: a translation layer which transforms agent’s calls to GMAS
        </p>
        <p>API into calls to the native platform
A MAS that wants to be able to dispatch its agents to other systems needs to
offer an implementation of the Foreign2GMAS layer. Similarly, a MAS that wants
to be able to host agents from other systems needs to include a GMAS2Native
module. In this setting, an agent leaves its home MAS through a Gateway
component. The target MAS uses a Launcher component to restore the agent once
it arrives, and then remotely loads the Foreign2GMAS layer from the agent’s
home MAS . All API calls made by the agent are intercepted by this layer,
transformed into GMAS API calls, and then forwarded to the local MAS through its
own GMAS2Native module.</p>
        <p>
          An approach presented in [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] asserts that even though multi-agent systems
are indeed incompatible, they all approach the agent development process in the
same manner – an agent is implemented by inheriting some base agent class. The
base class is further assumed to encompass all the interaction between the agent
and its native MAS . Based on these assumptions, migration interoperability can
be achieved by splitting the agent implementation into a platform-independent
part, called the head, and a platform-dependent part, called the body. The core
functionality of the agent is included in its head. A body implementation is
provided for each of the supported MAS s. The body offers some common API
and, in addition, inherits the base agent class of its host platform. Therefore,
when an agent needs access to some of the underlying services, it simply invokes
the ”local” body implementation through the well-known set of methods.
        </p>
        <p>
          Java-based Interoperable Mobile Agent Framework (JIMAF ) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] is another
system based on software layering for enabling the cross-platform agent mobility.
It features an Interoperable Mobile Agent (IMA) model, according to which each
agent is split into a platform-dependent and a platform-independent part,
similarly to the head-body division described earlier. In addition, JIMAF consists of
three layers:
– Interoperable Mobile Agent Layer : hosts platform-independent parts of agents
– Adaptation Layer : handles creation, migration, and lookup of agents, as well
as the transfer of communication messages across heterogeneous
environments
– Platform-dependent Mobile Agent Layer : hosts platform-dependent parts of
agents and is re-implemented for each of the supported MAS s
JIMAF is publicly available [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], very well documented (see e.g. [
          <xref ref-type="bibr" rid="ref11 ref12">11, 12</xref>
          ]), and
extensively benchmarked; when compared to GMAS, for example, it is reported
to introduce significantly less overhead to the agent migration process [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Agent regeneration</title>
        <p>
          Although effective, the solution described in the previous sub-section focus only
on Java-based multi-agent systems. Java does, in fact, represent an excellent
technology for agent development, due to its cross-platform nature, extensive
support for network programming, serialization features, and so on. However,
the use of other development technologies might prove to be useful in different
domains, e.g. when performance is of the essence. See, for example, Mobile-C
[
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] which is implemented in C/C++, and is reportedly two times faster than
JADE when it comes to agent mobility.
        </p>
        <p>
          SOA-based MAS (SOM ) [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] is an extensible, service-oriented, FIPA-compliant
multi-agent system developed by authors. It is defined as a conceptual
specification of web services, each of which is dedicated to handling a distinct part of
the overall agent-management process. The most important benefit of the
SOAbased design is increased interoperability: external clients and third-party tools
can utilize the power of agent technology through web service interfaces, i.e. in a
familiar fashion, and using the standardized communication protocol (SOAP ).
        </p>
        <p>
          However, there is a major downside of the SOA-based design. Because any
modern programming language can be use to implement SOM , developing an
agent that can execute on any running instance of the system becomes almost an
impossible task. This is the classic example of the agent regeneration problem
described earlier. The solution proposed in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] is to use a new agent-oriented
programming language named Agent LAnguage for SOM (ALAS ). Besides
providing developers with programming constructs that hide the complexity of agent
development, the new language offers agent regeneration through hot
compilation. That is, when an agent arrives at a SOM instance written in programming
language X, its ALAS source code is transformed on-the-fly into the X source
code. This output is then fed into a ”native” compiler, producing executable
agent code for the target platform.
2.3
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Heterogeneous mobility</title>
        <p>
          The most complex agent mobility scenario includes an agent migrating across a
network of completely different multi-agent systems – with incompatible APIs
and running on different virtual machines or platforms. Generative migration
[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] is one proposed solution for enabling heterogeneous agent mobility. Rather
than on software layering, it relies on a pool of agent building blocks,
platformindependent descriptions of reusable functional components. Each building block
is characterized solely by a description of its interface, i.e without any details
regarding the implementation. An agent is defined (or, rather, designed) by
assembling and interconnecting these building blocks into a so-called agent blueprint.
During the migration process, the agent’s blueprint is transferred, along with its
runtime state. Using these information, an agent factory can rebuild the agent’s
executable code, on-the-fly, specific to the underlying MAS .
        </p>
        <p>
          Model-Driven Engineering (MDE ) [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] is a promising software development
methodology which simplifies the software design process, and increases the
productivity by overcoming the incompatibility problems of different systems. The
most notable realization of MDE is OMG’s Model-Driven Architecture (OMG
MDA) [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], which includes several specifications: Platform-Independent
Modeling (PIM ), model querying, viewing, and transformations (Meta-Object
Facility Query/View/Transformations, MOF QVT ), XML Metadata Interchange
(XMI ), etc.
        </p>
        <p>
          It has been recognized [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] that there is a direct mapping of generative
migration components into the MDA concepts: agents could be defined using PIM s,
executable code can generated from model transformations, while the transfer of
definitions can be performed through the use of XMI. The repository of PIM ’s
can be kept by a MOF. This opens the door for standardizing the solution to
heterogeneous mobility problems and enabling the wide-spread use of the generative
migration approach.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Conclusion</title>
      <p>Mobility enables software agents to physically leave their current host and
continue task execution on another machine in the network. Currently, there exists
a large number of multi-agent systems that support agent mobility. However,
often it is almost impossible for an agent written specifically for one MAS to
migrate to a MAS developed by another vendor, due to the lack of
interoperability. Over the years, a number of approaches have been proposed, trying to
alleviate this issue.</p>
      <p>This paper has provided an overview of solutions that have proven to be
successful in solving problems specific to cross-platform, agent-regeneration, and
heterogeneous migration patterns. Cross-platform agent mobility can be enabled
through a form of software layering, often in combination with the separation of
agent’s code into a platform-independent and a platform-dependent part. The
presented solution for agent-regeneration includes a new agent-oriented
programming language and an on-the-fly compilation for the concrete target MAS . The
most complex of all is heterogeneous mobility, which could be handled by using
agent blueprints – recognized as a realization of MDE.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A.</given-names>
            <surname>Grimstrup</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Gray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kotz</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. M. Carvalho</surname>
          </string-name>
          , T. B.
          <string-name>
            <surname>Cowin</surname>
            ,
            <given-names>D. A</given-names>
          </string-name>
          . Chac´on, J. Barton,
          <string-name>
            <given-names>C.</given-names>
            <surname>Garrett</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Hofmann</surname>
          </string-name>
          , ”
          <article-title>Toward iInteroperability of mobile-agent systems”</article-title>
          , In International symposium on mobile agents, pp.
          <fpage>106</fpage>
          -
          <lpage>120</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Aglets</given-names>
            <surname>Homepage</surname>
          </string-name>
          , http://aglets.sourceforge.net/,
          <source>Retrieved on June 15</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>B. J.</given-names>
            <surname>Overeinder</surname>
          </string-name>
          ,
          <string-name>
            <surname>D. R. A. De Groot</surname>
            ,
            <given-names>N. J. E.</given-names>
          </string-name>
          <string-name>
            <surname>Wijngaards</surname>
            , and
            <given-names>F. M. T.</given-names>
          </string-name>
          <string-name>
            <surname>Brazier</surname>
          </string-name>
          , ”
          <article-title>Generative mobile agent migration in heterogeneous environments”</article-title>
          ,
          <source>In Scalable computing: practice and experience</source>
          ,
          <volume>7</volume>
          (
          <issue>4</issue>
          ):
          <fpage>89</fpage>
          -
          <lpage>99</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , ”Model-driven engineering”,
          <source>Published by IEEE Computer Society</source>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>31</lpage>
          ,
          <year>February 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. D. Mitrovi´c, M. Ivanovi´c, and M. Vidakovi´c, ”
          <string-name>
            <surname>Introducing</surname>
            <given-names>ALAS</given-names>
          </string-name>
          :
          <article-title>a novel agentoriented programming language”, In Symposium on computer languages, implementations and tools</article-title>
          ,
          <source>SCLIT</source>
          <year>2011</year>
          , Greece,
          <source>September 19-25</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. D. Peˇsovi´c, M. Ivanovi´c, and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Budimac</surname>
          </string-name>
          , ”
          <article-title>Implementation of advanced workflow patterns in a workflow management system using mobile agents”</article-title>
          ,
          <source>In Proceedings of the international conference on software engineering theory and practice</source>
          ,
          <source>SETP-07</source>
          , pp.
          <fpage>205</fpage>
          -
          <lpage>212</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. D. Peˇsovi´c, M. Vidakovi´c, M. Ivanovi´c,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Budimac</surname>
          </string-name>
          , and J. Vidakovi´c, ”
          <article-title>Usage of agents in document management”</article-title>
          ,
          <source>In Computer science and information systems, ComSIS</source>
          ,
          <volume>8</volume>
          (
          <issue>1</issue>
          ):
          <fpage>193</fpage>
          -
          <lpage>210</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D</given-names>
            <surname>'Agents Homepage</surname>
          </string-name>
          , http://agent.cs.dartmouth.edu/,
          <source>Retrieved on June 15</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>FIPA</given-names>
            <surname>Homepage</surname>
          </string-name>
          , http://www.fipa.org,
          <source>Retrieved on June 15</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>G.</given-names>
            <surname>Cabri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Leonardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          , ”
          <article-title>Weak and strong mobility in mobile agent applications</article-title>
          ,
          <source>In Proceedings of the 2nd international conference and exhibition on the practical applications of Java</source>
          (PA-Java'
          <year>2000</year>
          ),
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. G. Fortino,
          <string-name>
            <given-names>A.</given-names>
            <surname>Garro</surname>
          </string-name>
          , and W. Russo, ”
          <article-title>Achieving mobile agent systems interoperability through software layering”</article-title>
          ,
          <source>In Information and software technology</source>
          ,
          <volume>50</volume>
          (
          <issue>4</issue>
          ):
          <fpage>322</fpage>
          -
          <lpage>341</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. G. Fortino,
          <string-name>
            <given-names>A.</given-names>
            <surname>Garro</surname>
          </string-name>
          , and W. Russo, ”
          <article-title>Programming heterogeneous agent-based applications through the JIMAF: a case study”, In Proceedings of languages, methodologies and development tools for multi-agent systems (LADS 2007), Durham</article-title>
          , UK,
          <fpage>4</fpage>
          -
          <issue>6</issue>
          <year>September 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. JADE Homepage, http://jade.tilab.com/,
          <source>Retrieved on June 15</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. JIMAF Homepage, http://lisdip.deis.unical.it/software/jimaf/index. html,
          <source>Retrieved on June 15</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. NOMADS Homepage, http://www.ihmc.us/research/projects/nomads/,
          <source>Retrieved on June 15</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. OMG MASIF Specification, http://www.omg.org/cgi-bin/doc?orbos/97-10-05, Retrieved on June 15,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. OMG MDA Homepage, http://www.omg.org/mda/,
          <source>Retrieved on June 15</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>P.</given-names>
            <surname>Misikangas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Raatikainen</surname>
          </string-name>
          , ”
          <article-title>Agent migration between incompatible agent platforms”</article-title>
          ,
          <source>In Proceedings of the The 20th international conference on distributed computing systems, ICDCS</source>
          <year>2000</year>
          , pp.
          <fpage>4</fpage>
          -
          <lpage>10</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>T.</given-names>
            <surname>Gherbi</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Borne</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Meslati</surname>
          </string-name>
          , ”
          <article-title>MDE and mobile agents: another reflection on the agent migration”</article-title>
          ,
          <source>In Proceedings of the 11th international conference on computer modelling and simulation</source>
          , pp.
          <fpage>468</fpage>
          -
          <lpage>473</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>N.</given-names>
            <surname>Suri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bradshaw</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Breedy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Groth</surname>
          </string-name>
          , G. Hill, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Jeffers</surname>
          </string-name>
          , ”
          <article-title>Strong mobility and fine-grained resource control in NOMADS”</article-title>
          ,
          <source>In Proceedings of the Joint symposium on agent systems</source>
          and applications/mobile agents (ASA/MA 2000), Zurich, Switzerland, pp.
          <fpage>2</fpage>
          -
          <lpage>15</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. U. Pinsdorf, and
          <string-name>
            <given-names>V.</given-names>
            <surname>Roth</surname>
          </string-name>
          , ”
          <article-title>Mobile agent interoperability patterns and practice”</article-title>
          ,
          <source>In Proceedings of the 9th IEEE international conference on engineering of computerbased systems</source>
          , pp.
          <fpage>238</fpage>
          -
          <lpage>244</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. Y.
          <string-name>
            <surname>-C. Chou</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Ko</surname>
          </string-name>
          , and H. H. Cheng, ”
          <article-title>An embeddable mobile agent platform supporting runtime code mobility, interaction and coordination of mobile agents and host systems”</article-title>
          ,
          <source>In Information and software technology</source>
          ,
          <volume>52</volume>
          :
          <fpage>185</fpage>
          -
          <lpage>196</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Budimac</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Ivanovi´c, and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Popovi´c, ”
          <article-title>Workflow management system using mobile agents”</article-title>
          ,
          <source>In Proceedings of the 3rd East-European conference on advances in databases and information systems</source>
          ,
          <source>ADBIS</source>
          <year>1999</year>
          , pp.
          <fpage>168</fpage>
          -
          <lpage>178</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>