<!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>CPN IDE: An Extensible Replacement for CPN Tools That Uses Access/CPN (Extended Abstract)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>1st Eric Verbeek</string-name>
          <email>h.m.w.verbeek@tue.nl</email>
          <email>h.m.w.verbeek@tue.nl, 0000-0002-1658-9679</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>2nd Dirk Fahland</string-name>
          <email>d.fahland@tue.nl</email>
          <email>d.fahland@tue.nl, 0000-0002-1993-9363</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Mathematics and Computer Science, Eindhoven University of Technology</institution>
          ,
          <addr-line>Eindhoven</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <abstract>
        <p>-This extended abstract introduces CPN IDE, which replaces CPN Tools as a tool for editing and simulating (Coloured) Petri Net models. The main advantage of CPN IDE is that it is an extensible tool, which is needed to keep it running and to add new features which are of interest to the process mining community, like easily generating event logs. Index Terms-Coloured Petri Net (CPN), CPN Tools, Access/CPN, CPN IDE C. CPN IDE</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>I. FROM CPN TOOLS VIA ACCESS/CPN TO CPN IDE</p>
    </sec>
    <sec id="sec-2">
      <title>A. CPN Tools</title>
      <p>
        CPN Tools [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a tool that is well-known in the Petri
net community. CPN Tools provides a mature environment
for constructing, simulating, and performing analysis of CPN
(Coloured Petri Net) models [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. CPN Tools consists of a
CPN simulator (the back-end) based on ML (Meta Language),
and a CPN editor (the front-end) that has been developed
in the BETA programming language [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] using the Mjølner
development system [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        In the autumn of 2010, CPN Tools has been transferred from
the CPN Group at Aarhus University to the Mathematics and
Computer Science department of the Eindhoven University
of Technology (TU/e), The Netherlands. In this department,
CPN Tools has been used extensively in courses both as an
editor and as a simulator for both coloured Petri nets [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
and (uncoloured) P/T nets [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] (like workflow nets [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]). These
courses include our process mining [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] courses, where CPN
Tools is used as a Petri net editor next to our process mining
tool ProM [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. As an example, we can first discover a Petri
net from an event log with ProM, second we can edit the
discovered Petri net using CPN Tools, and third we can replay
the event log on the edited Petri net using again ProM.
      </p>
      <p>Although the latest versions of CPN Tools are still working
on recent operating systems like Windows 10, we foresee that
at some point in the future changes have to be made to CPN
Tools to keep it running, and that in particular changes to the
CPN editor may be needed. The main problem with the current
CPN editor is that the language and development system used
for it (BETA and Mjølner) are rather uncommon and unlike
other languages and systems. As a result, only a few people
actually know how to change the current BETA-based CPN
editor, and it is very hard to extend CPN Tools with new
functionalities.</p>
    </sec>
    <sec id="sec-3">
      <title>B. Access/CPN</title>
      <p>
        This problem of using the BETA language and the Mjølner
system has already been acknowledged in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], which also
introduced Access/CPN to alleviate it. Access/CPN wraps
the CPN simulator in a Java-based implementation of CPN
models. As a result of this, Java programs can now easily
embed the ML-based simulator.
      </p>
      <p>As CPN Tools is used in courses on process mining at
the TU/e, we did not want to wait until CPN Tools stops
working due to new or updated operating systems. Therefore,
we have developed a new tool called CPN IDE, that offers
a new JavaScript-based CPN editor on top of Access/CPN.
This CPN editor communicates through a REST1 interface
with a Java-based controller that embeds Access/CPN and that
is running as a Spring Boot2 server. When the CPN editor
is started, the Spring Boot server with the controller is also
started. As usual, Access/CPN will take care of starting an
ML-based CPN simulator when needed.</p>
      <p>As a result, CPN IDE can be extended either on the level
of the CPN editor (using JavaScript) or on the level of the
controller (using Java).</p>
      <sec id="sec-3-1">
        <title>II. A BRIEF GLANCE</title>
        <p>1Representational state transfer, see https://www.ics.uci.edu/ fielding/pubs/
dissertation/rest arch style.htm, accessed on September 1, 2021)
2See https://spring.io/projects/spring-boot, accessed on September 1, 2021</p>
      </sec>
      <sec id="sec-3-2">
        <title>III. LINKS</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>A. Downloads</title>
      <p>From https://cpntools.org/cpn-ide/ you can download the
latest releases for CPN IDE. The first release is CPN IDE
1.21.</p>
    </sec>
    <sec id="sec-5">
      <title>B. Screencast</title>
      <p>
        From https://cpntools.org/cpn-ide/ you can also access a
screencast on CPN IDE. In this screencast, we create a
workflow net for the running example from [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] handling
compensation requests, and perform a simulation on it.
      </p>
    </sec>
    <sec id="sec-6">
      <title>C. Sources</title>
      <p>On https://github.com/cpn-io/cpn-js/ you will find the
sources for CPN IDE. CPN IDE will be Open Source.</p>
      <sec id="sec-6-1">
        <title>IV. FUTURE WORK</title>
        <p>
          Export to XES [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] At the moment, there is no easy way
to generate an event log in XES format from a running
simulation (like in the screencast). We would like to add
this functionality into CPN IDE.
        </p>
        <p>
          Import/export from/to PNML [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. At the moment, CPN
IDE (and CPN Tools as well) can be used together with
ProM because ProM can import/export P/T nets from/to
CPNXML files3, which is the native file format for both
CPN IDE and CPN Tools. However, if CPN IDE could
3As from ProM 6.10, the “CPNXML export (Petri net)” plugin exports a
P/T net to the CPNXML format and the “Import Petri net from CPNXML
file” plugin imports a P/T net from a CPNXML file.
import/export workflow nets from/to PNML, then other
tools could also be used together with CPN IDE.
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Westergaard</surname>
          </string-name>
          and
          <string-name>
            <surname>H. M. W. Verbeek.</surname>
          </string-name>
          (
          <year>2018</year>
          )
          <article-title>CPN Tools</article-title>
          . [Online]. Available: https://cpntools.org/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Jensen</surname>
          </string-name>
          and
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Kristensen</surname>
          </string-name>
          ,
          <source>Coloured Petri Nets Modeling and Validation of Concurrent Systems</source>
          . Springer-Verlag,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>O. L.</given-names>
            <surname>Madsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Møller-Pedersen</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          K. Nygaard,
          <article-title>Object-Oriented Programming in the BETA Programming Language</article-title>
          .
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Knudsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lofgren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O. L.</given-names>
            <surname>Madsen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Magnusson</surname>
          </string-name>
          , ObjectOriented Environments - The Mjølner Approach. Prentice Hall,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>W.</given-names>
            <surname>Reisig</surname>
          </string-name>
          , Petri Nets:
          <article-title>An Introduction, ser</article-title>
          .
          <source>EATCS Monographs in Theoretical Computer Science</source>
          . Springer-Verlag, Berlin,
          <year>1985</year>
          , vol.
          <volume>4</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>W. M. P.</surname>
          </string-name>
          v. d. Aalst, “
          <article-title>The application of Petri nets to workflow management,”</article-title>
          <source>The Journal of Circuits, Systems and Computers</source>
          , vol.
          <volume>8</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>66</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>--</surname>
          </string-name>
          ,
          <source>Process Mining: Data Science in Action</source>
          , 2nd ed. Springer-Verlag,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>H. M. W.</given-names>
            <surname>Verbeek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C. A. M.</given-names>
            <surname>Buijs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. F. v.</given-names>
            <surname>Dongen</surname>
          </string-name>
          , and
          <string-name>
            <surname>W. M. P.</surname>
          </string-name>
          v. d. Aalst, “Xes, xesame, and prom 6,” in Information System Evolution,
          <source>ser. Lecture Notes in Business Information Processing (LNBIP)</source>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Soffer</surname>
          </string-name>
          and E. Proper, Eds. Hammamet, Tunisia: Springer, June 7-9
          <year>2011</year>
          , vol.
          <volume>72</volume>
          , pp.
          <fpage>60</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Westergaard</surname>
          </string-name>
          and
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Kristensen</surname>
          </string-name>
          , “
          <article-title>The access/cpn framework: A tool for interacting with the cpn tools simulator,” in Applications</article-title>
          and Theory of Petri Nets,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Franceschinis and</article-title>
          K. Wolf, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg,
          <year>2009</year>
          , pp.
          <fpage>313</fpage>
          -
          <lpage>322</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Acampora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vitiello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. Di</given-names>
            <surname>Stefano</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. M. P.</surname>
          </string-name>
          v. d. Aalst,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Gu</surname>
          </string-name>
          <article-title>¨nther, and</article-title>
          <string-name>
            <given-names>H. M. W.</given-names>
            <surname>Verbeek</surname>
          </string-name>
          , “IEEE 1849TM:
          <article-title>The XES standard: The second IEEE standard sponsored by IEEE Computational Intelligence Society</article-title>
          ,”
          <source>IEEE Computational Intelligence Magazine</source>
          , pp.
          <fpage>4</fpage>
          -
          <lpage>8</lpage>
          , May
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Billington</surname>
          </string-name>
          and et. al.,
          <source>“The Petri Net Markup Language: Concepts</source>
          ,
          <string-name>
            <surname>Technology</surname>
          </string-name>
          , and Tools,”
          <source>in Application and Theory of Petri Nets</source>
          <year>2003</year>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Aalst</surname>
          </string-name>
          and E. Best, Eds., vol.
          <volume>2679</volume>
          ,
          <year>2003</year>
          , pp.
          <fpage>483</fpage>
          -
          <lpage>506</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>