[ ECNO Engine and Programming Framework (version 0.3.0)]



The Event Coordination Notation (ECNO) is a notation to coordinate the behaviour among related model elements that are defined in structural diagrams such as class diagrams. The ECNO allows the definition of events and provides means for defining how different related model events need to join or participate in the execution of these events: an interaction.


The local behaviour of each element defines, in which events an element could participate, which parameters are contributed, and which action is executed once an interaction is established and executed.


In the ECNO protoype that is available below, there is an ECNO runtime engine, and there is an extension of Petri nets (ECNO nets) that allow defining the local behaviour of elements. And there is a code generator that allows to generated the code for the local behaviour of ECNO nets. Moreover, there is an example deployed with this prototype.


Installing version 0.3.0


Version 0.3.0 of the ECNO works with Eclipse Indigo (3.7) or Juno (4.2) and the Eclipse Modeling Framework (EMF). If you do not have installed eclipse Indigo or Juno on your platform yet, you will find the instructions to do that here.


Once you have installed Eclipse, you can use Eclipse's update mechanism to install ECNO from the ePNK update site: http://www2.imm.dtu.dk/~ekki/projects/ePNK/indigo/update/. To this end, start Eclipse; then, select "Help->Install New Software...". In the "Install" dialog, press "Add..." and enter the URL http://www2.imm.dtu.dk/~ekki/projects/ePNK/indigo/update/ and add some name like "ePNK". Then press "OK"; if not checked already, make sure that the check box "Group items by category" is checked. Then you should find a category "ECNO Projects" with the following features in the view for selection:

  • ECNO EMF Model Intergration (0.3.0)
  • ECNO Engine (0.3.0)
  • ECNO Nets (0.3.0)
  • ECNO Nets standalone gernerator (0.3.0)
Select all of these features and make sure that the checkbox "Contact all update sites during install to find required software" is checked. Then follow through the "Install" diaglog; remember that you must accept the license at some point in order to proceed.


After the successful installation, it is recommended to restart the Eclipse workbench.


Release notes


Version 0.3.0 of implements all concepts of ECNO and allows integrating ECNO with other object oriented technologies; in particular it comes with an adapter and code generator that works together with the Eclipse Modeling Framework (EMF).


Version 0.3.0 of ECNO is based on Eclipse Indigo (3.7) or Indigo (4.2) and, concerning ECNO nets, on the ePNK (version 1.0.0)


The main features of the ECNO engine version 0.3.0 are:

  1. ECNO notation:
    • Definition of event types with parameters
    • Collective parameters for events
    • Inheritance on event types
    • ECNO nets for modelling the local behaviour of elements
    • Inhertiance of element behaviour (local behaviour)
    • Local behaviour with parallel execution of events
    • Elements with triggering/counting events
    • Coordination annotations with qualifier "ONE" and "ALL"
    • Elements may have different coordination sets for the same event type
    • Priorities for coordination sets
    • GUI properties indicated for which elements and event types GUI elements should be created
  2. ECNO framework:
    • Engine that calculates and executes valid interactions.
    • Programming interface for adapters to different object oriented technologies
    • Code generator for local behaviour and adapters on top of EMF models
    • Transactional execution of interactions
    • Controller and notification mechanism, which automatically keeps possible interactions up to date (in particular the ones shown on the GUI)
    • Strategies for computing valid interactions
Features that are planned for future versions
  1. ECNO framework:
    • Persistence mechanism that integrates with EMF and Hibernate
    • Features for integrating different ECNO packages (also using different technologies)


There are different project with ECNO examples for version 0.3.0 available from the following zip file: http://www2.imm.dtu.dk/~ekki/projects/ECNO/version-0.3.0/download/ECNO-version-0.3.0-examples.zip. In order to install these examples, download the zip file from the above zip file to you computer. In your Eclipse workspace, select "File->Import...->Existing Projects into Workspace" and press "Next". In the now open "Import" dialog, select "Select archive file" and "Browse" your workspace for the zip file you have downloaded. Select it and then select the three projects from that file and finish the installation.


Then, you will find three different projects in you workspace. Each of them contains a different example of an ECNO model. The README file in each project gives some explanations, explains the role of the different model files, and gives some references to the articles in which these examples are discussed. In all these examples, ECNO nets will be used for modelling the local behaviour of the elements. You will find these nets in files with extension .pnml. These nets can be viewed and edited with the ePNK (which will be automatically be installed when installing ECNO). The ePNK editor opens when double clicking on the resp. file in Eclipse's resource browser or package explorer. This editor, however, is a tree editor only (since it can contain more than one net, which can contain several pages). In order to open the graphical representation, you need to open the tree elements until the tree editor shows a Page object. Double clicking on such a Page objects will open the graphical editor. Note that the graphical editor is tightly integrated with the tree editor, and after you make any changes in the graphical editor, you must save the file from the tree editor (which also shows the dirty flag). For more information on how to use the ePNK for editing nets, have a look into Chapter 3 (Users' Guide) of the ePNK Manual.




Ekkart Kindler (), October 11, 2012 (last updated December 12, 2012)