Microservices mit Java – OSGi ist doch die Lösung

Der Vortrag soll die These belegen, dass Microservices in Java sich am besten mit OSGi umsetzen lassen, da das Framework alles mitbringt, was benötigt wird und noch einiges andere mehr.

Microservices gelten als das Allheilmittel der modernen Softwarearchitekturen. Durch sie lassen sich Monolithen in überschaubare und einfach zu wartende Softwareteile zerlegen. Dabei übernimmt ein Teil möglichst nur eine abgrenzte Aufgabe in einer Anwendung. Darüber hinaus vereinfacht sich das Deployment, da nicht immer die gesamte Software auf einen Schlag ausgetauscht werden muss. Wie schon oben angedeutet, werden Microservices auch gerne mit Modulen gleichgesetzt. Ein Vorteil von Modulen ist, dass sie ihr Inneres - ihre Implementierung - vor der Außenwelt verbergen. D.h., sie stellen ihre Funktionalität nur über eine API bereit und sind voneinander entkoppelt. Aktuell hat sich REST zur Kommunikation zwischen Microservices durchgesetzt. Module können, müssen aber nicht, GUI- und Persistenz-Bestandteile beinhalten.

Im Zusammenhang mit Microservices stehen oft der verteilte Betrieb und die Kommunikation zwischen ihnen im Vordergrund, obwohl das Konzept zur Aufteilung der Software an erster Stelle stehen muss – Modularität. Java besitzt bisher kein Konzept zur Modularisierung. Das ist erst mit der Version 9 geplant.

OSGi führt schon heute ein solches Konzept in Java ein. Dort werden Module "Bundles" genannt. Diese können ihre Funktionalität wiederum anderen Bundles über Services zur Verfügung stellen. Die Präsentation wird zeigen, wie einfach es ist, Module/Services in OSGi umzusetzen. Dabei wird anhand einer bestehenden Anwendung die Struktur und der Aufbau eines Bundles in der Eclipse-IDE vorgestellt.

Beim Betrieb von Microservices besteht oft das Problem, verfügbare Services zu ermitteln. Auch hierfür bietet OSGI eine Lösung. Module können zur Laufzeit installiert, gestartet und gestoppt werden. Es wird gezeigt was bei dem Einsatz von Service-Dynamik zu berücksichtigen ist und welche Vorteile sich daraus für die Softwareentwicklung ergeben. Dieses Feature wird in einer Demo mit GUI vorgeführt.

Die Verwendung von Services ist in OSGi nicht nur auf die lokale JVM beschränkt. Die Spezifikation sieht dafür sogenannte Remote-Services vor. Da dies in Verbindung mit dem Konzept und dem Betrieb von Microservices eines der herausragenden Features von OSGi ist, wird darauf ausführlicher im Vortrag eingegangen. Es werden verschiedene Remote-Services-Implementierungen in der IDE vorgestellt und anhand einer weiteren Demo-Anwendung vorgeführt. Dazu werden verschiedene Bundles in unterschiedlichen Docker-Container installiert und ausgeführt.

Der Vortrag wird neben einigen Folien zum größten Teil aus Sourcecode-Vorstellung und Live-Demos bestehen. Dabei wird das Thema Remote-Services den größten Anteil einnehmen.

Dienstag, 28.03.2017
11:00 - 11:40
Quantum UG
Anfänger
Deutsch
Newcomer
Demo
Schulz

Uwe Schulz

Weitere Vorträge, die Sie interessieren könnten

Microservice-Anwendungen mit Docker
28.03.2017
Quantum UG
12:00 - 12:40
Thomas Bauer
Caching mit Spring über JCache hinaus
28.03.2017
Quantum UG
13:00 - 13:40
Andreas Wirth
Kotlin-based Build Scripts: New Opportunities in Gradle 3.0
28.03.2017
Quantum UG
14:00 - 14:40
Tim Riemer
Combinator als funktionales Entwurfsmuster in Java 8
28.03.2017
Quantum UG
15:00 - 15:40
Gregor Trefs
Ich bin dein Nachbar – Graphenverarbeitung mit Apache Flink
28.03.2017
Quantum UG
16:00 - 16:40
Kristian Kottke