[ ECNO (1st prototype)]

 
Overview
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 to define 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 the ECNO prototype
The ECNO runtime engine and a ECNO net extension for modelling the local behaviour of elements and the code generator is implemented as a Petri net type of the ePNK. It is available at the ePNK update site for eclipse: http://www2.imm.dtu.dk/~eki/projects/ePNK/update/. The ECNO prototype is available in the "Experimental" category under "ECNO Nets". In order to install this extension, you will need to install eclipse Galileo (3.5) or Helios (3.6) first (see the ePNK installation page for details); then the ePNK and the ECNO net extension can be installed by "Help" -> "Install New Software..." and adding the ePNK update site.

 

The example discussed in [2] is deployed together with the ECNO net extension. After you have installed the ECNO net extension in your version of eclipse, you can import the example to your workspace in the following way: first, open the plug-ins view ("Window" -> "Show view" -> "Other ..." -> "Plug-in Development" -> "Plug-ins"); go to that view and right-click on the plug-in "dk.dtu.imm.se.ecno.pn.example-project" and select "Import As" -> "Source Project". You will find the Petri nets (as a PNML document) in the folder "petrinets". Note that you will see the nets in a tree editor when you initially open that PNML document. For opening a graphical editor, you need to browse the nets in the tree editor and find its pages. Right-click on the page and select "ePNK" -> "Start GMF Editor on Page" (see the ePNK manual [3] for details).

 

The example project actually contains all code (the one which would be generated from the ECNO coordination diagram) and the one that is generated from the ECNO nets. In order to generate the code from the ECNO nets, you need to open the tree editor on the PNML document, right-click on a net (of type ECNO net) and select "ECNO" -> "Generate Code". Note that the fully qualified name of that net will determine to which package the generated class will be added.

 

All this code can be found in the package "dk.dtu.imm.se.ecno.pn.example.vendingmachine". This code is actually independent from eclipse and can be run in any Java runtime environment (1.6 or higher). The vending machine code can be started by right-clicking on "VendingMachineInstance.java" and selecting "Run As" -> "Java Application". Then, you will see a GUI for the coffee and tee vending machin starting up (see [2] for details).

 

Acknowledgements
The ideas of ECNO gradually evolved over several years and started out in a quite different field of research. Over the time, different students have done projects that directly or indirectly contributed to the concepts of ECNO: The students of the AMFIBIA project at the University of Paderborn: Achim Heynen, André Altenau, Christiane Klapdohr, David Schmelter, Dennis Goeken, Elmar Köhler, Patrick Könemann, and Peter Pietrzyk. David Schmelter elaborated some parts in his master's thesis. Moreover, there were students at Denmark's Technical University: Lukasz Nowak and Yang Li did their masters' thesis on AMFIBIA and MoDowA; Tigran Tchougourian, Piotr Borowian, Maciej Zarzycki, and Vaidas Karosas did a related project in the course "Advanced Topics in Software Engineering".

 

Moreover, my co-researchers on AMFIBIA, Björn Axenath and Vladimir Rubin, contributed to what became ECNO now.

 

It is diffcult to attribute which ideas of ECNO where inspired by which student. But, I would like to thank all of them for their work, their ideas, and many interesting discussions.

 

References
  1. Ekkart Kindler: Integrating behaviour in software models: An event coordination notation — concepts and prototype. In: 3rd Workshop on Third Workshop on Behavioural Modelling - Foundations and Application, Proceedings. Birmingham, UK, June 6, 2011. Accepted paper.

     

  2. Ekkart Kindler: Modelling local and global behaviour: Petri nets and event coordination. In PNSE 2011. Newcastle, UK, June 20-21, 2011. Accepted paper.

     

  3. Ekkart Kindler: ePNK: A generic PNML tool - Users' and Developers' Guide : version 0.9.1. IMM-Technical Report-2011-03, DTU Informatics, Kgs. Lyngby, Denmark, February 2011.

 

Ekkart Kindler (), May 18, 2011 (updated Feb. 20, 2012)