<!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>Proposal for Editing Workflows of a Distributed Software Development Environment</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>
        <contrib contrib-type="author">
          <string-name>Jan Ortmann</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-Kölln-Str. 30, D-22527 Hamburg</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <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>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <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.</p>
    </sec>
    <sec id="sec-2">
      <title>Workflows in Distributed Software Development</title>
      <p>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 [
        <xref ref-type="bibr" rid="ref2 ref7">7,2</xref>
        ]). This agent platform itself is built using reference nets
and uses the reference net editor/simulator Renew[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] 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.
2.1</p>
      <sec id="sec-2-1">
        <title>User, Tool and Material Agents</title>
        <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 [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], 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 [
          <xref ref-type="bibr" rid="ref3 ref4">4,3</xref>
          ]).
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.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Process Infrastructure</title>
        <p>
          A generic agent-based process infrastructure has been created (see [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]) 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.
2.3
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Workflow and its Soundness</title>
        <p>
          In [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] 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 [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </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.[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]
        </p>
        <p>There are different degrees of possible modifications, that can be handled
2.4</p>
      </sec>
      <sec id="sec-2-4">
        <title>Keeping it Sound</title>
        <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 [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] cannot be applied
directly.
        </p>
      </sec>
      <sec id="sec-2-5">
        <title>Ensuring the Soundness of Workflow Modification A workflow definition</title>
        <p>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 1 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.
Example An abstract example for a Wf modification net can be seen in figure 1.
The original workflow WA consists of two parallel branches, one of which consists
of two tasks. In WB the other branch has got two parallel tasks. In ttrans 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
WB requires two tokens to be generated in the target workflow.
t_iA
T_trans
i_mod</p>
        <p>t_iB
W_A</p>
        <p>W_B
t_oA</p>
        <p>t_oB
o_mod</p>
        <p>Modifying Workflows in the Potato System
In this section the mechanisms for modifying workflows are described. Since
Potato is agent-oriented, the change process involves a couple of agents.</p>
      </sec>
      <sec id="sec-2-6">
        <title>3.1 Involved Agents</title>
        <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.
3.2</p>
      </sec>
      <sec id="sec-2-7">
        <title>Adding New Workflows With the WF Edit Tool Agent</title>
        <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.</p>
        <p>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.
3.3</p>
      </sec>
      <sec id="sec-2-8">
        <title>Modifying Workflows and Their Definitions</title>
        <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.
4</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Conclusion and Outlook</title>
      <p>
        Potato integrates the ideas and concepts from [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and [
        <xref ref-type="bibr" rid="ref3 ref4">4,3</xref>
        ] 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.
      </p>
      <p>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>
    </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>Multi-agent system: A guiding metaphor for the organization of software development projects</article-title>
          . In Petta Paolo, editor,
          <source>Proceedings of MATES'07</source>
          , volume
          <volume>4687</volume>
          <source>of LNCS</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          , Leipzig, Germany,
          <year>2007</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Duvigneau</surname>
          </string-name>
          , Daniel Moldt, and
          <string-name>
            <given-names>Heiko</given-names>
            <surname>Rölke</surname>
          </string-name>
          .
          <article-title>Concurrent architecture for a multi-agent platform</article-title>
          .
          <source>In Agent-Oriented Software Engineering III: Revised Papers and Invited Contributions, number 2585 in Lecture Notes in Computer Science</source>
          , pages
          <fpage>59</fpage>
          -
          <lpage>72</lpage>
          , Berlin Heidelberg New York,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <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>Rölke</surname>
          </string-name>
          .
          <article-title>Towards a distributed tool platform based on mobile agents</article-title>
          .
          <source>In Proceedings of MATES'05</source>
          , volume
          <volume>3550</volume>
          <source>of LNAI</source>
          , pages
          <fpage>179</fpage>
          -
          <lpage>190</lpage>
          . Springer,
          <year>September 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <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>
          . In Daniel Moldt, editor,
          <source>Third Workshop on Modelling of Objects, Components and Agents (MOCA</source>
          <year>2004</year>
          ), pages
          <fpage>65</fpage>
          -
          <lpage>70</lpage>
          , Aarhus, Denmark,
          <year>October 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Christine</given-names>
            <surname>Reese</surname>
          </string-name>
          , Jan Ortmann, Daniel Moldt, Sven Offermann, Kolja Lehmann, and
          <string-name>
            <given-names>Timo</given-names>
            <surname>Carl</surname>
          </string-name>
          .
          <article-title>Architecture for distributed agent-based workflows</article-title>
          . In B.
          <string-name>
            <surname>Henderson-Sellers</surname>
          </string-name>
          and M. Winikoff, editors,
          <source>Proceedings of AOIS'05</source>
          , pages
          <fpage>42</fpage>
          -
          <lpage>49</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Renew - the reference net workshop homepage. http://www.renew.de/,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Heiko</given-names>
            <surname>Rölke</surname>
          </string-name>
          .
          <source>Modellierung von Agenten und Multiagentensystemen - Grundlagen und Anwendungen</source>
          , volume
          <volume>2</volume>
          <source>of Agent Technology - Theory and Applications</source>
          . Logos Verlag, Berlin,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Wil M. P. van der Aalst</surname>
          </string-name>
          .
          <article-title>Verification of workflow nets</article-title>
          .
          <source>In ICATPN '97: Proceedings of the 18th International Conference on Application and Theory of Petri Nets</source>
          , pages
          <fpage>407</fpage>
          -
          <lpage>426</lpage>
          , London, UK,
          <year>1997</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>9. H. M. W. Verbeek</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Basten</surname>
            , and
            <given-names>W. M. P. van der Aalst.</given-names>
          </string-name>
          <article-title>Diagnosing workflow processes using Woflan</article-title>
          .
          <source>The Computer Journal</source>
          ,
          <volume>44</volume>
          (
          <issue>4</issue>
          ):
          <fpage>246</fpage>
          -
          <lpage>279</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Heinz</given-names>
            <surname>Züllighoven</surname>
          </string-name>
          .
          <article-title>Object-Oriented Construction Handbook</article-title>
          . dpunkt Verlag,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>