Skip to content

Eclipse-based 'Visual Service Design Tool' BPMN Editor as part of JIAC V 'Toolipse'

License

Notifications You must be signed in to change notification settings

dailab/toolipse-vsdt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

904 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visual Service Design Tool

Copyright 2007-2022 DAI-Labor, TU Berlin

  • Main Contributor: Tobias Küster
  • Further contributions by: Marcus Voß, Petrus S. Tan, Michael Burkhardt

Short Description

The Visual Service Design Tool (VSDT) is a BPMN-Editor that can be used for automatically creating executable code for various target languages, most notably different flavours of JIAC agents, but also BPEL, or just plain english text.

The first version of the VSDT was developed in 2007 during the diploma thesis of Tobias Küster and has since then been extended upon in the context of various research projects at DAI-Labor.

Modules

The following list provides an overview of the different modules in this repository and their purpose.

  • de.dailab.common.gmf: contains some helper classes for GMF, e.g. for commands, properties panels, etc.
  • de.dailab.common.swt: the same for SWT, e.g. some abstract dialog boxes or components of such
  • de.dailab.vsdt: the BPMN model, EMF and GMF model files, and generated Ecore model code
  • de.dailab.vsdt.diagram: the core graphical BPMN editor, mostly generated by GMF, with some modifications
  • de.dailab.vsdt.diagram.additions: additional "optional" features and usability improvements
  • de.dailab.vsdt.diagram.interpreter: BPMN interpreter, both integrated into the editor and abstract versions
  • de.dailab.vsdt.diagram.meta: graphical editor for the "meta", or "use case" layer, mostly generated by GMF
  • de.dailab.vsdt.edit: item provider, all generated by EMF
  • de.dailab.vsdt.feature: editor "feature", needed to generate plugins to be installed into Eclipse
  • de.dailab.vsdt.trafo: abstract "transformation framework" for BPMN-to-X
  • de.dailab.vsdt.trafo.bpel: implementation of the "canonical" transformation from BPMN to BPEL
  • de.dailab.vsdt.trafo.jadlpp: implementation of the transformation from BPMN to JIAC V JADL++ scripts
  • de.dailab.vsdt.trafo.jiacbeans: implementation of the transformation from BPMN to JIAC V AgentBeans
  • de.dailab.vsdt.trafo.strucbpmn: rules for identifying diagram structures used for most of the actual transformations
  • de.dailab.vsdt.trafo.text: implementation of the transformation from BPMN to textual descriptions (TXT, HTML, Latex)
  • de.dailab.vsdt.vsdtagents: integration of VSDT with a running JIAC platform, e.g. for deploying agents there and for live interpreter
  • de.dailab.vsdt.vxl2: simple "VSDT Expression Language" that can be used in VSDT and transformed to different other target languages

Note that the "common" modules were originally in a different non-public repository and moved here to make this self-contained. The "JIAC-Plugin" needed for the "vsdtagents" module is currently not part of this repo (but might also be added in the future).

Getting Started

The VSDT is implemented as an Eclipse plugin, meaning that you have to use the Eclipse IDE for developing and running it. The latest version of Eclipse the VSDT has been tested with is Eclipse 2023-12. Correct working on newer version can not be guaranteed.

Running the VSDT (as developer)

  1. Download the Eclipse Installer and Install Eclipse (which version does not really matter, "Eclipse for Java Developers" works fine)
  2. Import the modules in this repository (vsdt/de.dailab.vsdt.*) into your Eclipse workspace
  3. Import additional plugin projects from other repositories:
    • common/de.dailab.common.swt and *.gmf
    • jadl/de.dailab.jiactng.jadlpp (optional)
    • jiac/de.dailab.jiactng.nodeplugin (optional)
  4. The VSDT consists of several different modules, not all might be needed. If you still have missing dependencies for some, check the list in the Redmine Wiki (see Documentation) whether you really need those, and close them if you don't.
  5. Install the GMF Tooling and ATL Plugins into Eclipse (from the Eclipse marketplace menu)
  6. Once everything compiles without error, right-click on any of the VSDT modules and select Run as -> Eclipse Application
    • A new Eclipse runtime will start from within your current Eclipse runtime, being equipped with all the plugins currently opened in the workspace, including the VSDT
    • Import the examples project and open one of the examples, e.g. in the demo folder, to see if everything works
    • A detailled description of how to use the VSDT can be found in the VSDT Manual (see Documentation)

Note: Currently, VSDT does not work well with a dark UI theme, so best switch to a light theme before starting Eclipse. You can select a light theme in Window -> Preferences -> General -> Appearance.

Contributing to the VSDT

Just a few pointer where to look in case you want to make certain additions or changes:

  • The BPMN meta model is defined in an EMF Ecore file in de.dailab.vsdt/model, as are the GMF files used to configure and generate the basic graphical editor. Please consult an EMF/GMF tutorial to learn how to modify those.
  • The editor code is distributed to a few modules. The generated code (with a few modifications) is located in de.dailab.vsdt.diagram/src; everything that has been modified has a @generated NOT annotation and can thus be easily found. The customsrc directory in the same module holds classes that are inseparable from the basic editor, but are entirely custom-made, such as the figures, and some dialogs needed to edit non-visual elements. The modules de.dailab.vsdt.diagram.additions contains several features and usability improvements that are not essential to the editor.
  • Extending the structure transformation (how subgraphs are mapped to loops, if/else, etc.) is found in the de.dailab.vsdt.trafo.strucbpmn module, as a series of graph transformation rules. Those rules are implemented in plain Java and based on the Eclipse EMT framework.
  • For adding a transformation to another target language, it is usually not necessary to extend the structure mapping. The best approach to this is to just copy one of the existing transformation modules, e.g. the de.dailab.vsdt.trafo.agentbeans module, and modify it as needed. Usually, the bulk of the transformation code is found the the *ElementMapping class; other commonly found classes are *Validator, *ExportWrapper, *ResultSaver, etc., each corresponding to one of the stages in the transformation.

About

Eclipse-based 'Visual Service Design Tool' BPMN Editor as part of JIAC V 'Toolipse'

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published