ePNK: Release 1.1.0

About Version 1.1.0
The ePNK is a platform for developing Petri net tools based on the PNML transfer format (see ePNK Home Page).


Version 1.1.0 is now (as of June 13, 2016) available, which should work for Eclipse Indigo (3.7) and newer versions of Eclipse. It was tested on Eclipse Indigo (3.7), Mars (4.5) and Neon (4.6).


Version 1.1.0 of the ePNK runs under Eclipse Indigo and all newer versions (it was tested for Eclipse Indigo, Mars and Neon). The Eclipse update site for this version can be found at http://www2.compute.dtu.dk/~ekki/projects/ePNK/1.1/update/.


Unfortunately, the ePNK manual is not updated for version 1.1. For some additional information, see the release notes for version 1.1 or a draft of a tutorial chapter for an extended version of the ePNK manual for version 1.1: Draft Chapter 5 of ePNK manual for version 1.1: Complete Tutorial: Net type and Application.



You will find some more information on how to install this version of the ePNK below.


Release notes
The major changes from version 1.0.0 to 1.1.0 are fixes of many minor bugs, some extended functionality, and a more efficient implementation of some features. The most significant contribution is the extension of the ePNK application framework, which makes it easier to present results to the end user and to allow the application interacting with the end user. Moreover, the state of an ePNK application (the so-called net annotations) can be saved now to a file and loaded again later.


Here is a list of the major changes:

  • There was a bug in a menu (PopupMenu) of GMF, which only started causing proplems on Windows 10 systems. The ePNK used this menu. The ePNK version 1.1 has replace this GMF menu with an own implementation, so that the ePNK also works for Windows 10.


    In order to properly work with the ePNK on Windows 10, you should use the ePNK version 1.1.


  • The ePNK come with a utility class FlatAccess, which allows to access a net almost as if it did not have pages. Initializing this class is quite costly. In order to reduce this cost, the ePNK 1.1 allows different functions, applications, or other uses of the ePNK sharing the same FlatAccess.


    Therefore, instances of FlatAccess should no longer be create by each use using the constructor of FlatAccess; instead an instance of FlatAccess should be obtained by the static method getFlatAccess(). The constructor is still available for compatibility reasons, but it is @deprecated.


    The FlatAccess also has a notification mechanism now for functions, applications or other uses to be notfied when the underlying net changes.


  • Version 1.1 of the ePNK comes a extended framework for developing ePNK applications. These extensions make it easier to build ePNK applications with visual feedback to and interaction with the end-user on top of the graphical representation in the graphical editor.


    To this end, an ePNK application can be equipped with new annotations (which existed already in version 1.0.0) and with presentation handlers and action handlers. The presentation handlers define how annotations should be graphically represented on top of the graphical representation in the graphical editor; the action handlers define what should happen on user actions on these annotations (mouse clicks).


    The details will evenutally be documented in an update version of the ePNK manual. For now, the plugin org.pnml.tools.epnk.tutorials.applications.pt-net-simulator, which is provided as a tutorial example with version 1.1, should give some ideas of how to use the ePNK application framework.


  • Version 1.1 of the ePNK allows the end-user to save the state of an application (the underlying net annotations) in a file and to start an application from this file later again. All the developer needs to do for an applictaion to be able to save its state is to override the method isSavable() to return true.


  • Version 1.1 comes with a still experimental feature, which allows the end-user to create all lables which are possible for the underlying object and adjusting them equally distributed around the object. This feature is available via a popup menu "ePNK -> Add Default Labels" on all Petri net objects in the graphical editor.


  • A last but important note does not concern the ePNK itself, but some default settings of newer versions of EMF. In the ePNK manual it says that, when generating the code for a Petri net type model, the settings in the gen model after creating it would not need to be changed. With newer versions of EMF, you would probably need to change one property of the topmost element of the gen model: You must change "Reflective Operations" in category "Model" to false; if the generated code shows errors, this might be the cause of the problem.


Installation details
Below, it is explained step by step how to install version 1.1.0 of the ePNK on your computer..


For installing the ePNK version 1.1.0 on you computer, you first need to install Java and Eclipse on your computer. It is recommended that you use Mars (4.5) or Neon (4.6). If you intend to use the ePNK as an end-user only and you do not intend to develop your own extensions, any configuration of Eclipse might do. In that case, you could use "Eclipse IDE for Java Developers" from http://www.eclipse.org/downloads/.


If you intend to develop your own extensions with and for the ePNK, it is recommended that you install Eclipse with the "Eclipse Modeling Tools" extension, which you can obtain from http://www.eclipse.org/downloads/packages/eclipse-modeling-tools/lunar.


Once you have installed Eclipse on your computer, you can install the ePNK extensions from the ePNK update site http://www2.compute.dtu.dk/~ekki/projects/ePNK/1.1/update/ directly from your Eclipse workbench. To this end, start your version of Eclipse. Then, proceed as follows:

  • In the Eclipse tool bar, select "Help" -> "Install New Software..."


  • In the opened "Install" dialog, press the "Add..." button to add a new update site. In the "Add Site" dialog, enter some name (e.g. "ePNK Update Site"), enter the URL "http://www2.compute.dtu.dk/~ekki/projects/ePNK/1.1/update/" as location, and press okay.


  • Now, select the newly created ePNK update site in the still open "Install" dialog. After some time, some ePNK items should pop up in the dialog. If the items are not grouped into categories, make sure to check the check box "Group items by category".


    You should select all features from the three categories: "ePNK Features", "ePNK Experimental Features", and "HLPNG Simulator".


    You do not need to install the features from the "ECNO" categories, unless you would want to use the ECNO Tool (see ECNO Home Page for more information). You can always install that ECNO Tools at a later point in time, if you need the ECNO Tool.


    If you want to install the ECNO Tool only, it is enough to select all features from the "ECNO Tool" and the "ECNO Examples" category (all the ePNK features needed for installing the ECNO Tool will automatically be added).


    Make sure that the box "Contact all update sites during install to find required software" is checked; this will make sure that all plugins from Eclipse that the ePNK or ECNO Tools need, will be installed too (EMF, GMF, Xtext, etc.).


  • Follow through the installation process (don't forget to accept the licence agreement). If you get an error of the kind
    Cannot complete the install because one or more required items could not be found. ...
    you have probably selected the wrong combination of features. In that case, go back and select the right combination as explained above. An other possibility for an error is that you have forgotten to tick the checkbox "Contact all update sites during install to find required software".


    Note that at some point you will be informed, that the features to be installed are not signed — and you will be asked whether you want to continue anyway.


  • After you made it successfully though all the dialogs, the ePNK and all other required plugins will be installed; it is a good idea to restart Eclipse after that (Eclipse will ask you to do that anyway).


  • After a restart you might want to import some examples ePNK-1.0.0-examples.zip of Petri nets with the Eclipse import feature. If you are a first time user of the ePNK, you should have a look into the ePNK manual, where in particular Chapter 3, "Users' guide", will help you getting started with some examples.


Here is a brief overview of the available resources for the ePNK:
  • Ekkart Kindler: The ePNK: A generic PNML tool - Users' and Developers' Guide for Version 1.0.0. IMM-Technical Report-2012-14, DTU Informatics, Kgs. Lyngby, Denmark, December 2012.


  • Ekkart Kindler: Chapter 5 of a draft for a revised and extended ePNK Manual for version 1.1: Complete Tutorial: Net type and Application, July 2016 (will eventually replace the ePNK manual for version 1.0.0).


  • ePNK-1.0.0-examples.zip: an Eclipse project with some PNML examples. These can be imported to the Eclipse workspace via the Eclipse import mechanism. There are in particular some examples which can be used with the simulator for high-level Petri nets, which is deployed together with version 1.0.0.


  • org.pnml.tools.epnk.pntypes.signalnets.1.0.1.zip: Contains the source code of the two plug-in projects org.pnml.tools.epnk.pntypes.signalnets and org.pnml.tools.epnk.pntypes.signalnets.edit, which are deployed as part of the tutorial projects of version 1.0.0 of the ePNK. Unfortunately, these two projects were configured in such a way that their source code can not be imported to the development workspace. Therefore, the source code is made avaliable here.


  • Mindaugas Laganeckas: A Simulator for high level Petri Nets: Model based design and implementation. Master's thesis, Sepetmber 2012, Technical University of Denmark, DTU Informatics, Kgs. Lyngby, Denmark, Series IMM-M.Sc.-2012-101.


  • There is also a SVN repository in which the ePNK is developed, which is maintained at DTU. People, who would like to join the development team of the ePNK, could contact Ekkart Kindler. Once we reach the critical mass, the repository will probably be moved to some open source collaboration platform such as Source Forge. For just having a look, at the source code of some of the ePNK's projects, you can use Eclipse's "Import as Source Project" feature (except for some few exceptions, the ePNK projects start with org.pnml.tools.epnk). In particular, some of the tutorials might be worth a look.


  • And of course, all the PNML resources mentioned at the ePNK home page could be useful.


Ekkart Kindler (), June 14, 2016 (last updated January 17, 2018)