<!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>Enabling Poka-Yoke Work ows with the AristaFlow BPM Suite</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Manfred Reichert</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Dadam</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefanie Rinderle-Ma</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Lanz</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rudiger Pryss</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michael Predeschly</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jens Kolb</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Linh Thao Ly</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Jurisch</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ulrich Kreher</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kevin Goeser</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AristaFlow GmbH</institution>
          ,
          <addr-line>Ulm</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ease of Use Aspects</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Institute of Databases and Information Systems, University of Ulm</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This tool presentation gives insights into the AristaFlow BPM Suite { a next generation process management technology that has originated from our research activities in the ADEPT project. We show how AristaFlow ensures ease of use for process implementers, application developers, and end users. Our overall vision is to realize robust and exible process support without encountering bad surprises during runtime. We denote such error-safe process executions as Poka-Yoke Work ows.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <sec id="sec-1-1">
        <title>Ease of use for process implementers</title>
        <p>For implementing Poka-Yoke Work ows, we pursue the idea of process
composition in a \plug &amp; play" style supported by correctness checks. The latter
contribute to exclude errors during process execution. As prerequisite, for
example, implicit data ow dependencies among application services, which are
relevant for their execution order, have to be made known to the process
engine. AristaFlow provides an intuitive graphical editor and composition tool to
process implementers (cf. Fig. 1), and it applies a correctness by construction
principle by providing at any time only those operations to the user which allow
to transform a structurally sound process schema into another one; i.e., change
operations are enabled or disabled according to which region in the process graph
is marked for applying an operation. De ciencies not prohibited by this approach
(e.g., concerning data ow) are checked on-the- y and are reported continuously
in the problem window of the Process Template Editor.</p>
        <p>Generally, we should not require from process implementers that they have
detailed knowledge about the internals of the application functions they can
assign to process activities. However, this should not be achieved by undermining
the correctness by construction principle of Poka-Yoke Work ows. In AristaFlow,
all kinds of executables, that may be associated with process activities, are rst
registered in the Activity Repository as activity templates. An activity template
provides all information to the Process Template Editor; e.g., about mandatory
and optional input/output parameters or data dependencies to other activity
templates. The process implementer just drags and drops an activity template
from the Activity Repository Browser window of the Process Template Editor
(cf. Fig. 2) onto the desired location in the process graph. Depending on the
inDepending on the intended purpose of usage, such an activity template can be very specific or rather
generic. When using a specific activity template, everything may be fixed (the input parameters, the
output parameters, all settings, etc.). In this case, the only remaining task for the process implementer is to
check whether the proposed mapping of the input and output parameters to process data elements (i. e.,
the process variables used within this process to communicate among activities) is correct. Using a very
specific database actitivity template, in turn, may mean that everyting is fixed: the input and output
parameters, the details of the database used and the connection parameters as well as the fully specified
SQL statement. A more generic Activity Template may leave open the SQL statement, the number and
types of input and output parameters, or the settings for the database connection (in parts or even
completely).
tended purpose of usage, an activity template can be rather speci c or generic.
When us5i.n2g Aachsipeveecmienct: tEeamse pofluasteefoervaepprlyictahtioinngdevcealonpebrse
xed; e.g., input/output
parametersAasindicated insSeetcttioinn5.1, all application functions atnhdseervicneslyarerreepresaenintedi ningADtEaPsTk2byfoAcrtivtityhe process
nd all gs. In this case, o m</p>
        <p>Templates. That is any developer who wants to provide a new application function or service will have to
impleme nimtpelermeinst atsouitacbhleeacctkivity wtemhpelattheaenrd ptuhtiteintporthoepAcotivsiteydRepmosaitopryp.Tihnisgmaokefs panaarctaivmity teetme-rs to
proplate available and accessible within the Process Template Editor during process modeling, as illustrated
cess dataineFligeumre 8e.nTotssimipslifyctoherrimepcletm.enWtatihoneonfsuuchsianctigvityatemspplaetecsi, AcDEdPTa2tparobviadesseseavecratlilevvietlsyoftemplate,
abstraction.
for example, input/output parameters, details of the used database, connection</p>
        <p>At the lowest level ADEPT2 provides a so-called Execution Environment for each kind of basic operation
parametewrhsic,h AaDnEPdT2tshupeporftsu. lAlmyonsg potehecrsi, AeDdEPTS2 QoffLers esxteacuttieonmenevnirotnmaenrtes for SxQeLdst.ateAmenmts,ore generic
web services, EXE files, BeanShell scripts, basic file operations, system-generated forms, etc. However,
Activity tTheeimmplepmleanttaeti,onionf antuexrencu,tiomneanvyironlmeeanvtreequiresesnomtehkneowSleQdgeLabsouttaAtDeEmPT2enintternoalrs atnhd,e number
op
and typettsehemreimfoprele,mweillnttyeprsic.oalluytnopt ubetthpetaasrkaomfaneotredirnsar.y application developer, but will be performed by
sysof input/
corresponding activity template and add it to the Activity Repository. It then
becomes available in the AristaFlow Process Template Editor for process modeling
(cf. Fig. 2). To simplify implementation of activity templates, we support several
levels of abstraction. At the lowest one we provide an Execution Environment
for each kind of supported basic operation (e.g., SQL statements, web services,
EXE les, BeanShell scripts, basic le operations, and system-generated forms).
However, implementation of an execution environment requires some knowledge
about internals and, therefore, is typically not the task of an ordinary application
developer, but is performed by system implementers.</p>
        <p>An execution environment de nes the set of methods needed to interact with
the runtime system as well as to implement the operations and facilities that
shall be provided by the activity template. An activity template for database
access, for example, may allow the user to specify connection details. In general,
AristaFlow needs information about the runtime behavior of the activities; e.g.,
whether they may be aborted, suspended, or undone. The developer of an
activity template has to implement interface methods that inform the AristaFlow
runtime environment which of these facilities are supported. For the latter case
he must also provide the implementation of this functionality. The task of
implementing a new activity template is simple if it can be based on a generic
activity template. In this case, implementation can be reduced to putting the
appropriate entries into the set of forms representing the activity template.
2.3</p>
      </sec>
      <sec id="sec-1-2">
        <title>Ease of use for end users</title>
        <p>Enabling ease of use for end users is mainly the task of application developers.
They decide how \manual" process activities interact with the end user. They
also decide whether the standard work ow client is used or whether a dedicated
one shall be provided. An important prerequisite for realizing adapted user
interfaces is to provide the appropriate methods to the application developer; e.g.,
to enable him to realize end user interactions in the context of ad-hoc changes.
To implement clients with such capabilities, the application developer can make
use of system functions available at the AristaFlow API.</p>
        <p>Fig. 3 and Fig. 4 illustrate how an ad hoc change may foster Poka-Yoke
Work ows. Assume that a process instance wants to issue a request for a book
quote using Amazon's web service facilities, but then fails in doing so. The user
detects that his process is in trouble and calls the system administrator. The
latter then invokes the AristaFlow Process Monitor to take a look at this
process instance (cf. Fig. 3). Analyzing the execution log of the failed activity he
detects that its execution failed because the connection to Amazon could not
be established. Let us assume that he considers this as temporary problem and
o ers the user to reset the activity so that it can be repeated once again.
Being a friendly guy, he takes a short look at the process instance and its data
dependencies, and sees that the result of this and the subsequent activity is
only needed when executing the \Choose o er" activity. Therefore, he o ers the
user to move these two activities after activity \CheckSpecialO ers"; i.e., the
user can continue to work on this process instance before the PAIS tries to
reconnect to Amazon. To accomplish this change he would switch to the Instance
Change Perspective of the Process Monitor which provides the same set of change
operations as the Process Template Editor. In fact, it is the Process Template
Editor, but it is aware that a process instance has been loaded and, therefore, all
instance-related state information is taken additionally into account when
enabling/disabling change operations and applying correctness checks. The system
administrator would now mark the nodes \Get Amazon o er" and \Get Amazon
price" as source area and the nodes \CheckSpecial O er" and \Choose o er" as
target area, and then perform operation Move nodes. The resulting process is
depicted in Fig. 4. Another option would be to move node \RetrieveSnailO er"
(where we are waiting for an E-Mail response) after \CheckSpecialO er" as well.
Then \CheckSpecialO er" would become immediately executable.</p>
        <p>Achievement: Complex ad hoc changes and process schema evolution
As motivated in in Section 3.4, also complex ad hoc changes must be possible. Figure 11 and Figure 12
illustrate how such a non-trivial ad hoc change could look like. As example, assume that a process
instance wants to issue a request for quote for a book using Amazon's web service facilities and but fails in
doing so. The user detects that his process instance is in trouble and calls the system administrator for
help. The system administrator invokes the ADEPT2 Process Monitor to take a look at this process
instance (cf. Figure 11). Looking into the execution log of the failed activity he may detect that its execution
failed because the connection to Amazon could not be established. Let us assume, that he considers this
as a temporary problem and offers the user to reset this activity so that it can be repeated once again.</p>
        <p>Being a friendly guy, he takes a short look a the process instance and its data flow dependencies and
sees that the result of this and the subsequent activity is only needed when executing the "Choose offer"
activity. He, therefore, offers the user to move these two activities after the activity "CheckSpecialOffers",
so that the user can continue to work on this process instance before the PAIS once again tries to
connect to Amazon.</p>
        <p>therefore, the user may want to call Amazon by phone to get the price that way. In this case we would ask
the system adminstrator to delete the two activities in trouble, to replace them with a form-based activity
which allows to enter the price manually and which would provide the value for the data element which
was previously served by the activity "Get Amazon price".</p>
        <p>With respect to process schema evolution, important goals were to allow the full spectrum of change
operations, to migrate bFotihg,unroet m11o:diPfierodcaends sinMdivoidnuiatollyr:mModoinfi eitdoprirnocgesPseirnssptaenccetisv(eas far as possible),
and to hideF(aitgbe.s3ta.ll) therinohcereesntscoMmploexnityitoofpre:rfoMrmingnailltthoerniencegssaryecrhesckseacstwievlleas the</p>
        <p>P o P p
In orderretqouidreodsinos,tahnecewsotualtde asdwaiptctihontos athsefaIrnasstapnocsesibClehfaronmgethPeepresrpseonctiinvechoafrgtheetoPpreorcfoersmstMhisontaistokr. Wwheich
provides thinevessatemdeaslopteocfterunmergoyfincthoatnhgisearoepaeirnaotirodnesrto find anPcroocmepsreshensmivpelastoeluEtiodnitotor.thIne pfarocbt,leitm'is[R' itnhde04P,rocess</p>
        <p>as the Te
TemplaRtReDE0d4i,tRoRr.DH0o4wb,eRvReDr,0it4cis], abwutathree trhesautltas phraovceejussstiifniesdt athnecsee heaffosrtbse.en loaded and, therefore, all the
instance-related state information is taken additionally into account when enabling or disabling change
operations and when performing correctness checks. The system administrator would now mark the two
nodes "Get Amazon offer" and "Get Amazon price" as source area and the nodes "CheckSpecial Offer"
and "Choose offer" as target area and then perform the operation "Move nodes". The resulting process
graph is illustrated in Figure 12. He could also offer to move the node "RetrieveSnailOffer" (where we are
wating for an E-Mail response) after "CheckSpecialOffer" as well, then "CheckSpecialOffer" would
become immediately selectable (and thus executable). – Assume, the web service problem lasts longer and,
ADEPT-CSRD--39.doc</p>
        <p>Process
Templates</p>
        <p>Application
Functions</p>
        <p>TPermopcleastess AFpupnlcictaiotinosn
3</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Conclusions</title>
      <p>Process Designer / Process Designer /
Due to its \correctness by constrPurocecss Atdmiinistrnator" principle and its abiPlroictess yAdministorator quickly
como t
a) Process schema chanagend adaptable pb)rCohceceksstsaeteso,frunning instances
pose robustly executable AristaFlow is suited to enable
Poka-Yoke (= error-safe) Work ows. Currently, we apply AristaFlow in di erent
industrial context with very positive feedback on its components and features.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Reichert</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rinderle-Ma</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dadam</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Flexibility in process-aware information systems</article-title>
          .
          <source>LNCS Transactions on Petri Nets and Other Models of Concurrency (ToPNoC) 2</source>
          (
          <year>2009</year>
          )
          <volume>115</volume>
          {
          <fpage>135</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Dadam</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reichert</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The ADEPT project: A decade of research and development for robust and exible process support - challenges and achievements</article-title>
          .
          <source>Computer Science - Research and Development</source>
          <volume>22</volume>
          (
          <year>2009</year>
          )
          <volume>81</volume>
          {
          <fpage>97</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>