Copyright 2007-2022 DAI-Labor, TU Berlin
- Main Contributor: Tobias Küster
- Further contributions by: Marcus Voß, Petrus S. Tan, Michael Burkhardt
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.
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 suchde.dailab.vsdt: the BPMN model, EMF and GMF model files, and generated Ecore model codede.dailab.vsdt.diagram: the core graphical BPMN editor, mostly generated by GMF, with some modificationsde.dailab.vsdt.diagram.additions: additional "optional" features and usability improvementsde.dailab.vsdt.diagram.interpreter: BPMN interpreter, both integrated into the editor and abstract versionsde.dailab.vsdt.diagram.meta: graphical editor for the "meta", or "use case" layer, mostly generated by GMFde.dailab.vsdt.edit: item provider, all generated by EMFde.dailab.vsdt.feature: editor "feature", needed to generate plugins to be installed into Eclipsede.dailab.vsdt.trafo: abstract "transformation framework" for BPMN-to-Xde.dailab.vsdt.trafo.bpel: implementation of the "canonical" transformation from BPMN to BPELde.dailab.vsdt.trafo.jadlpp: implementation of the transformation from BPMN to JIAC V JADL++ scriptsde.dailab.vsdt.trafo.jiacbeans: implementation of the transformation from BPMN to JIAC V AgentBeansde.dailab.vsdt.trafo.strucbpmn: rules for identifying diagram structures used for most of the actual transformationsde.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 interpreterde.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).
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.
- Download the Eclipse Installer and Install Eclipse (which version does not really matter, "Eclipse for Java Developers" works fine)
- Import the modules in this repository (
vsdt/de.dailab.vsdt.*) into your Eclipse workspace - Import additional plugin projects from other repositories:
common/de.dailab.common.swtand*.gmfjadl/de.dailab.jiactng.jadlpp(optional)jiac/de.dailab.jiactng.nodeplugin(optional)
- 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.
- Install the GMF Tooling and ATL Plugins into Eclipse (from the Eclipse marketplace menu)
- 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
examplesproject and open one of the examples, e.g. in thedemofolder, 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.
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 NOTannotation and can thus be easily found. Thecustomsrcdirectory 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 modulesde.dailab.vsdt.diagram.additionscontains 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.strucbpmnmodule, 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.agentbeansmodule, and modify it as needed. Usually, the bulk of the transformation code is found the the*ElementMappingclass; other commonly found classes are*Validator,*ExportWrapper,*ResultSaver, etc., each corresponding to one of the stages in the transformation.