Java ist auch ein Vergnügungspark - Wrap-Up über das JavaLand 2015

Eine Konferenz in einem Vergnügungspark? Klang zunächst so ungewöhnlich, wie spannend. Zugegebenermaßen konnten wir uns im Vorfeld auch nicht genau vorstellen, wie so etwas aussehen wird. Und bereits beim Check-In im Hotel wurde klar: Das wird kein rein monotoner Talk-Marathon. Die beiden Hotels, welche von ConSol bezogen wurden, hatten jeweils ein Motto (asiatisch und afrikanisch) und wussten dieses auch für die Gäste, teils sehr detailverliebt, darzustellen. Nachfolgend wollen wir ein paar unserer persönlichen Eindrück schildern:

assets/images/IMG_20150323_174838.jpg
assets/images/IMG_20150323_174838-1024x759.jpg
assets/images/IMG_20150323_173608.jpg
assets/images/IMG_20150323_173608-1024x759.jpg

Day 1: Raketenwerfer und Rollercoaster

Nachdem ersten Frühstück, bei dem es an Nichts fehlte, ging es dann endlich auf zum eigentlichen Zweck der Reise. Mitten hinein ins Phantasialand. Eine sympathische Kleinstadt Kulisse erwartete uns auf dem Gelände. Mit einer Horde weiterer Javaenthusiasten ging es unter Begleitung eindringlicher, fröhlicher Musik zur ersten Keynote. Viel besser kann man einen ersten Eindruck wohl nicht aufbauen.
Nachdem Marcus Lagergren in der Keynote anlässlich zum 20. Geburtstag von Java seinen persönlichen Weg mit der Sprache in den letzten 20 Jahren vorstellte, ging es zum ersten Talk, von Roland Huß über den Einsatz von Docker für Java-Entwickler

Docker für Java-Entwickler

In diesem Talk zeigte Roland Anwendungsfelder der Container-Software Docker im Java-Umfeld. Spezielles Augenmerk legte er auf den Aufbau von Integrationstest-Umgebungen. Es wurde gezeigt, wie eine Anwendung automatisiert in verschiedenen Anwendungsservern deployed werden können, um diese in deren Kontext anschließend einen Black-Box-Test zu unterziehen. Der Bogen zu Java wurde durch die Präsentation von Rolands Docker-Maven-Plugin gespannt. Mit diesem Plugin ist es möglich den Aufbau von Docker-Container aus dem Maven-Lifecycle heraus zu steuern.
**Unser Resümee:</strong>
Leider hatte der Präsentationsraum eine unangenehme Akustik, die sich aus teils extremen Hall sowie einem übersteuerten Mikro zusammen setzte. Roland konnte dies mit ruhiger und bestimmter Stimme jedoch sehr gut ausgleichen.
assets/images/IMG_20150324_100733-300x222.jpg

Stop! Oder mein Duke schiesst!

Dieser Vortrag versprach durch seinen Catchy-Name bereits recht unterhaltsam zu werden. Kern des Vortrags war die Theorie, dass ein User-Interface nicht nur mittels Display dargestellt werden muss, sondern der Zustand von Daten auch auf einem Device (ganz ohne Screen) visualisiert werden kann. Als Beispiel nannte Speaker Dierk König, einen boolischen wert. Dieser kann in einer GUI z.B. via Checkbox repräsentiert werden, an einem Microcontroller via leuchtender LED. Zur Umsetzung wurde das Hauseigene Framework *“OpenDolphine”</em> verwendet. Dieses trennt die Geschäftslogik (wann ist das Feld True/False) so von der Ausgabe, dass es möglich ist mit einem Controller die Geschäftslogik für alle Arten von Clients zu steuern. In einem beispielhaften Aufbau, wurde ein Microcontroller-Sensor zum erkennen der Umgebungslautstärke verwendet und durch ein iPad der aktuelle Neigungswinkel aufgenommen. Diese Daten wurden synchron mittels OpenDolphin an einen Controller gesendet und verarbeitet. Nun begann die ‘Magie’. Zum einen wurden die Daten auf dem Bildschirm in einer JavaFX GUI ausgegeben und zum anderen steuerte der Neigungswinkel des iPads einen kleinen Missle-Shooter. Sobald die Umgebungslautstärke einen bestimmten Wert überschritt, starte die Rackte.
**Unser Resümee:</strong>
Alles in allem ein unterhaltsamer Talk. Der praktische Nutzen einer solcher Technologien erfordert auch sehr spezielle Anwendungsfälle. Zudem gibt es bestimmte Fallstricke, welche im Talk selbst genannt wurden. So ist es notwendig, dass alles Geräte im gleichen WLAN-Netz sind, was zudem maßgeblich für die Performance der Anwendung ist.

Systeme modernisieren mit Microservices, Hystrix und RxJava

Dieser Talk von Holger Kraus und Arne Landwehr lief unter den initialen Leitsatz **“Vom Monolithen hin zur flexiblen Microservice-Architektur”</strong>. Es wurde schnell klar das die beiden Speaker aus ihren praktischen Erfahrung berichteten, da die Theorie übersprungen wurde und man schnell zum “Fleisch” kam. Die Grundaussage beider war, ist eine Anwendung vor der Umstellung instabil, so ist diese nach der Umstellung ebenso instabil und man hat keinen Mehrwert. Daher muss bei alten Monolithen als Erstes versucht werden diese zu stabilisieren und einzelne Komponenten voneinander modular zu trennen. Dies kann durch den Einsatz von z. B. Hystrix (eine Circuit Breaker Implementierung von Netflix) erreicht werden, so dass einzelne Anwendungskomponenten in voneinander unabhängige Commands isoliert werden und somit keine kaskadierende Fehler enstehen können. Als nachfolgenden Schritt schlugen die Speaker vor den Monolithen mit asynchronen Prozessen auf die zukünftige Microservice-Architektur vorzubereiten. Empfohlen wurde hier **RxJava</strong>, da es sich leicht in bestehende Systeme einfügt und eine verständliche API hat. Die eben genannten Schritte wurde mit anschaulichen Code-Beispielen und ein paar guten alten “Kennt ihr das von euren Projekt” Sprüchen sehr gut veranschaulicht.
**Unser Resümee:</strong>
Zusammengefasst ein Microservice-Vortrag mit Tiefe und Praxisberichten aus realen Projekten, da auch Schwachstellen des Microservice-Paradigmas wie z. B. Integrationstesting, zentrales Logging und Monitoring angesprochen wurden. Insgesamt ein sehr spannender und unterhaltsamer Vortrag.

Typescript: Javascript für Java-Entwickler

Da Typescript ohne hin ein Hypthema im Web-Umfeld darstellt, konnte man sich den Vortrag von Kai Tödter nicht entgehen lassen. Typescript ist ein Superset von Javascript und erweitert dies um bekannte OOP-Konzepte. Im Talk wurden die grundlegenden Konzepte der Sprache vorgestellt und gekonnt in Bezug auf die aus der Java-Welt bekannten Konzepte gebracht. Sehr interessant waren vor allem die Erfahrungsberichte über den praktischen Einsatz der Sprache. Herr Tödter stellte heraus, wie schnell die Sprache von Java-Entwicklern akzeptiert und erlernt wurde.
**Unser Resümee:</strong>
Der Talk hatte alles was man sich von einen Entwickler-Vortrag vorstellt: Viel Code, einen kompetenten Speaker und den nötigen Tiefgang. Ein Vortrag der für jeden interessierten Entwickler zu empfehlen ist.

Mittagspause - Messestände

Eigentlich erlaubte das Programm keine ausgiebige Mittagspause, allerdings bot der Track zwischen 14 - 15 Uhr keinen ‘den muss ich sehen Talk’. So wurde die Zeit genutzt um bei einem erstaunlich guten und reichhaltige Buffet die Eindrück der ersten Tageshälfte auf sich wirken zu lassen.
Anschließend wurde der Rest der Zeit genutzt um an die Ständen der Aussteller zu schauen. Leider gibt es von hier, bis auf die üblichen Goodies und Give-Aways nichts wirklich besonderes zu erzählen.

Why Kotlin

Yet another JVM-Language oder etwas wirklich brauchbares? Diese Frage stellte man sich vor dem Talk. Wirklich beantwortet wurde für uns diese Frage leider nicht. Kotlin ist eine JVM-Sprache von Jetbrains. Was sie von anderen neuen Sprachen maßgeblich abhebt ist die Interoperabilität mit Java selbst. So ist es in anderen Sprachen nicht möglich, diese auch von Java aus auszuführen. Die gezeigten Codebeispiele zielten vor allem auf die Code-Reduktion im Vergleich zu Java ab. Allerdings sind dies Konzepte, die bereits aus Groovy oder Scala bekannte sind.
**Unser Resümee:</strong>
Der Vortrag wirkte anfangs etwas hektisch,  was im Verlauf gekonnt mit Fachkompetenz ausgeglichen wurde. Man merkte deutlich, dass die Referentin die Sprache mitentwickelt hat. Leider fehlte uns am Ende der kleine ‘Aha’-Effekt bzw. blieb uns unsere persönliche Antwort auf die Eingangsfrage schuldig.

Integration Testing - How-to

Einer der bestbesuchtesten Talks des Tages, man musste sogar mit einem Teppich-Sitzplatz vorlieb nehmen. Allerdings lohnte sich der maßig bequeme Sitzplatz durchaus. Speaker Nicolas Fränkel stellte knapp aber verständlich dar, wann man etwas Unit-Testen sollte und wann und vor allem warum manchmal ein Integration-Test sinnvoller ist. Dazu nutzte er die Metapher eines Autos. Mit Unit-Tests würde man alle verwendeten Schrauben und Muttern auf deren Funktion testen. Das Zusammenspiel der Einzelteile werden dann bei einer Probefahrt, dem Integration-Test, verifiziert. Ferner erklärte er den Einbau von Integration-Tests in einen Maven-Build (inklusive Gradle Bashing) und stellte kurz Arquillian vor (einen separaten Talk gab es dazu am nächste Tag).
**Unser Resümee:</strong>
Der Speaker war sehr unterhaltsam und wusste wie er das Thema gut aufbereitet an den Entwickler bringt. Die Besucherzahl zeigte eindrucksvoll welches Interesse an dem Thema besteht. Leider vermissten wir im Vortrag eine Erwähnung von Citrus ;-)

Stateless Authentication for Microservice Applications

Von diesem Talk erhoffte wir uns einen architektonischen Blick auf des Thema Authentifizierung zu erhalten. Im Grunde wurde jedoch die OAuth-Methode (bekannt von Facebook, Twitter, etc) vorgestellt. Auch auf das JAAS (JSON Authentication and Authorization Service) Verfahren wurde eingegangen. Beide Prinzipien sind bei ihrer Methodik sehr ähnlich. Über einen Service authentifiziert sich der Nutzer und erhält ein Access-Token. Mit diesem Token können andere Services nun den Nutzer wiederum verifizieren. Da Security im wesentlichen ein ganzheitliches Thema ist, welches man mit solchen Verfahren auch nur punktuell abdecken kann, sollte sich am nächsten Tag noch eindrucksvoll zeigen.
**Unser Resümee:</strong>
Der Talk fand im selben Raum statt, wie der erste des Tages. Leider wurden die ton-technischen Probleme bis dato nicht gelöst. Daher war es zunächst schwer nach einem solche anstrengenden Tag zu folgen. Das Thema brachte der Speaker jedoch sehr kompetent rüber.

Rollercoaster und abgelehntes Freibier

Nach all den großartigen Talks wurde am ersten Tag noch für ein tolles Abendprogramm gesorgt. Zunächst wurden die bestimmten Fahrgeschäfte für die Konferenzbesucher geöffnet. Darunter auch die **Black-Mamba</strong>, ein Rollercoaster für Fortgeschrittene ;) Bevor es jedoch auf die wilde Fahrt ging musste man noch der Versuchung des teils etwas aufdringlich angebotenem Freibier widerstehen. Nach der zweiten Fahrt und einem kleinen Abstecher auf die Holzachterbahn hatte man sich dann doch eine Erfrischung verdient. Abgerundet wurde der Tag durch ein reichhaltiges Buffet sowie anschließendem Auftritt einer Live-Band im Messebereich.

Day 2: Der Wow-Effekt und Microservices

Nachdem sehr gelungenen ersten Tag, ging es am Mittwoch morgen in alter Frische zum zweiten Teil der Konferenz.

Hack that Website

Nachdem wir durch die Kürze des vorangegangenen Vortrags noch Zeit hatten uns bei einem Kaffee zu stärken, ging es mit Zuversicht in den nächsten Talk. Dieser hielt nicht nur was er versprach, er führte auch zum ersehnten ‘Wow’-Effekt. Stefan Schlott stellte zunächst einige allgemeine Aspekte der IT-Sicherheit vor. Insbesondere, dass die Sicherheit eines Systems in einem ganzheitlichen Gesamtkontext (Netzwerke, Firewalls, Enduser-Devices) zu sehen ist. Aus einer Liste verschiedener Angriffsszenarien wählte er für eine praktische Demo die SQL-Injection und das Cross-Site-Scripting (XSS). Die Demo wurde mit der Tool-Suite “Kali Linux” ausgeführt und zeigte wie wenig Aufwand teilweise nötig ist um eine Website auf Sicherheitslücken zu testen oder wenn man es umkehrt sieht, auch zu hacken.
**Unser Resümee:</strong>
Eindrucksvoller und praktischer Einstieg in das Thema Sicherheit im Web, anschauliche Beispiele und ein gut verständlicher Speaker - was wünscht man sich mehr!

Keynote: Enterprise and Internet of Things

In der Keynote hörte man inhaltlich die bekannten Überlegungen zu IoT in Zusammenspiel mit Java und Cloud-Anwendungen. Leider blieb der Talk ein gesamtheitliches Fazit schuldig, was vermutlich an der derzeit noch sehr in Nebel getauchten Zukunft von IoT im Gesamten liegt. Insgesamt wirkte die Keynote sehr lebendig, was durch die gute Präsentationstechnik von Speaker Mark Little unterstrichen wurde.

Mittag

Auf eine Pizza ging es in die Mittags Pause, leider fiel dadurch der Track ab 13 Uhr aus. Genutzt wurde die Zeit trotzdem um noch ein paar Give-Aways zu bewundern :-) Darunter auch ein Jojo von Jetbrains, welches leider nicht gewohnte IDEA Qualität mitbrachte ;)

Event Sourcing FTW

Wenn der Talk Titel schon eine hippes Internet-Akronym, wie FTW beinhaltet, kann man auch einen hippen Talk erwarten? Definitv! Jochen Mader Verdeutlichte das Prinzip des Event-Sourcing zunächst anhand der Konto-Buchhaltung (es wird noch Hip ;)). Dort wird nicht der eigentliche Wert des Kontostands gespeichert sondern jeweils nur die Buchungen gespeichert. Der Kontostand ergibt sich dann durch das aufsummieren der Buchungswerte. Nach einem ähnlichen Prinzip funktionieren auch Game-Server, dachte sich der Speaker und setzte einen Eventsourcing Basierten Gameserver um. Das Event-Sourcing hilft dabei, dass jedem Spieler der genaue Zustand des Spiels zu einem beliebigen (vergangenen Zeitpunkt) bereit gestellt werden kann.
**Unser Resümee:</strong>
Zur Darstellung verwendete der Speaker, mit einem Graphictablet, gezeichnete Sketches. Das gab der gesamten Präsentation noch mehr Hipster-Chic, ohne an Ernsthaftigkeit zu verlieren.

Focus on Your Features - Dropwizard Takes Care of the REST

Dropwizard ist ein, mit Spring-Boot vergleichbares Framework. Mit wenigen Zeilen lassen sich HTTP-Endpoint definieren und programmieren, welche in ihrem eigenen Jar-Container ausführbar sind. Viele Code-Beispiele verdeutlichten den ‘einfachen’ Einsatz, natürlich auch im Bezug auf Microservices. Als Beispiel-Anwendung wurde ein Hipster-Store umgesetzt. Man merkte nicht nur dort, dass der Speaker Felix Braun in Berlin sitzt ;-)
**Unser Resümee:</strong>
Dropwizard ist ein wohlwollendes Thema: Wenig Code - Großer Effekt. Das machte vor allem als Zuschauer Spaß. Die lässige jedoch stets kompetente Art des Speakers rundete unser Bild ab.

Eindrücke und Fazit

Java weißt auch nach 20 Jahren keine Falten auf, im Gegenteil! Zumindest vermittelt Javaland diesen Eindruck, was auch irgendwie verständlich ist. Zusammengefasst bleiben im Wesentlichen folgende Eindrücke:
**Mein Toaster wird bald Smarter sein als ich!</strong>
Nahe zu jeder Track hatte einen Talk der etwas mit IoT zu tun hatte, oder versprach dies zumindest. Die Entwicklung in diesem Bereich dürfte auch außerhalb der Java-Welt interessant zu beobachten sein. Zum einen technisch: hinsichtlich verwendeter Kommunikationsprotokolle, Sensoren, Akkuleistung, etc. Zum anderen in Bezug auf Anwendungsfälle die über besserwisserische Heizungen hinaus gehen. Java selbst scheint indes eine akzeptierte Sprache zum Programmieren von Mikrocontrollern geworden zu sein.
**You’re going to need more - not bigger - boats!</strong>
Das Thema Microservice erinnert ein wenig an Cloud-Computing vor einigen Jahren: Viel Buzzword - wenig neue Technologien; Jeder will es nutzen, aber keiner weiß wie (oder wann); Frägt man 5 Leute erhält man 6 verschiedene Definitionen. In vielen Talks hörten wir Sätze wie: “Wir haben jetzt mal begonnen, das so zu machen…” Hype und Euphorie scheinen aktuell auf dem Peek der Hype-Kurve zu sein. Wir sind gespannt ob man nächstes oder übernächstes Jahr auch Talks hören wird, die das Microservice-Paradigma verteufeln oder gar als Anti-Pattern bezeichnen.
**Nicht jede Besserung ist Tugend, oft ist sie nur das Werk der Zeit.</strong>
Und so gibt es trotz IoT, trotz Microservices, trotz Lambdas, trotz der gefühlten 200. neuen JVM Sprache, einfach Themen die die Zeit überdauern und immer weiter ihre Relevanz behalten. Dazu gehört zum einen das Thema Testen und zum anderen das Thema Sicherheit. Themen, die selten als Hip bezeichnet werden (zumindest ersteres) aber trotzdem einen enorm wichtigen Faktor in der qualitativ hochwertigen Entwicklung von Software darstellen.
In diesem Sinne ein javatastisches Jatumba und bis zur JavaLand 2016! Wir freuen uns schon heute!
Tobias Schneck & Tim Keiner

Author: Tobias Schneck
Categories: development
Monitoring-Workshop 2017 12./13.9. Düsseldorf