Donnerstag - 2. April 2015
14:25
Session

Testen mit Containern – Docker für Integrationstests

german

+

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings lässt es sich in vielen Organisationen aus unterschiedlichen Gründen noch nicht für produktiven Einsatz verwenden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung schon einen wichtigen Beitrag leisten. Dieser Vortrag stellt die Einsatzbereiche vor, in denen Docker in automatisierten Tests verwendet werden kann: klassisch als Ausführungsumgebung für das Testobjekt, als Umgebung für Umsysteme oder Simulatoren und insbesondere für die Bereitstellung von definierten Testdaten und wie diese am besten in den Container gelangen können. Weiterhin wird die Einbindung der Container in die Testausführung mit Gradle, Maven und Arquillian vorgestellt.

Stefan Hildebrandt, Stefan Hildebrandt
Mittwoch - 8. April 2015
19:55
Session

Angular 2.0 – Migrationspfade von 1.x zu 2.0

german

+

Als Framework für das Web der Zukunft wird das komplett neu entwickelte AngularJS 2.0 mit einigen Konzepten seines Vorgängers brechen. Jetzt stellt sich natürlich die Frage, wie wir uns heute in AngularJS-1.x-Projekten darauf vorbereiten können, um nach Erscheinen von 2.0 eine Migration zu begünstigen. Diese Session informiert darüber und geht auch auf einen Side-by-Side-Betrieb der beiden Versionen, der dank des neuen Routers möglich wird, ein.

Manfred Steyer, Manfred Steyer
20:05
Session

Moderne Authentifizierungslösungen mit OAuth 2.0 und AngularJS

german

+

Heutzutage hat jeder Webnutzer zahlreiche Passwörter für verschiedenste Webangebote. Das populäre Protokoll OAuth 2.0, das von Größen wie Google, Facebook oder Twitter unterstützt wird, verspricht hier Abhilfe. Diese Session zeigt, was sich hinter OAuth 2.0 verbirgt, für welche Szenarien es eigentlich gedacht ist und heutzutage genutzt wird, wo die Gefahren und Herausforderungen liegen sowie was OpenID Connect damit zu tun hat. Darüber hinaus zeigt sie, wie man die genannten Standards gemeinsam mit AngularJS und UI-Router einsetzt, und worauf hierbei zu achten ist.

Manfred Steyer, Manfred Steyer
Donnerstag - 16. April 2015
13:50
Session

What’s new in Spring Data?

german

+

In diesem Vortrag geben wir einen Überblick über die Neuerungen aus dem aktuellen Release der Spring-Data-Projekte. Nach einer kurzen Einführung in die Features von Spring Data stellen wir die wichtigsten Neuerungen in Allgemeinen und den Datastore-spezifischen Modulen wie z. B. JPA, MongoDB, Redis, REST sowie der Communitymodule wie z. B. Elasticsearch vor.

Christoph Strobl, Christoph Strobl
Freitag - 17. April 2015
12:00
Session

Integration von Microservices – REST vs. Messaging

german

+

Der Trend zu Microservices stellt Entwickler vor neue Herausforderungen. Systeme, die an fachlichen Kontexten orientiert sind, müssen sich gegenseitig über Ereignisse benachrichtigen und auf sie reagieren. Ebenso muss das Austauschen und Synchronisieren von Datenbeständen umgesetzt werden. Die Wahl eines Kommunikationsmechanismus ist dabei fundamental. Sie beeinflusst die gesamte Architektur und ist nur schwer nachträglich änderbar. Der Vortrag stellt die Herausforderung bei der Integration dar und Konsequenzen und Effekte des Einsatzes von REST und Messaging gegenüber.

Oliver Gierke, Oliver Gierke, Eberhard Wolff, Oliver Gierke
Sonntag - 19. April 2015
21:40
Session

The Web Application strikes back

german

+

Viele Schutzmaßnahmen für Webanwendungen beschränken sich auf die sichere Entwicklung und die Abwehr von Angreifern etwa per Web-Application-Firewall. Obwohl zweifellos richtig und wichtig, gelingt es versierten Angreifern dennoch, solchermaßen geschützte Webanwendungen erfolgreich anzugreifen. Eine weitere Verteidigungslinie ist daher dringend notwendig, und steht mit der bisher kaum verbreiteten "Application Intrusion Detection" bereits zur Verfügung. Neben der nachträglichen Analyse der vom Angreifer ausgeführten Operationen geht es vor allem darum, die Webanwendung selbst einen laufenden Angriff erkennen zu lassen und auf diesen in Realtime mit geeigneten Abwehrmaßnahmen automatisch zu reagieren - bevor der Angreifer Zugriff auf geschützte Daten erhält oder die Kontrolle über die Webanwendung übernimmt.Die Session stellt dazu das grundlegende Konzept der "Application Intrusion Detection" für Java-Webanwendungen vor und zeigt anhand von zahlreichen Codebeispielen, wie Entwickler ihre Webanwendung mit dieser zusätzlichen Maßnahme absichern können.

Dominik Schadow, Dominik Schadow
Montag - 20. April 2015
23:15
Session

Module Platform Evolvement - The Rise of Jigsaw in JDK 9

german

+

Mit dem JDK 8 steht ein ausgereiftes Java-Release mit Lambda-Ausdrücken für funktionale Programmierung, der JavaScript-Engine Nashorn für die JS-JVM-Interoperabilität und Verbesserungen in der Java-Sprache zur Verfügung, da zeigen sich bereits die Konturen der neuen Plattformmodularisierung mit dem für das JDK 9 vorgesehenen Projekt Jigsaw. Die geplanten Veränderungen werfen ihre Schatten voraus und lassen es zu, mit dem JDK 9 die gewünschte technische Paketierung von ausgewählter Java-Funktionalität selbst zu bestimmen. Das Projekt Jigsaw hat die primäre Aufgabe, das Design und die Implementierung eines Standardmodulsystems für die Java-Plattform und für das JDK 9 bereitzustellen. Dabei soll die durchgängige, dynamische und einfache Anpassbarkeit der Java-SE-Plattform und dem JDK auch für kleine Endgeräte berücksichtigt werden sowie die Verbesserung von Sicherheit und Wartbarkeit von Java-SE-Plattform-Implementierungen, speziell vom JDK, verwirklicht werden.

Wolfgang Weigend, Wolfgang Weigend
Mittwoch - 22. April 2015
22:50
Session

AngularJS 2 und TypeScript: verliebt, verlobt, verheiratet

german

+

AngularJS 2 ist die kommende Version des sehr beliebten JavaScript-Frameworks von Google, das Direktiven, Data Binding, MV* und vieles mehr bietet. TypeScript ist eine JavaScript-Erweiterung von Microsoft, die JavaScript um optionale statische Typprüfung, Interfaces, Klassen, Module und vieles mehr erweitert. AngularJS 2 selbst wird in TypeScript implementiert. Kai zeigt anhand konkreter Beispiele, wie man als Anwendungsentwicker davon profitieren kann und robusten Clientcode mit AngularJS 2 und TypeScript entwickelt. Wahrscheinlich ist dies allerdings nur ein Preview, da AngularJS vermutlich zum Zeitpunkt der Konferenz noch nicht relesed sein wird.

Kai Tödter, Kai Tödter
Freitag - 24. April 2015
09:50
Session

Warum macht der Garbage Collector Stop-the-World-Pausen ?

german

+

Früher hat man sich Gedanken darüber machen müssen, wie stark der Garbage Collector den Durchsatz der Applikation belastet, d.h. wie viel Prozent der Gesamtablaufzeit einer Applikation für Garbage Collection "verschwendet" wird.  Dieses Problem hat sich auf 64-Bit-Systemen von allein erledigt: Heute arbeitet man mit großen Heaps und kämpft nun mit dem Problem, dass große Heaps bei den traditionellen Garbage Collectors zu langen GC-Pausen führen.

Die Session erläutert, warum das so ist, wie die klassischen GC-Algorithmen (Serial/Parallel Old und CMS) funktionieren und wie jüngere Garbage Collectors (G1) arbeiten. Außerdem sehen wir uns an, welche Alternativen es gibt (Shenandoah, Azul C4 und JRockit).

Angelika Langer, Angelika Langer
09:55
Session

Optional<T> - Ein kontroverser Typ in Java 8

german

+

Mit Java 8 ist der neue Typ "java.util.Optional" zum JDK dazu gekommen.Er wird im JDK als Returntyp von Stream-Operationen genutzt.Erstaunlicherweise hat diese unscheinbare Klasse heftige und kontroverse Diskussion ausgelöst, als sie für Java 8 definiert wurde.Das liegt u.a. daran, dass es ähnliche Abstraktionen in anderen Sprachen gibt, z.B. "Option" in Scala.Dort gibt es den Ansatz, Option als "better null" zu verwenden.Kann man Optional in Java ähnlich wie Option in Scala benutzen? Dann hätte Optional das Potenzial, null und NullPointerExceptions in Java gänzlich überflüssig zu machen.Die Session erläutert die kontroversen Positionen und stellt den gesamten Funktionsumfang sowie die Nutzungsmöglichkeiten von Optional in Java vor inklusive Ausblick auf die zukünftige Bedeutung von Optional in Java-Versionen, die ValueTypes unterstützen werden.

Klaus Kreft, Klaus Kreft
16:15
Session

API-Design mit Lambdas

german

+

Neue Sprachmittel ermöglichen neue Programmiertechniken. In Java 8 sind Lambda-Ausdrücke als neue Sprachmittel zu Java hinzu gekommen. Es ist relativ einfach, Lambda-Ausdrücke zu verwenden, beipielsweise um sie an Operationen aus neuen Schnittstellen wie z.B. Streams oder CompletableFuture zu übergeben. Die Syntax ist schnell gelernt und die Benutzung ist bequem und übersichtlich.

Ehrgeiziger als die einfache Benutzung ist hingegen das Design von Schnittstellen für und mit Lambdas. Es eröffnen sich neue Idiome und Designtechniken. Wie definiert man ein Lambda-fähiges API? Was kann man mit Lambdas anders oder besser ausdrücken als früher ohne Lambdas? Worauf muss man beim API-Design achten? Wo sind die Limitationen?

Für diese Session sind Vorkenntnisse erforderlich.

Angelika Langer, Angelika Langer
Samstag - 25. April 2015
14:25
Session

Modernes Java-Komponentendesign mit Spring 4.2

german

+

Dieser Vortrag stellt ausgewählte Features des Spring-Komponentenmodells vor, mit einem Schwerpunkt auf die Verfeinerungen in Spring Framework 4.1 und 4.2. Die Themen reichen vom umfassenden Support für Java 8 bis hin zu Annotation-basiertem Messaging, Caching und Event-Handling, illustriert mit Codebeispielen und vielen Erläuterungen zur Designphilosophie in Spring.

Jürgen Höller, Jürgen Höller
Sonntag - 26. April 2015
17:25
Session

Reactive Microservices with Akka und Docker

english

+

Akka is a toolkit for building elastic and resilient distributed systems and Docker makes shipping and running those distributed systems easy as never before. In this talk we will introduce you to the basics of Akka and Docker and show how you can use these innovative technologies to build and run really Reactive micorservices. Don’t expect a lot of slides, but be prepared for live coding and live demos.

Heiko Seeberger, Heiko Seeberger
17:40
Session

What's new in Scala?

english

+

In this session we will quickly highlight some of Scala's killer features and then focus on new and noteworthy features in the upcoming 2.12 release. We'll talk about some of the cleanups, Java 8 compatibility, scala.meta, Reacitve Streams and much more.

Heiko Seeberger, Heiko Seeberger
19:55
Session

Live-Coding: JavaScript-Sprachgrundlagen für Java-Entwickler (Remastered 2015)

german

+

JavaScript ist eine schlechte Sprache? Man kann keine Klassen und Vererbung ausdrücken? Es gibt kein Modulsystem und einen Sichtbarkeitsbereich zu erzeugen, erfordert einen Doktortitel? Die einzige Datenstruktur ist ein Array und Objekte müssen als Maps für Arme herhalten? In dieser interaktiven Live-Coding-Session werden wir uns die neuen Features der aktuellsten JavaScript-Sprachversion ECMAScript 2015 ansehen und diese Fragen neu beantworten.

Oliver Zeigermann, Oliver Zeigermann
20:15
Session

Flux - Facebooks Beitrag zur UI-Architektur der Zukunft

german

+

Facebook, Yahoo! und einige andere Schwergewichte beschreiten neue Wege im Aufbau von Webapplikationen. Aus der Not immer komplexerer Anwendungen entwickelte sich ein neuer Architekturstil, der verspricht, Ordnung ins sonst so übliche Frontend-Chaos zu bringen: Flux. Aufbauend auf den Ideen von Facebooks React-Framework, etabliert Flux einen einseitig gerichteten Datenfluss. Damit werden selbst komplexe Abhängigkeitsnetze zwischen Webkomponenten handhabbar, allerdings wird auch mit dem sonst so unumstrittenen Model-View-Controller-Ansatz gebrochen und an vielen Stellen mit bekannten Anti-Patterns gearbeitet.Ist es an der Zeit, diesem Beispiel zu folgen und einige Anti-Patterns zu Best-Practices zu erklären? Diese Session hilft Ihnen bei der individuellen Beantwortung dieser Frage. Wir führen in die beteiligten Konzepte und Frameworks ein, zeigen, in welchen Umfeldern Flux-basierte Architekturen hilfreich sind, und arbeiten Kompromisse heraus, die Sie bei der Adoption eingehen müssen.

Oliver Zeigermann, Stefan Toth, Oliver Zeigermann, Stefan Toth
Montag - 27. April 2015
09:40
Session

Die dunkle Seite der Microservices - 'und wie du besiegen sie kannst'

german

+

Microservices bringen bekanntermaßen eine ganze Reihe von Vorteilen (Skalierbarkeit, Ausfallsicherheit, Sprach- und Technologieunabhängigkeit, erhöhte Flexibilität ...) mit sich — durch den verteilten Architekturansatz aber auch einige Herausforderungen (Monitoring, verteilte Transaktionen, schwierigere Testbarkeit, Service Discovery ...).

In diesem Vortrag greifen wir die beiden Punkte „schwierigere Testbarkeit“ und „Service Discovery“ auf und zeigen mit Pact (Consumer-driven Contract Tests) und Eureka (Service Discovery) Lösungsmöglichkeiten hierzu. Abgerundet wird der Talk durch die praktische Vorführung einer Deployment-Pipeline, die das Testen mit Pact veranschaulicht.

Hendrik Still, Tobias Bayer, Hendrik Still, Tobias Bayer
Dienstag - 28. April 2015
15:00
Session

So sieht’s aus! Architekturüberblicke – Tipps und Tricks

german

+

Ihr habt eine bestehende Softwarelösung und wollt ihre Architektur erklären, vielleicht einem neuen Teammitglied oder einem Kooperationspartner? Der Quelltext ist zu „ausführlich“ und erzählt trotzdem nicht die ganze Geschichte. Was zeigt ihr in solchen Fällen von eurer Dokumentation? Ach, habt ihr nicht … Nicht schlimm: In dieser Session geht es um das Anfertigen eines Architekturüberblicks aus dem Nichts heraus. Das stumpfe Ausfüllen eines Templates führt dabei oft zu Frust. Ich zeige stattdessen, wie ihr die Aufgabe pragmatisch und zugleich wirkungsvoll angeht. Dabei diskutieren wir auch Formen, Zutaten, Werkzeuge und Vorgehen. Ihr lernt die minimale Ausprägung eines Architekturüberblicks kennen und erfahrt, in welchen Situationen ihr von diesem Minimalset abweichen könnt.

Stefan Zörner, Stefan Zörner
Mittwoch - 29. April 2015
13:40
Session

Auf Wolke sieben: Architektur und Deployment von Microservices für die Cloud

german

+

Die Gründe, ein eigenes RZ zu betreiben, schwinden rasant. Die Cloud lockt mit einer niedrigen Einstiegshürde und voller Flexibilität. Infastruktur lässt sich nun in wenigen Augenblicken und ohne Vorauszahlung, automatisiert per API-Call bereitstellen und wieder abschalten. Aber was bedeutet das für unsere Anwendungen und ihre Architektur? Kann man sie einfach unverändert in die Cloud deployen?

Alles hat seinen Preis. Um das Potenzial der Cloud zu nutzen, müssen neue Herausforderungen überwunden werden: von Datensicherheit bis zu kostenbasierter Architektur, über dynamische Provisionierung, Service Discovery und effiziente Deploymentmodelle.

Dieser Talk bietet Architekten und Entwicklern klare Anworten und praxiserprobte Lösungen für einen erfolgreichen Weg zum Infrastrukturhimmel. 

Axel Fontaine, Axel Fontaine
14:25
Session

Moderne Gestaltung für den Java-Desktop

german

+

Hier wird frische Gestaltung für den Java-Desktop gezeigt, die man in Swing, SWT und JavaFX umsetzen kann. An vielen Bildschirmbeispielen zeigen wir realistische und günstig machbare Überarbeitungen von Geschäftsanwendungen. Sie lernen, wie man Omas funktions- und formularzentriertes GUI in eine rollenbasierte, aktionszentrierte Anwendung überführt, die zeitgemäße User Experience bietet - so mächtig wie Java-Desktop, so schick wie Web. Dazu beleuchten wir, wie man technische, politische und menschliche Hürden bei einer solchen Neugestaltung überwindet.

Abschließend sehen Sie eine Umsetzung des SAP OpenUI5 für Swing und JavaFX, ein überraschend gelungenes Oberflächen-API für Geschäftsanwendungen, mit dem man nebenbei eine Brücke vom Java-Desktop zu HTML5 bekommt. 

Karsten Lentzsch, Karsten Lentzsch
Donnerstag - 30. April 2015
10:25
Session

Microservices-Architekturen mit Vert.x, Jetty und Docker

german

+

Trotz der momentan großen Aufregung über Microservices mit und ohne Docker gibt es relativ wenig Erfahrungsberichte über den produktiven Betrieb einer solchen Architektur und potenziell auftretender Probleme. In diesem Talk berichten wir von unseren Erfahrungen, die wir im letzen Jahr bei der Konzeptionierung und Implementierung einer Microservices-Architektur in der Cloud mithilfe von JVM-basierten Services gemacht haben. Die einzelnen Services wurden mithilfe von Vert.x und Jetty implementiert, in Docker-Container verpackt und über eine Continuous Delivery Chain in Amazon Web Services ausgeliefert. Wir zeigen sinnvolle Teststrategien und Lösungen für immer wieder auftretende Probleme wie beispielsweise Health Checks, Heartbeats, Monitoring und Skalierbarkeit. 

 

Björn Stahl, Sascha Möllering, Björn Stahl, Sascha Möllering
16:20
Session

Microservices - hilfreich auch im Enterprise-Kontext?

german

+

Microservices haben sich auf Konferenzen etabliert, aber wie sieht es mit klassischen Enterprise-Unternehmen aus? Hier gibt es viele Legacy-Systeme, SOAs und ESBs und allgemein heterogene Systemlandschaften. Selbstentwickelte Monolithen, kleine Services und Standardsoftware fristen da parallel ihr Dasein. Wie passen Microservices da hinein?

In diesem Vortrag zeigen wir an einem Fallbeispiel mit einer konkreten gewachsenen Systemlandschaft, wie man vom Konzept Microservices profitieren kann, welche Veränderungen hilfreich und welche notwendig sind, wie das Idealbild aussieht und wie weit man davon abweichen kann, ohne dass der Effekt ins Negative umschlägt. Dabei wird auch Thema sein, in welchem Verhältnis Microservices zu SOA und Integrationsarchitekturen (ESB und Co.) stehen.

Dennis Schulte, Tobias Flohre, Dennis Schulte, Tobias Flohre
Session

Boot your own Infrastructure - Spring Boot erweitern

german

+

Im Zuge des Hypethemas Microservices ist auch Spring Boot zum Gesprächsthema geworden. Dabei ist Spring Boot viel mehr als nur ein Microservices-Framework. In dieser Session wird in fünf Schritten gezeigt, wie man einen eigenen Spring Boot Starter schreibt, um genau die Infrastruktur zu booten, die der eigene Typ Anwendung benötigt – ein sehr nützliches Werkzeug auch im Enterprise-Umfeld, in dem man üblicherweise viele Anwendungen eines bestimmten Typs hat und proprietäre Technologien verwendet werden.

Dennis Schulte, Tobias Flohre, Dennis Schulte, Tobias Flohre
Freitag - 1. Mai 2015
10:40
Session

Mit React UI-Komponenten für das Web entwickeln

german

+

React ist ein JavaScript Framework, mit dem sich auf einfache Weise wiederverwendbare UI-Komponenten für das Web entwickeln lassen. Ursprünglich von Facebook entwickelt und verwendet, steht es mittlerweile auch als Open-Source-Projekt zur Verfügung und erfreut sich zunehmender Beliebtheit.

In diesem Talk stelle ich Ihnen die grundsätzlichen Konzepte von React vor und zeige Ihnen, inwieweit sich React von anderen Frameworks wie z.B. AngularJS unterscheidet. Anhand von Codebeispielen sehen Sie, wie Sie mit React Komponenten entwickeln können, die sich sowohl auf dem Client- als auch auf dem Server rendern lassen. Dabei werden wir uns auch ansehen, wie Sie bereits heute die neuste JavaScript-Version (ECMAScript 2015) zusammen mit React einsetzen können.

Nils Hartmann, Nils Hartmann
10:50
Session

Fundamentale Organisations- und Architekturprobleme durch Cross-Project Clone Detection finden

german

+

Clone Detection erkennt Copy-and-Paste-Programmierung im Sourcecode. Typischerweise wird Clone Detection innerhalb einer Anwendung eingesetzt. Es gibt jedoch gerade im Bereich der Architekturanalyse einen weiteren spannenden Einsatzfall: zur Erkennung von Copy and Paste im großen Stil zwischen verschiedenen Komponenten oder sogar Anwendungen. 

Im Vortrag stelle ich Cross-Project Clone Detection vor. Ich zeige unsere Erfahrungen aus mehreren Jahren Einsatz in verschiedenen Firmen und gehe besonders auf die Analyseergebnisse im Bereich von Anwendungsportfolios, Produktlinien und Produktfamilien ein. Dabei konnten wir Architekturprobleme sowohl auf Organisations- als auch auf technischer Ebene sichtbar machen.

Der Vortrag schließt mit konkreten Tipps, wie ihr selbst mithilfe des freien Open-Source-Werkzeugs ConQAT in wenigen Minuten Cross-Project Clone Detection auf eurem Code einsetzen könnt.

Elmar Juergens, Elmar Juergens
14:00
Session

Auf dem Weg zu komplexen adaptiven Architekturen

german

+

Die Kräfte, die auf die IT wirken, haben sich massiv verändert. Um darauf zu reagieren, muss sich die IT neu erfinden. Das betrifft nicht nur Prozesse und Organisationsmodelle, das betrifft auch die Architekturen der IT-Systeme. In dieser Session werden wir uns auf eine Reise von tayloristisch organisierten, hierarchischen Organisationen zu adaptiven, kontinuierlich lernenden Organisationen begeben und untersuchen, welche Architekturstile zu solchen Organisationen passen.

Uwe Friedrichsen, Uwe Friedrichsen
15:05
Session

Security-DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben

german

+

Diese Session zeigt Ihnen, welche Automatisierungsoptionen zur Überwachung bestimmter Sicherheitsaspekte in der agilen Softwareentwicklung bestehen. Ausgehend von dem etablierten DevOps-Konzept, mit dem im Übergang von Entwicklung zu Betrieb Prozesse automatisiert und verzahnt werden, wird mit "Security-DevOps" dieser Antrieb aufgegriffen und auf die Absicherung von Anwendungen gegen Hackerangriffe übertragen. Durch frühe Rückkopplung sicherheitstechnischer Findings an die Entwicklung im Rahmen der Automatisierung haben Ihre Pentester die Möglichkeit, sich auf die kniffligeren Sicherheitschecks zu konzentrieren - trotz geforderter kurzer Releasezyklen.

Christian Schneider, Christian Schneider
15:20
Session

Live-Hacking gegen Webanwendungen: Übernahme von DB-Servern und Angriffe auf XML-Schnittstellen

german

+

Sehen Sie anhand einer Livedemo, wie Angreifer gegen Webanwendungen vorgehen, Sicherheitslücken aufspüren und sie zu realen Ausnutzungsszenarien eskalieren. Erleben Sie, wie unerwartet einfach mithilfe von typischen (und untypischen) Sicherheitslücken sensitive Daten exfiltriert werden, wie XML-Standards aus Sicht eines Angreifers nutzbar sind und wie Serversysteme komplett übernommen werden können. Lassen Sie sich von den professionellen Vorgehensweisen bei der Ausnutzung von so genannten "Blind Attacks" allein mittels Seitenkanalangriffen überraschen.

Christian Schneider, Christian Schneider
Samstag - 2. Mai 2015
08:00
Session

Know your Enemies: Problembewusstsein als Grundlage von Änderungs- und Evolutionsprojekten

german

+

Die meiste Zeit verbringen wir in der Softwareentwicklung mit Änderung oder Verbesserung bestehender Systeme. Dabei ist es besonders wichtig, an den richtigen Stellen zu ändern (und nicht willkürlich die bekannten Refactoring-Patterns anzuwenden). Ich zeige auf, wie Sie systematisch die aus langfristiger und ökonomischer Sicht schlimmsten Probleme in Ihren Softwaresystemen und -architekturen finden können und wie Sie dann deren Lösung angehen können. Dabei spannen wir den Bogen von der Analyse der beteiligten Stakeholder und externen Schnittstellen über verschiedene Ansätze der (quantitativen) Code- und (qualitativen) Architekturanalyse bis hin zu fortgeschrittenen Themen wie Datenanalyse, Prozessanalyse oder Kontextanalyse. Anhand realer Probleme aus mittleren und großen Projekten zeige ich auf, dass die "Feinde" manchmal an überraschenden Stellen lauern.

Gernot Starke, Gernot Starke
Session

arc42 Reality Check

german

+

Seit über zehn Jahren gibt es arc42, die pragmatische Vorlage/Arbeitshilfe für Architekturdokumentation. Im Vortrag stelle ich diverse Optionen für den Praxiseinsatzvon arc42 vor - von Werkzeugen bis hin zur Organisation von Dokumentation im Projekt. Anhand von Beispielen zeige ich auf, wie Architektur- und Codedokumentation zusammenspielen und wie wir eine pragmatische und nützliche (technische) Projektdokumentation aufsetzen können. Insbesondere sehen Sie textbasierte (AsciiDoc-)Dokumentation im Zusammenspiel mit Modellierungswerkzeugen wie Enterprise Architect und Visual Paradigm im Einsatz - und wie das zusammen mit Git auch entwicklerfreundlich funktioniert. Gerne dürfen Sie mir (dem Sprecher) im Vorfeld Ihre konkreten Fragen zu Architekturdokumentation und arc42 zukommen lassen. Im Vortrag werde ich möglichst viele davon beantworten.

Gernot Starke, Gernot Starke
13:50
Session

JAX-RS 2.1: Große Pläne mit kleinem Versionssprung

german

+

Obwohl die Versionsnummer nur ein kleines Update vermuten lässt, ist die Liste geplanter neuer Features für JAX-RS 2.1 erstaunlich lang. Zu den wichtigsten Neuerungen sollen Support für Server-Sent-Events, Integration mit JSON Binding, erweiterte Unterstützung für Hypermedia, Declarive Security und die Verwendung von Ressourcenklassen als Controller für das neue MVC zählen. Auf Basis des aktuellen Stands des JSRs und insbesondere auch anhand diverser bereits existierender Erweiterungen des Jersey-Frameworks wird vorgestellt, wie die neuen Features voraussichtlich aussehen und wie sie in eigenen Anwendungen genutzt werden können.

Thilo Frotscher, Thilo Frotscher
Sonntag - 3. Mai 2015
10:05
Session

Agil wachsen

german

+

Die ersten Pflänzchen sind gepflanzt, das Team arbeitet mit einer agilen Projektmethode. Brauchen wir jetzt eine Erweiterung? Wenn ja, wie gehen wir am Schlausten vor? "Agile Skalierung" heißt das Zauberwort, aber ein Blick in die passenden Frameworks erschreckt euch eher; ganz schön viele neue und unbekannte Gremien und Prozesse. Was ist für euch jetzt wichtig? Was sind die nächsten sinnvollen Schritte für euch?

Die Referentin Judith Andresen zeigt einen praktischen Ansatz zur agilen Transition, bei der ihr iterationsweise agil skaliert. 

Judith Andresen, Judith Andresen
12:35
Session

Java-Batch: Der Standard fürs Stapeln

german

+

Die Java-EE-Welt hat sich bislang um das Thema Batchverarbeitung gedrückt, was zur Entwicklung von Batchframeworks wie Spring Batch geführt hat. Die Hintergrundverarbeitung von (i. d. R.) Massendaten ist aber ein wichtiger Bestandteil vieler Enterprise-Anwendungen, dem der Einzug von „Batch Applications for the Java Platform“ (JSR 352) in den Standard Java EE 7 nun Rechnung trägt. Der Vortrag stellt die Grundzüge der Offlineverarbeitung mit Jobs, Steps, Chunks etc. dar und demonstriert einige Beispiele auf dem Java-EE-7-Server WildFly 8.

Dirk Weil, Dirk Weil
17:35
Session

Continuous Delivery in the Cloud

english

+

Platforms like Amazon EC2 are most useful if you apply automation everywhere, from configuration management over CI up to deployment. This session will shed some light on best practices and patterns that proved useful. We will look at how DevOps is easier in a highly automated environment and learn to think about servers as disposable. We will create pipelines that assemble source, CI tools, configurmation management and stage-based deployment and introduce the concept of limiting blast radius.

Jonathan Weiss, Jonathan Weiss
19:15
Session

Ganz schön Groovy

german

+

Groovy kann Java-Projekte auf viele Arten bereichern. Wir werden in einer Reihe von Live-Demos anschauen, wie Groovy alltägliche Arbeiten erleichtert, Nebenläufigkeit absichert, sich mit Java 8 integriert und dabei mehr Typsicherheit als in Java erreicht.

Dierk König, Dierk König
19:50
Session

Effiziente Oberflächen mit dem Projektor Pattern

german

+

Wer viele Sichten in einer Benuteroberfläche realisieren muss, kann es sich nicht leisten, die immer von Hand zu bauen. Das ist selbst mit Werkzeugunterstützung zu teuer, inneffizient, schlecht wartbar und führt zu inkonsistenten Applikationen. Das Projektor Pattern bietet dafür Abhilfe. Es erzeugt Sichten und deren Anbindung automatisch aus Präsentationsmodellen – aber als Objekte und nicht als Sourcecode. Diese Session stellt das Pattern vor und zeigt deren Anwendung in Demos mit HTML5 und JavaFX.

Dierk König, Dierk König
22:40
Session

JavaFX Jumpstart

german

+

JavaFX ist cool, frisch und praxistauglich. Mit Java 8 noch ein Stück mehr. Schlagwörter wie Properties, Data Binding, FXML, Multi-Touch und Animationen lassen das Entwicklerherz höher schlagen. Die Session greift Highlights der immer beliebter werdenden Technologie auf, gibt interessierten Entwicklern einen Einblick in die Welt von JavaFX und zeigt, wie man ernstzunehmende Software entwickeln kann. Live-Coding inklusive.

Alexander Casall, Alexander Casall
Session

MVVM mit JavaFX

german

+

Die wahre Schönheit von UIs verbirgt sich unter Oberfläche, nicht zuletzt, weil der Unterhalt von schlecht wartbaren Anwendungen sonst sehr teuer wird. Saubere Architekturen erleichtern die Wart- und Testbarkeit. Neben den bekannten MV* Pattern, die bis dato ausgiebig in der Java-Welt exerziert wurden, gibt es mittlerweile Alternativen. Dazu zählt MVVM. Das Presentation Model Derivat kommt aus der .NET-Welt und hält mittlerweile in immer mehr Technologien, wie zum Beispiel JavaScript (Knockout.js) Einzug. Auch JavaFX-Entwickler können davon profitieren. In der Session wird gezeigt, wie mit JavaFX und MVVM testgetrieben Clientanwendungen entwickelt werden können.

Alexander Casall, Alexander Casall
Montag - 4. Mai 2015
08:30
Session

Java EE meets Microservices

german

+

Für die einen das Allheilmittel gegen die vielfältigen Probleme monolithischer Anwendungen, für die anderen lediglich „alter Wein in neuen Schläuchen“. Wohl kaum ein Architekturansatz polarisiert derzeit so extrem wie Microservices. Doch was steckt wirklich hinter dem „neuen“ Paradigma, welche Vor- und Nachteile bringt es mit sich und wie wird es in der Praxis bestmöglich umgesetzt? Der Workshop gibt einen Einblick in die Welt der Microservices im Zusammenspiel mit Java EE. Dabei steht nicht nur die reine Entwicklung im Fokus der Betrachtung, sondern auch Real-Life-Aspekte wie Deployment und Betrieb.

Lars Röwekamp, Lars Röwekamp
10:50
Session

In der Cloud – und dann?

german

+

Virtualisierung und Cloud-basierte Installationen von Anwendungen sind im Mainstream angekommen. Die IT-Verantwortlichen sparen, weil dadurch die Hardware besser genutzt wird und nur noch laufende Kosten verursacht werden. Doch ist das jetzt alles? Wollten wir nicht unsere Applikationen stabiler, verfügbarer und flexibler machen? Und steht nicht auch das Versprechen im Raum, dass wir mit der Cloud neue Features schneller liefern können? In dieser Stunde wollen wir diese Versprechen genauer unter die Lupe nehmen und Cloud-Architekturmuster herausarbeiten, die unsere Applikationen in die jeweilige Richtung optimieren.    

Bernd Rederlechner, Bernd Rederlechner
11:35
Session

Reactive Microservices mit Vert.x 3

german

+

Es hat sich mal wieder einiges getan in der Vert.x-Welt. Brachte der Wechsel von Version 1 auf 2 schon einiges an Neuerungen, wird das mittlerweile dritte Majorrelease die bestehenden Konzepte noch einmal deutlich erweitern. Einige Schmankerl sind dabei

  • verbesserte Unterstützung verschiedener Programmiersprachen
  • erweitertes Event Handling (Header, Custom Codecs, Local Consumers …)
  • neue HTTP-Infrastruktur 
  • neues Testframework
  • Integration der Reactive Extensions
  • Reactive Streams

Das Ganze werde ich anhand eines konkreten Beispiels erklären und zeigen, weshalb sich Vert.x 3 so gut zur Umsetzung des Microservice-Ansatzes eignet.

 

Jochen Mader, Jochen Mader
13:45
Session

Transactions? ACID, XA, BASE or what?

german

+

Nach dem „Microservices“-Vortrag der JAX 2015 Conference stellte ein Teilnehmer fest: „Jahre lang hast Du Transaktionen propagiert und jetzt braucht man die doch nicht?“ In dieser Session werde ich mit Grundlagen der Transaktionen im Hinblick auf Java-EE-Anwendungen diskutieren und den Einfluss auf Fachlichkeit, Architektur und Verteilung der Anwendungen diskutieren. Von lokalen Transaktionen über XA, ACID, Isolation Levels und BASE. Fragen der Teilnehmer werden sofort beantwortet.

Adam Bien, Adam Bien
13:50
Session

Nashorn: Nützliche Tricks, Hacks und Live-Hacking

german

+

Nashorn kommt mit Java 8 und ist eine ziemlich gute und schnelle Implementierung der JavaScript Engine (ECMAScript-262 Edition 5.1) mit einigen ES6-Features. In dieser Session werde ich einige Ideen präsentieren, wie man deutlich Zeit, Code und Abhängigkeiten mit Nashorn sparen kann. Dabei werde ich beide Richtungen (JavaScript -> Java und Java -> JavaScript) diskutieren. Der Schwerpunkt liegt dabei auf serverseitigen Java-EE-Anwendungen auf Java 8, aber auch Automatisierung wie z. B. CI / CD und Docker. Aus Zeitgründen werde ich auf Slides verzichten, dafür auf Fragen der Teilnehmer eingehen.

Adam Bien, Adam Bien
14:50
Session

Reaktive Geschäftsanwendungen

german

+

Asynchrone Verarbeitung, reaktive Architektur, Eventual Consistency – moderne Ansätze versprechen Skalierbarkeit und Robustheit, Geschäftsanwendungen dagegen werden oft komplett synchron, in Schichtenarchitektur und voll transaktional gebaut. Und dafür gibt es ja auch gute Gründe. Diese Session schlägt die Brücke zwischen modernen Konzepten und „klassischen“ Anforderungen. Sie zeigt, wo Geschäftsanwendungen von Asynchronität profitieren können und gibt praktische Hilfestellungen.

Arno Haase, Arno Haase
Session

Neues aus der Java-Trickkiste

german

+

Eine Stunde live in der IDE mit Neuem und Altbekanntem, Nützlichem und Überraschendem für Neulinge und alte Hasen. Eine Session mit Unterhaltungswert.

Arno Haase, Arno Haase
15:10
Session

Kein Hypermedia ohne den Client

german

+

Im Browser ist Hypermedia für uns das Natürlichste auf der Welt. In der Maschine-zu-Maschine-Kommunikation wird Hypermedia allerdings oft vernachlässigt. Doch gerade bei Microservice-Architekturen werden die Services oft über REST-konforme HTTP-Schnittstellen integriert. Im besten Fall wird noch davon gesprochen, wie man dem Server beibringt, ein Hypermedia-API anzubieten und wie es aussehen sollte. Der Client nutzt dann aber oft doch nur die in der Dokumentation gefundenen URL-Muster. Selbst wenn der Client die vom Server angebotenen Links nutzt, führt dies oft zu massiven Problemen mit der Performanz. Dabei wird immer außer Acht gelassen, dass das Thema Hypermedia auch entscheidend den Client beeinflusst. Deshalb wird in dieser Session gezeigt, was man für ein gutes Zusammenspiel im Sinne von Hypermedia bei der Implementierung des Servers und vor allem des Clients berücksichtigen muss, welche Vorteile es bringt und wie man Probleme mit der Performanz vermeiden kann.

Silvia Schreier, Silvia Schreier
16:50
Session

Hitliste der Legacy-Sünden

german

+

Jeder kennt Systeme mit schlechter Codequalität und Architektur – und die sind schwer änderbar. Aber andere Faktoren sind oft noch viel wichtiger. Was ist mit Tests? Oder dem Releaseprozess? Dieser Vortrag zeigt die populärsten Sünden in Legacy-Anwendungen, wie man sie beheben kann und so ein erfolgreiches Projekt auch mit einer alten Codebasis umsetzen kann.

Eberhard Wolff, Eberhard Wolff
17:00
Session

Microservices mit Spring Boot und Spring Cloud

german

+

Microservices stellen Entwickler vor neue Herausforderungen. Der Spring-Stack hält zwei Lösungen bereit: Spring Boot zur Implementierung des Microservice und Spring Cloud für den Aufbau der notwendigen Infrastruktur. Dieser Vortrag zeigt, wie die beiden Technologien praktisch funktionieren und Microservices-Architekturen mit diesem Ansatz implementiert werden können.

Eberhard Wolff, Eberhard Wolff
19:05
Session

Sicherheit in Single-Page-Webanwendungen

german

+

Sicherheit von Webanwendungen ist ein heißes Thema. Obwohl seit Jahren aktuell, werden die Meldungen über erneute Lücken gefühlt eher schlimmer als besser. Der Trend zu Single-Page-Anwendungen bringt für uns Entwickler eine ganze Reihe neuer Herausforderungen in punkto Sicherheit mit sich, da immer mehr Funktionalität in den Browser verlagert wird und dadurch mehr Code in nicht vertrauenswürdiger Umgebung läuft. In diesem Talk wir anhand von AngularJS gezeigt, auf was man bei SPAs achten muss. Anhand von Codebeispielen wird natürlich auch gezeigt, wie man sich z. B. vor Cross-Site Scripting, Cross-Site Request Forgery und Code-Injection schützt und welche Gefahren sonst noch so lauern.

Philipp Burgmer, Philipp Burgmer
20:55
Session

Hystrix in Action – ein Weg zu robuster Software

german

+

Jede Software profitiert von mehr Robustheit, insbesondere wenn die Integration von externen Diensten eine Rolle spielt. Hierbei unterstützt Hystrix mit Implementierungen von bekannten Resilience-Patterns wie u. a. „Fail Fast“ und „Graceful degradation“. Anhand von Beispielen aus realen Projekten wird die Praxistauglichkeit bewiesen. Doch Hystrix hilft uns nicht nur im Notfall, wenn ein integrierter Dienst nicht mehr so zuverlässig antwortet wie erwartet, sondern auch zur genaueren Ursachenanalyse. Die wertvollen von Hystrix gesammelten Daten zusammen mit dem mächtigen ELK-Stack ergeben ein ideales Analysetool. Spätestens nach der Demo sollte das Bedürfnis für den sofortigen Einsatz geweckt sein. 

Gerrit Brehmer, Gerrit Brehmer
22:40
Session

Der Weg in die Moderne: Migration von 1st-Generation-Enterprise-Applikationen

german

+

Kaum ist eine Webanwendung zwischen fünf und zehn Jahre alt, schon gilt sie als generalüberholungsbedürftig. Ergonomie und Usability? Responsive? Barrierefreiheit? Moderne, testbare Entwicklung? Gute Integration in heutige Frameworks und Technologien? Fehlanzeige. Doch was macht man mit einer alten Struts-, JSF-1.x- oder MVC-Framework-XYZ-Anwendung? Migrieren? Einstellen und neu entwickeln? Und wohin danach? Diese Session widmet sich den Herausforderungen der Modernisierung bestehender Webanwendungen und zeigt die Vor- und Nachteile der Migration zum Standard (JSF, EE8 MVC) und zu Quasistandards (Wicket, GWT, Vaadin, ...) aber auch clientseitigen Frameworks (Angular, Backbone, ...) auf. Lässt sich damit ein weiteres Struts 1.x vermeiden?

Jens Schumann, Jens Schumann
Session

Der glückliche Java-Entwickler

german

+

Nicht wenige Softwareentwickler sagen von sich, sie hätten ihren Traumberuf gewählt. Viele haben ihr Hobby zum Beruf gemacht. Da sollte man annehmen, dass die meisten auch große Freude an ihrer Arbeit haben. Doch ist das ein Trugschluss? In Gesprächen erfährt man häufig von Frust und Unzufriedenheit mit der Team- oder Projektsituation. Welche Voraussetzungen müssen also erfüllt sein, damit Softwareentwicklung Spaß macht? Welche Hindernisse gibt es regelmäßig? Welche Fehler werden verbreitet von Unternehmen gemacht? Als freiberuflicher Experte kommt man viel herum, sieht viele Teams und Projekte und erlebt so einige Anekdoten. In diesem Talk werden typische Beispiele aus fünfzehn Jahren Projekterfahrung vorgestellt, in denen Sie sich und Ihr Team sicher vereinzelt wiederfinden. Und es werden Wege aufgezeigt, um dem Ziel des glücklichen Java-Enwicklers ein großes Stück näherzukommen. Für Entwickler und Führungskräfte gleichermaßen geeignet.

Thilo Frotscher, Thilo Frotscher
23:00
Session

Was Sie über die Advanced-Zertifizierung für Softwarearchitekten wissen sollten

german

+

Wer über kurz oder lang die Prüfung zum Certified Professional for Software Architecture – Advanced anstrebt, muss sich nicht nur aus dem modular aufgebauten Advanced-Programm des iSAQB die richtigen Module aussuchen, sondern sollte sich auch frühzeitig auf die Prüfung einstellen. In diesem Vortrag gebe ich einen kurzen Überblick über den Advanced Level für die Zertifierung von Advanced-Softwarearchitekten, das Prüfungsverfahren und gebe meine persönlichen Ansichten zur Erfolgsstrategie für den Advanced Level.

Phillip Ghadir, Phillip Ghadir
23:20
Session

Effektive Code-Reviews

german

+

Software wird zunehmend komplexer, und gleichzeitig werden Releasezyklen immer kürzer. Effektive Code-Reviews sind notwendig, um in diesem Umfeld eine qualitätsgesicherte Nachverfolgbarkeit von Änderung über den gesamten Application Lifecycle zu ermöglichen. In der Session werden zunächst die technischen und organisatorischen Voraussetzungen für einen effektiveren Einsatz von Code-Reviews vorgestellt. Anschließend wird das Zusammenspiel verschiedener Tools zur nahtlosen Einbindung von Code-Reviews in den gesamten Entwicklungsprozess gezeigt.

 

Thorsten Maier, Thorsten Maier
Dienstag - 5. Mai 2015
14:55
Session

Spring Data REST – Repositories meet Hypermedia

german

+

REST-basierte Web Services sind heutzutage allgegenwärtig. Die Implementierung des Hypermediaaspekts stellt jedoch immer noch eine Herausforderung dar. Spring Data REST ist eine Open-Source-Bibliothek für Java, die auf Spring MVC und Spring Data aufsetzt und es Entwicklern sehr einfach macht, REST-Ressourcen für Repositories zu veröffentlichen. Dazu nutzt es intensiv Hypermedia, verschiedene RFCs, kommende Standards wie HAL und exponiert verschiedene Erweiterungsmöglichkeiten, um zusätzliche Funktionalität in die erzeugten Ressourcen zu integrieren.

Oliver Gierke, Oliver Gierke
Montag - 11. Mai 2015
09:10
Session

Agile Verteilung: Geht nicht, gibt’s nicht!

german

+

Über die Vereinbarkeit von agilem Vorgehen und verteilten Teams wird kontrovers gestritten. In der Literatur findet man verschiedene Aussagen zu agiler Softwareentwicklung mit verteilten Teams: 

• Zum einen wird behauptet, agile verteilte Entwicklung sei nicht möglich, da dafür persönliche Kommunikation von Angesicht zu Angesicht nötig sei und die Teammitglieder an einem Tisch zusammensitzen müssten. 

• Zum anderen gibt es ganze Bücher, die sich mit verteilten agilen Teams beschäftigen und sagen, das geht.

Wir gehörten lange zur ersten Fraktion. Bis wir selbst gezwungen wurden, verteiltes agiles Entwickeln zwischen Hamburg und Dresden auszuprobieren. Die Erfahrung der letzten sechs Monate hat uns eines Besseren belehrt: Auch agile Teams können verteilt arbeiten. In  diesem Vortrag geben wir unsere Erfahrung weiter und zeigen ganz konkret:

• Wie man die einzelnen agilen Techniken für verteilte Entwicklung interpretieren kann. 

• Wie man die Rollen (Scrum Master, Product Owner) bei agiler verteilter Entwicklung einsetzen sollte. 

• Auf welche Aspekte man bei verteilter agiler Entwicklung besonders achten muss. 

• Welche technische Unterstützung man einsetzen muss, um agile Prinzipien bei Verteilung umzusetzen.

• Was für die Teams in Hamburg und Dresden funktioniert hat und was nicht.

 

 

Dr. Carola Lilienthal, Dr. Carola Lilienthal
15:35
Session

Infrastruktur für Mircoservices: Docker Orchestration

german

+

Dieser Vortrag gibt einen Überblick über die technischen Lösungen für die Orchestrierung von Docker basierten Services. Erzeugen, betreiben und ändern von vielen Maschinen und Containern auf dem eigenen Notebook, im DataCenter oder in der Cloud ist eine Herausforderungen. Unsere Produkte werden ständig erweitert und an verschiedene Nutzungen angepasst. Um Microservices zu entwickeln, bedarf es einer guten Koordination von Gruppen von Prozessen und ihren Abhängigkeiten. Das Docker-Ökosystem bietet hier vielversprechende Werkzeuge um automatische Skalierung, Fehlerbehebung und Deployment. Der Vortrag stellt den praktischen Nutzen der Docker-Orchestration-Tools aus dem Docker-Ökosystem vor und demonstiert den Umgang damit.

Peter Roßbach, Peter Roßbach
Montag - 2. November 2015
09:00 bis 17:00
Workshop

Java EE 7 – Enterprise-Anwendungen ohne Ballast

german

+

Im Gegensatz zu älteren Versionen ist die Entwicklung mit Java EE 7 trotz der Komplexität der Anwendungslandschaft einfach, teilweise sogar einfacher als im Standalone-Umfeld. Das wollen wir in diesem Workshop mit einem durchgängigen Beispiel zeigen. Wir setzen dabei natürlich auf JPA, BV, CDI, EJB und JSF, aber auch auf Wunsch der Teilnehmer auf weitere Teile der Plattform, z. B. Timer, asynchrone Verarbeitung, WebSocket, REST, Batch ... Ein besonderer Fokus liegt auf den neuen Features in Java EE 7, z. B. Konverter, Entity Graphs oder Faces Flows.Das Beispiel wird interaktiv entwickelt und steht den Teilnehmern als Git-Repository zum aktiven Mitmachen zur Verfügung. Benötigt wird nur ein Notebook mit Java 8, Maven, einer IDE mit Maven-Unterstützung und WildFly 8 oder GlassFish 4. Details zur Vorbereitung stehen ab Oktober auf https://github.com/dirkweil/javaee-workshop.

Dirk Weil, Dirk Weil
Workshop

Der Docker Basis Workshop

german

+

Das Thema Docker sorgt gerade für viel Aufsehen. Ob kleine Start-ups oder große Firmen -- schon aufregend viele Unternehmen setzen auf die Open-Source-Technologie Docker. Aber was hat es mit dieser Art von Containern auf sich, die den Virtualisierungsmarkt aufrollen und die Softwareentwicklung nachhaltig verändern wollen? Docker verspricht einen schnellen Start, flexible Konfiguration und stabile Images für Entwicklung und Produktion. In diesem Workshop wollen wir diesen Versprechen praktisch nachgehen.

Wir starten mit einem Überblick und stellen die ersten Schritte beim Einsatz von Docker vor. Die Teilnehmer lernen die wichtigsten Befehle, Anweisungen und Konzepte praktisch kennen. Anhand eines ausführlichen Beispiels zeigen wir, wie ein Microservice mit Java implementiert, mit Docker installiert und in einer Umgebung mit anderen Services integriert wird. Außerdem diskutieren wir das aktuelle Docker-Ökosystem und klären über Chancen und Risiken auf.

Dieser Workshop vermittelt die Docker-Grundlagen in nachvollziehbaren Schritten und versetzt die Teilnehmer in die Lage, anschließend selbst zu entscheiden, ob und wie Docker im eigenen Unternehmens- und IT-Kontext sinnvoll einsetzbar ist.

Peter Roßbach, Peter Roßbach
Workshop

Einführung in JavaScript für Java-Entwickler

german

+

In diesem ganztägigen Workshop führe ich euch in alle für Java-Entwickler wesentlichen Spracheigenschaften von JavaScript ein. Wir werden die Themen Objekte, Arrays, Funktionen, prototypische Vererbung und Module besprechen. Der Workshop enthält Übungen am eigenen Rechner.

Oliver Zeigermann, Oliver Zeigermann
Workshop

Concurrency in der Praxis

german

+

Java hat ein solides Memory Model und eine Vielzahl reifer und mächtiger Bibliotheken für Concurrency. Aber welcher Ansatz hilft am effektivsten, die jeweiligen Ziele zu erreichen, und wie setze ich ihn im konkreten Projekt ein? Wie bewertet man alternative Ansätze und Implementierungen?

Dieser Workshop vermittelt praktisches Handwerkszeug, um mit Concurrency in verschiedenen Situationen umzugehen. Das beginnt mit einer Analyse der Gründe für einen Einsatz von Concurrency - ist sie einfach durch ein Framework vorgegeben? Soll ein System schneller antworten? Soll der Durchsatz für einen bestimmten fachlichen Use Case optimiert werden?

Außerdem behandelt er eine Reihe von Grundmustern, denen man in nebenläufigen Systemen immer wieder begegnet: Locks, Lock-freie Algorithmen, Queues mit Worker Threads, seiteneffektfreie Programmierung etc. Wir werden in dem Workshop ihre jeweiligen Stärken und Schwächen beleuchten, die in verschiedenen Szenarien unterschiedlich zum Tragen kommen.

Schließlich geht der Workshop auf das große Feld des Testens von nebenläufigem Code ein, und zwar sowohl auf Korrektheit als auch auf Performance. Das Ganze wird durch eine Behandlung von Java Memory Model und moderner Hardware abgerundet.

Der Schwerpunkt liegt dabei durchgängig auf lauffähigem Quellcode und praktischen Übungen durch die Teilnehmer, die deshalb ein Notebook mitbringen sollten.

Arno Haase, Nico Feiertag, Arno Haase, Nico Feiertag
Workshop

Workshop zu Lambdas und Streams in Java 8

german

+

Der Workshop widmet sich den wichtigsten Neuerungen von Java 8: Es geht einerseits um neue Sprachmittel (Lambda-Ausdrücke, Methoden-/Konstruktorreferenzen) und andererseits um die Erweiterungen des Collection-Frameworks des JDK (Streams, Collectoren, Functional Interfaces). Insbesondere das Stream API ist umfangreich, und seine effiziente Nutzung erfordert einen guten Überblick über das API und seine Möglichkeiten.

Angelika Langer, Klaus Kreft, Angelika Langer, Klaus Kreft
Freitag - 6. November 2015
09:00 bis 17:00
Workshop

Microservices-Workshop: Architektur und Praxis

german

+

Microservices sind in aller Munde. In diesem Workshop wollen wir nicht nur theoretisch über Microservices sprechen, sondern ganz praktisch ein System aus Microservices aufbauen und diskutieren. Zunächst gibt es eine Einführung in Microservices-Architekturen und ein konkretes Beispiel. Dann geht es in die Praxis: containerloses Deployment mit Spring Boot und Koordination der Anwendungen mit Spring Cloud. Dann folgt der Betrieb der Anwendungen mit Docker. Am Ende können wir eine Anwendung aus mehreren Microservices praktisch betreiben und weiterentwickeln.

Eberhard Wolff, Eberhard Wolff
Workshop

Coole Web-Apps mit AngularJS, TypeScript und Spring Boot

german

+

In diesem Workshop werden wir eine kleine, aber vollständige Webapplikation entwickeln. Der Clientteil basiert auf AngularJS, TypeScript und ein wenig Bootstrap. Der Serverteil basiert auf Spring Boot, verwenden werden wir außerdem Spring Data/Rest/HATEOAS. Wir werden also RESTful Web Services entwickeln, die um Hypermedia angereichert sind. Dabei wird Kai die Grundlagen von Spring Boot und den verwendeten Farmeworks erklären und auch die generellen Prinzipien von REST und HATEOAS (Hypermedia As The Engine Of Application State, ein wichtiges REST-Architekturprinzip). Für die Cliententwicklung gibt Kai eine kurze Einführung in AngularJS, TypeScript und die gängigen JavaScript-Entwicklungstools wie Grunt, npm, Bower, Jasmine etc.

Kai Tödter, Kai Tödter
Workshop

Webarchitektur und Qualitätsmerkmale

german

+

In diesem Workshop haben Teilnehmer die Möglichkeit, im Rahmen von kleinen Arbeitsgruppen unterschiedliche Aspekte von Webarchitekturen gemeinsam zu entwickeln. Dabei erlangen die Teilnehmer ein vertieftes Verständnis der spezifischen Probleme von Webarchitekturen und ihren Qualitätsmerkmalen. Besonderes Augenmerk liegt im Workshop auf der Führungsrolle des Architekten, in der Entwicklung und Evolution dieser oft vom Marketing getriebenen Informationssysteme. Die Arbeit findet an konkreten Beispielen eines Onlineshops, einer Firmenwebsite sowie eines Intranets statt.

Daniel Takai, Daniel Takai