/mm-net-eip-patterns

Enterprise Integration Pattern demonstrator as (timed) db-net extension of CPNTools (from papers: https://arxiv.org/abs/2009.04589, https://ieeexplore.ieee.org/document/9233271/)

Primary LanguageMakefileApache License 2.0Apache-2.0

MM-net EIP implementation

Enterprise Integration Pattern (EIP) demonstrator as multimedia CPN extension of CPNTools

System Requirements

  1. Windows 10 (due to the CPN Tools, sorry guys)
  2. Working internet connection
  3. JDK15 (eg, from Oracle)
  4. CPN Tools version 4 (eg, from CPN Tools)
  5. Recommended: Cygwin to install further needed dependencies (JavaCV 1.5.4, OpenCV 4.4.0) and to start the extension.
    • Needed tools: make, wget, unzip, mv, rm, mkdir
    • Run make: Downloading dependencies will take some time and around 2.5 GB of disk space
    • The JVM is configured to take up to 6GB of memory

Simulating the patterns

  1. Run the mmnet.jar to start the extension server (make); check the icon in the toolbar and double-click to check that the mm-net extension is registered. Make sure that the command is executed within the folder, such that the HaarCascade subdirectory is at the relative path ./HaarCascade, allowing the extension to find relevant files.

  2. start the CPN Tools (eg, type CPN Tools in Win10 search field).

  3. Load pattern model, e.g., aggregator.cpn, through right-click and load model. pic-connector

  4. Right click on the connect artifact in the model and select excecute ML OR select ML in the CPN Toolbar and drag and drop there. Connect CPN/COMMS Button on the extension GUI pic-connect-right-click

  5. Enter the port configured in the connect artifact into the extension GUI and connect CPN/COMM (default 9001). comm-connected

  6. Start executing enabled transitions. pic-fire-transition

Tips and Tricks

  • If images are loaded but places and or viewplaces are not populated, changing the inscription (e.g. adding a space) will lead to a recalculation, allowing to display the correct tokens.
  • Sometimes even though transitions should be able to fire they are not enabled, saving the current net sometimes seems to release the internal confusion of CPN Tools, which may lead to correctly enabled transitions.
  • Large sized pictures can need a longer time to be classified, most of the time using a downscaled image will yield the same classification in less time

Demonstration

Kudos to Marc for recording this short video on how to run the provided MM-net example model.

Click on image below or Link directly: https://youtu.be/5e1jANe0gGA.

Watch the video

License

Please note that the demonstrator is a CPN Tools extension, and thus uses the Access/CPN module, which comes with a LGPL license. However, Access/CPN references the CPN Tools Simulator module, which is dual-licensed and can be used either under the GNU General Public License (GPL) version 2 or by the below license, which is a 4-clause BSD license.

Citation

If you find this work useful for your research, please cite:

@inproceedings{DBLP:conf/edoc/MontaliR020,
  author    = {Marco Montali and
               Andrey Rivkin and
               Daniel Ritter},
  title     = {Formalizing Integration Patterns with Multimedia Data},
  booktitle = {24th {IEEE} International Enterprise Distributed Object Computing
               Conference, {EDOC} 2020, Eindhoven, The Netherlands, October 5-8,
               2020},
  pages     = {67--76},
  publisher = {{IEEE}},
  year      = {2020},
  url       = {https://doi.org/10.1109/EDOC49727.2020.00018},
  doi       = {10.1109/EDOC49727.2020.00018},
  timestamp = {Wed, 28 Oct 2020 15:31:59 +0100},
  biburl    = {https://dblp.org/rec/conf/edoc/MontaliR020.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}

for theoretical foundations, and / or the extended version (incl. detailed execution semantics):

@article{DBLP:journals/corr/abs-2009-04589,
  author    = {Marco Montali and
               Andrey Rivkin and
               Daniel Ritter},
  title     = {Formalizing Integration Patterns with Multimedia Data (Extended Version)},
  journal   = {CoRR},
  volume    = {abs/2009.04589},
  year      = {2020},
  url       = {https://arxiv.org/abs/2009.04589},
  archivePrefix = {arXiv},
  eprint    = {2009.04589},
  timestamp = {Thu, 17 Sep 2020 12:49:52 +0200},
  biburl    = {https://dblp.org/rec/journals/corr/abs-2009-04589.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}

Donate

or

Buy Me A Coffee