Refine
Document Type
- Master's Thesis (4) (remove)
Language
- German (4)
Has Fulltext
- yes (4)
Is part of the Bibliography
- no (4)
Keywords
- Evolutionärer Algorithmus (2)
- Genetische Programmierung (2)
- CEP (1)
- Complex Event Processing (1)
- Datenanalyse (1)
- Echtzeitverarbeitung (1)
- Ereignisgesteuerte Programmierung (1)
- Genetic Programming (1)
- Greedy-Algorithmus (1)
- Klassifikation (1)
Institute
Das Bedürfnis Daten in Echtzeit zu analysieren und auf Ereignisse zu reagieren, ist innerhalb aller Branchen in den letzten Jahren stark gestiegen. Als die Analysetechnik für Echtzeitdatenströme hat sich das Complex Event Processing (CEP) durchgesetzt. Mithilfe von Regeln lassen sich kausale, temporale und räumliche Zusammenhänge von Ereignissen definieren und durch eine CEP-Engine evaluieren. Die Konstruktion von Regeln hat sich dabei als einschränkende Faktor von CEP herausgestellt. Greedy4Cep ist ein algorithmischer Ansatz zur automatisierten Erstellung von CEP-Regeln anhand eines historischen Datenstromes.
Insbesondere aufgrund der Zugehörigkeit zum sehr aktuellen und viel betrachteten Thema Machine Learning ist die genetische Programmierung mit ihren vielseitigen Anwendungsmöglichkeiten ein sehr interessantes Gebiet. Wie in allen Forschungsschwerpunkten gibt es auch hier viele Ansätze die standardmäßige Vorgehensweise weiter zu verbessern – einer dieser Ansätze ist die Verwendung von Subroutinen. Diese könnten in diesem Kontext auch als Methoden, Funktionen oder ähnliches bezeichnet werden und bedeuten, dass vom Algorithmus neben dem eigentlichen Programm auch wiederverwendbare Folgen von Anweisungen entwickelt werden, die über einen Bezeichner an beliebigen Stellen verwendet werden können. Hierfür gibt es bereits diverse Konzepte, die in Tests sehr gute Ergebnisse erzielt haben und eine Verbesserung gegenüber der standardmäßigen genetischen Programmierung ohne Subroutinen erreichen konnten. Diese Tests fanden allerdings immer in sehr spezialisierten Testumgebungen statt. Besonders interessant sind allerdings solche Systeme zur genetischen Programmierung, die (theoretisch) beliebige Probleme lösen kann, da sie für eine Vielzahl von Problemstellungen verwendet werden können.
Das Ziel dieser Arbeit ist es, zu untersuchen, ob und inwiefern die Verwendung von Subroutinen auch in einem solchen allgemeinen System zur genetischen Programmierung, das theoretisch dazu in der Lage ist, beliebige Probleme zu lösen, möglich und sinnvoll ist.
Zusammen mit der Microservice-Bewegung werden immer häufiger synchrone Request-Response-Schnittstellen nach dem REST-Paradigma entwickelt, um Service-Landschaften zu integrieren. Die Einfachheit des Paradigmas verleitet viele Organisationen, nahezu die komplette Interprozesskommunikation ihres Ökosystems über diese Art von Schnittstelle abzuwickeln – nicht ohne Konsequenzen.
Diese Arbeit entwickelt Ansätze, wie die Integrationsprobleme, die bei übermäßiger Verwendung von REST entstehen, mithilfe von Event-Driven Architecture gelöst werden können, ohne den Status quo dieser Organisationen außer Acht zu lassen. Dafür werden der gegenwärtige Zustand der Integrationsmuster und eingesetzten Infrastruktur von Event-Driven Architecture kritisiert und Kriterien erarbeitet, die pragmatische und zugängliche Integrationsansätze erfüllen müssen. Um die Einführungskosten gering zu halten, wird eine Middleware entwickelt, die in bestehende REST-Schnittstellen eingesetzt werden kann und auf Basis der API-Aufrufe Events generiert. Darauf aufbauend werden vier Integrationsmuster entwickelt, die eine schrittweise Transformation zu Event-Driven Microservices ermöglichen. Um die Zugänglichkeit der Eventing-Infrastruktur zu erhöhen, wird außerdem wird die Standardisierung der Event-Struktur durch die CloudEvents-Spezifikation vorgeschlagen. Um die Zugänglichkeit weiter zu erhöhen, erfolgt die Kommunikation der Services nicht direkt mit dem Event-Broker, sondern über Proxies, die die Events per HTTP annehmen oder ausspielen. Um die Transparenz über den Datenfluss im System zu wahren, werden alle Produzenten und Konsumenten werden mitsamt ihrer Events durch den Beschreibungsstandard AsyncAPI dokumentiert.
Nach einer Validierung dieser Ansätze mithilfe eines Prototyps kommt diese Arbeit zu der Erkenntnis, dass der Einsatz der entwickelten Middleware für alle Organisationen sinnvoll ist, die bereits viele REST-Schnittstellen im Einsatz haben. Die Standardisierung der Event-Struktur und des Event-Protokolls mittels CloudEvents und HTTP-Proxies sowie die Dokumentation durch AsyncAPI empfiehlt sich auch unabhängig des Status quo für alle Organisationen, die Event-Driven Microservices entwickeln möchten.