Zum Hauptinhalt springen
FHEDEEN
Infomaterial anfordern

Bachelor Flyer Master Flyer

Kontakt

Sekretariat Angewandte Informatik
Tel.: 0361 6700-642
Fax: 0361 6700-643 sekretariat-ai@fh-erfurt.de

Besucheranschrift:

Fachhochschule Erfurt
Fakultät Gebäudetechnik und Informatik
Fachrichtung Angewandte Informatik
Altonaer Straße 25
99085 Erfurt

Conception and design of an adaptive, flexible, dynamically extensible and polyglot plugin framework based on an event-driven and non-blocking message bus.

Michael Rhöse

MA-Arbeit

1. Gutachter:   Prof. Dr.-Ing. Steffen Avemarg

2. Gutachter:   Dr. rer. nat. Gabor Meißner

Abstract

Today, software development becomes a more and more complex process. The development of new software, features or patches in a short time period is required to increase user experience and business values. New technologies, methods and principles fit this need and make fast development of new software possible.
One of the most discussed topics are microservices. This highly modular concept of distributed systems supports independent publication and maintenance of individual parts. Additionally, microservices provide a better scalability at high utilization. Compared to monolithic applications the complexity and maintenance costs increased considerably due to the increasing size of a microservice system. In return, operation and management of monolithic software are more cost-effective, but scalability and maintenance are more expensive.
These points lead to the main question of this master thesis for the concept and design of a framework that combine the advantages of both system architectures. In addition, it should be possible to turn an application into a pure microservice system when necessary.
For this purpose, established frameworks are compared to show that existing implementation do not provide the necessary characteristics. Moreover, common properties are identified which are incorporated into the concept.
The architectural patterns implemented into a prototype – event-driven, microkernel and microservices architecture – as well as the inherited properties and mathematical concepts are defined and explained. Finally, details of the implementation are explained and the feasibility is checked with a simple test case by a dynamically extensible REST-API.
It becomes apparent that the realization of a dynamically extensible, flexible plugin framework is possible by the usage of established architectural concepts and additional libraries.

Kurzfassung

Das Erstellen von Software entwickelt sich zunehmend zu einem immer komplexer werdenden Prozess. Das Veröffentlichen neuer Software, Funktionen und das Beseitigen von Fehlern in kurzen Zeitabständen ist notwendig, um die Bedienbarkeit und den Geschäftswert zu erhöhen. Neue Technologien, Methoden und Prinzipien der Softwareerstellung ermöglichen diese Geschwindigkeit.
Eines der aktuellsten Themen sind Microservices. Dieses stark modulare Konzept verteilter Systeme unterstützt die unabhängige Veröffentlichung und Wartung einzelner Teile. Zudem ermöglicht es eine bessere Skalierbarkeit bei hoher Auslastung. Im Vergleich zu monolithischen Anwendungen steigen jedoch die Komplexität und der Aufwand der Verwaltung mit zunehmender Größe des Systems erheblich. Im Gegenzug ist der Betrieb und die Verwaltung monolithischer Software kostengünstiger, die Skalierbarkeit und Wartung jedoch aufwendiger.
Dies führt zu der in dieser Masterarbeit betrachteten Frage nach der Gestaltung und Konzeption eines Frameworks, welches die Vorteile beider Architekturen vereint. Zudem soll es möglich sein, dass System bei Bedarf gänzlich auf Microservices umzustellen.
Zu diesem Zweck werden existierende Frameworks verschiedener Programmiersprachen verglichen um zu zeigen, dass vorhandene Implementierungen die geforderten Charakteristiken nicht oder nicht vollständig aufweisen. Zudem werden allgemeingültige Eigenschaften identifiziert, welche in das erstellte Konzept einfließen.
Die in einem Prototyp umgesetzten architektonischen Muster – Event-Driven, Microkernel und Microservices Architecture – sowie die übernommenen Eigenschaften und mathematischen Konzepte werden definiert und erläutert. Abschließend sind Details zur Implementierung gegeben und die Machbarkeit anhand eines einfachen Testfalls mittels dynamisch erweiterbarer REST-Schnittstelle überprüft.
Es zeigt sich, dass durch etablierter architektonischer Konzepte und unter Verwendung von zusätzlichen Bibliotheken ein dynamisch erweiterbares, flexibles Plugin-Framework realisiert werden kann.