dipl

🎓 "Concurrent Programming with Actors and Microservices", 2018, Master's Thesis, TU Wien. This repository contains all developed applications, the evaluation tools with the scientific raw data, and the source of the thesis document.

https://github.com/mpgirro/dipl

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.7%) to scientific vocabulary

Keywords

actor-model akka concurrent-programming madoko master-thesis microservices-architecture spring-boot spring-cloud tu-wien
Last synced: 6 months ago · JSON representation ·

Repository

🎓 "Concurrent Programming with Actors and Microservices", 2018, Master's Thesis, TU Wien. This repository contains all developed applications, the evaluation tools with the scientific raw data, and the source of the thesis document.

Basic Info
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 2
  • Open Issues: 1
  • Releases: 0
Topics
actor-model akka concurrent-programming madoko master-thesis microservices-architecture spring-boot spring-cloud tu-wien
Created almost 9 years ago · Last pushed over 4 years ago
Metadata Files
Readme Citation

README.md

Concurrent Programming with
Actors and Microservices

I am Maximilian Irro and this is my master thesis ("Diplomarbeit") that I worked on in 2017/2018 as a requirement for the completion of my master curriculum Software Engineering & Internet Computing at TU Wien. The supervisor was Franz Puntigam from the Institute for Information Systems Engineering, Compilers and Languages Group. This repository contains all materials related to my master thesis project (documents and implementation source codes, measurement data, etc.).

Table of Contents

Abstract

Common problems require applications to manage multiple concerns simultaneously. A convenient approach is the concept of concurrent programming. In this thesis, we investigate two different models for introducing concurrent computational units into software architectures. One approach is the actor model that defines theoretically well-known constructs supporting concurrent, parallel and distributed execution in a transparent way. The other approach is an architectural style based on microservices, a recent trend that gained academic and industrial popularity. Microservices facilitate many principles of the old Unix philosophy by composing complex functionality through small, independent, highly cohesive and loosely coupled executables. These programs interoperate via lightweight, technology-heterogeneous messaging channels. The deployment modality of microservices conceives concurrent execution through the operating system scheduler. This thesis compares the programming of concurrent computation through actors and microservices with respect to a non-trivial concurrent system scenario. We argue that both approaches share many conceptual similarities and show few but significant differences. Both models have the same expressive capabilities regarding concurrent programming concerns like communication and scalability, but are subject to different trade-offs. We provide implementations of the system scenario based on actor and microservice architectures. Benchmark results of these implementations suggest that actors provide better system efficiency through a smaller codebase. Microservice architectures consume significantly more system resources and suffer especially from purely synchronous communication mechanisms.

Repository Structure

This repository is structured as follows:

  • 📂 /docs/ – document source files (thesis, poster, slides, graphics, etc.)
  • 📂 /eval/ – evaluation material (measurement data, R scripts)
  • 📂 /src/ – program artifact source codes (actor and microservice architecture, domain library, web interface)

The subdirectories have separate README.md files with detailed information.

Thesis Document

This master project originated a thesis document. It is available in the following file versions:

  • 📖 PDF (optimized for printing)
  • 🌐 HTML (optimized for screens)

If you want to cite the original thesis, please use the following BibTeX entry:

@mastersthesis{Irro18,
  author    = {Maximilian Irro},
  title     = {Concurrent Programming with Actors and Microservices},
  school    = {TU Wien},
  year      = {2018},
  keywords  = {concurrent programming, actors, microservices},
  timestamp = {20180930},
  url       = {https://repositum.tuwien.ac.at/urn:nbn:at:at-ubtuw:1-115820}
}

For a lists errors found in the submitted version of the thesis, see the errata file.

Implementations

This thesis uses a non-trivial system scenario for evaluating the programming of concurrency with actors and microservices. The scenario is a podcast search engine called Echo. Several implementation artifacts for Echo were produced in the course of this project. The four main parts are:

Core Library

Java version Lucene version

📂 /src/echo-core/

A library for all domain-specific functionality.

Actor Architecture

Scala version Akka version

📂 /src/echo-actors/

An implementation of Echo's backend based on an architecture that uses the actor model. The programming language is Scala. The actor library is Akka. This system implements the whole search engine within a single executable artifact (monolith).

Microservice Architecture

Java version Spring Boot version Spring Cloud version

📂 /src/echo-microservices/

An implementation of Echo's backend based on a microservice architecture. This system is composed of several executable artifacts (the microservices). These distinct programs communicate via network mechanism, either REST or RabbitMQ (an AMQP-compatible messaging system). All microservices build on Spring Boot as the application foundation and various components of Spring Cloud.

The microservice applications are:

Web UI

Node version Angular version

📂 /src/echo-web/

The web-frontend for the Echo search engine. This web app builds on Angular.

WebApp Screenshot

Evaluation

Indexing subsystem benchmark results

The indexing phase facilitates asynchronous communication. The efficiency benchmark results show that the execution modality of actors is more efficient. Microservices have a higher runtime over- head, since they are separate system processes.

Retrieval subsystem benchmark results

The time constraints of the retrieval phase favours synchronous interaction. Actors use a request/asynchronous response style (Akka's ask message dispatch). This semi-synchronous strategy shows better efficiency than the strictly synchronous communication via REST in the microservice architecture.

Owner

  • Name: Maximilian Irro
  • Login: mpgirro
  • Kind: user
  • Location: Vienna, Austria (EU)
  • Company: @viesure

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite the thesis from preferred-citation.
authors:
  - family-names: Irro
    given-names: Maximilian
title: Concurrent Programming with Actors and Microservices
date-released: 2018-09-30
version: 1.0.0
repository-code: https://github.com/mpgirro/dipl
institution: TU Wien
preferred-citation:
  authors:
    - family-names: Irro
      given-names: Maximilian
  title: Concurrent Programming with Actors and Microservices
  year: 2018
  thesis-type: Master's thesis
  type: thesis
  keywords:
    - concurrent programming
    - actors
    - microservices
  languages: 
    - en
  url: https://repositum.tuwien.at/handle/20.500.12708/5461

GitHub Events

Total
Last Year

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,566
  • Total Committers: 1
  • Avg Commits per committer: 1,566.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Maximilian Irro m****x@i****t 1,566
Committer Domains (Top 20 + Academic)
irro.at: 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 24
  • Total pull requests: 0
  • Average time to close issues: 7 months
  • Average time to close pull requests: N/A
  • Total issue authors: 2
  • Total pull request authors: 0
  • Average comments per issue: 0.25
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mpgirro (23)
  • fizz12344321 (1)
Pull Request Authors
Top Labels
Issue Labels
actors (10) core (9) web (3) microservice (1)
Pull Request Labels

Dependencies

src/echo-actors/Dockerfile docker
  • openjdk 8-jdk build
src/echo-microservices/app-catalog/Dockerfile docker
  • openjdk 8-jdk-alpine build
src/echo-microservices/app-crawler/Dockerfile docker
  • openjdk 8-jdk-alpine build
src/echo-microservices/app-gateway/Dockerfile docker
  • openjdk 8-jdk-alpine build
src/echo-microservices/app-index/Dockerfile docker
  • openjdk 8-jdk-alpine build
src/echo-microservices/app-parser/Dockerfile docker
  • openjdk 8-jdk-alpine build
src/echo-microservices/app-registry/Dockerfile docker
  • openjdk 8-jdk-alpine build
src/echo-microservices/app-searcher/Dockerfile docker
  • openjdk 8-jdk-alpine build
src/echo-microservices/app-updater/Dockerfile docker
  • openjdk 8-jdk-alpine build
src/echo-web/Dockerfile docker
  • nginx alpine build
src/echo-actors/build.gradle maven
  • at.irro.dipl:echo-core $echo_core_version compile
  • ch.qos.logback:logback-classic ${logback_version} compile
  • com.devskiller.friendly-id:friendly-id 1.0.0 compile
  • com.google.guava:guava $guava_version compile
  • org.hashids:hashids 1.0.3 compile
  • org.jsoup:jsoup 1.11.2 compile
  • org.slf4j:jcl-over-slf4j 1.8.0-beta0 compile
  • com.h2database:h2 1.4.196 testCompile
src/echo-core/build.gradle maven
  • ch.qos.logback:logback-classic ${logback_version} compile
  • ch.qos.logback:logback-core ${logback_version} compile
  • com.google.code.gson:gson 2.8.2 compile
  • com.google.guava:guava ${guava_version} compile
  • com.rometools:rome 1.9.0 compile
  • com.rometools:rome-modules 1.9.0 compile
  • org.apache.lucene:lucene-analyzers-common ${lucene_version} compile
  • org.apache.lucene:lucene-core ${lucene_version} compile
  • org.apache.lucene:lucene-queryparser ${lucene_version} compile
  • org.hashids:hashids 1.0.3 compile
  • org.jsoup:jsoup 1.11.2 compile
  • org.mapstruct:mapstruct-jdk8 1.2.0.Final compile
  • org.slf4j:slf4j-api ${slf4j_version} compile
  • org.slf4j:slf4j-simple $slf4j_version compile
  • junit:junit 4.12 testCompile
  • org.junit.platform:junit-platform-runner ${junit_platform_version} testCompile
  • org.testng:testng 6.10 testCompile
  • org.junit.jupiter:junit-jupiter-api ${junit_jupiter_version} testImplementation
  • org.junit.vintage:junit-vintage-engine 4.12.0 testRuntime
  • org.junit.jupiter:junit-jupiter-engine ${junit_jupiter_version} testRuntimeOnly
src/echo-microservices/app-catalog/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • com.fasterxml.jackson.core:jackson-annotations * compile
  • com.fasterxml.jackson.core:jackson-databind * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-guava * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hppc * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jdk8 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-json-org * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 * compile
  • com.fasterxml.jackson.module:jackson-module-afterburner * compile
  • com.google.guava:guava ${guava_version} compile
  • com.mattbertolini:liquibase-slf4j ${liquibase_slf4j_version} compile
  • com.ryantenney.metrics:metrics-spring * compile
  • io.dropwizard.metrics:metrics-core * compile
  • io.dropwizard.metrics:metrics-jcache * compile
  • io.dropwizard.metrics:metrics-json * compile
  • io.dropwizard.metrics:metrics-jvm * compile
  • io.dropwizard.metrics:metrics-servlet * compile
  • io.dropwizard.metrics:metrics-servlets * compile
  • io.springfox:springfox-bean-validators * compile
  • io.springfox:springfox-swagger2 * compile
  • javax.cache:cache-api * compile
  • javax.transaction:javax.transaction-api * compile
  • org.ehcache:ehcache * compile
  • org.hibernate:hibernate-core * compile
  • org.hibernate:hibernate-entitymanager * compile
  • org.hibernate:hibernate-envers * compile
  • org.hibernate:hibernate-jcache * compile
  • org.hibernate:hibernate-validator * compile
  • org.liquibase:liquibase-core ${liquibase_version} compile
  • org.postgresql:postgresql * compile
  • org.springframework.amqp:spring-rabbit * compile
  • org.springframework.boot:spring-boot-actuator * compile
  • org.springframework.boot:spring-boot-autoconfigure * compile
  • org.springframework.boot:spring-boot-loader-tools * compile
  • org.springframework.boot:spring-boot-starter-aop * compile
  • org.springframework.boot:spring-boot-starter-cache * compile
  • org.springframework.boot:spring-boot-starter-logging * compile
  • org.springframework.boot:spring-boot-starter-security * compile
  • org.springframework.boot:spring-boot-starter-undertow * compile
  • org.springframework.boot:spring-boot-starter-web * compile
  • org.springframework.cloud:spring-cloud-spring-service-connector * compile
  • org.springframework.cloud:spring-cloud-starter-consul-all 1.3.3.RELEASE compile
  • org.springframework.retry:spring-retry * compile
  • org.springframework.security:spring-security-config * compile
  • org.springframework.security:spring-security-data * compile
  • org.springframework.security:spring-security-web * compile
  • org.springframework:spring-context-support * compile
  • com.jayway.jsonpath:json-path * testCompile
  • junit:junit * testCompile
  • org.assertj:assertj-core * testCompile
  • org.hamcrest:hamcrest-library * testCompile
  • org.mockito:mockito-core * testCompile
  • org.springframework.boot:spring-boot-starter-test * testCompile
  • org.springframework.boot:spring-boot-test * testCompile
  • org.springframework.security:spring-security-test * testCompile
src/echo-microservices/app-cli/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • ch.qos.logback:logback-classic ${logback_version} compile
  • com.google.guava:guava ${guava_version} compile
src/echo-microservices/app-crawler/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • com.fasterxml.jackson.core:jackson-annotations * compile
  • com.fasterxml.jackson.core:jackson-databind * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-guava * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hppc * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jdk8 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-json-org * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 * compile
  • com.fasterxml.jackson.module:jackson-module-afterburner * compile
  • com.google.guava:guava ${guava_version} compile
  • io.dropwizard.metrics:metrics-core * compile
  • io.dropwizard.metrics:metrics-json * compile
  • io.dropwizard.metrics:metrics-jvm * compile
  • io.dropwizard.metrics:metrics-servlet * compile
  • io.dropwizard.metrics:metrics-servlets * compile
  • javax.cache:cache-api * compile
  • javax.transaction:javax.transaction-api * compile
  • org.ehcache:ehcache * compile
  • org.hibernate:hibernate-entitymanager * compile
  • org.hibernate:hibernate-envers * compile
  • org.hibernate:hibernate-validator * compile
  • org.springframework.amqp:spring-rabbit * compile
  • org.springframework.boot:spring-boot-actuator * compile
  • org.springframework.boot:spring-boot-autoconfigure * compile
  • org.springframework.boot:spring-boot-loader-tools * compile
  • org.springframework.boot:spring-boot-starter-aop * compile
  • org.springframework.boot:spring-boot-starter-cache * compile
  • org.springframework.boot:spring-boot-starter-logging * compile
  • org.springframework.boot:spring-boot-starter-security * compile
  • org.springframework.boot:spring-boot-starter-undertow * compile
  • org.springframework.boot:spring-boot-starter-web * compile
  • org.springframework.cloud:spring-cloud-spring-service-connector * compile
  • org.springframework.retry:spring-retry * compile
  • org.springframework.security:spring-security-config * compile
  • org.springframework.security:spring-security-data * compile
  • org.springframework.security:spring-security-web * compile
  • org.springframework:spring-context-support * compile
  • com.jayway.jsonpath:json-path * testCompile
  • junit:junit * testCompile
  • org.assertj:assertj-core * testCompile
  • org.hamcrest:hamcrest-library * testCompile
  • org.mockito:mockito-core * testCompile
  • org.springframework.boot:spring-boot-starter-test * testCompile
  • org.springframework.boot:spring-boot-test * testCompile
  • org.springframework.security:spring-security-test * testCompile
src/echo-microservices/app-gateway/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • com.fasterxml.jackson.core:jackson-annotations * compile
  • com.fasterxml.jackson.core:jackson-databind * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-guava * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hppc * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jdk8 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-json-org * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 * compile
  • com.fasterxml.jackson.module:jackson-module-afterburner * compile
  • com.google.guava:guava ${guava_version} compile
  • io.dropwizard.metrics:metrics-core * compile
  • io.dropwizard.metrics:metrics-json * compile
  • io.dropwizard.metrics:metrics-jvm * compile
  • io.dropwizard.metrics:metrics-servlet * compile
  • io.dropwizard.metrics:metrics-servlets * compile
  • javax.cache:cache-api * compile
  • javax.transaction:javax.transaction-api * compile
  • org.ehcache:ehcache * compile
  • org.hibernate:hibernate-entitymanager * compile
  • org.hibernate:hibernate-envers * compile
  • org.hibernate:hibernate-validator * compile
  • org.springframework.boot:spring-boot-actuator * compile
  • org.springframework.boot:spring-boot-autoconfigure * compile
  • org.springframework.boot:spring-boot-loader-tools * compile
  • org.springframework.boot:spring-boot-starter-aop * compile
  • org.springframework.boot:spring-boot-starter-cache * compile
  • org.springframework.boot:spring-boot-starter-logging * compile
  • org.springframework.boot:spring-boot-starter-security * compile
  • org.springframework.boot:spring-boot-starter-undertow * compile
  • org.springframework.boot:spring-boot-starter-web * compile
  • org.springframework.cloud:spring-cloud-spring-service-connector * compile
  • org.springframework.cloud:spring-cloud-starter-consul-all 1.3.3.RELEASE compile
  • org.springframework.retry:spring-retry * compile
  • org.springframework.security:spring-security-config * compile
  • org.springframework.security:spring-security-data * compile
  • org.springframework.security:spring-security-web * compile
  • org.springframework:spring-context-support * compile
  • com.jayway.jsonpath:json-path * testCompile
  • junit:junit * testCompile
  • org.assertj:assertj-core * testCompile
  • org.hamcrest:hamcrest-library * testCompile
  • org.mockito:mockito-core * testCompile
  • org.springframework.boot:spring-boot-starter-test * testCompile
  • org.springframework.boot:spring-boot-test * testCompile
  • org.springframework.security:spring-security-test * testCompile
src/echo-microservices/app-index/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • ch.qos.logback:logback-classic ${logback_version} compile
  • com.fasterxml.jackson.core:jackson-annotations * compile
  • com.fasterxml.jackson.core:jackson-databind * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-guava * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hppc * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jdk8 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-json-org * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 * compile
  • com.fasterxml.jackson.module:jackson-module-afterburner * compile
  • com.google.guava:guava ${guava_version} compile
  • com.ryantenney.metrics:metrics-spring * compile
  • io.dropwizard.metrics:metrics-core * compile
  • io.dropwizard.metrics:metrics-jcache * compile
  • io.dropwizard.metrics:metrics-json * compile
  • io.dropwizard.metrics:metrics-jvm * compile
  • io.dropwizard.metrics:metrics-servlet * compile
  • io.dropwizard.metrics:metrics-servlets * compile
  • io.springfox:springfox-bean-validators * compile
  • io.springfox:springfox-swagger2 * compile
  • javax.cache:cache-api * compile
  • javax.transaction:javax.transaction-api * compile
  • org.ehcache:ehcache * compile
  • org.hibernate:hibernate-entitymanager * compile
  • org.hibernate:hibernate-envers * compile
  • org.hibernate:hibernate-jcache * compile
  • org.hibernate:hibernate-validator * compile
  • org.springframework.amqp:spring-rabbit * compile
  • org.springframework.boot:spring-boot-actuator * compile
  • org.springframework.boot:spring-boot-autoconfigure * compile
  • org.springframework.boot:spring-boot-loader-tools * compile
  • org.springframework.boot:spring-boot-starter-aop * compile
  • org.springframework.boot:spring-boot-starter-cache * compile
  • org.springframework.boot:spring-boot-starter-logging * compile
  • org.springframework.boot:spring-boot-starter-security * compile
  • org.springframework.boot:spring-boot-starter-undertow * compile
  • org.springframework.boot:spring-boot-starter-web * compile
  • org.springframework.cloud:spring-cloud-spring-service-connector * compile
  • org.springframework.cloud:spring-cloud-starter-consul-all 1.3.3.RELEASE compile
  • org.springframework.retry:spring-retry * compile
  • org.springframework.security:spring-security-config * compile
  • org.springframework.security:spring-security-data * compile
  • org.springframework.security:spring-security-web * compile
  • org.springframework:spring-context-support * compile
  • com.google.guava:guava 23.0 implementation
  • org.springframework.boot:spring-boot-devtools *
  • com.jayway.jsonpath:json-path * testCompile
  • junit:junit * testCompile
  • org.assertj:assertj-core * testCompile
  • org.hamcrest:hamcrest-library * testCompile
  • org.mockito:mockito-core 2.13.0 testCompile
  • org.mockito:mockito-core * testCompile
  • org.springframework.boot:spring-boot-starter-test * testCompile
  • org.springframework.boot:spring-boot-test * testCompile
  • org.springframework.restdocs:spring-restdocs-mockmvc * testCompile
  • org.springframework.security:spring-security-test * testCompile
  • junit:junit 4.12 testImplementation
src/echo-microservices/app-parser/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • ch.qos.logback:logback-classic ${logback_version} compile
  • com.fasterxml.jackson.core:jackson-annotations * compile
  • com.fasterxml.jackson.core:jackson-databind * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-guava * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hppc * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jdk8 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-json-org * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 * compile
  • com.fasterxml.jackson.module:jackson-module-afterburner * compile
  • com.google.guava:guava ${guava_version} compile
  • com.ryantenney.metrics:metrics-spring * compile
  • io.dropwizard.metrics:metrics-core * compile
  • io.dropwizard.metrics:metrics-jcache * compile
  • io.dropwizard.metrics:metrics-json * compile
  • io.dropwizard.metrics:metrics-jvm * compile
  • io.dropwizard.metrics:metrics-servlet * compile
  • io.dropwizard.metrics:metrics-servlets * compile
  • io.springfox:springfox-bean-validators * compile
  • io.springfox:springfox-swagger2 * compile
  • javax.cache:cache-api * compile
  • javax.transaction:javax.transaction-api * compile
  • org.ehcache:ehcache * compile
  • org.hibernate:hibernate-entitymanager * compile
  • org.hibernate:hibernate-envers * compile
  • org.hibernate:hibernate-jcache * compile
  • org.hibernate:hibernate-validator * compile
  • org.jsoup:jsoup 1.11.2 compile
  • org.springframework.amqp:spring-rabbit * compile
  • org.springframework.boot:spring-boot-actuator * compile
  • org.springframework.boot:spring-boot-autoconfigure * compile
  • org.springframework.boot:spring-boot-loader-tools * compile
  • org.springframework.boot:spring-boot-starter-aop * compile
  • org.springframework.boot:spring-boot-starter-cache * compile
  • org.springframework.boot:spring-boot-starter-logging * compile
  • org.springframework.boot:spring-boot-starter-security * compile
  • org.springframework.boot:spring-boot-starter-undertow * compile
  • org.springframework.boot:spring-boot-starter-web * compile
  • org.springframework.cloud:spring-cloud-spring-service-connector * compile
  • org.springframework.retry:spring-retry * compile
  • org.springframework.security:spring-security-config * compile
  • org.springframework.security:spring-security-data * compile
  • org.springframework.security:spring-security-web * compile
  • org.springframework:spring-context-support * compile
  • com.google.guava:guava 23.0 implementation
  • org.springframework.boot:spring-boot-devtools *
  • com.jayway.jsonpath:json-path * testCompile
  • junit:junit * testCompile
  • org.assertj:assertj-core * testCompile
  • org.hamcrest:hamcrest-library * testCompile
  • org.mockito:mockito-core 2.13.0 testCompile
  • org.mockito:mockito-core * testCompile
  • org.springframework.boot:spring-boot-starter-test * testCompile
  • org.springframework.boot:spring-boot-test * testCompile
  • org.springframework.restdocs:spring-restdocs-mockmvc * testCompile
  • org.springframework.security:spring-security-test * testCompile
  • junit:junit 4.12 testImplementation
src/echo-microservices/app-registry/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • ch.qos.logback:logback-classic ${logback_version} compile
  • com.fasterxml.jackson.core:jackson-annotations * compile
  • com.fasterxml.jackson.core:jackson-databind * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-guava * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hppc * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jdk8 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-json-org * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 * compile
  • com.fasterxml.jackson.module:jackson-module-afterburner * compile
  • com.google.guava:guava ${guava_version} compile
  • com.ryantenney.metrics:metrics-spring * compile
  • io.dropwizard.metrics:metrics-core * compile
  • io.dropwizard.metrics:metrics-jcache * compile
  • io.dropwizard.metrics:metrics-json * compile
  • io.dropwizard.metrics:metrics-jvm * compile
  • io.dropwizard.metrics:metrics-servlet * compile
  • io.dropwizard.metrics:metrics-servlets * compile
  • io.springfox:springfox-bean-validators * compile
  • io.springfox:springfox-swagger2 * compile
  • javax.cache:cache-api * compile
  • javax.transaction:javax.transaction-api * compile
  • org.ehcache:ehcache * compile
  • org.hibernate:hibernate-entitymanager * compile
  • org.hibernate:hibernate-envers * compile
  • org.hibernate:hibernate-jcache * compile
  • org.hibernate:hibernate-validator * compile
  • org.springframework.boot:spring-boot-actuator * compile
  • org.springframework.boot:spring-boot-autoconfigure * compile
  • org.springframework.boot:spring-boot-loader-tools * compile
  • org.springframework.boot:spring-boot-starter-aop * compile
  • org.springframework.boot:spring-boot-starter-cache * compile
  • org.springframework.boot:spring-boot-starter-logging * compile
  • org.springframework.boot:spring-boot-starter-security * compile
  • org.springframework.boot:spring-boot-starter-undertow * compile
  • org.springframework.boot:spring-boot-starter-web * compile
  • org.springframework.cloud:spring-cloud-spring-service-connector * compile
  • org.springframework.cloud:spring-cloud-starter-consul-all 1.3.3.RELEASE compile
  • org.springframework.retry:spring-retry * compile
  • org.springframework.security:spring-security-config * compile
  • org.springframework.security:spring-security-data * compile
  • org.springframework.security:spring-security-web * compile
  • org.springframework:spring-context-support * compile
  • com.google.guava:guava 23.0 implementation
  • org.springframework.boot:spring-boot-devtools *
  • com.jayway.jsonpath:json-path * testCompile
  • junit:junit * testCompile
  • org.assertj:assertj-core * testCompile
  • org.hamcrest:hamcrest-library * testCompile
  • org.mockito:mockito-core 2.13.0 testCompile
  • org.mockito:mockito-core * testCompile
  • org.springframework.boot:spring-boot-starter-test * testCompile
  • org.springframework.boot:spring-boot-test * testCompile
  • org.springframework.restdocs:spring-restdocs-mockmvc * testCompile
  • org.springframework.security:spring-security-test * testCompile
  • junit:junit 4.12 testImplementation
src/echo-microservices/app-searcher/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • ch.qos.logback:logback-classic ${logback_version} compile
  • com.fasterxml.jackson.core:jackson-annotations * compile
  • com.fasterxml.jackson.core:jackson-databind * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-guava * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hppc * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jdk8 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-json-org * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 * compile
  • com.fasterxml.jackson.module:jackson-module-afterburner * compile
  • com.google.guava:guava ${guava_version} compile
  • com.ryantenney.metrics:metrics-spring * compile
  • io.dropwizard.metrics:metrics-core * compile
  • io.dropwizard.metrics:metrics-jcache * compile
  • io.dropwizard.metrics:metrics-json * compile
  • io.dropwizard.metrics:metrics-jvm * compile
  • io.dropwizard.metrics:metrics-servlet * compile
  • io.dropwizard.metrics:metrics-servlets * compile
  • io.springfox:springfox-bean-validators * compile
  • io.springfox:springfox-swagger2 * compile
  • javax.cache:cache-api * compile
  • javax.transaction:javax.transaction-api * compile
  • org.ehcache:ehcache * compile
  • org.hibernate:hibernate-entitymanager * compile
  • org.hibernate:hibernate-envers * compile
  • org.hibernate:hibernate-jcache * compile
  • org.hibernate:hibernate-validator * compile
  • org.springframework.boot:spring-boot-actuator * compile
  • org.springframework.boot:spring-boot-autoconfigure * compile
  • org.springframework.boot:spring-boot-loader-tools * compile
  • org.springframework.boot:spring-boot-starter-aop * compile
  • org.springframework.boot:spring-boot-starter-cache * compile
  • org.springframework.boot:spring-boot-starter-logging * compile
  • org.springframework.boot:spring-boot-starter-security * compile
  • org.springframework.boot:spring-boot-starter-undertow * compile
  • org.springframework.boot:spring-boot-starter-web * compile
  • org.springframework.cloud:spring-cloud-spring-service-connector * compile
  • org.springframework.cloud:spring-cloud-starter-consul-all 1.3.3.RELEASE compile
  • org.springframework.retry:spring-retry * compile
  • org.springframework.security:spring-security-config * compile
  • org.springframework.security:spring-security-data * compile
  • org.springframework.security:spring-security-web * compile
  • org.springframework:spring-context-support * compile
  • com.google.guava:guava 23.0 implementation
  • org.springframework.boot:spring-boot-devtools *
  • com.jayway.jsonpath:json-path * testCompile
  • junit:junit * testCompile
  • org.assertj:assertj-core * testCompile
  • org.hamcrest:hamcrest-library * testCompile
  • org.mockito:mockito-core 2.13.0 testCompile
  • org.mockito:mockito-core * testCompile
  • org.springframework.boot:spring-boot-starter-test * testCompile
  • org.springframework.boot:spring-boot-test * testCompile
  • org.springframework.restdocs:spring-restdocs-mockmvc * testCompile
  • org.springframework.security:spring-security-test * testCompile
  • junit:junit 4.12 testImplementation
src/echo-microservices/app-updater/build.gradle maven
  • at.irro.dipl:echo-core ${echo_core_version} compile
  • ch.qos.logback:logback-classic ${logback_version} compile
  • com.fasterxml.jackson.core:jackson-annotations * compile
  • com.fasterxml.jackson.core:jackson-databind * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-guava * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-hppc * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jdk8 * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-json-org * compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 * compile
  • com.fasterxml.jackson.module:jackson-module-afterburner * compile
  • com.google.guava:guava ${guava_version} compile
  • com.ryantenney.metrics:metrics-spring * compile
  • io.dropwizard.metrics:metrics-core * compile
  • io.dropwizard.metrics:metrics-jcache * compile
  • io.dropwizard.metrics:metrics-json * compile
  • io.dropwizard.metrics:metrics-jvm * compile
  • io.dropwizard.metrics:metrics-servlet * compile
  • io.dropwizard.metrics:metrics-servlets * compile
  • javax.cache:cache-api * compile
  • javax.transaction:javax.transaction-api * compile
  • org.ehcache:ehcache * compile
  • org.hibernate:hibernate-entitymanager * compile
  • org.hibernate:hibernate-envers * compile
  • org.hibernate:hibernate-jcache * compile
  • org.hibernate:hibernate-validator * compile
  • org.springframework.amqp:spring-rabbit * compile
  • org.springframework.boot:spring-boot-actuator * compile
  • org.springframework.boot:spring-boot-autoconfigure * compile
  • org.springframework.boot:spring-boot-loader-tools * compile
  • org.springframework.boot:spring-boot-starter-aop * compile
  • org.springframework.boot:spring-boot-starter-cache * compile
  • org.springframework.boot:spring-boot-starter-logging * compile
  • org.springframework.boot:spring-boot-starter-security * compile
  • org.springframework.boot:spring-boot-starter-undertow * compile
  • org.springframework.boot:spring-boot-starter-web * compile
  • org.springframework.cloud:spring-cloud-spring-service-connector * compile
  • org.springframework.retry:spring-retry * compile
  • org.springframework.security:spring-security-config * compile
  • org.springframework.security:spring-security-data * compile
  • org.springframework.security:spring-security-web * compile
  • org.springframework:spring-context-support * compile
  • com.google.guava:guava 23.0 implementation
  • org.springframework.boot:spring-boot-devtools *
  • org.mockito:mockito-core 2.13.0 testCompile
  • org.springframework.boot:spring-boot-starter-test * testCompile
  • org.springframework.restdocs:spring-restdocs-mockmvc * testCompile
  • junit:junit 4.12 testImplementation
src/echo-web/package-lock.json npm
  • 975 dependencies
src/echo-web/package.json npm
  • @angular/cli 1.6.3 development
  • @angular/compiler-cli ^5.0.0 development
  • @angular/language-service ^5.0.0 development
  • @types/jasmine ~2.5.53 development
  • @types/jasminewd2 ~2.0.2 development
  • @types/node ~6.0.60 development
  • codelyzer ^4.0.1 development
  • jasmine-core ~2.6.2 development
  • jasmine-spec-reporter ~4.1.0 development
  • karma ~1.7.0 development
  • karma-chrome-launcher ~2.1.1 development
  • karma-cli ~1.0.1 development
  • karma-coverage-istanbul-reporter ^1.2.1 development
  • karma-jasmine ~1.1.0 development
  • karma-jasmine-html-reporter ^0.2.2 development
  • protractor ~5.1.2 development
  • ts-node ~3.2.0 development
  • tslint ~5.7.0 development
  • typescript ~2.4.2 development
  • @angular/animations ^5.0.0
  • @angular/common ^5.0.0
  • @angular/compiler ^5.0.0
  • @angular/core ^5.0.0
  • @angular/forms ^5.0.0
  • @angular/http ^5.0.0
  • @angular/platform-browser ^5.0.0
  • @angular/platform-browser-dynamic ^5.0.0
  • @angular/router ^5.0.0
  • angular2-fontawesome ~5.2.0
  • core-js ^2.4.1
  • font-awesome ~4.7.0
  • rxjs ^5.5.2
  • zone.js ^0.8.14