Skip to content

Implementation Architecture

thomas-vogel edited this page Jan 24, 2018 · 1 revision

The implementation of the mRUBiS exemplar is structured into eleven plug-ins as shown by the following figure. Each node is an Eclipse plug-in project and the arrows represent the direct dependencies between the plug-ins (dependencies are transitive).

Implementation Architecture

The Git repository of the exemplar is structured in the same way. Besides eleven folders for these plug-ins, the repository has one other folder, namely docs that contains the Eclipse update site project and the update site itself for the mRUBiS exemplar, and it further contains the Java docs.

Description of the Plug-ins

de.mdelab.comparch

This plug-in defines the metamodel for the CompArch Modeling Language.

de.mdelab.comparch.edit

This plug-in defines edit operations for CompArch models. It is completely generated from the CompArch metamodel and used by the generated tree-based editor for CompArch models.

de.mdelab.comparch.editor

This plug-in implements a tree-based editor for CompArch models that uses the generated edit operations (see de.mdelab.comparch.edit). It is completely generated from the CompArch metamodel.

de.mdelab.comparch.editor.graphical

This plug-in implements the graphical CompArch Modeling Editor and thus, defines the notation for CompArch models. The editor is based on Eclipse Sirius and only depends on the CompArch metamodel, that is, the de.mdelab.comparch plug-in.

de.mdelab.simulator

This plug-in implements the core of the simulator. This core is generic and does not any contain aspects that are specific to a managed system such as the mRUBiS system. Consequently, generic validators are implemented in this project. This plug-in only depends on the CompArch metamodel, that is, the de.mdelab.comparch plug-in.

de.mdelab.simulator.mrubis

This plug-in extends the simulator core and thus, the de.mdelab.simulator plug-in by implementing aspects that are specific to the mRUBiS system such as certain validators, the injectors for the issues, and the utility functions.

de.mdelab.simulator.mrubis.ui

This plug-in just implements the UI for generating CompArch models for mRUBiS. It uses mRUBiS-specific knowledge defined in the de.mdelab.simulator.mrubis plug-in to generate a CompArch model.

de.mdelab.simulator.mrubis.examples.selfhealing

This plug-in projects implements example solutions for adaptation engines for the self-healing of mRUBiS. In this project, CompArch models can be generated (see de.mdelab.simulator.mrubis.ui plug-in) and the simulator (see de.mdelab.simulator.mrubis plug-in) is used to develop, test, and evaluate the solutions.

de.mdelab.simulator.mrubis.examples.selfoptimization

This plug-in projects implements the example solution for an adaptation engine for the self-optimization of mRUBiS. In this project, CompArch models can be generated (see de.mdelab.simulator.mrubis.ui plug-in) and the simulator (see de.mdelab.simulator.mrubis plug-in) is used to develop, test, and evaluate the solution.

de.mdelab.simulator.mrubis.examples

This plug-in projects just bundles the two plug-ins de.mdelab.simulator.mrubis.examples.selfhealing and de.mdelab.simulator.mrubis.examples.selfoptimization to provide them as Eclipse examples.

de.mdelab.simulator.mrubis.feature

This plug-in project is a so called Eclipse feature project that just bundles all other plug-ins to the feature "mRUBiS Exemplar". It eases generating a release of the Exemplar to the update site from which (a release of) the mRUBiS exemplar can be installed.

Clone this wiki locally