felipetofoli / ServiceCutter

A Structured Way to Service Decomposition

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Service Cutter

The Service Cutter suggests a structured way to service decomposition. There is a tutorial providing you with a functional overview.

This readme focuses on installation and development aspects. A comprehensive documentation of the import format and all coupling criteria can be found in the wiki of this repository.

The Service Cutter is based on the Bachelor Thesis by Lukas Kölbener and Michael Gysel.

Build status: Build Status

Overview

The Service Cutter consists of the following components:

  • Editor - a web application, the graphical user interface of the Service Cutter (based on JHipster).
  • Engine - the RESTful HTTP API offering the core functionality of the service cutter (based on Spring Boot and Jersey)
  • Samples - contains three sample systems that can be analyzed with the Service Cutter.
    • A tiny booking system with three entities.
    • The domain model of the DDD sample application "Cargo Tracker"
    • An imaginary trading system one might find in a bank.
  • CC-Cards - contains the coupling criteria cards as png files.

All source code is released under the terms of the Apache 2.0 license.

Build and Run

Prerequisite: JDK 1.8 and Maven is installed and added to the path.

Then run in a command prompt / shell:

cd Engine
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8090'

After some time you should see the following line:

2015-12-15 20:21:55.811  INFO 2976 --- [           main] c.h.s.EngineServiceAppication            : Started EngineServiceAppication in 9.113 seconds (JVM running for 9.946)

Open http://localhost:8090/engine to verify whether the engine is running correctly. You should see:

{"description":"Engine is up and running."}

Now we need to install the JHipster development dependencies:

  1. Install Node.js from the Node.js; tested with LTS website.
  2. Install Yeoman: npm install -g yo
  3. Install Bower: npm install -g bower
  4. Install Grunt: npm install -g grunt-cli

And in a second command prompt / shell:

cd Editor
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8080'

Now you should be able to access the Service Cutter using the following URL: http://localhost:8080

The editor by default expects the engine to be accessible under http://localhost:8090. If not, please add the following JVM parameters to the editor:

  • application.links.engine.host=enginehost
  • application.links.engine.port=1234

Development

We recommend using Grunt and Eclipse (including Spring Tool Suite) for development.

Information on how to import a JHipster project into Eclipse can be found in the JHipster documentation.

Deployment

You have two options to run the Service Cutter:

  • Use the embedded Tomcat provided by Spring Boot.
  • Deploy the .war file into a Java application server.

The required setup and dependencies are demonstrated in the provided Docker configuration.

Docker

All components can be started using docker. The Docker images can be built using Maven and a docker-compose configuration (docker-compose.yml) is provided in the root folder of this repository. Please remember to change the database user passwords in a productive environment!

About

A Structured Way to Service Decomposition

License:Apache License 2.0


Languages

Language:Java 60.6%Language:JavaScript 21.7%Language:HTML 17.1%Language:CSS 0.6%