
Institut für Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 D–70569 Stuttgart Fachstudie Eine Analyse von open-source Message-oriented Middlewares hinsichtlich der Integrationsfähigkeit von Enterprise Integration Patterns Timo Gutierrez, Marcel Graf Studiengang: Softwaretechnik Prüfer/in: Prof. Dr. Dr. h. c. Frank Leymann Betreuer/in: Michael Falkenthal, M.Sc. Beginn am: 1. April 2019 Beendet am: 1. Oktober 2019 Abstract Die Integration von modernen Softwaresystem stellt auf Grund von wachsender Komplexität und großen Datenmengen eine Herausforderung dar. Um diesen Herausforderungen zu begegnen wurden von Hohpe und Woolf Enterprise Integration Patterns (EIPs) vorgeschlagen. In diesem Kontext stellt der Integrationsstil Messaging und somit Message-Oriented Middlewares (MOMs) einen wichtigen Bestandteil dar. Sie dienen dem asynchronen und zuverlässigen Austausch von Nachrichten und vereinfachen die Integration verschiedener Plattformen und Programmiersprachen. Diese Arbeit untersucht open-source MOMs hinsichtlich ihrer Integrationsfähigkeit von EIPs. Hierfür werden die EIPs zuerst in fünf Gruppen kategorisiert. So beschreibt eine Gruppe die grundlegenden EIPs, welche integraler Bestandteile einer jeden MOM sind. Weitere EIPs umfassen nicht den Scope einer MOM. Im Rahmen dieser Arbeit werden deshalb die MOMs auf Grundlage der Gruppe weiterführenden EIPs detailliert untersucht. Diese detaillierte Analyse umfasst die drei open-source MOMs Apache ActiveMQ, Apache Kafka und RabbitMQ. Apache ActiveMQ unterstützt die weiterführenden EIPs vollständig und bietet darüber hinaus auch die einfachste Form der Implementierung. RabbitMQ und Kafka unterstützen nur Teilmengen der weiterführenden EIPs. Die Untersuchung bringt hervor, dass die Integration von EIPs in MOMs ein mächtiges Werzeug, jedoch in MOMs nicht weit verbreitet ist. 3 Inhaltsverzeichnis 1 Einleitung 15 1.1 Motivation ..................................... 15 1.2 Message-oriented Middleware ........................... 16 1.3 Enterprise Integration Pattern ........................... 17 1.4 Ziele der Fachstudie ................................ 17 1.5 Architektur des Anwendungsfall ......................... 18 1.6 Gliederung der Fachstudie ............................. 18 2 Recherche 21 2.1 Kriterien für die Recherche ............................ 21 2.2 Vorgehensweise bei der Recherche ........................ 21 2.3 Rechercheergebnis ................................. 22 2.4 Zusammenfassung und Übersicht ......................... 25 3 Referenzszenario 27 3.1 Referenzarchitektur ................................ 27 3.2 Referenzkriterien ................................. 29 4 Ergebnis und detaillierter Vergleich 31 4.1 Auswahl der MOMs ................................ 31 4.2 Integration der EIPs ................................ 32 4.3 Werkzeugunterstützung .............................. 33 4.4 Implementierung der EIPs ............................. 34 4.5 Gegenüberstellung der MOMs ........................... 39 5 Diskussion 41 6 Fazit und Ausblick 43 Literaturverzeichnis 45 5 Abbildungsverzeichnis 1.1 Referenzarchitektur für die Analyse der MOMs .................. 18 3.1 Referenzarchitektur für die Analyse der MOMs .................. 27 4.1 Red Hat CodeReady Studio mit Fuse Tooling ................... 33 4.2 Normalizer Implementierung mit Fuse Tooling .................. 36 7 Tabellenverzeichnis 2.1 Zusammenfasssung der MOMs hinsichtlich Version, Lizenz und EIP Unterstützung 25 3.1 Zusammenfassung der Kriterien für die Bewertung der MOMs .......... 30 4.1 Auswahl der MOMs, die den Kriterien entsprechen ................ 31 4.2 Detaillierte Übersicht der EIP Integration ..................... 39 9 Verzeichnis der Listings 4.1 ActiveMQ Normalizer: Konfiguration des Normalizers .............. 35 4.2 ActiveMQ Normalizer: Konfiguration der Java Bean ................ 35 4.3 ActiveMQ Normalizer: Funktion zur Normalisierung der Temperaturwerte .... 35 4.4 RabbitMQ Message Filter: Empfangen von gefilterten Nachrichten ........ 36 4.5 RabbitMQ Message Filter: Senden von gefilterten Nachrichten .......... 36 4.6 ActiveMQ Message Filter: Konfiguration des Message Filters ........... 37 4.7 ActiveMQ Content Enricher: Konfiguration des Enrichers ............. 37 4.8 ActiveMQ Content Enricher: Konfiguration der Java Bean ............ 37 4.9 ActiveMQ Content Enricher: Funktion um den Ort des Sensors hinzuzufügen .. 37 4.10 ActiveMQ Recipient List: Weiterleiten an eine statische Liste von Empfängern .. 38 4.11 ActiveMQ Content-Based Router: Routing je nach Sensortyp ........... 38 11 Akronyme AMQP Advanced Message Queueing Protocol. 23 API Application Programming Interface. 23 DSL Domain-Specific Language. 32 EE4J Eclipse Enterprise for Java. 24 EIP Enterprise Integration Pattern. 15, 17 IDE Integrierte Entwicklungsumgebung. 33 IoC Inversion of Control. 32 IoT Internet of Things. 18 JSON JavaScript Object Notation. 28 MOM Message-oriented Middleware. 15, 16 MQTT Message Queuing Telemetry Transport. 23 XML Extensible Markup Language. 28 13 1 Einleitung Die zunehmende Komplexität von Software und deren Schnittstellen oder stark wachsende Daten- mengen erfordern Muster (Pattern) um die Integration von Systemen und Daten zu vereinfachen. Ein möglicher Ansatz hierfür ist eine Message-oriented Middleware (MOM) als Integrationsplattform und die Nutzung von Enterprise Integration Patterns (EIPs) um die Integration zu vereinheitlichen. Diese Arbeit behandelt die integrierte Unterstützung von EIPs in MOMs. Das folgenden Kapitel führt in das Thema ein, erläutert die Grundlagen und zeigt die Ziele dieser Arbeit auf. 1.1 Motivation Angetrieben durch den Fortschritt in der Technologie von Datenübertragung und -speicherung, hat in den vergangen Jahren die Datensammlung in den verschiedensten Bereichen enorm zugenommen. Niedrige Kosten für Datenspeicherung und schnelle Übertragungsraten erlauben die Übermittlung und Speicherung riesiger Datenmengen, die von verschiedensten Sensoren aufgezeichnet werden. Mittlerweile sind Industriemaschinen, deren korrekte Funktionsweise durch Sensoren überwacht wird, ebenso auf die Auswertung von Sensordaten angewiesen, wie Fahrassistenzsysteme in Au- tos. Weitere Anwendungsbeispiele sind die Verwendung von Sensoren in Handys und Wearables zur Steigerung der Funktionalität, sowie die Überwachung von Luftqualität, Temperatur usw. in Gebäuden mit Hilfe von Umweltsensorik. Häufig ist eine Auswertung der Sensordaten in kürzester Zeit von hoher Bedeutung, dadieauf- gezeichneten Daten sehr schnell an Wert verlieren. Ein Fehler in einer Industriemaschine, der bei weiterem Betrieb zu deren Defekt führen kann, sollte um größere Schäden zu vermeiden möglichst früh erkannt werden. Ein CO2-Sensor oder Rauchmelder muss einen Brand erkennen, bevor dieser gefährlich wird. Wird ein Gebäude zu stark beheizt, sollte die Klimatisierung zeitnah angepasst werden, um Energie zu sparen. Werden die entsprechenden Sensordaten erst Stunden später aus- gewertet, sind sie wertlos. Eine korrekte und schnelle Datenauswertung hat somit kommerzielle, ökologische und sogar sicherheitstechnische Aspekte. An entsprechende Softwaresysteme und -architekturen werden nicht nur hohe Anforderungen hin- sichtlich Geschwindigkeit und Latenz gestellt. Um aus der gesammelten Datenmenge sinnvolle Rückschlüsse ziehen zu können, müssen die Daten aggregiert und Informationen verschiedener Sensoren miteinander kombiniert werden. In einem Gebäude soll zum Beispiel bei zu kalter Tem- peratur nur dann die Heizung aktiviert werden, wenn das Fenster geschlossen ist. Auch solchen Anforderungen muss die Software gerecht werden. 15 1 Einleitung Ein weiterer entscheidender Faktor stellt die Vielzahl und Komplexität der verschiedenen Software- systeme im Unternehmen und dessen Umfeld dar. Einerseits müssen sowohl verschiedene interne Softwaresysteme integriert und der Datenaustausch ermöglicht werden. Auf der anderen Seite müs- sen auch Integrationen zu verschiedenen externen Softwaresystemen von Kunden, Lieferanten oder Dienstleistern hergestellt werden. Um all den genannten Herausforderungen gerecht zu werden, benötigt man eine integrative und zuverlässige Kommunikation. Diese kann von MOM geboten werden. Im Hinblick auf die Verwirk- lichung eines solchen heterogenen und komplexen Datenaustausches zwischen Softwaresystemen, trifft man auf eine Vielzahl von benötigten Funktionen. Die EIP bieten Lösungsmuster für häufig auftretende Problemstellungen bei der Integration von komplexen Prozessen, Daten und Software in großen Unternehmen. Mithilfe von MOMs können diese Pattern implementiert werden. Da es sich dabei um Lösungen für wiederkehrende Problemstellungen handelt, ist es denkbar, dass MOMs bereits Implementierungen der EIPs zur Verfügung stellen. Eine Sammlung an generischen Pat- terns, die je nach Anwendungsfall konfiguriert bzw. implementiert werden können, stellen einen mächtigen Werkzeugkasten für die Integration von Softwaresystemen dar. 1.2 Message-oriented Middleware Message-oriented Middleware (MOM) bezeichnet eine Software, die asynchrone Kommunikation mittels Nachrichten (Messages) zwischen Softwaresystemen ermöglicht [Gre04; Ley18]. Eine MOM wird benötigt um zuverlässig Nachrichten von einem System auf ein Anderes zu übertragen, auch wenn die Systeme durch unzuverlässige Netzwerke verbunden sind [Gre04; Ley18]. Falls Systeme oder Netzwerkverbindungen nicht verfügbar sind, wiederholt die MOM die Übermittlung der Nachricht, bis diese schließlich erfolgreich zugestellt wird [Gre04; Ley18]. Zu
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages47 Page
-
File Size-