Service Cutter Generators

Introduction and Motivation

The Service Cutter tool provides a structured way to service decomposition. Our Service Cutter Input Generators allow you to generate the input files for Service Cutter. The prototypical integration of Service Cutter demonstrates the opportunity to generate suggestions how to further decompose a context-modeled system.

For more information about Service Cutter we refer to its projects wiki and two publications on it:

Note: The Service Cutter generators are not yet supported in our new Visual Studio Code extension. We continuously work on the extension and will support them soon! To use this generators you have to use the Eclipse plugin for now. You can find a feature support table for Eclipse and VS Code here.

User Guide

The following sections describe how to use the Service Cutter generators and create the input files for Service Cutter.

Generate Entity Relationship Model File

Service Cutter uses an Entity-Relationship Model Diagram (ERD) file that contains entities and nanoentities to describe the applications structure as its first and mandatory input.

We assume you have a CML file with your model in Eclipse (with our plugin installed). A right-click to the CML-file will guide you to a Context Mapper context menu. When selecting the action Service Cutter: Generate Input File (JSON), you generate the Service Cutter ERD file in the required JSON format:

Generate ServiceCutter ERD File

Note that the Context Mapper menu entry is also available within the context menu uf the CML editor (right-click anywhere in the editor).

Generate SCL File

The second input file for Service Cutter deals with additional User representations. Service Cutter takes them in JSON format, but there is some manual work required to create these file. Hence, we implemented another DSL which makes this step much easier. These files have the file extension *.scl* (for Service Cutter Language).

A SCL file can be generated out of a CML file. Again, a right-click to the CML-file will open the Context Mapper context menu. You can initialize your SCL file with the action Service Cutter: Initialize User Representations File (Exemplary):

Generate ServiceCutter SCL File

Note: The generated SCL file is a template that intends to help you by setting the structure expected by Service Cutter. The following generated parts are only examples, and will have to be adjusted:

The following elements are actually derived from the CML model and do not have to be changed:

Generate User Representations JSON File

Once you have prepared your SCL file, you can generate the corresponding JSON file with the action Service Cutter: Generate User Representations File (JSON) in the context menu:

Generate ServiceCutter JSON out of SCL File

Using the JSON files in Service Cutter

Now you have both JSON files that are required for the Service Cutter tool, generated into the src-gen folder:

Generated JSON files for Service Cutter

Have fun with cutting your services :)

Note: Service Cutter has not been updated in a while, and only intended to demonstrate the possibilities of criteria-based graph clustering in the context of service decomposition (and establish a method and a first catalog of criteria). So do not expect mature, production-ready cuts to be suggested, but view them as a discussion and design workshop input. Further research is required to harden the approach; such research is ongoing (evidence: 40+ citations of the Service Cutter paper presented at ESOCC 2016).

Service Cutter Insurance Example