Database Schema

Overview

Initial graph based on Database Technology (Relational/Graph).

digraph G {
    concentrate=true;

    {
        service [label=<<U>Service</U>>]

        serviceInterface [label=<<U>Service Interface</U>>]

        application [label=<<U>Application</U>, <U>Service</U>>]

        deployInfo [label="Deploy Information", shape=plaintext]
        vizData [label="Visualization Data", shape=plaintext]
    }

    service -> service [label="depends on; predecessor", constraint=false]

    service -> serviceInterface [label=has, headlabel="1..n", taillabel=1]

    application -> {deployInfo, vizData} [dir=none, constraint=false]

    application -> service [label=includes, headlabel="1..n", taillabel=1]

}

Service

Attributes describing a MICO Service are mainly taken from Pivio.

Attribute Description Example
ID* UUID (Unique for every version) 7e7e1828-e845-11e8-9f32-f2801f1b9fd1
shortName* Unique short name (java Package Style) de.uni-stuttgart.mico.hello-world
name* Display name Hello World
description* Human readable description of the service A simple Hello World Service.
version* Semantic version version number, commit hash or revision 1.0.2, 1.2.0a, d99ada433bb1d69571...
vcsroot Url to vcs root (e.g. GitHub link with branch) https://github.com/UST-MICO/mico
dockerfile Path to dockerfile relative to vcsroot mico-core/Dockerfile
contact Human readable contact information. Max Musterman, musterman@muster.de
tags To be defined  
links To be defined  
owner Human readable team information. Max Musterman, Company Y
externalService A boolean which indicates if a service is external true

DependsOn

DependsOn is an edge between two services. A service depends on another service. Additionally, it provides the attribute version. This attribute allows to implement an auto-update feature. It contains a version string in the semantic version format. This allows to determine the most recent compatible service.

Service Interface

Attribute Description Example
serviceInterfaceName* Unique short name suffix for shortName of service. rest
description* Human readable description This is a service interface
port* This is a port number or a variable name 1024
protocol* The name of the protocol which is supported by this interface gRPC, SQL, CYPHER
transport_protocol* This protocol is used to transport the previous protocol http, mqtt
public_dns* To be defined  

Application

Because an application is a service itself it also includes all attributes of a service even when not explicitly stated in the table.

Attribute Description Example
ID* UUID (Unique for every version) 7e7e1828-e845-11e8-9f32-f2801f1b9fd1

Possible Nodes and Relationships

_images/MICO-NodesAndRelationships.png