Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel
Project Overview
bgColororange
titleDeprecated since 0.12

This article is deprecated. The described features are no longer available in current releases.

Panel
borderStyledashed
titleProject Overview

Responsible:

Related Theses:

  • Christian Motika, Semantics and Execution of Domain Specific Models – KlePto and an Execution Framework, December 2009 (pdf)
  • Sören Hansen, Configurations and Automated Execution in the KIELER Execution Manager, March 2010 (pdf)

...

This sub project implements an interface of the KIELER project for the simulation and execution of graphical domain specific models (e.g., EMF models). It itself does not do any simulation computation but bridges simulation components, visualization components and a user interface within the KIELER Eclipse rich client platform. To get a first impression about this sub project please feel free to watch the following  Flash demo video.

...

JavaDoc

Find the official JavaDoc documantation of the KIELER Execution Manager.

...

Quick start

Install

Check out the KIEM Eclipse plug-in project and enable it in your run configuration. Make sure to enable all required projects and to include all DataComponents you wish to use e.g., for visualization or simulation (s.b.).

...

The KIELER Execution Manager offers a launch configuration extension, see KIEM - KIEM Launch Configurations.

...

How does it work?

Scheduling

...

Both Extension Points are based on the same (abstract) super-class which is called AbstractDataComponent (AbstractDataComponent.java) and itself implements an interface called IDataComponent (IDataComponent.java). A DataComponent may handle JSONObjects (using the following JSON implementation for java:  http://www.json.org/java/) directly or it may handle JSONStrings only. This is where the too two Extension Points differ and what is necessary to decide prior to the implementation of a concrete JSONObjectDataComponent or JSONStringDataComponent.

...

The method step() is called during the execution. It depends on the interface that is implemented what kind of data is passed as a parameter (JSONString or JSONObject) and also what (same!) kind is expected to be returned by the implementation. The parameter of the step() method contains the requested data. It depends on the following:

method to override standard returninfo
isObserver()n/aIf returned false, the DataComponent will always get a null value as a parameter.
provideFilterKeys()nullA String[] array of keys that the DataComponent wants to listen to should be returned.
If null is returned then the DataComponent will always get all unfiltered data.
isDeltaObserver()falseIf true is returned, the DataComponent will get only the new or updated data since the last step it was scheduled (and not skipped, see pure data observers in scheduling section).
If false is returned, the DataComponent will always get the complete (updated) data since the first execution step

The methods isProducer() and isObserver() must be implemented and should return a boolean value indicating whether the DataComponent wants to receive any data (s.a.) or produces data or even both. There is a possibility of so called Initialization DataComponents that neither receive nor produce any data but only are used during the initialization and wrap-up phase when their initialize() and wrapup() method is called.

Take in mind that if your DataComponent is not both, an observer and a producer of data, it's step() method will not be called in a blocking scheme during the scheduled execution (for details please see above). If this is required, then you need to set the according return values to both being true.

...

Please feel free to browse the source and the JavaDoc documantation for further more detailed information.

...

As another case study there exists a SimpleRailControlEditor for the  model railway of the Christian-Albrechts University of Kiel. It lets you create controllers for the model railway by modeling them with a generated Eclipse GMF editor. These models can be transformed into executable C-Code by a model2text-Xpand-transformation on the one hand. On the other there exists a complete Xtend-transformation which generates executable and I/O-equivalent  Ptolemy models out of them. The SimpleRailCtrl Ptolemy Simulator DataComponent is then capable of executing these Ptolemy models using the  Triq Ptolemy Eclipse plug-in. Together with the KIELER model visualizer the active states (nodes) of the controller model can then be illustrated during the execution.

 


There also exists a  demo video that shows the just described behavior. Whenever the execution is being initialized the Ptolemy simulator will transform the currently saved EMF model of the opened diagram into a semantically equivalent but executable ptolemy moml-File.