Publications

Professional

Frühlingsbotschafen

Teil 1: Eventgestützte Applikationen mit Spring Kafka

Günther, M. und Fresow, B., JavaMagazin, 01/2018, p. 73-77

Abstract: Apache Kafka erfreut sich als Messaging-Middleware immer größerer Beliebtheit und Verbreitung in der Entwicklercommunity. Dem trägt jetzt auch Spring Rechnung und bietet mit Spring Kafka eine sehr einfache Möglichkeit, Kafka in eine Spring-basierte Applikation zu integrieren. Zum Auftakt der Artikelserie möchten wir anhand praktischer Beispiele zeigen, wie Spring Kafka für die Entwicklung eventgestützter Microservices verwendet werden kann.

Datenserialisierung mit Apache Avro

Günther, M., JavaSPEKTRUM, 5/2017, p. 35-38

Abstract: [german] Apache Avro ist ein Werkzeug zur Datenserialisierung, das in jüngster Zeit deutlich an Popularität und Verbreitung zugenommen hat. Durch ein kompaktes Binärformat und evolvierbare Schemata spielt Avro seine Stärken insbesondere im Umfeld von Big-Data-Anwendungen oder Fast-Data-Architekturen aus. Darüber hinaus kann man Avro ebenso als vollwertiges RPC-Framework benutzen. Dieser Beitrag diskutiert die Vorzüge von Avro gegenüber anderen Serialisierungslösungen und illustriert anhand von Code-Beispielen die Integration von Avro zur Datenserialisierung sowie seine Nutzung als RPC-Framework.

Streaming-Applikationen mit Kafka Streams

Günther, M., JavaSPEKTRUM, 4/2017, p. 54-58

Abstract: [german] Kafka Streams ermöglicht eine Stream-orientierte Verarbeitung von Daten, die über Apache Kafka zur Verfügung gestellt werden. Dieser Beitrag stellt Kafka Streams als ergänzende Bibliothek in einer Kafka-gestützten Architektur vor, diskutiert die Herausforderungen bei der Modellierung und zeigt anhand von Codebeispielen, wie man unter Verwendung der domänenspezifischen Sprache Kafka Streams DSL Daten transformieren, aggregieren und anreichern kann.

Skalierfähige, asynchrone Nachrichtenverarbeitung mit Apache Kafka

Günther, M., JavaSPEKTRUM, 3/2017, p. 48-51

Abstract: [german] Apache Kafka ist eine hochgradig verteilte Lösung für das Publish-Subscribe Messaging, die für eine effiziente Datenannahme und -verteilung mit niedriger Latenz optimiert ist. Das macht das System zu einem geeigneten Kandidaten für die Umsetzung von Streaming-Architekturen, in denen der Fokus auf einer kontinuierlichen Verarbeitung von eingehenden Daten liegt. Apache Kafka bricht dabei mit den Ansätzen traditioneller Messaging-Systeme, um diese Ziele zu erreichen. Dieser Beitrag stellt Kafkas innovativen Ansatz vor und zeigt anhand von Code-Beispielen, wie man einen einfachen Nachrichtenkanal aufsetzt.

Strömungslehre - Streams und Collections in Java 8

Günther, M. and Lehmann, M., heise Developer, 2014/03/21

Abstract: [german] Die wesentliche Neuerung von Java 8 ist die Erweiterung der Sprachmittel um Lambda-Ausdrücke. Sie erlauben einen funktionalen Programmierstil in der ja eigentlich rein objektorientierten Sprache. Dieser Artikel zeigt, wie sich Lambda-Ausdrücke und Patterns wie Filter-Map-Reduce in den ebenfalls neuen Streams nutzen lassen, wenn auf Collections operiert wird.

Keine Einbahnstraße: WebSockets in Java EE 7

Grammes R. and Günther, M. and Lehmann, M., JavaSPEKTRUM, 6/2013, p. 30-33

Abstract: [german] Das WebSocket-Protokoll ist eine leichtgewichtige Alternative zu HTTP und ermöglicht die bidirektionale Kommunikation zwischen einem Client und einem Server. Die neue Java-Enterprise-Edition Java EE 7 enthält mit JSR 356 eine standardisierte Java-Bibliothek für WebSocket-Clients und -Server, die der Artikel vorstellt.

Ausdrucksstark: Lambda-Ausdrücke in Java 8

Günther, M. and Lehmann, M., JavaSPEKTRUM, 3/2013, p. 8-11

Abstract: [german] Das JDK 8 erweitert die Java-Sprache erneut um moderne Sprachfeatures. Mit dem Java Specification Request 335 werden sogenannte Lambda-Ausdrücke eingeführt, die insbesondere in der Welt der funktionalen Programmiersprachen auch als anonyme Funktionen bekannt sind. Der Artikel illustriert sowohl die technischen Details dieser Spracherweiterung als auch die idiomatische Benutzung von Lambdas.

Java 7: Das Fork-Join-Framework für mehr Performance

Günther, M. and Lehmann, M., JavaSPEKTRUM, 5/2012, p. 36-39

Abstract: [german] Mehr Performance wird dem Softwareentwickler nicht länger durch immer schnellere Prozessoren geschenkt. Stattdessen muss man mehrere parallele Prozessoren effizient ausnutzen. Wie aber implementiert man parallele Algorithmen fehlerfrei und effizient? Klassische Java-Threads reichen nicht aus, da sie keine geeignete Abstraktion für die inhärente Parallelisierung eines Problems mitbringen. Java 7 bietet mit dem Fork-Join-Framework eine leichtgewichtige Alternative und unterstützt den Entwickler bei der Umsetzung parallelisierbarer Aufgaben. Am Beispiel der Berechnung von Fraktalen zeigt der Artikel, wie ein parallelisierbares Problem in Java durch Zerlegung in Teilprobleme (Fork) und anschließende Zusammenführung der Teilergebnisse (Join) umgesetzt werden kann.

Academic

Agrarmeteorologische Beratung mit der Visualisierungssoftware NinJo

Bock, L. and Günther, M. and Schaal, K., GIL Jahrestagung 2012, p. 47-50

Abstract: [german] NinJo ist eines der weltweit größten meteorologischen Visualisierungssysteme. Die Software wird seit 2007 operationell in der Wetterberatung eingesetzt. Für die agrarmeteorologische Beratung im Deutschen Wetterdienst (DWD) wurde für NinJo eine Komponente zur Visualisierung agrarmeteorologischer Daten entwickelt, der sogenannte AMBER-Layer. Dieser Artikel stellt den AMBER-Layer innerhalb des Gesamtsystems NinJo mit seiner Systemarchitektur dar und geht dabei insbesondere auf die speziellen Anforderungen innerhalb der agrarmeteorologischen Beratung ein.

Cooperative Traffic Management for Video Streaming Overlays

Pussep, K. and Lehrieder, F. and Gross, C. and Oechsner, S. and Günther, M. and Meyer, S., Computer Networks, Special Issue on Measurement-based Optimizations of P2P Networking and Applications, 2011

Abstract: Peer-to-Peer (P2P) based overlays often ignore the boundaries of network domains and make traffic management challenging for network operators. Locality-aware techniques are a promising approach to alleviate this impact, but often benefit only network operators and fail to provide similar benefits to end-users and overlay providers. This is especially severe with video streaming overlays that are responsible for large amount of Internet traffic. In this paper we present and evaluate a collaborative approach where a network operator measures the behavior of overlay users and promotes a subset of them in terms of up- and download bandwidth. This creates an incentive to users and overlay providers to cooperate by using locality awareness according to the operator’s policies. We evaluate our approach both with a real application and via extensive simulations to analyze the user selection metrics and the impact on different network operators. Our study shows that this cooperative traffic management approach leads to a situation that is beneficial for users, content providers, and network operators.

Adaptives Bandbreitenmanagement in hybriden Peer-unterstützten Video-on-Demand Systemen

Günther, M., Technische Universität Darmstadt, 2010 (MSc. Thesis)

Abstract: [german] Das Betrachten von Video-Inhalten über Video-on-Demand Dienste erfreut sich einer wachsenden Beliebtheit unter den Benutzern. Jedoch erzeugen insbesondere Videos in hoher Qualität (SD- bis HD-Standard) eine hohe Last auf den Servern von Content Providern. Eine Peer-to-Peer basierte Verteilstrategie kann hier Abhilfe schaffen, führt jedoch ein enormes Kostenproblem für einen ISP durch erhöhtes Verkehrsvolumen auf Inter-ISP-Verbindungen ein. Existierende Mechanismen aus den Bereichen des Traffic Shaping, Hardware Provisioning und Locality Aware Peer Selection adressieren die Reduktion dieses kostenintensiven Datenverkehrs. Dies schränkt jedoch potentiell die Verfügbarkeit von Daten ein und beeinträchtigt damit die Performanz eines solchen Dienstes, was weder im Interesse des Content Providers, noch des Benutzers liegt.

Die vorliegende Arbeit versucht, durch adaptives Bandbreitenmanagement die Interessen aller Beteiligten zu wahren. Die Basis hierfür stellt eine hybride Verteilstrategie: Der primäre Distributionspfad ist durch ein P2P-System realisiert, während ein sekundärer Distributionspfad über adaptive Server im Falle eines Performanz-Verlusts als Ausweichlösung dient. Die adaptiven Server basieren auf der sog. Supporter-Strategie.

Der Beitrag der Arbeit ist zweierlei. Zunächst erfolgt die prototypische Implementierung und Evaluation der Supporter-Strategie. Die Ergebnisse dieser Evaluation zeigen, dass die Supporter-Strategie eine Kompromisslösung zwischen Server-Last und Leistung erzielt. Sie ist insbesondere für Content Provider interessant, die den Peer-Bedarf a priori nicht kennen oder deren Server-Auslastung über die Zeit starken Schwankungen unterzogen ist. Diese Resultate greift die Arbeit auf, um den Einsatz der Supporter-Strategie innerhalb der hybriden Systemarchitektur zu rechtfertigen. Darauf aufbauend erfolgt die Erarbeitung eines Konzepts zum adaptiven Bandbreitenmanagement. Die Idee hinter dem Mechanismus ist, das Zugangsprofil ausgewählter Peers zu erhöhen. Die Ergebnisse der Arbeit zeigen, dass sich durch eine geschickte Auswahl von sich besonders günstig verhaltenden Peers eine deutliche Besserung des Systemzustands erreichen lässt. Dies wirkt sich nicht nur positiv auf das Inter-ISP-Datenvolumen aus, sondern resultiert auch in einer Reduktion der Last auf Servern des Content Providers. Ein Benutzer erfährt durch Einsatz des Ansatzes – je nach Konfiguration und Szenario – eine gleichbleibende, wenn nicht sogar bessere Dienstgüte in Form reduzierter Abspielverzögerungen. Die Arbeit stellt somit eine ganzheitliche Lösung für Peer-to-Peer basiertes Video-on-Demand in einer hybriden Systemarchitektur vor, in der alle beteiligten Interessengruppen einen Gewinn erzielen.