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:

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 your IDE with Context Mapper installed. In the context menu of the editor you find the action Generate Service Cutter Input (ERD as JSON). By running this command, you generate the Service Cutter ERD file in the required JSON format:

Generate ServiceCutter ERD File

Generate SCL File

The second input file for Service Cutter deals with additional user representations. Service Cutter takes them in JSON format, but we implemented another DSL which makes it easier to edit them (since Context Mapper v6.x.x not really necessary anymore, since we can generate the complete file out of your CML model). These files have the file extension *.scl* (for Service Cutter Language).

An SCL file can be generated out of a CML file. Again, a right-click in the CML editor will allow you to call the action Generate Service Cutter User Representations (SCL):

Generate ServiceCutter SCL File

The SCL grammar allows you to describe all user representations supported by Service Cutter:

  • Entity Relationship Model (ERM)
  • Use Cases
  • Shared Owner Groups
  • Aggregates
  • Entities
  • Predefined Services
  • Separated Security Zones
  • Security Access Groups
  • Compatibilities

Note: As explained here, you don’t have to edit the SCL file manually! Since Context Mapper v6.x.x all user representations are generated from the CML model. This page describes which CML features you have to use so that Context Mapper will generate them for you.

Examplary SCL File

In case you want to create an SCL file manually, you can generate an exemplary SCL file that illustrates the syntax for all possible representations. Just call the Generate Service Cutter User Representation Example File (SCL) action to generate an example:

Generate Exemplary SCL File

Note: This generated SCL file is only exemplary and only intended to help you understanding the grammar.

Generate User Representations JSON File

Once you have generated/prepared your SCL file, you can generate the corresponding JSON file with the action Generate Service Cutter User Representation JSON File 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

Note that you can also generate new service cuts in Context Mapper directly without using Service Cutter! We integrated the Service Cutter library into Context Mapper so that our users are able to generate new service decompositions out of CML models easily.