Montag - 3. November 2014
09:00 bis 17:00
Power Workshop

REST mit JAX-RS 2.0

german

+

Mit Java EE 7 und JAX-RS 2.0 lassen sich einfache REST-Anwendungen in relativ kurzer Zeit erstellen. Darüber hinaus bietet der Standard jedoch auch Unterstützung für weitergehende, komplexere Anforderungen. Dieser Workshop behandelt JAX-RS 2.0 in der Tiefe. Dazu wird Schritt für Schritt eine REST-basierte Anwendung auf Basis des Standards entwickelt. Fortgeschrittene Themen und Anforderungen wie Validierung, Logging, Hypermedia, Fehlerbehandlung, wiederverwendbare Erweiterungen, Bindings, Paging oder Security werden vorgestellt und demonstriert.

Thilo Frotscher
Power Workshop

Der pragmatische Architekturworkshop

german

+

Dieser Workshop vermittelt ganz praktisch, wie Architekturen für Softwaresysteme erstellt werden. Zunächst werden die wichtigsten Grundlagen für Architekturkommunikation, Architekturdokumentation und für den Umgang mit nicht funktionalen Anforderungen vermittelt. Dann wird es praktisch: Die Teilnehmer entwickeln selbst Architekturen, um so die gelernten Konzept ganz praktisch umzusetzen.

Eberhard Wolff
Power Workshop

Java EE 7 - Enterprise-Anwendungen ohne Ballast

german

+

Im Gegensatz zu älteren Versionen ist die Entwicklung mit Java EE 6/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 nach 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
Power Workshop

Einführung in die Sprache 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, Exceptions, Funktionen, prototypische Vererbung und Module besprechen. Aus Zeitgründen müssen wir uns auf die Sprache JavaScript beschränken. Werkzeuge, Techniken und Frameworks werden wir nicht behandeln können. Der Workshop enthält Übungen am eigenen Rechner. Bringt einen Laptop mit, auf dem Java und ein Chrome-Browser installiert sind.

Oliver Zeigermann
Power Workshop

Workshop zu Lambdas und Streams in Java 8

german

+

Der Workshop widmet sich zwei Neuerungen, die mit Java 8 neu hinzugekommen sind. Es geht einerseits um die neuen Sprachmittel (Lambda-Ausdrücke, Methoden-/Konstruktorreferenzen, Default und statische Interfacemethoden) und andererseits um die Neuerungen im Collection-Framework des JDK (Streams, Collectors, Functional Interfaces). Alle Teilnehmer sollen bitte unbedingt ihre Notebooks mitbringen, denn es soll praktisch geübt werden. Der Workshop gibt einen Überblick über die Neuerungen, der die Teilnehmer in die Lage versetzt, erste Experimente mit Lambdas und Streams zu machen.

Angelika Langer, Klaus Kreft
Power Workshop

Der Docker Basis Workshop

german

+

Docker hat im vergangenen Jahr für viel Furore gesorgt. Ob in den USA oder in Deutschland, ob bei kleinen Start-ups oder großen Firmen: Viele setzen auf die Open-Source-Technologie Docker. Aber was hat es mit der Containertechnologie auf sich, die verspricht, den Virtualisierungsmarkt aufzurollen und die Softwareentwicklung nachhaltig zu verändern? Docker verspricht einen schnelleren Start, flexible Konfiguration und stabile Images für Entwicklung und Produktion. In diesem "Docker Workshop Day" wollen wir diesen Versprechen praktisch begegnen. Nach einem kurzen Überblick geben wir erste Schritte beim Einsatz von Docker und erklären im Hands-on-Modus die wichtigsten Befehle und Direktiven. Anschließend zeigen wir an einem Beispiel, wie ein Microservice mit Java implementiert und Docker installiert wird. Dieser Workshop vermittelt die Grundlagen in nachvollziehbaren Schritten, damit Sie selbst entscheiden können, ob Docker in Ihrem Set-up sinnvoll ist. Im letzten Abschnitt bieten wir Ihnen einen Überblick über das aktuelle Docker-Ökosystem und diskutieren mit den Teilnehmern die Chancen und Risiken.

Die Stationen des Workshops im Einzelnen:

Docker Frühschoppen

Matthias Lübken, Stefan Zeissler, Peter Rossbach, Andreas Schmidt

Damit der Docker Workshop ein persönlicher Erfolg wird, muss das eigene Notebook vorbereitet sein. Für Umsteiger und Kurzentschlossene stehen wir mit Rat und Tat hier bereit, noch mal alles möglich zu machen.

Docker Basics: Praktische Docker-Kenntnisse erlangen

Matthias Lübken, Stefan Zeissler

Docker automatisiert das Deployment von beliebigen Anwendungen. Wir wollen hier in kleinen praktischen Schritten diese neue Welt zusammen entdecken. Es werden die Docker-Werkzeuge und der Umgang damit für einen Java Entwickler vermittelt. Wir wollen zeigen, wie die einzelnen Komponenten aufgebaut sind und die Prozesse zusammenspielen. Wichtig ist uns, dass auf dem eigenen Notebook Erfahrung gesammelt werden. Schrittweise wollen wir anhand von Beispielen den Umgang mit Docker erlernen.Voraussetzung: Funktionierende Docker-Installation mit geladenen OS Images. Mac oder Windows Notebook,  Virtualbox 4.3.1x, Git, Browser und Editor.Der Veranstalter sorgt für eine ausreichend stabile Anbindung an das Internet und WLAN im Raum.Riesige Downloads müssen wir vermeiden und stattdessen einen lokalen Rechner ins Netz bringen und mit Sticks arbeiten.=> Wir stellen Sticks und GitHub-Projekte bereit.

Docker als Plattform für Microservices

Peter Roßbach, Andreas Schmidt

Docker automatisiert das Deployment von beliebigen Anwendungen mithilfe von leichtgewichtigen, portablen und autarken Linux-Containern. Durch den geringen Overhead, die enorme Performance und die einfache Bedienbarkeit verändert Docker unsere Anwendungsentwicklung fundamental. Das Entwickeln einer Mircoservice-Architektur ist ein idealer Kandidat, dies zu demonstrieren.

Chancen und Risiken des Docker-Ökosystems

Timo Derstappen, Peter Roßbach, Matthias Lübken

Docker ist mehr als eine Containertechnologie. Docker etabliert ein Open-Source-Ökosystem, was dazu führt, dass Projekte wie Pilze aus dem Boden sprießen und die Neugier und Vielfalt täglich wächst. Wir wollen unsere Erfahrung mit euch teilen und diskutieren und einen Ausblick geben, wohin die Reise gehen kann. Freut euch auf einen regen Ausklang des Workshops und neue Ideen, Docker in eurer Infrastruktur anzuwenden.

Andreas Schmidt, Matthias Lübken, Peter Roßbach, Stephan Zeissler, Timo Derstappen
09:00 bis 09:45
Session

Management vs. Agile

german

+

Wie erkläre ich einem klassischen Manager, warum Programmierer effizienter werden, wenn sie mit zwei Leuten an der gleichen Aufgabe sitzen? Warum ein Programmierer in 14 Stunden täglich nicht mehr schafft als in 8 und warum man ein Team effizienter machen kann indem man das Programmiergenie entfernt. Wie man effizienter wird, wenn man Low-Prio-Tasks vor High-Prio-Tasks macht und nur 6 von 8 Stunden tatsächlich plant. Und warum man mit einem detaillierten Plan weniger Verlässlichkeit bekommt als ohne.

Johann-Peter Hartmann
09:45 bis 10:30
Session

Zusammen arbeiten in Unternehmensanwendungen

german

+

Egal, ob Web oder Desktop, mit einer passenden Architektur kann man Applikationen bauen, die echte Zusammenarbeit ermöglichen. In einer 360-Grad-Rundumsicht betrifft das die Zusammenarbeit mit Kunden, mit Experten, mit Teamkollegen und mit Hilfskräften. Das Neue daran ist, dass auch die sonst eher stumpfen Enterprise-Applikationen plötzlich zu einem gemeinsamen Erlebnis mit einer Interaktivität werden, die man sonst nur von Chats, Spielen und Werkzeugen wie Google Docs kennt.

In dieser Session gehen wir durch Anwendungsbeispiele für dieses Konzept, zeigen Demos und Code, beleuchten die architekturellen Voraussetzungen und zeigen am Beispiel von OpenDolphin Umsetzungsvarianten mit JavaFX und HTML5.

Dierk König
11:45 bis 12:30
Session

Und wie war ich so? – Die Krux mit dem Feedback

german

+

Irgendwie macht es keiner richtig: Feedbackmethoden wie z.B. jährliche Mitarbeitergespräche, Beurteilungsbögen, „Kaffeerunden“ sind anstrengend, nutzen sich ab, langweilen oder werden schnell politisch - für unseren agilen Start-up-Alltag schlicht unpassend. Was könnte eine Alternative sein? Wir haben uns umgehört, zeigen bestehende innovative Alternativen und präsentieren einen völlig neuen Weg für persönliches, kontinuierliches Feedback, den wir im Experiment getestet haben.

Anna Löw
15:30 bis 16:15
Session

Let's talk about Speed?

german

+

Kennen Sie nicht auch die Situation, dass es mal wieder dem Management nicht schnell genug geht? Oder Sie verstehen nicht, wieso die Anforderung x so lange benötigt? Wieso ist man in der Webentwicklung mit weniger Aufwand bei gleichen Ergebnissen im Vergleich zur nativen mobilen Entwicklung in iOS oder Android? Wenn Sie sich auch ständig dem Druck "das muss schneller gehen" ausgesetzt fühlen, dann ist diese Session genau richtig für Sie. Carsten Sensler hat als Vice President "Technology & Architecture" bei einem DAX30-Konzern aus Bonn genau diesen Druck gehabt und ausgeübt und dabei seine persönlichen Erfahrungen mit dem Executive Management und auch dem Entwicklerteam sammeln dürfen. Andre Karalus war Teil des Entwicklunsgteams und kann aus erster Hand berichten, wie er mit mir sowie mit der gesamten Situation umgegangen ist. In dieser Session werden beide ihre Erfahrungen und auch Auswege aus dem Dilemma aufzeigen. Abgerundet wird die Session mit einer lebhaften Diskussion unter den Teilnehmern über ähnliche oder sogar gleiche Erfahrungen.

Andre Karalus , Carsten Sensler
16:15 bis 17:00
Session

Softwarearchitektur in agilen Teams - Vom Elfenbeinturm zur Selbstorganisation

german

+

Die Scrum-Einführungsphase ist erfolgreich abgeschlossen. Die Teams arbeiten nach agilen Methoden und berücksichtigen die agilen Werte. Die Stories werden in den Sprints umgesetzt. Es geht voran. Der Product Owner ist zufrieden. Eigentlich läuft alles super. Aber irgendwie wird es immer schwieriger, neue Anforderungen umzusetzen. Es fehlt an einem durchgängigen Konzept, einer übergreifenden Architektur. Was ging schief? 1. Welche Aufgaben ein Softwarearchitekt zu meistern hat. 2. Wie der Architekt aus seinem Elfenbeinturm entkommen kann. 3. Wie ein agiles Team Architekturaufgaben übernehmen kann. 4. Wie die Flexibilität in der Architektur erreicht werden kann, damit auch in Zukunft die sich ständig ändernde Anforderungen umgesetzt werden können. 5. Welche Praktiken helfen, um die für die Flexibilität passenden Abhängigkeiten zwischen den Komponenten zu finden.

Roland Mast
Dienstag - 4. November 2014
10:15 bis 11:30
Session

Reactive Streams: Handling Data-Flow the Reactive Way

english

+

Building on the success of Reactive Extensions — first in Rx.NET and now in RxJava— we are taking Observers and Observables to the next level: by adding the capability of handling back-pressure between asynchronous execution stages we enable the distribution of stream processing across a cluster of potentially thousands of nodes. The project defines the common interfaces for interoperable stream implementations on the JVM and is the result of a collaboration between Twitter, Netflix, Pivotal, Red Hat and Typesafe. In this presentation I introduce the guiding principles behind its design and show examples using the actor-based implementation in Akka.

Roland Kuhn
Session

Softwarearchitekturen für die nächste Generation Businesssysteme

german

+

Neue Geschäftsansätze ändern die Rolle, die Software für den Geschäftserfolg spielt. Das bringt neue, nicht funktionale Anforderungen mit sich - und die müssen durch andere Softwarearchitekturen erfüllt werden. Wie können Änderungen an der Software schneller ausgerollt werden? Wie kann der Erfolg der Software in der Praxis gemessen werden? Welche Auswirkungen haben die Änderungen in der Organisation auf die Architektur? Am Ende steht ein Ansatz, der aktuelle Enterprise-Architekturen weiterdenkt.

Eberhard Wolff
Session

Spring IO - Spring neu erfunden?

german

+

Nach der erfolgreichen Veröffentlichung von Spring 4.0 im Dezember 2013 folgt im Frühjahr 2014 das erste Release der Spring-IO-Plattform. Der Vortrag stellt vor, was unter dem Begriff zu verstehen ist und wie die Plattform das Arbeiten mit den Spring-Projekten für Entwickler und Entscheider einfacher macht. Wir geben weiterhin einen Ausblick in die weiteren Themen des Spring Days und welche Themen für das Gesamtprojekt 2014 Schwerpunkte darstellen.

Oliver Gierke
Session

Programmiertechniken mit Lambda-Ausdrücken und Interfacemethoden

german

+

Neue Sprachmittel ermöglichen neue Programmiertechniken. In Java 8 sind einige neue Sprachmittel hinzugekommen: Lambda-Ausdrücke, Methoden-/Konstruktor-Referenzen, Default- und statische Interfacemethoden). Nach einer kurzen Vorstellung der Sprachmittel sehen wir uns an, wie man sie für elegante API-Designs und neue Implementierungstechniken einsetzen kann.

Angelika Langer
Session

Behavior-driven Business Process Development mit BPMN

german

+

Projekte, in denen ausführbare Geschäftsprozesse entwickelt werden, stehen vor einer Reihe von Herausforderungen: Die fachlichen Modelle müssen konsistent sein und alle Anforderungen der verschiedenen Stakeholder mit ihren unterschiedlichen Interessen berücksichtigen und miteinander in Einklang gebracht werden. Behavior-driven Development (BDD) schlägt hier ein Vorgehen für die "klassische" Softwareentwicklung vor, das auf die Prozessentwicklung ausgedehnt werden kann: Anstatt textuell werden Szenarien parallel zu den fachlichen Modellen in BPMN entwickelt. Dadurch ist es leicht, mit Stakeholdern den Prozess in Abläufe und Varianten zu zerlegen und aus den Szenarien Testfälle abzuleiten, indem zusätzlich zum Prozessfluss die erwarteten Daten modelliert werden. Diese auch für die Fachseite verständlichen Modelle können in der technischen Implementierung zu ausführbaren Testfällen transformiert werden. Hierbei ist es mit wenig Aufwand möglich, Unit-, Integrations- und Systemtests abzuleiten und automatisiert ablaufen zu lassen. Durch dieses Vorgehen ist es zu jeder Zeit möglich, den Fortschritt der Umsetzung der fachlichen Anforderungen nachzuvollziehen und für Refactorings und Erweiterungen einen sicheren Rahmen zu schaffen. In diesem Vortrag werden wir das Vorgehen konkret anhand eines Beispiels vorstellen und insbesondere die Modellierung der Szenarien und Testfälle mittels BPMN zeigen.

Daniel Lübke, Tammo van Lessen
Session

Maßgeschneiderte JSF-Komponenten mit JavaScript

german

+

In der Vergangenheit war die Wahl der Komponentenbibliothek eine wesentliche Entscheidung für jedes JSF-Projekt. In jüngster Zeit erschweren geänderte Lizenzbedingungen und verringerte Entwicklungsaktivität die Wahl einer geeigneten Bibliothek jedoch enorm. Außerhalb der reinen JSF-Welt erfreuen sich gleichzeitig JavaScript-Frameworks wie Bootstrap und jQuery UI wachsender Beliebtheit. Mithilfe von Composite Components lassen sich JavaScript-Komponenten jedoch problemlos in eine JSF-Anwendung integrieren. Diese Session zeigt anhand konkreter Beispiele, wie sich häufig benötigte Komponenten für Geschäftsanwendungen ganz einfach selbst erstellen lassen und in vielen Fällen den Einsatz einer vollwertigen Komponentenbibliothek überflüssig machen kann.

Christian Kaltepoth
Session

Vom Wiegen allein wird die Sau nicht fett - Von Qualitätsanalyse zu wirksamer Qualitätsverbesserung

german

+

Es gibt Qualitätsanalysewerkzeuge wie Sand am Meer. Sie werden auch von vielen Teams eingesetzt. Meistens führen sie jedoch nicht zu Qualitätsverbesserungen. Was macht sie für wenige Teams wertvoll, für die meisten aber scheinbar nutzlos? Die Ursachen sind vielfältig, aber interessanterweise bei den meisten Teams die gleichen. Dieser Vortrag stellt Erfahrungen, Lessons Learned und Best Practices aus sieben Jahren Praxiseinsatz in unterschiedlichen Teams, Domänen und Firmen vor.

Elmar Juergens
12:00 bis 13:00
Session

Streams und ihre Performance bei paralleler und sequenzieller Ausführung

german

+

Die Session gibt einen Einblick in die Mechanismen und Performance der Java-8-Streams. Es wird erläutert, was Streams sind, wie sie sich von herkömmlichen Collections unterscheiden, wie sie ihre Operationen parallel oder sequenziell ausführen. Interessant sind dabei die parallelen Operationen, insbesondere ihr Performanceverhalten im Vergleich zur sequenziellen Ausführung.

Klaus Kreft
Session

Architektur 201x: Neue Konzepte für die Architektur komplexer Systeme

german

+

Während im Enterprise-Umfeld Systeme häufig immer noch nach denselben Mustern entworfen werden wie vor 10 oder 15 Jahren, haben sich die Dinge in den immer größer werdenden Internet-Plattformen, -Diensten und Anwendungen der großen Internet-Anbieter dramatisch weiterentwickelt. Dazu zählen vor allem die Konzepte zu Modularisierung in viele einzelne, voneinander weitgehend unabhängige Systeme, der deutlich flexiblere und tolerantere Umgang mit verschiedenen Programmiersprachen und Frameworks und passende Entwicklungs- und Deployment-Strategien, die weniger eine gemeinsame technologische Implementierungsbasis, sondern eher gemeinsame Schnittstellen voraussetzen. In diesem Vortrag diskutieren wir, wie wir nach der Maxime “weniger ist mehr” kleinere Systeme deutlich effizienter entwickeln und diese zu großen Systemlandschaften zusammensetzen können, ohne uns von einzelnen Technologieplattformen abhängig zu machen. Dass solche Systemlandschaften dann auch noch rein zufällig perfekt mit modernen Cloud-Ansätzen zusammenspielen, versteht sich – aus Gründen der Buzzword-Kompatibilität – fast von selbst.

Stefan Tilkov
Session

Hypermedia APIs - Der Rest von REST

german

+

Hypermedia heißt das Zauberwort, um RESTful APIs gemäß der Lehre von Roy Fielding komplett zu machen. Die Anwendung als Zustandsautomat, der Links zwischen Ressourcen nutzt, um seinen Funktionsumfang zu definieren. Aber lohnt sich der Aufwand? Wo liegen die Vorteile des generischen Ansatzes zur Gestaltung von REST-Services? In der Session wird am praktischen Beispiel gezeigt, wie performante und änderungsresistente Hypermedia APIs im Server und Client werden.

Stefan Bley
Session

BPM War Stories, oder: Wie baue ich eine BPM-Architektur auf?

german

+

BPM + SOA heißt heute schon lange nicht mehr Zero-Code BPMS + ESB. Die Architekturvarianten sind dank schlankerer Technologie heute sehr viel vielfältiger, sowohl BPMS oder ESB können auch "kleine" Libraries sein. Dadurch stellen sich viele Fragen: Ist Remote-Kommunikation oder InVM besser? Und wie steht es dann mit dem Betrieb oder der Transaktionssteuerung? Was ist beim Clustering zu beachten, und wie skaliert die Lösung überhaupt? Was soll ich tun, wenn ich auf der grünen Wiese starte? Und wie komme ich dahin, wenn die Wiese nicht mehr ganz so grün ist? In diesem Vortrag möchte ich unsere Erfahrung aus zahllosen BPM-Projekten an Hand von Beispielarchitekturen unserer Kunden darstellen sowie Vor- und Nachteile verschiedener Möglichkeiten erläutern.

Bernd Rücker
Session

Spring XD, Spring Integration, Spring Batch und Apache Hadoop 2.x Quickstart

german

+

Wollten Sie schon immer wissen, was der Zweck all dieser Projekte ist, und wie man sie zusammen benutzen kann? Dann sind Sie hier genau richtig. Sie bekommen eine Einführung in Spring XD und Apache Hadoop 2.x, einschließlich einige Tipps zur Installation und Konfiguration. Um auch alle Details zu verstehen, gibt es ebenfalls eine Kurzeinführung in Spring Integration und Spring Batch. Es sind keine Vorkenntnisse notwendig.

Mike Wiesner
Session

BEA - Business Enterprise Architect - oder "Der Businessversteher"

german

+

Enterprise-Architektur wird oft als eine Disziplin der IT gesehen, entsprechend sind auch die genutzten Werkzeuge und Ergebnisse sehr IT-lastig. Wir zeigen einen Weg des Enterprise-Architekten zum Business-Enterprise-Architekten, damit Sie problemlos mit Geschäftsstrategen genauso diskutieren können wie mit Fachseiten oder ITlern. Die Modelle "Responsiveness Grid", "Business Operating Model", "Capabilities" sowie "Architecture Styles" und "Domain Model" und ihre Beziehungen untereinander sind Ihnen ab heute nicht fremd, auch praktische Beispiele sind dabei. Dabei kann Carsten aus der Sicht des reinen ITlers berichten und aus der Sicht, sich mit dem Topmanagement eines DAX-30-Konzerns zu umgeben. Am Ende der Session haben Sie viele Impulse, wie sich Ihr Sprachgebrauch und Ihre Werkzeuge erweitern lassen können, damit die berühmte Brücke zwischen IT und Business überwunden oder zumindest deutlich kürzer wird.

Sie lernen:Wie gestalte ich die konkrete Umsetzung der IT-Strategie ausgehend von der Businessstrategie?Was ist Business-Enterprise-Architektur und ihre Modelle?Wie kann ich die strategische Diskussion mit dem Business verbessern?Wie kann ich die strategische Diskussion mit der IT verbessern?Wie kann ich die strategische Diskussion mit dem CIO/CEO verbessern?

... und wie immer sehr bildlich dargestellt mit einem guten Mix aus Theorie, angewandter Praxis und persönlichen Erfahrungen.

Carsten Sensler
Session

Vert.x for World Domination

german

+

Vert.x ist ein auf Netty 4 und Hazelcast aufbauendes Framework für skalierbare, fehlertolerante, Event-getriebene Netzwerkanwendungen. Anhand des Beispiels „Skalierbare Weltherschaft“ möchte ich zeigen, wie Vert.x sich als Basis einer entsprechenden Infrastruktur geradezu aufdrängt. Themen wie Modularisierung, Concurrency, Clustering und Ausfallsicherheit werde ich anhand eines Raspberry-Pi-Clusters samt LEGO-Mindstorms-Roboter demonstrieren.

Jochen Mader
15:00 bis 16:00
Session

Java-Concurrency für Fortgeschrittene

german

+

Java hat ein solides Memory Model und eine Reihe guter Bibliotheken für Concurrency. Trotzdem taucht eine Fülle an Stolperfallen auf, wenn man mit mehreren Threads arbeitet, besonders wenn ein Programm auch noch schnell und korrekt arbeiten soll. Diese Session zeigt praxiserprobte Lösungen für typische Probleme. Vor allem aber trainiert sie, Programmcode durch die „nebenläufige Brille“ zu betrachten: Welche Threads teilen sich welche Daten, und wie? Wie reduziere ich den Anteil von Locks an der Gesamtlaufzeit? Wann komme ich ganz ohne sie aus – und wann lohnt sich das?

Arno Haase
Session

Skalierbare Webanwendungen mit CoreOS

german

+

Wenn man skalierbare Webanwendungen baut, steht man häufig vor den gleichen Themen: Wie verteile ich meine Anwendung? Wie sprechen unterschiedliche Teile miteinander? Wie reagiere ich bei einem Ausfall eines Nodes? Dieser Talk gibt eine Einführung in das Thema skalierbare Webanwendungen und illustriert sie anhand eines Beispiels aus der Praxis mithilfe von Docker und CoreOS.

Timo Derstappen
Session

How to do Product Development when you no longer fit in one Room

english

+

When growing a startup product development you encounter major challenges: How do you scale your product development teams? How do you keep as fast and responsive as you used to be? And how do you leverage the existing knowledge? In this talk I’ll show a couple of practices and rituals based around a Kanban board which captured our whole product development efforts with about 30 participants. I’ll show the design of the Kanban board, the policies and meetings around it and the personal duties ranging from a developer to a product manager up to the CEO. I will also compare it to other approaches from the community and what our lessons learned are.

Matthias Lübken
Session

Einführung in Graph Datenbanken und Neo4j

german

+

Wenn man unsere Welt mit offenen Augen betrachtet, sieht man schnell, dass in vielen Bereichen des öffentlichen und privaten Lebens Beziehungen zwischen Personen, Dingen, Orten und Ereignissen eine herausragende Rolle spielen. Jeder hat das Bild eines Social Graph wie z.B.bei Facebook schnell vor Augen. Bisher war es schwierig diese Beziehungen in Anwendungen und Systemen darzustellen. Viele Datenbanken mit komplexen Daten und großen Datenmengen sind mit einer Vielzahl von Beziehungen zwischen stark normalisierten Objekten überfordert sind. Graphdatenbanken nehmen sich dieser Herausforderung an und behandeln Beziehungen als integralen Bestandteil ihres Datenmodells. So wird eine flexible Abbildung wenig strukturierter und stark vernetzter Daten möglich und auch bei komplexen Abfragen ist die Abfragezeit im Vergleich zu relationalen Datenbanken, die mit vielen JOINs arbeiten, erheblich reduziert.Neo4j wird schon seit 10 Jahren aktiv entwickelt und steht  Open-Source als auch in einer Enterprise Version zur Verfügung. Im Vortrag werde ich auf diverse Aspekte von Graphen, Graphendatenbanken, der Datenmodellierung und unserer Abfragesprache Cypher eingehen und interessante Features von Neo4j highlighten.

Stefan Armbruster
Session

Tipps und Tricks zum Test von APIs, SOA-Services und Schnittstellen

german

+

Die rasante Zuname verschiedenster Clients (PC-, Web-, Tablet-, Mobile-Clients) für unsere Anwendungen und auch die Zunahme von unternehmensübergreifenden B2B-Interaktionsszenarien machen unsere Geschäftsprozesse essenziell abhängig von funktionierenden APIs, SOA-Services und Schnittstellen der IT-Systeme. Nur mit der direkten Qualitätssicherung dieser APIs kann diese kritische Kommunikation zwischen den IT-Systemen sichergestellt und Integrationsphasen verkürzt werden. Nach einer kurzen Einführung, was den Test von APIs ausmacht, lernen Sie in dieser Session Tipps und Tricks rund um dieses Thema. Wann und wo sollten APIs getestet werden? Wie kommen Sie zu Testfällen und was ist beim Design zu beachten? Wo liegen die Unterschiede zum Unit Test? Welche Eigenschaften der APIs können überprüft werden? Wie können Sie Testaufwände vom kritischen Pfad nehmen, Risiken senken und Qualität erhöhen?

Ludwig Ronny Eckardt
Session

Spring Boot - Spring einfach und ohne App-Server

german

+

Spring Boot vereinfacht nicht nur die Entwicklung mit dem Spring Framework und den anderen Bibliotheken aus dem Spring-Ökosystem, sondern vereinfacht auch die Konfiguration und das Dependency-Management. So wird die Entwicklung von Spring-Anwendungen wesentlich vereinfacht. Dieser Vortrag stellt Spring Boot detailliert vor und zeigt den Umgang auch ganz praktisch.

Eberhard Wolff
16:30 bis 17:30
Session

Caching und Messaging mit Spring Framework 4.1

german

+

Spring Framework 4.1 liefert eine Reihe von überarbeiteten Features jenseits des Core-Containers, insbesondere in den Bereichen Caching und Messaging. Diese Session illustriert anhand von Beispielen die neuen Gestaltungsmöglichkeiten bei annotationsbasiertem Caching mit JCache (JSR-107) sowie annotationsbasiertem Messaging mit JMS. Auch andere Spring-4-basierte Messaging-Varianten wie STOMP werden kurz vorgestellt.

Jürgen Höller
Session

Geschäftsprozessautomatisierung bei der 1&1: Architektur und Tooling

german

+

Automatisierung mit einer Process Engine ist ein wichtiger Faktor bei der Umsetzung der produktiven Geschäftsprozesse von 1&1. Wir unterstützen unsere Entwicklungs- und Operations-Teams durch die Bereitstellung einer vollständigen Toolchain, die zu großen Teilen aus Open-Source-Werkzeugen besteht. Diese Werkzeuge erfüllen Bedürfnisse in Bereichen wie Überwachung, Betrieb, SOA-Konnektivität, Sicherheit und Fehlervermeidung. Wir präsentieren die wesentlichen Werkzeuge und betrachten die Architektur hinter der Toolchain.

Mehmet Sürü, Peter Hachenberger
Session

Destruktive System- und Werkzeugauswahl in agilen und skalierten Umgebungen

german

+

Welche Kriterien müssen Systeme und Werkzeuge in ihrer Systemlandschaft erfüllen, um in einer modernen, leichtgewichtigen und effizienten Entwicklung richtig zu stören? An welchen Eigenschaften werden Continuous Delivery oder der Einsatz in der Cloud scheitern? Welchen Einfluss haben Datenstrukturen, Programmiermodelle, Lizenzmodelle und interne Strukturen einzelner Systeme auf die gesamte Entwicklung und automatisierter Auslieferung? Welche Herausforderungen sind zu meistern, welche nicht?

 

Stefan Hildebrandt
Session

Clojure in der Praxis

german

+

Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: Ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp. Doch was bringt mir das bei meiner täglichen Arbeit? Wie setze ich die Entwicklungsumgebung auf? Wie löse ich die typischen Aufgaben? Wie kann ich Webserver bauen, JSON verarbeiten und auf Datenbanken zugreifen? Und vor allem: Warum sollte ich das mit Clojure tun und nicht eine der altbekannten Möglichkeiten verwenden? In dieser Session zeigen wir all das und machen die Teilnehmer fit für Clojure in der Praxis!

Philipp Schirmacher, Silvia Schreier
Session

JDK-8-Bestandsaufnahme und Technologieverifikation

german

+

Seit fast acht Monaten ist das neue JDK 8 schon verfügbar, und damit wird es Zeit, sich ernsthaft mit dem neuen Release 8 zu beschäftigen und die zum Durchstarten notwendige Technologiecheckliste abzuarbeiten. Die Funktionalität vom JDK 8 erstreckt sich über die neuen Lambda-Ausdrücke für funktionale Programmierung, der Nashorn JavaScript Engine für Interoperabilität von JavaScript zur JVM und zahlreichen Neuerungen in der Java-Sprache, den Core-Bibliotheken, über Internationalisierung und Java-Security bis zur JVM. Weitere Verbesserungen sind im JDK 8 bei Java-Type-Annotationen, dem Date and Time API und JDBC 4.0 zu finden. Die mit Java SE 8 eingeführten Compact-Profile stehen als Subsets von Java SE in drei Varianten zur Verfügung, um die Modularisierung für Java Embedded bereits im JDK 8 vorzubereiten. Die Java-Plattformmodularisierung mit dem Projekt Jigsaw ist für das JDK 9 vorgesehen. JavaFX ist als strategische Java-Desktop-Technologie in Java SE 8 enthalten und wird gemeinsam mit dem JDK 8 ausgeliefert. Der standardisierte Übergang im Rahmen von JavaFX zu einer eigenen Spezifikation erfolgt über das Projekt OpenJFX.

Wolfgang Weigend
17:45 bis 18:45
Session

The Enterprise Architect - Ivory Tower Resident or Corporate Savior?

english

+

In many companies and communities the title "architect" has become associated with negative connotations: architects are the people who live in the ivory tower, are out of touch with reality, and make poor decisions driven by the quest for irrelevant ideals. Because these architects can't code, they bestow their thoughts upon developers with PowerPoint slides and wall-sized posters. If all fails, they claim "governance".At the same time the role of IT is evolving from a pure cost center to a business enabler, making architecture ever more relevant to succeeeding in the digial economy. "Enterprise architecture", the ostensibly most detached of all architectures, is rapidly gaining in popularity in large enterprises. Is this yet another proof that corporate IT is ten years behind technical evolution? Or do these guys know something the rest doesn't?This talk presents insights, anecdotes, and war stories from the unlikely journey of a Silicon Valley developer turned IT enterprise architect.

Gregor Hohpe
Session

Class Loading Revisited

german

+

Class Loading ist uns aus dem EE-Umfeld ausreichend bekannt - meinen wir. Dieser Vertrag geht auf die Grundlagen des Class Loadings ein und erweitert das Wissen eines jeden Java-Entwicklers: Wie sieht das Format von Java-Klassen aus? Wie werden Klassen geladen? Was ist ein Class Loader? Seit Java 5 steht das Package java.lang.instrument zur Verfügung, das die Instrumentierung von Klassen zum Ladezeitpunkt erlaubt. Wir führen in die Möglichkeiten dieses Packages ein. Zum Abschluss zeigen wir, wie bereits geladene Klassen manipuliert werden können.

Bernd Müller
Session

Darwin und Godot - Über Evolution und Wartung

german

+

Keine Sorge, es geht weder um Biologie noch um Theater, vielmehr möchte ich Ihnen nahebringen, worauf es bei Evolution, Wartung und Änderung von Software wirklich ankommt. Den größten Teil unseres Informatikerlebens verbringen wir mit Anpassungen bestehender Systeme - und genau dieser Teil kommt in der klassischen Ausbildung praktisch nicht vor. Zuerst fasse ich für Sie die wesentlichen Gründe für Änderungen zusammen. Anschließend erkläre ich in Form von Mustern und methodischen Bausteinen wesentliche Lösungsansätze:

  • Sinnvolles Verhalten, wenn Sie mehr Probleme als Budget haben
  • So finden Sie die schlimmsten Probleme
  • So überzeugen Sie Ihr Management von Umbaumaßnahmen
  • So finden Sie schlechten Code
  • So gehen Sie mit technischen Schulden um 
Gernot Starke
Session

BPM abgespeckt – ein Praxisbericht

german

+

Viele von typischen Unternehmensberatungen empfohlene BPM-Suites sind zu schwergewichtig, zu proprietär und sehr kostenintensiv. Beim vorgestellten Projekt wurde daher weg von einer solchen Lösung hin zu einem leichtgewichtigen Ansatz basierend auf Standards und Open-Source-Technologien migriert (konkret JBoss AS 7, Camunda BPM und Liferay). Die Session motiviert die Migration, stellt Ausgangs- und Lösungsarchitektur gegenüber und berichtet von den Erfahrungen der Dräxlmaier Group auf diesem Weg.

Michael Scholz
Session

Mit agilen Praktiken SOLIDe Systeme bauen

german

+

Seit einiger Zeit sind agile Entwicklungsprozesse im Mainstream angekommen. Viele Teams entwickeln Software mit agilen Methoden. Doch reicht es, den Prozess umzustellen? Wie sollen wir spät erkannte Anforderungen in unsere Software integrieren, wenn diese nicht flexibel ist? Wie soll ich nach jedem Commit alles integrieren, wenn schon der Build 3 Stunden braucht? Wie sollen wir nach jedem 2-Wochen-Sprint ausliefern, wenn schon das Testen 4 Wochen dauert? Die Erfahrung der letzten Jahre hat gezeigt, dass es vielen Scrum-Teams nicht gelingt, Iterations-Ergebnisse mit ausreichend hoher Qualität zu erstellen.  Zu agiler Entwicklung gehört also mehr, als nur den Prozess umzustellen. Dieser Vortrag zeigt, welche agilen Entwicklungspraktiken helfen, flexible Systeme zu bauen, die leicht änderbar und wartbar sind. Wie sieht der Werkzeugkasten aus, den ein Entwickler im agilen Umfeld benötigt? Welche Techniken und Tools helfen ihm, nach jedem Sprint ein potentiell auslieferbares Produktinkrement zu erstellen?

Sven Günther
20:00 bis 21:00
Session

Bugs, Bugs, Bugs – Fehlersuche in Java 7 und Java 8 mit Apache Lucene und Randomized Testing

german

+

Als Oracle Java 7 GA im Juli 2011 veröffentlichte, beinhaltete es einen schwerwiegenden Loop-Optimization-Bug, wodurch Apache-Projekte wie Lucene und Solr betroffen waren. Diese Fehler waren so gravierend, dass es zu kompletten Datenverlusten kommen konnte. Im September 2013 erneut, diesmal waren einige Anwender davon betroffen, zum Glück konnte aber größerer Schaden durch rechtzeitige Information vermieden werden.Seitdem arbeitet Oracle mit zahlreichen Open-Source-Projekten zusammen, allen voran Apache Lucene, das beim Auffinden solcher Fehler u.a. dank Randomized Testing immer die Nase vorn hat. Seit letztem Jahr werden verschiedene JDKs von Oracle und anderen Anbietern im 24/7-Betrieb mit unterschiedlichsten Einstellungen und Konfigurationen teilweise extremen Lasttests unterzogen. In seiner Abendveranstaltung wird Uwe Schindler zunächst einen kurzen Rückblick geben, um anschließend die bekanntesten der gefunden Bugs zu präsentieren und zu analysieren – soweit möglich auch in Livedemonstrationen. Darüber hinaus wird er die Infrastruktur vorstellen, wie man mit einer Jenkins-Cloud ohne großen Konfigurationsaufwand zahlreiche Kombinationen von JVM-Einstellungen testen kann. Nebenbei erfährt der Zuhörer auch – nicht todernst präsentiert – wie man solche gefunden Fehler am besten debuggt und reproduziert, sofern man nicht an ihnen verzweifeln muss.

Uwe Schindler
Session

Softwarearchitektur-Speeddating („Wer einsam bleibt, ist selber schuld!“)

german

+

Zeitgemäße Softwarearchitektur ist nicht das Werk einzelner. Architekturansätze und Ideen entstehen im Team und werden gemeinsam reflektiert. Alle Entwickler müssen sie zumindest verstehen und mittragen können. Aber was genau müsst ihr vermitteln? Reicht aufschreiben? Hilft UML? Diese Nightschool zeigt auf lebendige Weise, wie ihr eure Softwarearchitektur wirkungsvoll kommunizieren könnt. Nach kurzen theoretischen Inputs rund um Architekturdokumentation und -bewertung probiert ihr das Gehörte gleich aus. Ihr lernt die Lösungen anderer Teilnehmer kennen und erfahrt Schritt für Schritt, welche Zutaten in einem Architekturüberblick keinesfalls fehlen sollten – egal, wie kurz er ist. Ihr lernt die richtigen Fragen zu stellen und passende Antworten parat zu haben. Bringt bitte die Bereitschaft mit, euch über eure Projekte und Softwarelösungen auszutauschen und anderen Teilnehmern Feedback zu geben. Die sonst üblichen Speeddatingthemen wie Kinderwünsche klammern wir aus.

Stefan Zörner
Mittwoch - 5. November 2014
08:30 bis 09:45
Session

Enterprise Architecture, aber bitte zack, zack! Erfahrungen mit dem NATO Architecture Framework NAF v3

german

+

Dieser Vortrag berichtet über den Einsatz vom NAF in einem mehrjährigen IT-Projekt. Von der Planung bis zur Umsetzung. Was waren die Fallstricke, und wie wurden sie umschifft. Was sind die "Goodies", und warum eignet sich das NAF nicht nur für militärische Bereiche. Der Teilnehmer erhält einen Überblick über die Möglichkeiten des NAF. Was sind die Voraussetzungen für den erfolgreichen Einsatz hinsichtlich Methodik, Toolsupport und Skill der Projektbeteiligten?

Hermann Schlamann
Session

Microservices - weder Micro noch Service?

german

+

Microservices sind ein neues Architekturparadigma, bei dem Anwendungen in kleine Services aufgeteilt werden. Dieser Vortrag zeigt, wie eine Architektur mit diesem Ansatz funktioniert. Dabei geht es auch um die Frage, ob Services wirklich so klein sein sollen - und ob sie Services in dem Sinne sind, wie beispielsweise SOA den Begriff der Services auffasst. So wird gezeigt, wie diese Microservices tatsächlich in der Praxis optimal genutzt werden können und welche Kompromisse dabei eingegangen werden müssen.

Eberhard Wolff
Session

Mit JSF, WebSocket und SSE zu modernen UIs

german

+

JSF alleine reicht heutzutage kaum noch aus, um Anforderungen an moderne und State-of-the-Art-UIs abbilden zu können. Eine Website soll hoch flexibel und dynamisch auf serverseitige Änderungen reagieren können. Zeiten, in denen ein banaler Refresh-Button angeboten wurde, sind längst vorbei. Mit Server-Push-Verfahren wie WebSocket und Server-Sent-Events stehen aktuelle Technologien bereit, um im Zusammenspiel mit JSF effektvolle und leistungsfähige UIs entwickeln zu können.

Andy Bosch
Session

Enterprise-free Java EE

english

+

Java EE steht für “Enterprise” und konnte sich auch insbesondere in größeren Firmen durchsetzen. Allerdings entscheiden sich immer mehr Start-ups  für Java EE, die “Enterprise”-Aspekte können dabei keine wichtige Rolle spielen. In diesem Vortrag werde ich Java EE aus der Start-up-Perspektive vorstellen und mich dabei auf die eher ungewöhnlichen Features wie NoSQL-Anbindung, Skripting, JSON, HTML5, Testbarkeit, Produktivität oder DevOps konzentrieren.

Adam Bien
Session

Vagrant, Puppet, Docker für Entwickler und Architekten

german

+

Softwareentwicklung, -test und -betrieb können durch Virtualisierung viele Vorteile erzielen. In diesem Zusammenhang werden häufig Werkzeuge für die Bereitstellung von Umgebungen eingesetzt.Verschiedene Werkzeuge adressieren aber unterschiedliche Einsatzszenarien. Wo im Applikationslebenszyklus können diese Werkzeuge sinnvoll eingesetzt werden und wie sieht es mit Kosten und Nutzen aus?

 

Richard Attermeyer
Session

Resilience - die Geheimnisse guten Softwaredesigns

german

+

In der Produktion wird das Geld gemacht und werden die Kunden zufriedengestellt, aber nur so lange, wie unsere Software läuft und zügig antwortet. Läuft unsere Anwendung nicht oder ist sie langsam, ist sie wertlos - schlimmer noch: Wir verlieren Geld und Reputation. Genau darum geht es bei Resilience: Wie man eine Anwendung gestaltet, dass sie hochverfügbar ist und zügig antwortet - selbst unter unerwarteten Fehler- und Lastsituationen. In dieser Session lernen Sie eine (kleine) Resilience-Mustersprache kennen, natürlich garniert mit Code und jeder Menge Tipps und Tricks.

Uwe Friedrichsen
Session

Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?

german

+

Nachdem in den letzten Jahren NoSQL ein beherrschendes Thema im Kontext von Big Data war, gewinnt SQL als Anfragesprache wieder große Bedeutung im Hadoop-Umfeld. Dabei steht mit Hive ein SQL-Dialekt zur Verfügung, mit dem zwar leicht Batch-orientierte ETL-Strecken für Hadoop gebaut werden können, der aber bisher für interaktive Analysen nicht geeignet war Mit Impala, Presto, Spark SQL und dem Stinger-Projekt ändert sich das nun rapide. Schnelle verteilte Query Engines erlauben interaktive analytische Anfragen auf großen Datenmengen. Dazu kommen neue Speicherformate wie Parquet und ORC, die effizientere Repräsentation und schnelleren Zugriff versprechen. In dieser Session gebe ich einen Überblick über Stärken und Schwächen der verschiedenen Ansätze und Erfahrungen aus dem praktischen Einsatz.

Hans-Peter Zorn
10:15 bis 11:15
Session

Pimp Your Continuous Delivery Pipeline with the New Jenkins Workflow Engine

english

+

Continuous delivery pipelines are, by definition, workflows with parallel job executions, join points, retries of jobs (Selenium tests are fragile) and manual steps (validation by a QA team). Come and discover how the new workflow engine of Jenkins CI and its Groovy-based DSL will give another dimension to your continuous delivery pipelines and greatly simplify your life.

Cyrille Le Clerc
Session

Event Sourcing: Einführung und Best Practices

german

+

Unter Event Sourcing versteht man einen Architekturstil, in dem Änderungen am Zustand der verwalteten Daten als eine Sequenz von Events festgehalten werden. Durch diese Herangehensweise können jederzeit Snapshots des Datenzustands erstellt und abgefragt werden. Des Weiteren ermöglicht uns das Persistieren von Events eine Optimierung der lesenden Zugriffe durch eine Denormalisierung des "Lese-Modells" der Daten. Letzterer Aspekt ist aktuell insbesondere durch den Architekturansatz CQRS in aller Munde.

Im Rahmen des Vortrags werde ich Ihnen eine Einführung in das Thema Event Sourcing geben und gängige Patterns rund um das Thema vorstellen. Des Weiteren werden Themen wie Rollback von Events (Kompensation-Services), Möglichkeiten der Erstellung von Daten Snapshots und Änderungen durch externe Systeme vorgestellt. Abgerundet wird der Vortrag durch eine Diskussion möglicher Einsatzszenarien für Event Sourcing.

Michael Plöd
Session

Agil, aber ganzheitlich bitte!

german

+

Es gibt kaum ein Unternehmen, das sich nicht mit agilen Techniken auseinandersetzt. Dennoch lässt sich in Unternehmen, die agile Verfahren einsetzen, selten eine Kultur, wie sie im agilen Manifest definiert wird, finden. Vielmehr werden agile Techniken praktiziert, ohne die hinter der Agilität stehende Kultur zu begreifen. Dabei bietet Agilität deutliche Vorteile in dynamischen Marktumfeldern, wie sie im Zuge der Globalisierung und Digitalisierung immer häufiger auftreten.

Der Vortrag zeigt im ersten Teil die verschiedenen Aspekte einer ganzheitlichen Betrachtung von Agilität auf. Im Folgenden werden die Herausforderungen und Ansätze sowie Beispiele für Organisations- und Kulturveränderung vorgestellt und besprochen.

André Neubauer
Session

Java EE Voodoo Architecture

german

+

Die Bordmittel von Java EE ermöglichen Architekturen, von denen man zu Zeiten von J2EE nur träumen durfte. Nahezu losgelöst von technologischen und schichtenbedingten Restriktionen kommen völlig neue Patterns zum Tragen. Im Gegenzug dazu kann auf „lieb gewonnene“ Workarounds - aka J2EE-Pattern - verzichtet werden. Die Session gibt einen Einblick in die vielfältigen Möglichkeiten und möchte so zu neuen Denkmustern im Java-EE-Architekturdesign anregen.

Lars Röwekamp
Session

Tomcat als Basis deiner Microservices-Anwendungen

german

+

Der Apache Tomcat besitzt ein umfangreiches Embedded-API, das als Basis für die Implementierung von Microservices-Frameworks dient. Um die eigenen Micro Services auch nach den eigenen Bedürfnissen zu gestalten, zeigt diese Session, welche Möglichkeiten der aktuelle Tomcat 8 dazu bietet. Es werden verschiedene Varianten vorgestellt. In einem weiteren Schritt wird dann vorgestellt, wie daraus Lösungen für Entwicklung und Produktion entstehen. Die Gestaltung eigener Microservices erbringt enorme Erleichterung in allen Phasen des Projekts.

Peter Roßbach
Session

Oberflächen mit Tiefgang

german

+

Wer die Darstellung seiner Inhalte nur oberflächlich abhandelt, tut seinen Benutzern keinen Gefallen. Dabei sind reichhaltige interaktive Benutzeroberflächen gar nicht so schwer zu erstellen, wenn man weiß, wie. Dieser Talk zeigt, wie man konsistente, aktuelle Darstellungen verwirklicht, undo/redo implementiert, kollaboratives Arbeiten ermöglicht, große Datenmengen effizient darstellt und explorativ untersucht und Desktop, Web und Mobile mit einem einheitlichen Programmiermodell verbindet. Die Umsetzungsbeispiele sind mit OpenDolphin gemacht.

Dierk König
Session

Agile Testmanager - Ein Oxymoron

german

+

Das Testmanagement wird im agilen Entwicklungsprozess wie Scrum vom Team getragen. Doch kann das Scrum-Team die Aufgaben eines Testmanagers vollumfänglich wahrnehmen.Der Vortrag folgt den Aufgaben des Testmanagers und überträgt diese in die Artefakte und Werkzeuge von Scrum.Dabei stehen auch die Schwachstellen für den Testprozess im Vordergrund, wenn auf einen Testmanager verzichtet wird. Am Ende steht eine Anleitung für agile Firmen wie sie die Probleme lösen können.

Kay Grebenstein
13:30 bis 14:30
Session

GWT Architectures und Lessons Learned

german

+

GWT-Entwicklung ist Rich-Client-Entwicklung, und das ist für viele Webentwickler neu. Mit den „Lessons Learned“ aus der Entwicklung von Google AdWords wurden Architekturmuster für GWT-Anwendungen vorgestellt. Einiges davon ist inzwischen in GWT gelandet und kann sofort eingesetzt werden. In diesem Vortrag werden Architekturmuster vorgestellt, die in den letzten Jahren in vielen Projekten erfolgreich eingesetzt wurden.

Papick Garcia Taboada
Session

Know-how-Schutz und Lizenzmanagement von Java-Anwendungen

german

+

Wie schütze ich meinen Java Byte Code vor unerwünschten Manipulationen, Reverse-Engineering und Dekompilierung? Diese Frage stellen sich mittlerweile viele Java-Entwickler. Die "Write once, run anywhere"-Architektur der Java VM hat Ihren Preis. Die Java VM Spezifikation liefert in Kapitel 4  „The class File Format„ alle nötigen Informationen um Java Byte Code in den ursprünglichen Source Code zurück zu entwickeln.  Kennen Sie JD-GUI, JAD oder auch andere Java Decompiler? Erfahren Sie, wie Sie diesen Tools effektiv entgegenwirken und gleichzeitig attraktive Lizenzmodelle für die Vermarktung Ihrer Anwendung erschließen können.

Günther Fischer
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
Session

Inspiration statt Transpiration: Java-App-Deployment für das 21. Jahrhundert

german

+

Eine Anwendung auf einen Server zu deployen, kostet Aufwand und Zeit. Es fängt an beim Betriebssystem und den verschiedenen Abhängigkeiten. Diese müssen nicht nur korrekt installiert, sondern auch in der richtigen Version vorhanden und konfiguriert sein. Es geht weiter mit Benutzer- und Rechtenvergabe, Firewall-Konfiguration, Tuning, Hardening und vielem mehr. Dann kommt noch die Anwendung an sich dazu. Und auch die muss richtig konfiguriert und aktualisiert werden. Insgesamt ist der Prozess extrem komplex und Fehleranfällig. Aber muss es wirklich so sein? Kann es sein, dass wir in diesen Gedanken gefangen sind, weil wir es immer so gemacht haben? Was wäre, wenn wir diesen Prozess radikal vereinfachen könnten? Was wäre, wenn wir einen kompletten Server inklusive Anwendung mit einem einzigen Kommando in unter 15 Sekunden aufsetzen könnten?

Dieser Talk bietet ein radikales Umdenken des Deployments Java-Anwendungen an. Wenn Sie für Einfachheit und Effizienz über Komplexität und Brute-Force stehen, wenn Sie keine Angst haben, mit frischen Gedanken nach vorne zu schauen, dann sind Sie hier richtig. Willkommen in einem neuen Zeitalter.

 

Axel Fontaine
Session

Smart Home live: Intelligente Feuer- und Einbruchserkennung mit MQTT und openHAB

german

+

Im Bereich des Internets der Dinge ist Smart Home eine Anwendungsdomäne, die unsere alltägliche Lebensweise im "Connected Live" der Zukunft sehr stark verändern wird. Von der Vision des allumfassenden, adaptivem Smart Home in allen Bedürfnisbereichen sind wir sicherlich noch einige Jahre entfernt, aber es gibt bereits einzelne Lösungen, wie z.B. das Thermostat von Nest, die den Anwendern bereits heute großen Nutzen liefern können. Gleiches gilt für Ansätze, welche die Sicherheit der Hausbewohner erhöhen und im Notfall für schnellere Hilfe sorgen. Anhand eines konkreten Showcases wollen wir demonstrieren, wie ein intelligenter Brandmelder aussehen könnte, und dass die Umsetzung mit aktuellen Technologien bereits jetzt möglich ist. Mit zusätzlichen Geräten können auf der gleichen Infrastruktur auch noch weitere Szenarien - wie z.B. Einbruchsschutz - einfach integriert werden.

Dabei wird openHAB als Kommunikationszentrale im Haus eingesetzt, das über das Funkprotokoll Homematic mit den Geräten kommuniziert. Außerhalb des Hauses werden über HiveMQ als zentraler MQTT-Broker eine mobile Applikation, ein SMS-Plug-in und eine JavaScript-Weboberfläche angebunden. Neben der Basisfunktionalität "Alarm" wurden auch erweiterte Funktionen, wie eine Statusanzeige und die Möglichkeit einen Funktionstest durchzuführen, implementiert. Im Vortrag stellen wir das System vor, erläutern den Mehrwert für den Anwender gegenüber herkömmlichen Produkten und zeigen dann ausführlich die technische Umsetzung. Abgerundet wird der Vortrag mit einer Livedemonstration.

Christian Götz, Markus Mann
Session

Break down the Walls: Warum wir unsere Software vom App-Server entkoppeln sollten

german

+

In den letzten Monaten wurde in zahlreichen Fachbeiträgen der Tod des Anwendungsservers heraufbeschworen und vermeintlich eingeläutet. Neue, innovative Deploymentkonzepte wie Spring Boot oder Microservices verlocken dazu, den althergebrachten Koloss in den vorzeitigen Ruhestand zu schicken. Ganz so radikal sehe ich als Referent des Vortrags das Thema nicht. Fakt ist jedoch, dass eine enge Kopplung an die Infrastruktur des App-Servers neben einigen wenigen Vorteilen eine beachtliche Menge an Nachteilen und Restriktionen mit sich bringt. Deshalb gibt es gute Gründe dafür, den Lock-in auf die App-Server-Plattform drastisch zu reduzieren, sodass wir mit unseren Architekturen möglichst unabhängig von der Runtime arbeiten und gestalten können. Die Gründe dafür, erprobte Architekturmuster und Migrationsstrategien möchte ich mit Ihnen zusammen in diesem Vortrag erörtern und vorstellen.

Michael Plöd
15:00 bis 16:00
Session

Event-basierte Architekturen mit Java EE

german

+

Die Architektur der meisten Java-EE-Anwendungen folgt dem bewährten Schichtenmodell mit synchroner Verarbeitung und Aufrufmustern durch alle Schichten hindurch. Während diese Architektur sicherlich gewisse Vorteile hat, führt sie gleichzeitig zu einer Vielzahl von Abhängigkeiten zwischen den einzelnen Komponenten der Anwendung. Wenn eine losere Kopplung erreicht werden soll, gelten Event-basierte Architekturen als bewährtes Mittel. In Java-EE-Anwendungen waren diese bislang nicht sehr verbreitet, da es lange Zeit keine standardisierte Unterstützung für fachliche Events gab. Mit CDI Events hat sich dies nun geändert. In dieser Session lernen Sie, wie sich Event-basierte Architekturen auf einfache Weise mit Java EE entwickeln lassen. Dabei besprechen wir auch Vor- und Nachteile, und eine Beispielanwendung wird live demonstriert.

Thilo Frotscher
Session

It's time to rethink - Datenbank-Design in der schönen neuen Welt

german

+

Bessere Qualität, schnelles Feedback vom Kunden, ständige Innovation und niedrigere Kosten. Dies sind nur einige der Vorteile, die uns die schöne neue Welt von Continuous Delivery verspricht. Welche Auswirkungen ein solches Vorgehen allerdings auf unsere Datenbanken hat, wird nur allzu oft kurz und elegant übersprungen. Die Session zeigt verschiedene Techniken wie wir bei mehreren Releases pro Tag mit unseren Produktivdaten umgehen können und verschweigt (ausnahmsweise) auch nicht deren Nachteile.

Thorsten Maier
Session

IoT im Warenhaus - Wie hilft eine Event Processing Engine?

german

+

Ein Warenhaus lagert temperatursensitive Ware. Temperatursensoren senden kontinuierlich Messwerte an ein Gateway (Raspberry Pi), auf dem eine Event Processing Engine detektiert, wann ein Business-Event an das Facility-Management-Backend gesendet werden sollte. Im Backend überwacht ebenfalls eine Event Processing Engine die Ereignisse sämtlicher Warenhäuser und ruft bei Erkennen eines kritischen Zustands einen automatisierten Prozess auf, der mit Facility Manager und Techniker (Remote-Wartung über iPad-App) interagiert. Diese Session erläutert im Detail die eingesetzten Komponenten im Zusammenspiel mit der Gesamtarchitektur und führt nebenbei in die Entwicklung auf Basis einer Event Processing Engine ein. 

Torsten Winterberg
Session

Der LVM - Wichtige Entscheidungen erfolgreich verschleppen

german

+

Bei der Erstellung von Software treffen Sie ständig größere und kleinere Entscheidungen - von der Datenbankebene über Aspekte der logischen Strukturierung und Integration, bis hin zum UI. Diese Session stellt das Konzept des letzten vernünftigen Moments (LVM) vor und zeigt, warum Sie wichtige Fragestellungen möglichst spät beantworten sollten. Projektbeispiele illustrieren, wie der LVM in der Praxis funktioniert, vorgestellte Taktiken machen das aus Lean stammende Konzept greifbar und anwendbar.

Stefan Toth
Session

Rock your web apps

english

+

During this session we take a peek on the principles of choosing a web framework successfully and give an introduction to Apache 2.0 licensed Vaadin framework. Vaadin provides a highly productive server-side Java programming model for building web applications for desktop and mobile without the need of knowing HTML, XML, JavaScript or browser plug-ins. Attendees will learn everything needed to get started with Vaadin and understand where it fits and where it doesn't.

Ville Ingman
Session

CQRS-basierte Architekturen mit Microservices

german

+

Die Themen Command Query Responsibility Segregation, kurz CQRS, und Microservices sind derzeit in aller Munde. Häufig werden die beiden Themen jedoch getrennt besprochen. So wird CQRS als neues Architekturparadigma gehandelt, das eine Abkehr vom klassischen Schichtmodell darstellt. Parallel dazu werden Microservices als modernes Architektur- und Deployment-Modell vorgestellt, das zum einen die bestehenden Probleme der klassischen Application-Server-Welt adressiert und das zum anderen sich als neue Denkweise für serviceorientierte Architekturen empfiehlt.Beide Ansätze sind für sich alleine betrachtet sehr interessant, allerdings bilden sie vor allem in Kombination miteinander ein äußerst attraktives Modell für künftige IT-Landschaften. Der Vortrag wird dieses Modell sowohl theoretisch als auch praktisch vorstellen und besprechen. Des Weiteren zielt der Vortrag auf eine kritische Auseinandersetzung mit diesem Architekturmodell ab. Die Zuhörer werden erfahren, welche Herausforderungen noch adressiert werden müssen und für welche Anwendungen dieses Modell geeignet ist. Abgerundet wird der Vortrag mit dem Vorschlag einer Einführungs- und Migrationsstrategie für gewachsene Anwendungen.

Michael Plöd
16:15 bis 17:15
Session

Wider den Monolith - Am Ende wird alles gut

german

+

Alle reden von Micro Services, aber wie kann ein komplexes System zu einer Ansammlung von Micro Services werden? Dieser Vortrag zeigt anhand eines praktischen Beispiels, wie eine modular geplante Architektur zu einem Monolithen geführt hat und wie er wieder zerschlagen wird. Welche Faktoren führen trotz guter Vorsätze zu einem Monolithen, und wie kommt man wieder zurück zu einer Architektur mit kleineren, unabhängigen Services? Worauf sollte man achten, um ihn zu vermeiden oder frühzeitig zu erkennen? Eine Migration zu Micro Services ist nicht einfach, aber lohnt sich (und ein Stück Monolith wird überleben).

Oliver Wehrens
Session

"Catch me if you can" Java on Wearables

german

+

Wearable Computer sind eines der nächsten großen Dinge aber im Moment lassen sich lediglich sehr spezialisierte Systeme wie "Motion Tracker", GPS-Uhren oder Ähnliches kaufen. Warum also nicht versuchen, günstige bestehende Technologie einzusetzen, um damit sein eigenes Java powered wearable Device zu bauen. Diese Session zeigt, was man heute mit Technologie zu erschwinglichen Preisen in Kombination mit Java erreichen kann. Dazu wird ein Raspberry Pi in Verbindung mit einem Herzfrequenzmesser und einem GPS-Sensor verbunden, um damit den Puls und die Position eines Läufers, Radfahrers oder Ähnlichem zu tracken. Der mittels Batterie betriebene Raspberry Pi misst dabei die Daten und überträgt sie via MQTT auf verschiedene Clients wie bspw. Java(FX)-basierte Desktopclients, sowie eine Smartwatch, die der Läufer/Radfahrer tragen kann. 

Gerrit Grunwald
Session

Fünfzehn Jahre Enterprise-Java: Aus diesen Fehlern können wir lernen

german

+

Schaut man sich aus heutiger Sicht die Technologien und Frameworks der letzten fünfzehn Jahre Enterprise-Java an, so kann man sich wirklich nur wundern. Haben wir wirklich so Software entwickelt? Mit all dem architektonischen und technologischen Overhead? Ja, haben wir. Zeitgemäß, aber schrecklich. Doch was waren die größten Fehler, die wir alle gemeinsam gemacht haben? Und wie können wir verhindern, dass wir heute aus purer Euphorie für eine technologische Entwicklung die gleichen Fehler nochmals machen? Kann nicht passieren? Diese Session zeigt leider das Gegenteil.

Jens Schumann
Session

Cloud Architecture: Patterns und Best Practices

german

+

Cloud Computing hat unbestreitbar erhebliche Vorteile in Bezug auf Kosten, Ausfallsicherheit und Flexibilität. Aber ist es ausreichend, wenn ich meine Applikationen einfach in einer Cloud-Umgebung laufen lasse? In den allermeisten Fällen lässt sich diese Frage mit einem klaren „Nein“ beantworten, denn um die Vorteile von Cloud-Infrastruktur voll ausnutzen zu können, muss ich auch die entsprechenden Patterns bei der Architektur meiner Applikation nutzen. In diesem Talk beschreibe ich einige Best Practices und Patterns, um skalierbare, ausfallsichere und verteilte Applikationen zu bauen, die global ausgerollt werden können.

Sascha Möllering
Session

Na klar muss alles "gestern" fertig sein, wann denn sonst?

german

+

"Lieber Kunde: Natürlich willst du alles auf einmal haben. Und das am liebsten gestern. Und natürlich würden wir gern wie Scotty auf der NCC-1701 die Naturgesetze innerhalb einer Nacht brechen. Doch wir haben Neuigkeiten für dich: ES GEHT HALT EINFACH NICHT! Wir versprechen dir aber eins: Wir liefern dir das Beste, was wir aus deinem Geld innerhalb deiner Zeit machen können. DU WIRST ES LIEBEN. Wir wissen, wie es geht. Und: Wir wissen, wie wir das OHNE STRESS schaffen können, und zwar jedes Jahr wieder neu, für dich und die anderen Kunden." -- Wenn Sie auch so eine Mail an Ihre Kunden verschicken möchten, kommen Sie in diesen Vortrag. Sie lernen, wie man Software ohne Stress entwickelt und den Kunden dabei begeistert.

Matthias Bohlen
Session

Andocken bitte! Eine Einführung in Docker

german

+

Docker ist der Gewinner des diesjährigen JAX Awards in der Kategorie "Most Innovative Open Technology". Das allein ist schon Grund genug, sich einmal ausführlicher mit Docker zu beschäftigen. Aber was genau ist Docker, und wo liegen die Vorteile bei der Bereitstellung von Services im Vergleich zu herkömmlichen virutellen Umgebungen? Der Vortrag ist eine Einführung in Docker und zeigt mit vielen Livebeispielen, was Docker ist, wie es funktioniert und warum Docker eine großartige Zukunft vorhergesagt wird.

Michael Johann
17:30 bis 18:00
Keynote

Rethink IT: The Day After Tomorrow

english

+

We have reset everything about software development and IT infrastructure: team structure, application architecture, processes, topology, and division of labor. This has been a "Big Rethink" about how to deliver economically interesting software-intensive systems. From centralized to decentralized, from punctuated delivery via formal processes to continuous delivery with small decoupled teams, and from centralized architecture to microservices.Why did we go through this Rethink? One could just say, "that's what works." I believe there is a clear unifying force behind this shift. When we understand that force we will have insight into what comes next.Let's talk about why we needed the Rethink and what unifies the changes since 1999. We also need to talk about what comes next, and when the old ways are still best. And, we need to talk about the great wall this revolution has not yet breached: the role of IT itself.

Michael Nygard
Donnerstag - 6. November 2014
08:30 bis 09:45
Session

Docker für Java Entwickler

german

+

Docker ist in aller Munde und erobert gerade die IT Welt im Sturm. Diese leichtgewichtige Virtualisierungstechnologie bietet auch für Entwickler neue Möglichkeiten. Dieser Vortrag zeigt, wie eigenständige, komplett isolierte und doch performante Integrationstests mit Docker realisiert werden können. Auch für den Weg von Entwicklung zur Produktion bietet Docker neue Paradigmen. Für diese Zwecke wird ein Docker Maven Plugin vorgestellt, das eine nahtlose Einbindung in den Build Prozess erlaubt.

Roland Huß
Session

Security 101

german

+

Wir erläutern in diesem Vortrag die wesentlichen Begriffe und Konzepte rund um das Thema IT-Sicherheit: Sie lernen die Grundlagen von Kryptografie kennen und erfahren, warum Hashing, Entropie und Zufall zentrale Bedeutung für Vertraulichkeit besitzen. Wir erläutern die Möglichkeiten von Angriffen gegen Betriebssysteme und technische Kommunikation und bringen Licht ins Dunkel von Signaturen, Zertifikaten, Man-in-the-Middle, Salting und Rainbow Tables. Zwischendurch erklären wir praktische Securityprobleme und eklatante Sicherheitslücken. Schließlich erleben Sie live einen Kryptoangriff gegen einen verschlüsselten Text (damit Sie auch schätzen lernen, was die arme NSA eigentlich leistet). Der Vortrag richtet sich an alle Technikinteressierten, die endlich mal die relevanten Grundlagen von Security in leicht verdaulicher Form erleben möchten.

Christoph Iserlohn, Tobias Hahn
Session

Performance Challenges along the Continuous Delivery Pipeline

english

+

Do you care about your web application’s performance in production? The answer to that question is hopefully a clear “YES”, which leads to the question: How can you make sure you do not deploy changes to your production site that impair performance and scalability? Load tests might come to your mind, but more often than not, these are only run rarely, not continuously throughout the development lifecycle. Wouldn’t it be great to detect scalability issues based on the automated tests you already wrote? This session shows how you can measure relevant metrics like the number of database statements or number of calls to 3rd party services along your delivery pipeline, and common problem patterns you can identify and solve with those metrics.

Wolfgang Gottesheim
Session

Androiden im Netz: Überblick über Bibliotheken zur Netzwerkprogrammierung

german

+

Im Zeitalter des Internets ist es nicht mehr üblich, dass Apps nur als abgeschlossene Anwendungen auf dem Smartphone laufen. Vielmehr findet eine ständige Kommunikation mit verschiedensten Services statt, um beispielsweise zusätzliche Bilder nachzuladen, die aktuelle GPS-Position an einen Server zu senden oder aber Nachrichten im Chat auszutauschen. Viele Dienste bieten für die Kommunikation RESTful Web Services an, die von vielen Programmiersprachen und Plattformen angesprochen werden können. Auch die Android-Community ist hier aktiv und bietet elegante Frameworks zur Netzwerkkommunikation an, die das Leben des Entwicklers vereinfachen. In dieser Session werden die Grundlagen der Netzwerkprogrammierung mit Android sowie einige ausgewählte Frameworks vorgestellt und anhand praktischer Beispiele demonstriert. Zum Schluss wird ein Blick über den Tellerrand der REST-Welt geworfen und ein alternativer Ansatz mit MQTT vorgestellt.

Adam Giemza
Session

Quo vadis WebSocket

german

+

Seit Ende 2011 steht WebSocket als offizieller Standard (RFC 6455) bereit. Doch wie sieht es mit dem Einsatz von WebSocket in der Praxis wirklich aus? Funktioniert WebSocket auch im mobilen Umfeld? Was hat sich seit dem Fertigstellen der Spezifikation getan? Wie sehen die Neuerungen aus?  Der Vortrag gibt einen Überblick zum aktuellen Stand des Protokolls, sowie dessen Erweiterungen und stellt verschiedene Client- und Serverbibliotheken anhand von praktischen Beispielen vor.

Matthias Weßendorf
Session

Unternehmenskritische Anwendungen mit JavaScript

german

+

JavaScript ist die einzige Sprache, die in jedem Browser ohne Plug-ins läuft. Wer für den Nutzer komfortable Anwendungen auf allen Webplattformen ausliefern möchte, kommt daher nicht um die Sprache JavaScript herum. Nur wie weit sollte man dabei gehen? Welche Problemstellungen ergeben sich für unternehmenskritische Anwendungen?

Oliver Zeigermann
Session

Pah, Architekturdokumentation ... darauf habe ich keine Lust!

german

+

"Chef, Sie wollen schon wieder Doku von mir? Warum sollte ich die schreiben? Meine Teamkollegen und ich wissen schließlich auch ohne Doku, wie das System funktioniert und wo wir etwas ändern müssen. Doku hält mich nur vom Arbeiten ab! Und ... seien Sie mal ehrlich: Sie ist noch jedesmal runterpriorisiert worden, wenn es zeitlich eng wurde, also kann sie ja wohl nicht wichtig sein." -- Wollten Sie schon einmal solch einen Brief an Ihren Chef schreiben? Und haben dann doch zähneknirschend Ihr Word geöffnet? Lassen Sie sich in dieser praxisorientierten Session zeigen, wie Sie Architekturdokumentation mit Lust und minimalem Aufwand gestalten können (Gerüchte besagen, dass Markdown darin eine Rolle spielen wird).

Matthias Bohlen
Session

Traits und ihre Anwendung in Groovy

german

+

Traits sind eigentlich aus der Scala-Welt bekannt und eines der Dinge, die Scala für viele interessant machen. Lange Zeit hatte Groovy mit @Mixin und @Delegate etwas Ähnliches, doch waren diese Ansätze immer mit diversen Problemen behaftet. In dieser Session möchte ich die Unterschiede zu den Transformationen @Delegate and @Mixin erklären, warum man @Mixin nicht mehr verwenden sollte und ein paar Beispiele für die Anwendung von Groovys Traits zeigen.

Jochen Theodorou
Session

Mut zur Fachlichkeit

german

+

Leider sind in der "freien Wildbahn" nach wie vor viele Architekturen und APIs stark durch die verwendeten Technologien, Frameworks, Generatoren etc. getrieben. Die eigentliche Fachlichkeit der Anwendung bleibt dabei häufig auf der Strecke und ist im Quellcode kaum noch auffindbar. Das geht – nur – solange gut, bis der erste Fehler gefunden werden muss. Die Session zeigt einfache, aber sehr effektive Strategien, wie bestehende Anwendungen in ein fachlich getriebenes Architektur- und API-Design überführt werden können - Aha-Effekte garantiert.

Lars Röwekamp
10:15 bis 11:15
Session

Application Server sind tot!

german

+

Application Server und Enterprise-Java werden oft gleichgesetzt. Aber das Konzept des Application Servers ist mehr als zehn Jahre alt - Zeit für eine kritische Bewertung. Dieser Vortrag zeigt zunächst die fundamentalen Annahmen, die zur Entwicklung von Application Servern geführt haben. Dann werden aktuelle Projektszenarien und Verwendungen von Application Servern dagegen abgeglichen. Schließlich werden die Auswirkungen aktueller Trends wie Microservices und Embedded-Container auf Application Server aufgezeigt.

Eberhard Wolff
Session

AngularJS und TypeScript: Der Beginn einer wunderbaren Freundschaft?

german

+

AngularJS ist ein sehr beliebtes JavaScript-Framework 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. In dieser Session zeigt Kai anhand einer TypeScript-basierten AgularJS-Applikation, wie man die Eigenschaften von TypeScript mit AngularJS verbinden kann. Dabei spielen natürlich die TypeScript-Definition-Files für AngularJS eine große Rolle, aber auch, ob und wie man die AngularJS-Konzepte auf eine objektorientierte Struktur in TypeScript abbilden kann. Am Ender der Session können Sie sich selbst ein Bild davon machen, ob dies der Beginn einer wunderbaren Freundschaft zwischen AngularJS und TypeScript sein könnte.

Kai Tödter
Session

Single und trotzdem glücklich - Eine Einführung in Meteor

german

+

Single-Page-Apps sind in der Webentwicklung ein angesagter Trend. Das Konzept der „Reactivity“ bietet eine ganz neue  Nutzererfahrung und erlaubt die „Echtzeitaktualisierung“ von tausenden Webclients. Entwickler brauchen sich dabei nicht um Low-Level-Protokolle zu kümmern, sondern können sich auf das Wesentliche konzentrieren. Der Vortrag zeigt mit viel Live-Coding das Erstellen einer echten Anwendung, die das Management von Docker-Containern vereinfacht.

Michael Johann
Session

Speeding up Java Persistence

german

+

O/R Mapper sind langsam, erst recht, wenn man darauf mit JPA zugreift - so lautet eine weit verbreitete Meinung. Das muss aber nicht so sein: JPA-Provider bieten eine Menge Möglichkeiten unter der Haube, die selbst manchen handgeschriebenen vermeintlich optimierten Direktzugriff mittels SQL in den Schatten stellen. Lassen Sie sich in dieser Session zeigen, wie Sie Ihre JPA-Anwendung auf Speed bringen.

Dirk Weil
Session

Komplexe Architekturen schuldenfrei weiterentwickeln

german

+

Kennen Sie das auch? Sie entwerfen eine gut strukturierte Softwarearchitektur in Form von Diagrammen und nutzen sie als Blaupause für Ihr Softwaresystem. Während der Implementierung weichen Ihre Entwickler ungewollt mehr und mehr von diesen Vorgaben ab: Einerseits macht der Projektdruck Abweichungen notwendig, andererseits entstehen die Abweichungen ungewollt und unbemerkt. Die Architektur Ihres Systems erodiert und Sie bauen Schritt für Schritt technische Schulden auf. Wartung und Erweiterung der Software werden immer teurer bis zu dem Punkt, an dem jede Änderung zu einer schmerzhaften Anstrengung wird. In diesem Vortrag berichte ich von meinen Erfahrungen der letzten zehn Jahre mit der Analyse von Softwarearchitekturen in Java, C++, C# und ABAP: Wie entstehen technische Schulden? Wie können technische Schulden vermieden werden?

Um technische Schulden sichtbar zu machen und ihnen rechtzeitig entgegenzusteuern, wurden in den letzten zehn Jahren verschiedene Architekturanalysewerkzeuge entwickelt (Sotograph, SonarQube, JDepend, XRadar, Axovion Bauhaus, Structure101, Lattix u.v.m.). Ich werde Ihnen im Vortrag einen Überblick über diese Werkzeuge und ihre Einsatzmöglichkeiten geben. Die Zuhörer wissen nach meinem Vortrag, welche Fehler sie in ihren Softwareprojekten bei der Umsetzung der Architektur in Sourcecode nicht machen sollten, welche Prinzipien Sie einhalten sollen, um technische Schulden nicht entstehen zu lassen, welche Tools helfen, technische Schulden aufzuspüren und wie technische Schulden abgebaut werden können.

 

Carola Lilienthal
Session

Building your Android Apps with Gradle

english

+

Google selected Gradle as the foundation of the Android SDK build system because it provides flexibility along with the ability to define common standards for Android builds. With Gradle, Android developers can use a simple, declarative DSL to configure Gradle builds supporting a wide variety of Android devices and App stores. In this session we take a look at how Android developers benefit from a single, authoritative build that powers both the Android Studio IDE and builds from the command-line.

Rene Groeschke
11:30 bis 12:00
Keynote

Deploy, Collaborate and Listen

english

+

At Etsy we are continuously deploying software with about 50 deploys per day on average. We have about 150 engineers that work together to add features, improve the site, solve problems, and figure out outages. We are constantly working on improving ways to collaborate and have the time to invest into research and new projects instead of fire fighting. However this hasn't been like this from the beginning. In the Dark Ages of Etsy we had a vastly different software architecture, a myriad of silos with a less than ideal amount of communication and a not so stable site. So what happened? How did we fix this?

We will briefly go over how we changed the architecture and culture to make site operations and stability better. After that we will go into detail about what it meant for us to maintain that culture of collaboration and trust and things we learned from that. And finally take a look at the state of things in the present and give a comprehensive picture of how we arrived here and where to go from there. 

Daniel Schauenberg
12:00 bis 12:30
Keynote

The Digital Physical Blur in a Connected World

english

+

The world we live in is more and more connected with the digital world – a trend that is described in the Accenture Technology Vision 2014 as “Digital Physical Blur”. Dr. Ziegler will explain this trend in the context of Wearable Technologies and Augmented Reality and highlight the business potential e.g. based on the Philips Google Glass Showcase produced by the Accenture Technology Labs and will bring the topic to live with further practical, interesting and relevant examples from the consumer and enterprise space. He will close with a video which gives an outlook where this could lead us in the future.

Dr. Matthias Ziegler
14:00 bis 15:00
Session

Are your GC logs Speaking to you, the G1GC edition

english

+

Oracle's version of Java 7 saw the release of a new collector, the G1GC. This collector is unlike all the other collectors found in the Oracle JVM in that it instead of generational spaces, it organizes Java heap into regions. This, along with a number of other features that make this memory management scheme different than other collectors. Even though this collector is designed to be self-tuning, there are occasions when hand tuning will offer better results. In this session we will use the GC logs to expose some of the inner workings of the G1 collector with an eye on key metrics that can be helpful in deciding how to tune.

Kirk Pepperdine
Session

Real World Enterprise Reactive Programming using Vert.x

english

+

Vert.x is a lightweight, high performance application platform for the JVM that's designed for modern mobile, web, and enterprise applications. In this talk you will learn how to create elastic, resilient, responsive and event-driven applications based on the principle of Continuous Deployment. We will give you some insights on the problems we had experienced during development so far and how we solved them. Additionally we'll show you how to deploy your Vert.x-infrastructure into the Cloud.

Björn Stahl, Mariam Hakobyan, Sascha Möllering
Session

Skalierbare Anwendungsarchitektur: ein Projektbericht

german

+

Die Qualität einer Anwendungsarchitektur ist nicht messbar. Es existieren jedoch Kriterien zur Bewertung einzelner Architektur-Eigenschaften, hierunter zählt unter anderem die Skalierbarkeit als wichtiger Aspekt. Skalierbarkeit beschreibt die Fähigkeit eines Systems, zur Kompensation erhöhter Lastaufkommen zusätzliche bereitgestellte Ressourcen nutzen zu können. Schlecht skalierbar ist es dagegen, wenn ein System ein Vielfaches der Last an Ressourcen benötigt und somit ungeplante, hohe Kosten verursacht. Der Vortrag ermöglicht an Hand eines Projektberichts einen Einblick in diese Thematik und gibt dementsprechend praxiserprobte Handlungsempfehlungen.

Mahbouba Gharbi
Session

Der App-Server ist tot, es lebe der App-Server!

german

+

Die Evolution von Java EE hat die Welt der Enterprise-Anwendungen revolutioniert. Mit Java EE 7 steht uns eine leistungsfähige Plattform zur Verfügung, deren Leichtgewichtigkeit in Zeiten von J2EE undenkbar war. Das gilt auch für die aktuellen App-Server. Es gibt zwar einige nachvollziehbare Argumente dafür, App-Server als unnötigen Ballast einzustufen, aber auch eine Menge vielfach übersehener Vorteile der Server. Diese Session berichtet von den Erfahrungen in konkreten Produktionssituationen und stellt Pro und Kontra gegenüber.

Dirk Weil
Session

Project Avatar: Mehr als nur Node.js auf der JVM - Enterprise Java written in JavaScript

german

+

JavaScript ist mittlerweile überall: ob im Browser, auf dem Server oder auf mobilen und Embedded-Geräten. Leichtgewichtige, asynchrone und eventgetriebene Architekturen sind derzeit angesagter denn je, der Server stellt lediglich die Ressourcen per (REST-/Push-)Services zur Verfügung und ein großer Teil der Logik wird in HTML5-Clients per JavaScript implementiert. Das Open-Source-Project Avatar macht mit seiner Thin-Server-Architektur (TSA) Java-EE-Ressourcen (z.B. Java-Bibliotheken, JPA-Layer, JMS) direkt per JavaScript zugreifbar, egal, ob auf dem Application Server (Service Components) oder dem Client (View Components). Serverseitig basiert Project Avatar auf der Node-Implementierung für die JVM (Avatar.js für die Nashorn Scripting Engine) und stellt somit fast das gesamte Node.js-API zur Verfügung und nutzt ebenfalls das Node Programming Model einer asynchronen Single-threaded Event-Loop (REPL) - falls gewünscht, auch parallel in mehreren Threads. Auf dem Client sorgt das Framework für das Binding der Ressourcen an HTML5-Widgets und beschränkt sich dabei auf so wenig JavaScript wie möglich und nur so viel wie gerade nötig. Die Programmierung erinnert hier stark an die Expression Language und ist so für den erfahrenen (Java-EE-)Entwickler einfach umsetzbar. Da bei einer TSA Client und Server losgelöst voneinander sind und nur protokollbasiert miteinander kommunizieren, ist die Verwendung der View Components nicht zwingend nötig. Hier kann der Entwickler auf das Framework seiner Wahl, z.B. AngularJS zurückgreifen. Die Livedemo zeigt, wie eine vollständige Java-EE-Applikation auf einem Java-EE-Server ganz ohne Java-Code erstellt werden kann, nur mit dem Einsatz von JavaScript.

Niko Köbler
Session

Persistence Frameworks for Everyone

german

+

Android bietet verschiedene APIs, um Daten zu speichern. Speziell das SQLite- und Content-Provider-API zwingt den Entwickler dazu, viel Boilerplate-Code zu produzieren. Daher liegt der Gedanke nahe, diese APIs durch eine Bibliothek zu kapseln. Auf diese Idee sind ziemlich viele Android-Entwickler gekommen, und somit haben wir mittlerweile einen ganzen Strauß verschiedener Frameworks vorliegen. Mehr oder weniger gut gepflegt, mit oder ohne Dokumentation und mit verschiedenen Ansätzen (Annotations, Codegenerator, Reflections etc.) ist es nicht gerade leicht, hier die richtige Entscheidung zu treffen. Wir zeigen Beispiele und geben Entscheidungshilfen. 

Dominik Helleberg
Session

Continuous Delivery mit Docker

german

+

Bei Docker handelt es sich um ein System, mit dessen Hilfe sich sehr leichtgewichtige, selbständige Container für Applikationen aufbauen lassen. Diese Container können alles von einfachen „echo ‚Hallo Welt’ “-Applikationen bis hin zu komplexen Applikations-Installationen enthalten. Einmal gebaut, werden diese Container von der Entwicklung bis hin zur Produktion propagiert. Die Container bringen alles mit, was sie zur Laufzeit benötigen und müssen nicht weiter Konfiguriert werden. Wie dies konkret funktioniert und welche Vorteile wir daraus in der Java-Welt ziehen können werden wir im Detail in dieser Session betrachten.

Halil-Cem Gürsoy
15:30 bis 16:30
Session

Sechs Technologien, die die Webplattform verändern werden

german

+

Diese Session gibt einen Überblick über sechs Webtechnologien, die Sie kennen sollten, weil sie bald die Webplattform entscheidend beeinflussen werden: (1) asm.js: native Geschwindigkeit fürs Web (2) Parallel JS: parallele Ausführung für JavaScript (3) ECMAScript 6: JavaScript entwickelt sich weiter (4) CSS-Grid-Layout: Layout für desktopähnliche Oberflächen (5) Installable Web Apps: Webanwendungen nativ installieren (6) Web Components: eine standardisierte Infrastruktur für Widgets

Axel Rauschmayer
Session

How to build Solid Mobile Web Applications?

english

+

Are you a Java developer and want to develop a mobile Web App that connects to a secured Java EE back end, but you don’t know where to start? This session is tailored for you. This live coding session, driven by Java and using a familiar development environment, goes step by step through building a complete Mobile Web Application. Starting from scratch, this presentation takes you through building a simple Java EE application and, from there, scaffolding a mobile web client based on AngularJS and Ionic. Finally, we will quickly discuss how it is possible to turn this Web App into a Native, multi-platform application ready to be distributed on different vendors’ stores, such as the Apple store or Google Play, by using Apache Cordova.

Sébastien Blanc
Session

Android will follow you everywhere

german

+

Das neue Android-Betriebssystem mit dem Codenamen „L“  bringt nicht nur ein modernisiertes  Look and Feel – aka „Material Design UI“ – mit sich, sondern gleich ein ganzes Paradigma: „Android will follow you everywhere“, so der O-Ton auf der diesjährigen Google I/O.  Ob Smartphone, Tablet, Car-Entertainment, Uhr oder was auch immer – Android ist überall.  Die Session zeigt aus Entwicklersicht die wichtigsten Neuerungen in Android L und wie sich die verschiedenen Device-Typen optimal ergänzen. Ein besonderes Augenmerk wird dabei auf Android Wearable Devices gelegt.

Lars Röwekamp
Session

Mobile Push for the Enterprise

german

+

Interaktion mit dem Benutzer ist die Basis einer erfolgreichen mobilen Anwendung. Push-Nachrichten, ein zentraler Bestandteil eines mobilen Betriebsystems, bieten eine komfortable Möglichkeit, um mit dem Benutzer in Kontakt zu treten. Der UnifiedPush-Server aus dem AeroGear-Projekt unterstützt Entwickler beim Versand von Push-Nachrichten an unterschiedliche Plattformen (Android, iOS und Firefox OS, inklusive Device-Management). Der Vortrag gibt eine Einführung zu Push-Nachrichten sowie die effektive Umsetzung in verschiedenen Szenerien, etwa Geolocation oder personalisierte Nachrichten. Ebenfalls zeigt der Vortrag die Integration des Servers für den Versand von Push-Nachrichten aus dem eigenen Java-Backend heraus.

Matthias Weßendorf
Session

Testgetriebene Infrastruktur als Code

german

+

Erfreulicherweise provisionieren wir unsere Infrastruktur zunehmend durch ablauffähigen Code. Diese Art der Bereitstellung ist komplex und erfordert einen hohen Anspruch an Qualität. Schnell wird es nötig, die eigene Software auf verschiedenen Betriebssystemen oder in der Cloud bereitzustellen. Wie testet man eigentlich, ob die Installation wirklich den Anforderungen entspricht? Es gibt jede Menge kleiner Stellschrauben, die überprüft werden müssen. Das Infrastrukturgebäude ist fragil und kann schnell zerbrechen. Auf der Basis von serverspec und anderen Helfern entsteht in der Session eine Installation, die Sie davon überzeugt, dass der Test-First-Ansatz auch für Infrastruktur sinnvoll und einfach umsetzbar ist.

Andreas Schmidt, Peter Roßbach
16:45 bis 17:45
Session

Die Entscheidung zwischen Stillstand und zeitgemäßer Webentwicklung mit JavaScript

german

+

Die Chance, auf den Zug der modernen Onlinetechnologien aufzusteigen, sollte ergriffen werden, bevor es zu spät ist. Sind für die einen der Wechsel der Frontend-Technologien weg von Java noch nicht “Enterprise-ready”, stellt der Einsatz von JavaScript in Browser, Apps und auf dem Server für die Big Player im Onlinebusiness eine weitaus effektivere Softwareentwicklung dar.Der Vortrag richtet sich sowohl an Kritiker des genannten Technologiestacks als auch an bereits Überzeugte, die ein Update aktueller Entwicklungen für Web und Mobile erfahren möchten.

David Amend
Session

Offlinewebanwendungen

german

+

HTML bietet Anwendungsentwicklern mittlerweile so viele Möglichkeiten, dass ein Rich Client oft gar nicht mehr in Betracht gezogen wird. Selbst wenn der Benutzer auch offline arbeiten muss, ist es oft möglich, dies mit einer reinen Webanwendung zu gewährleisten. In diesem Vortrag wird gezeigt, wie man ein einfaches Webformular mithilfe von „Offline Web Applications“ und „Indexed Database API“ auch offline verfügbar machen kann.

David Tanzer
Session

Logging und Metriken: Näher dran statt nur dabei

german

+

Log-Dateien schreibt jeder. Meistens liest man darin, wenn der Kunde sich bereits über einen Fehler beschwert hat. Dann beginnt das mühsame Interpretieren der Vergangenheit. Es gibt aber noch mehr Möglichkeiten, um den Zustand seiner Anwendungen zu überwachen – und zwar im Hier und Jetzt, mit Near-Time-Überwachungen. Mittels gezielt eingesetzter Metriken kann man nahe am Geschehen sein. Und mit gewissen fachlichen Metriken weiß man nicht nur, wie gut oder schlecht seine Anwendung generell, sondern auch das Geschäft läuft. Gute Metriken in Kombination mit gutem Logging sind ein Erfolgsfaktor für den Betrieb einer modernen Anwendung. In dieser Session sprechen wir über die Möglichkeiten und Tools, um Daten aus Logs und Metriken automatisiert zu aggregieren und auszuwerten.

Tammo van Lessen
Session

Better Concurrency in the JDK 8

english

+

2005 was a watershed year in that marked the big shift away from single to multicore CPUs. And even though we have gotten better a concurrent programming there is still a long way to go. This talk will focus on some of the steps that have been taken in JDK 8 to help developers obtain better performance by offering them better support for more highly concurrent algorithms and data structures. This support spans from low level support with a new annotation @contended right up to new higher level language and library support found in Lambdas. We will look at how you might use these new features to help you achieve better concurrent in your application.

Kirk Pepperdine
Session

Enterprise-JavaFX

german

+

Mit dem Erscheinen von Java 8 ist nun auch JavaFX fester Bestandteil von Java SE und wird von Oracle als das empfohlene UI-Toolkit genannt. Da Swing ab Java 8 auch nicht mehr weiterentwickelt wird, ist es an der Zeit, sich kritisch mit JavaFX und seinem Gebrauch in produktiven Businessanwendungen auseinanderzusetzen. JavaFX bietet als UI-Toolkit eine Fülle an Features, um moderne und interaktive Oberflächen zu erstellen. Daneben gibt es aber auch noch weitere wichtige Voraussetzungen, die beim Erstellen von Businessanwendungen mit JavaFX berücksichtigt werden müssen. Ein tolles UI ist hier nicht alles. Der Vortrag gibt einen Überblick über verschiedene Best-Practices-Ansätze, um Problemstellungen wie die Kommunikation zwischen Server und Client, Background Tasks, MVC-Ansätze und das Designen von komplexen Dialog Flows zu lösen. Im JEE-Sektor gibt es hier bereits viele gute Lösungsansätze, die in Teilen auch einfach auf eine JavaFX-Anwendung konvertiert werden können. Bereits vorhandene Frameworks und APIs wie DataFX oder OpenDolphin werden hierbei auch angesprochen. Während des Vortrags wird beispielhaft ein JavaFX-Client realisiert, der über verschiedene Kommunikationswege mit Servern und Datenbanken kommuniziert. Hierbei werden unterschiedliche CRUD-Dialoge und Dialog Flows erzeugt und alles in eine moderne und interaktive Anwendung verpackt.

Hendrik Ebbers
Freitag - 7. November 2014
09:00 bis 17:00
Power Workshop

Mehr Client wagen! - Next Generation Web mit Java EE

german

+

In Zeiten von HTML5, Client-side JavaScript-Frameworks, REST und WebSocket scheinen die Tage von klassischen serverseitigen Webanwendungen und damit einhergehend von Java EE einmal mehr angezählt. Doch weit gefehlt! Im Rahmen dieses praktischen Workshops wird gezeigt, wie mithilfe von Java-EE-6/7-Bordmitteln (CDI, JAX-RS, WebSocket, Async-APIs ...) und aktuellen Client-side Frameworks (Angular.js & Co.) moderne Webanwendungen realisiert werden können. Ausgehend von einer Architekturdiskussion werden anhand von ausgewählten Use Cases die Möglichkeiten und Features der aktuellen Client- und (Java-EE-)Server-Technologien beleuchtet und damit praktische Grundlagen vermittelt, von denen nicht nur einfache Web-UIs, sondern vor allem auch herkömmliche Businesswebanwendungen profitieren können. Dabei spielt es keine Rolle, ob es sich um ein Projekt auf der grünen Wiese oder aber um die Erweiterung bestehender Enterprise-Java-Anwendungen inkl. serverseitigem Webframework (z.B. JSF) handelt. Notebook nicht vergessen!

Jens Schumann
Power Workshop

Werden Sie Git-Experte!

german

+

Die Versionsverwaltung Git hat sich mittlerweile etabliert und wird in vielen Projekten eingesetzt. Neben der eigentlichen (Code-)Versionierung bietet Git aber auch viele weiterführende Möglichkeiten, die Projektalltag und Release-Management vereinfachen können. Diese Themen möchten wir uns mit Ihnen in diesem Power Workshop ansehen. Dazu gehören unter anderem: Welche Branch-Strategie passt am besten zu Ihrem Projekt? Wie können sie Pull-Requests zur Qualitätssicherung einsetzen? Wie können Sie mit Rebasing eine "schöne" Historie erzeugen? Wie verwenden Sie Submodules oder Subtrees dazu, andere Projekte einzubinden? Wie setzen Sie Git mit Build-Tools wie Maven und Gradle ein? Darüber hinaus haben Sie natürlich die Möglichkeit, Ihre eigenen Fragen und Themen einzubringen.Voraussetzung für diesen Workshop sind rudimentäre Git-Kenntnisse. Für die Übungen sollten Sie Ihren eigenen Laptop mitbringen.

 

Nils Hartmann, René Preißel
Power Workshop

JavaFX Experts Day

german

+

In Business-Anwendungen spielen Aspekte wie Architektur, Test- und Wartbarkeit eine große Rolle. Ein immer gewichtigerer Faktor ist zudem die User Experience (UX). Nicht-blockierende Oberflächen, elegante Nutzerführung und auch das Aussehen einer Anwendung spielen in dieses Feld hinein und gelten heute als erfolgskritisch. Welche Werkzeuge stellt mir JavaFX für Architekturgestaltung und der Implementierung zeitgemäßer Oberflächen zur Verfügung? 

Der JavaFX Experts Day auf der WJAX 2014 stellt genau diese Punkte in den Mittelpunkt. Er informiert den erfahrenen Entwickler und Softwarearchitekten über die Besonderheiten von JavaFX für Business-UIs und beleuchtet dabei auch das Thema Migration von Swing nach JavaFX. Wenn Sie Ihr Wissen über JavaFX vertiefen wollen, oder für ein Kundenprojekt nützliche Informationen für die Praxis benötigen, dann sind Sie in diesem Workshop richtig. Erfahrene JavaFX-Experten beleuchten ausgewählte Aspekte der Technologie und stehen Ihnen Rede und Antwort.

Alexander Casall