Masterarbeit, 2016
97 Seiten, Note: 1,3
1 Einleitung
1.1 Einführung in das Themengebiet
1.2 Fragestellungen
1.3 Beschreibung des Demonstrators
1.3.1 Funktionale Anforderungen aus Sicht der Studierenden
1.3.2 Funktionale Anforderungen aus Sicht der Sachbearbeiter
1.4 Gliederung der Arbeit
2 Grundlagen
2.1 Das Reaktive Manifest
2.2 Ereignisgesteuerte Architektur
2.2.1 Grundkonzepte
2.2.2 Schichten
2.2.3 Vorteile
2.2.4 Nachteile
2.3 Nachrichtenorientierte Architektur
2.3.1 Hauptelemente
2.3.2 Kommunikationsmodelle
2.3.3 Vorteile
2.3.4 Nachteile
2.4 Microservices
2.4.1 Definition
2.4.2 Grundlegende Eigenschaften
2.4.3 Deployment-Strategien
2.4.4 Vorteile
2.4.5 Nachteile
2.5 REpresentational State Transfer (REST)
2.5.1 Architektur
2.5.2 Methoden
2.6 Web Components
2.7 Angular 2
2.7.1 TypeScript
2.7.2 Grundkonzepte
2.7.3 Vergleich zu anderen Web Frameworks
2.8 Web Workers
2.8.1 Definition
2.8.2 Klassen
3 Stand der Technik
3.1 A Message-based Software Architecture Style for Distributed Application
3.1.1 Grundkonzepte
3.1.2 Bewertung
3.2 Hierarchical message bus-based (HMB) software architecture style
3.2.1 HMB-Architekturelemente
3.2.2 Bewertung
3.3 Message-Oriented-Middleware in a Distributed Environment
3.3.1 Grundkonzepte
3.3.2 Bewertung
3.4 Nachrichtenbasierte Web-Präsentation für das serviceorientierte SmartCampus-System (SC-NBWP)
3.5 Vergleich
4 Konzept für eine nachrichtenorientierte Software-Architektur für web-basierte Software-Systeme
4.1 Grundkonzepte
4.2 Hauptelemente
4.3 Kommunikationsmechanismen
4.3.1 Push- und topic-basierte Kommunikation
4.3.2 Punkt-zu-Punkt-Kommunikation und Publish/Subscribe
4.3.3 Nachrichtenprotokolle
4.3.4 RPC Messaging
5 Konzept für die Umsetzung des Demonstrators
5.1 Message Bus
5.1.1 Grundkonzepte von RabbitMQ
5.1.2 Anwendung der RabbitMQ-Konzepte bei der Umsetzung des Demonstrators
5.2 Client Components
5.2.1 Eingesetzte Technologien und Konzepte
5.2.2 Touchscreen-Web-Anwendung
5.2.3 Web-Anwendung für die Anzeigebildschirme vor Ort
5.2.4 Windows-Druck-Service
5.2.5 Windows-Client-Anwendung zum Ziehen einer Wartemarke durch Scannen der KIT-Karte
5.2.6 SmartCampus-Ticket-Service-Gruppe
5.3 Server Components
5.3.1 Eingesetzte Technologien
5.3.2 StudAdviceTicket Microservice
5.3.3 Notification Microservice
5.3.4 StudentCard Microservice
5.4 Datenimporter
6 Zusammenfassung und Ausblick
6.1 Zusammenfassung
6.2 Ausblick
Diese Masterarbeit zielt darauf ab, ein architektonisches Konzept für moderne, reaktive und nachhaltige Web-Anwendungen zu entwickeln, das eine lose Kopplung zwischen den Komponenten durch nachrichtenorientierte Kommunikation ermöglicht. Hierbei wird insbesondere eine Lösung zur Verwaltung von Warteschlangen am KIT-Studierendenservice implementiert, um technologische Veraltung und mangelnde Skalierbarkeit bestehender Systeme zu adressieren.
Nachrichtenorientierte Architektur
Moderne Software-Systeme stellen immer höhere Anforderungen an die Kommunikation zwischen den einzelnen Systemkomponenten. Bisher hat sich das Client/Server Kommunikationsmodell in diversen Systemen durchgesetzt, es stößt aber in vielen Anwendungsfällen an seine Grenzen. Bei diesem Kommunikationsmodell kann ein vorübergehender Ausfall einer Komponente oder eines Web Service zu Blockierungen oder Datenverlusten führen. Überdies ist dieses klassische Paradigma kaum auf Anwendungen mit einer ereignisgesteuerten Architektur anwendbar. Nachrichtenorientierte Ansätze versuchen diese Probleme zu lösen. In den nachfolgenden Ausführungen wird das Konzept einer nachrichtenorientierten Architektur als eine der Anforderungen des Reaktiven Manifests erörtert, ihre Hauptelemente und Kommunikationsmodelle vorgestellt, sowie Vorteile und Schwachstellen diskutiert.
Jede nachrichtenorientierte Architektur besteht aus den folgenden Hauptelementen: Nachrichten, Nachrichtenproduzent, Nachrichtenkonsument und Nachrichtenserver, auch Nachrichten Broker oder Message Bus genannt. [AS+09]
In einer Nachricht sind Daten, die von einer Software-Komponente zu einer anderen zu übertragen sind, enthalten [AS+09]. Wenn eine nachrichtenorientierte Architektur zusammen mit einer ereignisgesteuerten Architektur kombiniert wird, erfolgt meistens das Verschicken einer Nachricht als Reaktion auf das Eintreffen eines Ereignisses. In diesem Fall werden oft anhand der Nachricht auch Daten übertragen, diese Datenübertragung stößt allerdings einen bestimmten Prozess im System an.
1 Einleitung: Dieses Kapitel führt in das Themengebiet der modernen Web-Anwendungen ein, benennt zentrale Fragestellungen und beschreibt den Demonstrator des Aufrufsystems.
2 Grundlagen: Hier werden theoretische Fundamente wie das Reaktive Manifest, ereignisgesteuerte und nachrichtenorientierte Architekturen sowie Microservices und Web-Technologien erläutert.
3 Stand der Technik: Es werden bestehende Ansätze wie TreeSA, HMB und Message-Oriented-Middleware vorgestellt, kritisch analysiert und miteinander verglichen.
4 Konzept für eine nachrichtenorientierte Software-Architektur für web-basierte Software-Systeme: Dieses Kapitel stellt das spezifisch entwickelte Architekturkonzept inklusive der Hauptelemente und Kommunikationsmechanismen im Detail vor.
5 Konzept für die Umsetzung des Demonstrators: Hier erfolgt die technische Konzeption des Aufrufsystems für den Studierendenservice unter Verwendung von RabbitMQ, Angular 2 und diversen Microservices.
6 Zusammenfassung und Ausblick: Die Arbeit fasst die Ergebnisse zusammen und diskutiert offene Herausforderungen sowie potenzielle weiterführende Forschungsarbeiten.
Nachrichtenorientierte Architektur, Ereignisgesteuerte Architektur, Microservices, RabbitMQ, Web-Anwendungen, Angular 2, Software-Architektur, Reaktives Manifest, Publish/Subscribe, RPC Messaging, Skalierbarkeit, Lose Kopplung, SmartCampus, Web Workers, REST.
Die Arbeit befasst sich mit dem Entwurf und der Umsetzung einer nachrichtenorientierten Software-Architektur für web-basierte Systeme, die auf Skalierbarkeit, Wartbarkeit und Entkopplung fokussiert ist.
Die zentralen Themen sind ereignisgesteuerte Architekturen, der Einsatz von Microservices, moderne Web-Frameworks wie Angular 2 sowie Protokolle zur asynchronen Kommunikation wie AMQP und STOMP.
Das primäre Ziel ist es, ein modulares System für das Warteschlangenmanagement im KIT-Studierendenservice zu entwickeln, das bestehende, veraltete Systeme ersetzt.
Die Arbeit kombiniert eine fundierte Literaturanalyse bestehender Architekturstile mit der praktischen Konzeption und Implementierung eines Demonstrators auf Basis moderner Technologien.
Der Hauptteil behandelt die theoretischen Grundlagen, die Analyse des Stands der Technik sowie die detaillierte architektonische Ausgestaltung und die praktische Umsetzung des Demonstrators durch verschiedene Client- und Server-Komponenten.
Die Arbeit wird maßgeblich durch Begriffe wie nachrichtenorientierte Architektur, lose Kopplung, Skalierbarkeit, Microservices und RabbitMQ geprägt.
Durch den Einsatz eines Message Bus und asynchroner Kommunikation nach dem Publish/Subscribe-Prinzip wird die Blockierung von Komponenten verhindert und eine Entkopplung der Systemendpunkte erreicht.
RabbitMQ bietet eine hohe Zuverlässigkeit, unterstützt gängige Nachrichtenprotokolle wie AMQP und STOMP und ist optimal für verteilte, ereignisgesteuerte Systeme geeignet.
Es ermöglicht extrem schnelle Startzeiten für die Web-Anwendung, da der Client unmittelbar ein vorgerendertes HTML-Dokument erhält, anstatt auf das Laden komplexer Framework-Ressourcen warten zu müssen.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

