Concurrent Programming with Actors and Microservices

Master thesis (“Diplomarbeit”) · TU Wien

Author
Maximilian Irro
Submitted
September 30, 2018

About this thesis

Cover of the thesis

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's curriculum Software Engineering & Internet Computing at TU Wien. The supervisor was Franz Puntigam from the Institute for Information Systems Engineering, Compilers and Languages Group.

The submitted PDF and an equivalent HTML edition are available under Take it with you in the sidebar (or the card above on mobile). The linked GitHub repository contains all materials related to this work — documents, implementation source code, measurement data and more — and the thesis is permanently archived in the TU Wien Repositum.

Abstract

Common problems require applications to manage multiple concerns simultaneously. A convenient approach is the concept of concurrent programming. 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 work 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.

Keywords: concurrent programming, actors, microservices  ·  doi:10.34726/hss.2018.56763

How to cite

If you want to cite this 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}
}