<?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">Proposal for Editing Workflows of a Distributed Software Development Environment</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>
						<author>
							<persName><forename type="first">Jan</forename><surname>Ortmann</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">Proposal for Editing Workflows of a Distributed Software Development Environment</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">FD70986BBCEBEA613FD0A76DFB11DB89</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T02:18+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>In distributed software development projects the different parties involved can be coordinated by the use of flexible workflow management systems (WfMS). Often the process cannot be defined completely in the beginning of a project or has to be adapted later on when conditions change. In this paper the handling of workflow change in the agent-oriented Potato system for distributed development will be presented. This includes the interaction of the different agents and their protocols as well as the mechanisms for ensuring the soundness of workflows even if they are changed during their execution.</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>For distributed software development, the definition and enactment of processes with workflow management systems (WfMS) is an important means of structuring the interaction between the different participants. Often it can be important to modify these processes during the course of the project. This can be to reflect changes in the general conditions which require changes in the workflow. In other cases, it is not possible to completely specify the required process in the beginning of a project, so that some parts of the workflow can only be defined at a later stage. In ad-hoc workflows defined for one instantiation only, this is obviously more common than in production workflows, in both cases modifications can be necessary, though.</p><p>In these cases the workflow process definitions or even the running workflow instances need to be modified. Often it is difficult to decide whether a certain modification can be safely enacted on a workflow. Therefore instead of changing a running workflow changes are often only applied to a new instance, or special monitoring is required. Since workflows in the Potato system (Process-Oriented Tool Agents for Team Organization) are specified with Petri nets, net-based methods can be used to ensure soundness of these modifications. In section 2 the Potato system will be described with a focus on the process infrastructure used to enact workflows. Section 3 describes the methods for modification of workflows within the system. In section 2.4 the algorithms for checking the modified workflows for soundness are presented. This paper describes the editing of workflow definitions in the context of the Potato system for distributed software development. Therefore this section outlines the main properties of this system.</p><p>Potato is an agent application built on the (Petri net based) Mulan/Capa agent platform (see <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b1">2]</ref>). This agent platform itself is built using reference nets and uses the reference net editor/simulator Renew <ref type="bibr" target="#b5">[6]</ref> as its execution environment, which is implemented in Java.</p><p>The structure of Potato is twofold: It has a tool-based organization that allows users of the system to equip their user agent (UA) with different kinds of tool agents (TA), in order to execute the tasks in the system they need to do. On the other hand a process infrastructure allows the execution of workflow processes in the system, connecting and integrating the different users.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">User, Tool and Material Agents</head><p>The main goal of the Potato system is to facilitate the work of different people working together to produce software. To achieve this, users can use different tools to manipulate materials, which are over the course of a project transformed into work results. This follows the notions of the tools and materials approach <ref type="bibr" target="#b9">[10]</ref>, applied to multi-agent systems to address distributed workplaces.</p><p>The main idea about the tool agent concept is that each user controls a user agent (UA), which can be enhanced by different tool agents (TA) (see <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b2">3]</ref>). The user agent provides basic functionality like a standard user interface and the possibility to discover and load new tool agents (tools).</p><p>Those tool agents can then plug into the user agents UI with their own UI parts, offering their functionality to the user. By choosing the specific set of tool agents, the user can tailor his workspace to his specific needs. A developer for example needs a completely different workplace then a tester or someone writing documentation.</p><p>Material agents (MA) are used to represent and encapsulate the materials or work objects that are currently worked on. Materials are manipulated by tools and can be created, deleted and moved between workplaces. Tools and materials populate the workspace of the user.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Process Infrastructure</head><p>A generic agent-based process infrastructure has been created (see <ref type="bibr" target="#b4">[5]</ref>) and is used for Potato. The process infrastructure offers the services of definition and execution of workflow processes in the development environment. It models a complete workflow management system (WfMS) using agent technology. This allows to make use of agent-based features, like distribution and mobility, so that the resulting WfMS is much more flexible than a normal stand-alone one. Within Potato it is adapted to fit into the user/tool-agent structure. To organise the cooperation of different people working together on a project, workflow processes can be defined and enacted.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Workflow and its Soundness</head><p>In <ref type="bibr" target="#b7">[8]</ref> workflow nets as a special form of Petri net are defined as well as soundness criteria. A test for checking workflow soundness is also given, which can be executed automatically using for example the Woflan tool <ref type="bibr" target="#b8">[9]</ref>.</p><p>As one of the most wanted properties during the execution of a workflow no deadlocks should occur nor should tokens be "lost" in the process. Therefore the notion of soundness has been defined. If a workflow net is started with a token on the start place, no matter which firing sequence occurs, it will always be possible to reach a marking in which only the end place is marked, and this is the only reachable marking in which the end place is marked. To check this property, the short-circuited net is constructed, by adding a transition to the net from the end place to the start place. Iff this net is live and bounded, the original workflow net is sound. <ref type="bibr" target="#b7">[8]</ref> There are different degrees of possible modifications, that can be handled</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.4">Keeping it Sound</head><p>differently. If the definition of a workflow is changed with no currently running instances or if the currently running instances are not to be changed, it suffices to check the new workflow definition for soundness, without any concern for the old definition.</p><p>The same is the case, if already running instances are concerned, but changes only occurr within subworkflows, which are not yet started. This is often the case if sections of a process are not specified when the execution begins, and only placeholder subworkflows are inserted to be defined later on. As long as the unspecified segments are workflows of their own, simply checking for soundness of the new definition is sufficient here, too.</p><p>It gets problematic however, if workflows have to be changed that already have running instances associated and those instances have to be converted to the new version. Since these instances can be in various states of execution, the standard method of checking for workflow soundness <ref type="bibr" target="#b7">[8]</ref> cannot be applied directly.</p><p>Ensuring the Soundness of Workflow Modification A workflow definition is considered sound, if for every possible firing sequence it is possible to reach a state, in which only the final place is marked with a token. As mentioned above, for a normal workflow this can be ensured by constructing the sort-circuited net and checking it for the live and bounded properties.</p><p>In the case of a modified workflow, the structure of the net changes during the execution, therefore some special constructions are necessary to ensure the soundness.</p><p>For every place in the original workflow net a corresponding place in the modified net has to be defined, so that the transition to the new workflow can be executed and checked for soundness. To do this a modification net can be constructed as follows.</p><p>For a workflow net its modification net consists of all places, transitions and arcs from the original net as well as the modified net (disjointly united), connected by transitions from all places in the original net to the modified net.</p><p>With this construction it is possible to convert any instance of the original net to the new definition since all tokens are then accounted for. With the construction as seen in figure <ref type="figure" target="#fig_0">1</ref> it should also be possible to check the absence of deathlock possibilities during the transformation by checking the modification net for soundness. We will not try to formalize or proof this here though.</p><p>Example An abstract example for a Wf modification net can be seen in figure <ref type="figure" target="#fig_0">1</ref>. The original workflow W A consists of two parallel branches, one of which consists of two tasks. In W B the other branch has got two parallel tasks. In t trans the fact is accommodated, that no tokens must be left behind. Therefore even though one of the parallel tasks is deleted in the modified workflow, the corresponding tokens must be disposed of. Similarly, the task that is split up into two tasks in W B requires two tokens to be generated in the target workflow. In this section the mechanisms for modifying workflows are described. Since Potato is agent-oriented, the change process involves a couple of agents.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>W_A W_B T_trans</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Involved Agents</head><p>Users with the appropriate authorization can edit workflows. To do so, they use a workflow edit tool agent via their user agent. This tool agent communicates with the workflow definition database agent to get the old workflow definition as a workflow definition material agent. This is then edited and the new version uploaded back to the definition database.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Adding New Workflows With the WF Edit Tool Agent</head><p>To add a new workflow definition, the net editing features of Renew can be used. Additional properties of the workflow can be defined in a special tool, like roles and rules for execution, workflow specific context data, tasks etc. A material agent is then created and sent to the workflow definition database agent, where it is checked for soundness. This can not find all problems with a workflow, as many problems can occurr in the accompanying definitions of roles, participants, tasks etc. and not in the net structure itself, but at least some of the problems can be avoided this way.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Modifying Workflows and Their Definitions</head><p>If a workflow is to be modified, it must be decided how to handle already running instances of this workflow. If old instances are to be finished according to the old definition, the modification can be handled like a new workflow. The new version can then be added just like a completely new workflow.</p><p>If running instances are to be updated to the new definition however, care must be taken to migrate the processes correctly. In section 2.4 a simple algorithm is described to ensure soundness of workflow modifications. It is mandatory however, to specify the migration from the old to the new definition. For every place in the old workflow a place in the new workflow must be specified, so that all tokens can be moved over to the new definition.</p><p>In the editing process therefore a special mapping phase has to be added, in which this can be defined. By default it is sensible to assume, that all places existing in both versions of the workflow net are mapped to themselves, but it needs to be checked by the modifying user. If the workflow editing consists of a series of soundness-preserving transformations, each of these transformations could be assigned a default pattern of transformation, which can be adjusted by the user.</p><p>Then the new workflow definition along with the migration mapping is sent over to the workflow definition database agent, where it is verified. If verification is successful, the new version is saved as the new default for this workflow type. All workflow engines currently executing instances of the old definition must then be notified of the change and the migration mappings be applied.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Conclusion and Outlook</head><p>Potato integrates the ideas and concepts from <ref type="bibr" target="#b0">[1]</ref> and <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b2">3]</ref> to provide a framework. This shall allow for the support of workflows within a group collaborating in a distributed way. Here we proposed the use of user, tool and material agents, which cover specific roles within the application. They allow for easy editing of agent based workflows. Furthermore, we proposed to add formal checks on the workflows resp. their modification at runtime, based on traditonal techniques. The transfer of markings from one running instance of a workflow to another can e.g. be based on the places cuts. In the long run it is planned to apply these concepts to our own software development process and environment. Therefore, the Renew-IDE will be enhanced considerably.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 .</head><label>1</label><figDesc>Figure 1. Workflow modification net</figDesc></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Multi-agent system: A guiding metaphor for the organization of software development projects</title>
		<author>
			<persName><forename type="first">Lawrence</forename><surname>Cabac</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of MATES&apos;07</title>
				<editor>
			<persName><forename type="first">Petta</forename><surname>Paolo</surname></persName>
		</editor>
		<meeting>MATES&apos;07<address><addrLine>Leipzig, Germany</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">4687</biblScope>
			<biblScope unit="page" from="1" to="12" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Concurrent architecture for a multi-agent platform</title>
		<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">Agent-Oriented Software Engineering III: Revised Papers and Invited Contributions</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting><address><addrLine>Berlin Heidelberg New York</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="volume">2585</biblScope>
			<biblScope unit="page" from="59" to="72" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<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">Proceedings of MATES&apos;05</title>
				<meeting>MATES&apos;05</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005-09">September 2005</date>
			<biblScope unit="volume">3550</biblScope>
			<biblScope unit="page" from="179" to="190" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<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">Third Workshop on Modelling of Objects, Components and Agents</title>
				<editor>
			<persName><forename type="first">Daniel</forename><surname>Moldt</surname></persName>
		</editor>
		<meeting><address><addrLine>MOCA; Aarhus, Denmark</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2004-10">2004. October 2004</date>
			<biblScope unit="page" from="65" to="70" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Architecture for distributed agent-based workflows</title>
		<author>
			<persName><forename type="first">Christine</forename><surname>Reese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jan</forename><surname>Ortmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Daniel</forename><surname>Moldt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Sven</forename><surname>Offermann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kolja</forename><surname>Lehmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Timo</forename><surname>Carl</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of AOIS&apos;05</title>
				<editor>
			<persName><forename type="first">B</forename><surname>Henderson-Sellers</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Winikoff</surname></persName>
		</editor>
		<meeting>AOIS&apos;05</meeting>
		<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="42" to="49" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<ptr target="http://www.renew.de/" />
		<title level="m">Renew -the reference net workshop homepage</title>
				<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<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="b7">
	<analytic>
		<title level="a" type="main">Verification of workflow nets</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">P</forename><surname>Wil</surname></persName>
		</author>
		<author>
			<persName><surname>Van Der Aalst</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 18th International Conference on Application and Theory of Petri Nets</title>
				<meeting>the 18th International Conference on Application and Theory of Petri Nets<address><addrLine>London, UK</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page" from="407" to="426" />
		</imprint>
	</monogr>
	<note>ICATPN &apos;97</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Diagnosing workflow processes using Woflan</title>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">M W</forename><surname>Verbeek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Basten</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">M P</forename><surname>Van Der Aalst</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Computer Journal</title>
		<imprint>
			<biblScope unit="volume">44</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="246" to="279" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<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="2005">2005</date>
			<publisher>dpunkt Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

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