<!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>Helper Agents as a Means of Structuring Multi-Agent Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Kolja Markwardt</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Moldt</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Hamburg, Department of Informatics</institution>
          ,
          <addr-line>Vogt-Klln-Str. 30, D-22527 Hamburg</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Paose methodology of software engineering uses Multi Agent Systems as its main way of structuring applications. However as systems get larger and more complex, additional layers of abstraction are needed. Therefore we propose the HeRAsystem (short for HElper and Resource Agents) to structure agent systems. In this paper we introduce the main concepts of HeRA and illustrate via a small example the usage of its prototypical implementation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Petri Nets provide a powerful formalism for modelling and implementing
distributed concurrent systems. The Paose methodology (Petri net based
Agentand Object-Oriented Software Engineering [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) uses software agents and Multi
Agent Systems to develop distributed systems with reference nets [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Applying
our approach showed problems when developing larger systems. The need for
additional abstraction and structuring was identied in this context. First
proposal have been made on this topic in [
        <xref ref-type="bibr" rid="ref7 ref8">8,7</xref>
        ]. Here we now show the nal result
as a consolidation of the former attempts.
      </p>
      <p>When developing larger Multi Agent Systems (MAS) the question needs to
be answered what kind of functionality we have to assign to an agent. To ease
this, here we propose to use two types of agents to implement in the system.
Doing so should give some hints how they should interact in order to achieve the
intended goal of the system. We have experienced that having a type of agent
eases the modeling of a system.</p>
      <p>
        One way to distinguish elements of an MAS is between active and passive
entities. Usually agents are considered active components. In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] artifacts are
introduced as another type of element in MAS, that agents can use and interact
with. As similar approach based on Petri nets but not covering enriched social
concepts has been proposed in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] with the term of units.
      </p>
      <p>
        The tools and materials approach (T&amp;M) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] for object-oriented software
engineering distinguishes tools and materials as dierent artifact types which
users can interact with in a software system. HeRA tries to adopt and extend
ideas from the former three proposals for the creation of distributed user-centered
agent systems. In the HeRA-system a user can access functionality by using
helper agents, that can act like tools to work on resource agents, who in turn
can act like materials.
      </p>
      <p>In the following, section 2 will give an overview over the Paose methodology
and the Mulan/Capa MAS that is used in the development of the
HeRAsystem. Section 3 will then go on to describe the dierent concepts used in the
HeRA-system, which types of agents it consists of and how they interact with
each other.</p>
      <p>Section 4 explains these concepts by means of a simple example application
built on HeRA. Finally in section 5 we draw a conclusion and give an outlook
on future work.
2</p>
      <p>
        Developing applications with the Paose methodology
The Paose methodology of software engineering uses reference nets [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] for the
modelling and implementation of software. Using interacting nets, the Mulan
MAS [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] has been used for agent-oriented software development for years now.
      </p>
      <p>In Mulan an MAS consists of agent platforms, which are connected with a
communication infrastructure. Agents reside on platforms. A platforms manages
the creation and deletion of agents and the communication between agents on
a platform as well as between platforms. The behaviour of agents is determined
by protocols and decision components within the agents. All these components
are implemented as reference nets, interacting over synchronous channels.</p>
      <p>
        A number of dierent modelling techniques are used in this approach,
describing the system from a number of dierent yet linked perspectives [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The
main focus in developing MAS applications with this approach is describing the
dierent agents and agent roles within the system, the internal processes within
the agents as well as the interactions between them, and the ontology used for
representing concepts in the system. Interactions, internal processes and
ontologies are implemented directly in petri nets (features structure nets for the
ontology, reference nets for everything else).
      </p>
      <p>The HeRA-system now aims at further establishing an application-oriented
perspective. By focussing on domain objects and supporting the users of the
system, we hope to improve the usability and overall quality of software systems.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Helper and Resource Agents</title>
      <p>In order to use an MAS application, users can interact with other agents within
the MAS. This is often accomplished by means of a user agent, which represents
the user within the system and usually provides the user with some kind of
user interface that translates his input into agent activity. If new functionality
is added to the system, the user agent, too, needs to be augmented, so that the
user can access it.</p>
      <p>
        In dynamic distributed systems, where new functionality is added frequently,
this can be quite challenging. And if a typical user only needs a fraction of
the functionality, it is advisable to provide some kind of extension or plug-in
mechanism that allows easy integration of new functionality on demand [
        <xref ref-type="bibr" rid="ref2 ref3 ref4">2,3,4</xref>
        ].
In HeRA we use helper agents, that plug into the user agent to provide new
functionality where needed. The basic concepts of the HeRA system have been
introduced in [
        <xref ref-type="bibr" rid="ref7 ref8">8,7</xref>
        ].
3.1
      </p>
      <sec id="sec-2-1">
        <title>Overview</title>
        <p>Figure 1 shows the dierent types of agents and platforms in the HeRA-system.
A user connects to the system using his two-part user agent. The GUI is used for
user interaction, while the agent part represents the user within the MAS. The
user agent is connected to a number of helper agents that provide functionality
and resource agents that represent resources and documents the user can work
with using his helper agents.</p>
        <p>The conguration of helper and resource agents a user has on his agent
platform represents his personal workplace. He can use helpers to communicate and
exchange resources with other users within his greater work environment. Agents
can also meet and interact with each other on collaboration platforms, which
represent e.g. location, places or groups within the system. Service platforms host
agents that provide services, like the helper factory which is used to create new
helper agents. Other examples could be a workow management system or a
security subsystem.
The user agent consists of two parts, the GUI and the agent. The agent part
is a Mulan agent that knows all the interactions necessary for handling helper
agents and uses an RMI connection to communicate with the GUI part. The
GUI can therefore be located on the same or on a dierent computer than the
agent part.</p>
        <p>The GUI displays to the user a list of available helper agent types in the
MAS, which he can choose to request from the helper factory (see below). If a
new helper agent is registered with the user agent, it sends a description of his
own user interface, which can then be integrated into the user interface of the
user agent. That way the generic user interface of the user agent can be enhanced
in any way needed to provide the functionality of the helper agent.
3.3</p>
      </sec>
      <sec id="sec-2-2">
        <title>Helper Agents</title>
        <p>In the T&amp;M approach, users use tools to interact with materials and their
environment. HeRA turns these tools into agents, who can actively support a user
in their work. This is reected by the name helper agent, which emphasizes the
more active role of the agent.</p>
        <p>Helper agents are responsible for providing any kind of functionality to the
user. They can provide a service all by themselves, encapsulate a legacy
application, interact with other helper agents or display and manipulate resource
agents.
3.4</p>
      </sec>
      <sec id="sec-2-3">
        <title>Helper Factory</title>
        <p>The helper factory is an agent used for creating new helper agents. It holds a list
of helper agent types which it oers to user agents to choose from. On request it
gathers all the information needed for creating the new helper agent and orders
the agent management system to create it. The new agent can be customized
for the user, for example only including functionality that the user can access
according to his user permissions.
3.5</p>
      </sec>
      <sec id="sec-2-4">
        <title>Resource Agents</title>
        <p>Resource agents represent materials and resources in the work environment of
a user. Instead of adding new concepts to the agent platform, resources are
modelled as active components as well. A resource agent acts pretty much like
an object, which can be handled by a helper agent, but it can also enforce its
own rules. For example a material can decide which helper agents can access it
or decide conicts in concurrent access.</p>
        <p>
          Helper and resource agents need to understand the same usage patterns, it
is not possible to use a hammer to fasten a screw for example. These usage
aspects represent a m:n mapping between dierent helper and resource types.
As long as a helper understands the usage protocols of a resource, it can use
that resource. Here the work on service manuals [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] can be used to improve the
mutual dependencies with respect to the behavior.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Example: a Whiteboard Application</title>
      <p>To illustrate these concepts, we provide an example in the form of a simple
whiteboard application. A whiteboard is a common medium used by multiple
people to communicate about ideas etc. While multiple people can read the
content of the whiteboard, only one person at a time can write on it.</p>
      <p>The whiteboard itself is modelled as a resource agent. It manages the content
of the board and accepts requests for changes to this content. Helper agents can
register with the whiteboard material agent to receive updates on the content
whenever it changes.</p>
      <p>The whiteboard helper allows a user to use the whiteboard application. The
user requests a new whiteboard helper from the helper factory, which creates
the agent for him. After registration the user agent loads the GUI extension for
the helper (see gure 2) and connects it to the helper agent.</p>
      <p>Using the agent by means of the GUI extension, the user can create new
whiteboards or access a list of whiteboards already existing in the system and
subscribe to them. He can then edit the content of the resource agent, which
results in updates to all connected helpers. In some way this supports an event
driven perspective.</p>
      <p>The whiteboard example illustrates one of the possible arrangements for the
collaboration platform in Figure 1. In general resource agents should be placed on
such platforms if they do not belong to a single agent. Implicitly these platforms
become collaboration platforms if several agents use the resource.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and Outlook</title>
      <p>Petri net based Multi Agent Systems can be used to structure net-based
application development. In this paper we presented further structural elements within
MAS by introducing the concepts of helper and resource agents. These concepts
provide the possibility to design applications that are more focussed on
providing functionality to individual users collaborating within a distributed system.
Additionally work objects can be modelled explicitly as rst-order objects within
the system.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] it has been shown how these concepts can be used to leverage
agentbased workow management systems [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Future work focusses on combining
these aspects further into an application development platform for complex
distributed systems.
      </p>
      <p>What has not been discussed here is the possibility of feeding agents with
roles, goals, obligations etc. This allows for declarative style of programming
which is nicely integrated due to the nature of agents. So also the use of social
models that are currently discussed for the organization of agents can be applied
to improve the overall architecture. Again this is inherently covered by MAS in
general and hence can also be used in our helper and user agents.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Lawrence</given-names>
            <surname>Cabac</surname>
          </string-name>
          .
          <article-title>Modeling Petri Net-Based Multi-Agent Applications</article-title>
          . Dissertation,
          <year>April 2010</year>
          . http://www.sub.uni-hamburg.de/opus/volltexte/2010/4666/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Lawrence</given-names>
            <surname>Cabac</surname>
          </string-name>
          , Michael Duvigneau, Daniel Moldt, and
          <article-title>Heiko Rlke. Multi-agent concepts as basis for dynamic plug-in software architectures</article-title>
          .
          <source>In AAMAS 2005</source>
          , pages
          <fpage>11571158</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Lawrence</given-names>
            <surname>Cabac</surname>
          </string-name>
          , Michael Duvigneau, Daniel Moldt, and
          <string-name>
            <given-names>Benjamin</given-names>
            <surname>Schleinzer</surname>
          </string-name>
          .
          <article-title>Plugin-agents as conceptual basis for exible software structures</article-title>
          .
          <source>In Multi-Agent Systems and Applications</source>
          V. CEEMAS'
          <volume>07</volume>
          , Leipzig. , volume
          <volume>4696</volume>
          <source>of LNCS</source>
          , pages
          <fpage>340342</fpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Duvigneau</surname>
          </string-name>
          .
          <article-title>Konzeptionelle Modellierung von Plugin-Systemen mit Petrinetzen</article-title>
          . Dissertation,
          <year>October 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Kathrin</given-names>
            <surname>Kaschner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Peter</given-names>
            <surname>Massuthe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Karsten</given-names>
            <surname>Wolf</surname>
          </string-name>
          .
          <article-title>Symbolische Reprsentation von Bedienungsanleitungen fr Services</article-title>
          .
          <source>In AWPN'06</source>
          ,
          <year>September 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Olaf</given-names>
            <surname>Kummer</surname>
          </string-name>
          . Referenznetze. Logos Verlag, Berlin,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Kolja</given-names>
            <surname>Lehmann</surname>
          </string-name>
          , Lawrence Cabac, Daniel Moldt, and
          <string-name>
            <given-names>Heiko</given-names>
            <surname>Rlke</surname>
          </string-name>
          .
          <article-title>Towards a distributed tool platform based on mobile agents</article-title>
          .
          <source>In MATES'05</source>
          , volume
          <volume>3550</volume>
          <source>of LNAI</source>
          . Springer,
          <year>September 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Kolja</given-names>
            <surname>Lehmann</surname>
          </string-name>
          and
          <string-name>
            <given-names>Vanessa</given-names>
            <surname>Markwardt</surname>
          </string-name>
          .
          <article-title>Proposal of an agent-based system for distributed software development</article-title>
          .
          <source>In MOCA</source>
          <year>2004</year>
          , Aarhus, Denmark,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Kolja</given-names>
            <surname>Markwardt</surname>
          </string-name>
          , Lawrence Cabac, and
          <string-name>
            <given-names>Christine</given-names>
            <surname>Reese</surname>
          </string-name>
          .
          <article-title>A process-oriented toolplatform for distributed development</article-title>
          .
          <source>In MSVVEIS 2009</source>
          , pages
          <fpage>4452</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Kolja</surname>
            <given-names>Markwardt</given-names>
          </string-name>
          , Daniel Moldt, and Thomas Wagner.
          <article-title>Net agents for activity handling in a wfms</article-title>
          .
          <source>In AWPN</source>
          <year>2009</year>
          , Karlsruhe, Germany ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <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>Artifacts in the A&amp;A meta-model for multiagent systems</article-title>
          . Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,
          <volume>17</volume>
          (
          <issue>3</issue>
          ):
          <fpage>432456</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Heiko</given-names>
            <surname>Rlke</surname>
          </string-name>
          .
          <article-title>Modellierung von Agenten und Multiagentensystemen Grundlagen und Anwendungen, volume 2 of Agent Technology Theory and Applications</article-title>
          . Logos Verlag, Berlin,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. Volker Tell and
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Moldt</surname>
          </string-name>
          .
          <source>Ein Petrinetzsystem zur Modellierung selbstmodizierender Petrinetze</source>
          . pages
          <fpage>3641</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>Heinz</given-names>
            <surname>Zllighoven</surname>
          </string-name>
          .
          <article-title>Object-Oriented Construction Handbook</article-title>
          . dpunkt Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>