Sneak Preview: Annotation of CPN Models in ProM

Friday, I showed CPN simulation in ProM.  While generating logs directly inside ProM is neat and all, the ultimate goal is to be able to set up test scenarios specified using CPN models and to use CPN model implementations of complex algorithms for testing.

This is still work in progress, so I cannot give a nice demo.  Instead here is a screen shot of the current implementation:

This screen allows users to set up such scenarios.  Technically this is done by allowing ProM plugins to observe and interact with the simulation of a CPN model.  It is possible to interact in four ways: via places, via transitions, by acting as modules, and by embedding CPN models.  The first two basically replaces places/transitions of the model and instead adds a link to a plugin.  The two latter allows us to embed external processes in CPN models and to use CPN models as external processes of plugins.

Basically, the idea is the same as in my paper Towards Cosimulating SystemC and Coloured Petri Net Models for SoC Functional and Performance Evaluation, except instead of cosimulating CPN models and SystemC models, we cosimulate CPN models and ProM plugins. We also add the simple place and transition replacements, which were not discussed in the paper.

I’m currently testing with a couple very simple proof-of-concept plugins: one creates a log of executed transitions among the selected transitions (and basically does what I showed in the video in a more cumbersome way) and another consumes all tokens produced on a place, translating them to log events (i.e., doing the same but allowing more user customization on the level of the model).  The ProM Orchestration plugin is not done yet, and is intended to do a very devious thing, I thought would be funny.

Also, I think I spent an hour or so making the neat groupable combo boxes. I hate GUI programming.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.