Here are some of the engineering and research projects I am currently working on:
EMMA: Elastic MQTT MiddlewAre
EMMA is a distributed MQTT middlerware that connects MQTT Clients to Brokers via Gateways to enable mobility and low-latency messaging via edge resources. It dynamically reconfigures the broker–client network based on their proximity to optimize latency. It is an effort to realize the vision of Osmotic Message-Oriented Middleware.
EMMA is written in Java using NIO and Netty. Brokers implement the MQTT protocol. EMMA also implements a control and monitoring protocol that allow a controller component to orchestrate the network. Brokers and Gateways have few dependencies and can be complied AOT using, for example, Graal Native to allow running it on constrained devices without a JVM. The controller is a Spring Boot application that is intended to run in the Cloud on a VM. It uses Redis to distribute routing tables across brokers.
- Manuel Geier (Concept for transactional migration of subscribers)
- Andreas Bruckner (Overhaul of monitoring and control protocol)
- On-demand provisioning of brokers to available resources
- Optimization of client–broker re-configurations
- Scalable network monitoring protocol and proximity detection
- Full implementation of the MQTT specification
- Fault tolerance and security mechanisms
- Rausch, T., Dustdar, S., & Ranjan, R. (2018). Osmotic Message-Oriented Middleware for the Internet of Things. IEEE Cloud Computing, 5(2), 17–25. [Preprint]
- Rausch, T., Nastic, S., & Dustdar, S. (2018). EMMA: Distributed QoS-Aware MQTT Middleware for Edge Computing Applications. In 2018 IEEE International Conference on Cloud Engineering (IC2E). [Preprint] [Presentation]
- Rausch, T. (2017). Message-oriented Middleware for Edge Computing Applications. In Proceedings of the 18th Doctoral Symposium of the 18th International Middleware Conference (pp. 3–4). [Preprint] [Presentation]
MC2: Mini Compute Cluster
Computational resources distributed at the edge of the network are the fundamental infrastructural component of edge computing. The operational scale of edge computing introduces new challenges for building and operating suitable computation platforms. Many application scenarios require edge computing resources to provide reliable response times while operating in dynamic and resource-constrained environments.
The MC2 is a prototype of a portable energy-aware, cluster-based edge computer that aims to address these challenges. It is portable because it is compact in size, and consumes energy at a scale that could be served by medium sized batteries. It is energy-aware because it provides a power-management runtime to access energy consumption data in real-time, and control the power state of its nodes. Finally, it is cluster-based because it comprises multiple physical nodes to provide reliable and scalable computing.
The project comprises several components used to operate and interact with the system, and define and execute experiments.
- Symmetry: Cluster management & system telemetry monitoring
- Workload Sandbox: Experimentation and analytics framework
- Hangar: Environment management tooling
- Valentin Bauer (Node environment management)
- Alexander Knoll (Hardware acquisition and setup)
- Jacob Palecek (First version of power monitoring)
- Philipp Raith (Improvements to frontend for monitoring and interactive experiments)
- Silvio Vasiljevic (Service management and monitoring)
- Dynamic control of node power state
- Simulation framework for energy-aware scheduling algorithms
- Optimization model for energy consumption
- Rausch, T., Raith, P., Pillai, P., & Dustdar, S. (2019). Demo: A System for Operating Energy-Aware Cloudlets. In 2019 IEEE/ACM Symposium on Edge Computing (SEC’19). IEEE. [Preprint]
- Rausch, T., Avasalcai, C., & Dustdar, S. (2018). Portable Energy-Aware Cluster-Based Edge Computers. In 2018 IEEE/ACM Symposium on Edge Computing (SEC’18). [Preprint] [Presentation]
CPS/IoT Ecosystem Cloud
A central part of the CPS/IoT Ecosystem architecture is a cloud that connects the living IoT labs. For the cloud infrastructure, we are building a small-scale OpenStack cluster at one of the TU.it data centers.
These are some projects I have been working on in the past.
CInsight: Predictive Analytics for Continuous Integration Workflows
Continuous Integration is a widespread practice, and while CI has evidently improved aspects of the software development process, errors during CI builds pose a threat to development efficiency. As an increasing amount of time goes into fixing such errors, failing builds can significantly impair the development process and become very costly By identifying characteristics of development practices that cause build failures, we can predict preliminary results for an integration. This helps developers react to possible problems even before a build is initiated, thereby saving time and resources. Also, a predictive analytics framework for CI builds could potentially be used for optimized operations of CI platforms, such as Travis or Bamboo.
The CInsight framework provides methods and tools to analyze CI build failures, link the code changes that triggered them, and use machine learning to build models for predicting CI build failures.
- Java OSS Travis-CI Build Failure Dataset
- Travis4J - A Travis-CI binding used to crawl Travis data.
- Jarvis - The CInsight framework (codenamed JARVIS)
Rausch, T., Hummer, W., Leitner, P., & Schulte, S. (2017). An Empirical Analysis of Build Failures in the Continuous Integration Workflows of Java-based Open-source Software. In Proceedings of the 14th International Conference on Mining Software Repositories. [Preprint] [Presentation]