<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Helper Agents as a Means of Structuring Multi-Agent Applications</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Kolja</forename><surname>Markwardt</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Informatics</orgName>
								<orgName type="institution">University of Hamburg</orgName>
								<address>
									<addrLine>Vogt-Kölln-Str. 30</addrLine>
									<postCode>D-22527</postCode>
									<settlement>Hamburg</settlement>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Daniel</forename><surname>Moldt</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Informatics</orgName>
								<orgName type="institution">University of Hamburg</orgName>
								<address>
									<addrLine>Vogt-Kölln-Str. 30</addrLine>
									<postCode>D-22527</postCode>
									<settlement>Hamburg</settlement>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Helper Agents as a Means of Structuring Multi-Agent Applications</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">ECAD1ABC40DB728F3AF3AC3BC78D5CD7</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T08:24+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><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 <ref type="bibr" target="#b0">[1]</ref>) uses software agents and Multi Agent Systems to develop distributed systems with reference nets <ref type="bibr" target="#b5">[6]</ref>. 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 <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b6">7]</ref>. 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. One way to distinguish elements of an MAS is between active and passive entities. Usually agents are considered active components. In <ref type="bibr" target="#b10">[11]</ref> 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 <ref type="bibr" target="#b12">[13]</ref> with the term of units.</p><p>The tools and materials approach (T&amp;M) <ref type="bibr" target="#b13">[14]</ref> 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. 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Developing applications with the Paose methodology</head><p>The Paose methodology of software engineering uses reference nets <ref type="bibr" target="#b5">[6]</ref> for the modelling and implementation of software. Using interacting nets, the Mulan MAS <ref type="bibr" target="#b11">[12]</ref> 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 <ref type="bibr" target="#b0">[1]</ref>. 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). 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Helper and Resource Agents</head><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 <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b2">3,</ref><ref type="bibr" target="#b3">4]</ref>.</p><p>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 <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b6">7]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Overview</head><p>Figure <ref type="figure" target="#fig_1">1</ref> shows the dierent types of agents and platforms in the HeRA-system.</p><p>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  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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Helper Agents</head><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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Helper Factory</head><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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.5">Resource Agents</head><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.</p><p>As long as a helper understands the usage protocols of a resource, it can use that resource. Here the work on service manuals <ref type="bibr" target="#b4">[5]</ref> can be used to improve the mutual dependencies with respect to the behavior.</p><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. 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 <ref type="figure" target="#fig_1">1</ref>. 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion and Outlook</head><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.</p><p>Additionally work objects can be modelled explicitly as rst-order objects within the system.</p><p>In <ref type="bibr" target="#b9">[10]</ref> it has been shown how these concepts can be used to leverage agentbased workow management systems <ref type="bibr" target="#b8">[9]</ref>. 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></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>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.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.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 .</head><label>1</label><figDesc>Figure 1. Agents and Platforms in HeRA</figDesc><graphic coords="3,150.52,411.38,311.24,129.55" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 2 .</head><label>2</label><figDesc>Figure 2. Whiteboard application</figDesc><graphic coords="5,202.39,304.19,207.50,146.85" type="bitmap" /></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Modeling Petri Net-Based Multi-Agent Applications</title>
		<author>
			<persName><forename type="first">Lawrence</forename><surname>Cabac</surname></persName>
		</author>
		<ptr target="http://www.sub.uni-hamburg.de/opus/volltexte/2010/4666/" />
	</analytic>
	<monogr>
		<title level="m">Dissertation</title>
				<imprint>
			<date type="published" when="2010-04">April 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Multi-agent concepts as basis for dynamic plug-in software architectures</title>
		<author>
			<persName><forename type="first">Lawrence</forename><surname>Cabac</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Duvigneau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Daniel</forename><surname>Moldt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Heiko</forename><surname>Rölke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">AAMAS 2005</title>
				<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page">11571158</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Plugin-agents as conceptual basis for exible software structures</title>
		<author>
			<persName><forename type="first">Lawrence</forename><surname>Cabac</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Duvigneau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Daniel</forename><surname>Moldt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Benjamin</forename><surname>Schleinzer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Multi-Agent Systems and Applications V. CEEMAS&apos;07</title>
				<meeting><address><addrLine>Leipzig.</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">4696</biblScope>
			<biblScope unit="page">340342</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Konzeptionelle Modellierung von Plugin-Systemen mit</title>
		<author>
			<persName><forename type="first">Michael</forename><surname>Duvigneau</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Symbolische Repräsentation von Bedienungsanleitungen für Services</title>
		<author>
			<persName><forename type="first">Kathrin</forename><surname>Kaschner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Peter</forename><surname>Massuthe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Karsten</forename><surname>Wolf</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">AWPN&apos;06</title>
				<imprint>
			<date type="published" when="2006-09">September 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Olaf</forename><surname>Kummer</surname></persName>
		</author>
		<author>
			<persName><surname>Referenznetze</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Logos Verlag</publisher>
			<pubPlace>Berlin</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Towards a distributed tool platform based on mobile agents</title>
		<author>
			<persName><forename type="first">Kolja</forename><surname>Lehmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lawrence</forename><surname>Cabac</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Daniel</forename><surname>Moldt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Heiko</forename><surname>Rölke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MATES&apos;05</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005-09">September 2005</date>
			<biblScope unit="volume">3550</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Proposal of an agent-based system for distributed software development</title>
		<author>
			<persName><forename type="first">Kolja</forename><surname>Lehmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Vanessa</forename><surname>Markwardt</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MOCA 2004</title>
				<meeting><address><addrLine>Aarhus, Denmark</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">A process-oriented toolplatform for distributed development</title>
		<author>
			<persName><forename type="first">Kolja</forename><surname>Markwardt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lawrence</forename><surname>Cabac</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christine</forename><surname>Reese</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MSVVEIS</title>
				<imprint>
			<date type="published" when="2009">2009. 2009</date>
			<biblScope unit="page">4452</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Net agents for activity handling in a wfms</title>
		<author>
			<persName><forename type="first">Kolja</forename><surname>Markwardt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Daniel</forename><surname>Moldt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Thomas</forename><surname>Wagner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">AWPN 2009</title>
				<meeting><address><addrLine>Karlsruhe, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Artifacts in the A&amp;A meta-model for multiagent systems</title>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ricci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Autonomous Agents and Multi-Agent Systems</title>
		<imprint>
			<biblScope unit="volume">17</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page">432456</biblScope>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">of Agent Technology Theory and Applications</title>
		<author>
			<persName><forename type="first">Heiko</forename><surname>Rölke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Modellierung von Agenten und Multiagentensystemen Grundlagen und Anwendungen</title>
				<meeting><address><addrLine>Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Logos Verlag</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">2</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<author>
			<persName><forename type="first">Volker</forename><surname>Tell</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Daniel</forename><surname>Moldt</surname></persName>
		</author>
		<title level="m">Ein Petrinetzsystem zur Modellierung selbstmodizierender Petrinetze</title>
				<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page">3641</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">Object-Oriented Construction Handbook</title>
		<author>
			<persName><forename type="first">Heinz</forename><surname>Züllighoven</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
			<publisher>dpunkt Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
