Passwort vergessen?

ALL YOU CAN READ!

Der One-Stop-Shop für mehr als 420 Magazine, Bücher und Ausgaben der Digitalbuchreihe shortcuts!

Finden Sie Ihr Thema direkt in unserem großen Archiv!


Von Machine Learning bis Domain Driven Design. Jetzt registrieren und sofort über 100 Seiten Expertenwissen erhalten.

Lesen Sie mit unserem neuen Premiumservice mehr als 420 Magazine, Bücher und shortcuts online. Mit dem entwickler.kiosk-Abonnement greifen Sie ab 9,90 Euro im Monat auf das gesamte Sortiment im entwickler.kiosk zu. Bestehende Abonnenten lesen in unserem entwickler.kiosk ihre abonnierten Magazine kostenfrei.

Registrierung

  • Mit Absenden der Registrierung bestätigen Sie unsere AGB und Datenschutzbestimmungen.

Direkt bestellen

DIREKT BESTELLEN

Bestehendes Abonnement zum entwickler.kiosk-Zugang erweitern

Bitte wählen Sie Ihr bestehendes Abonnement:

Volltextsuche

Ihre Suchergebnisse für:

Business Technology ...

Entwickler Magazin S...

PHP Magazin 1.18

Windows Developer 12.17

JAX 2016

18. bis 22. April 2016
Rheingoldhalle Rheinstraße 66
55116, Mainz - DE

Monday - 18. April 2016

09:00 bis 17:00
Concurrency in der Praxis

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.

Analyse und Konfiguration der Garbage-Kollektoren in der HotSpot JVM

Im Workshop wird erläutert, wie die Garbage-Collection-Algorithmen in der HotSpot JVM funktionieren und wie man sie konfigurieren kann. Das ist z.B. nötig, wenn der Garbage Collector störend lange Pausen verursacht oder wenn - wie in Java 9 - defaultmäßig ein anderer GC-Algorithmus verwendet wird als zuvor. Ehe man eine sinnvolle Konfiguration ausprobieren kann, um Probleme wie minutenlange „Stop-the-World-Pausen“ zu beseitigen, muss analysiert werden, wie die langen Pausen zustande gekommen sind. Dazu werden die GC-Trace-Ausgaben analysiert. Wie in einem Workshop üblich, soll praktisch geübt werden. Die Teilnehmer bekommen ein kleines synthetisches Java-Programm, welches das Speicherallokations- und -freigabeverhalten einer echten Anwendung emuliert. Daran werden GC-Analysewerkzeuge ausprobiert, die den GC Trace analysieren helfen. Anschließend wird die Garbage Collection neu konfiguriert und der Erfolg des Tunings überprüft.

Keine Slides vorhanden
Skalieren auf mehr als die ersten 100 000 Zeilen Code

Du und drei Kollegen, ihr habt ein Softwareprojekt gestartet und die erste Version eurer Codebasis geschrieben. Und plötzlich bekommt das neue System immer mehr Aufmerksamkeit und mehr User als eigentlich geplant. Super! Aber was jetzt? Jetzt willst du eure Codebasis wahrscheinlich weit über die ersten 100 000 Zeilen skalieren und euer Team auf mehr als zehn Leute vergrößern, oder? So einfach wie ganz am Anfang ist das leider nicht mehr, weil du dich jetzt ständig darum kümmern musst, dass deine Kunden zufrieden sind. Dieser Workshop wird dir zeigen, was du, selbst unter Stress, tun kannst, um Folgendes umzusetzen: den Code erweiterbar zu halten, um jederzeit schnell neue Features hinzufügen zu können; sicherzustellen, dass die verschiedenen Teams nicht aufeinander warten müssen; neue Leute mit ins Boot holen zu können, ohne das jetzige Team aufzuhalten; euren Prozess schlank genug zu halten, damit Arbeit schnell durch die verschiedenen Stellen fließen kann. In diesem Workshop können Sie von Matthias Bohlens Erfahrung mit vielen Softwareteams lernen.

Coole Web-Apps mit AngularJS, TypeScript und Spring Boot

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 Frameworks 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. Dieser Workshop ist leider ausgebucht.

Der Docker-Basis-Workshop

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. Dieser Workshop ist leider ausgebucht.

Transformations-Workshop: Der Weg zum Architekten der Zukunft

Auf Basis der Case Study LiftUp aus unserem Buch „Business Enterprise Architecture – Praxishandbuch zur digitalen Transformation in Unternehmen“ entwickeln wir mit den Teilnehmern einen Masterplan für die Transformation. In vielen praktischen Beispielen werden die Teilnehmer die Werkzeuge des Buchs praktisch anzuwenden lernen und unter anderem ein neues Business Model, Operating Model und eine Zielarchitektur entwickeln. Außerdem werden wir ausführlich darüber diskutieren, wie eine Transformation strukturiert und durchgeführt werden kann. Der Workshop wird interaktiv und mit vielen Diskussionen und Übungen in der Gruppe gestaltet werden. Die jeweiligen Aspekte werden in kleinen Gruppen erarbeitet und im Plenum mit allen Teilnehmern stetig abgestimmt, sodass am Ende ein ganzheitlicher Entwurf der umsetzbaren Transformation entsteht. Bringen Sie bitte Kreativität, gute Laune und etwas zu Schreiben mit.

Keine Slides vorhanden
Microservices-Workshop: Architektur und Praxis

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, ihre Vor- und Nachteile sowie wesentlichen Eigenschaften. Dann geht es in die Praxis: containerloses Deployment mit Spring Boot und Koordination der Anwendungen mit Spring Cloud und dem Netflix-Stack. Am Ende können wir eine Anwendung aus mehreren Microservices betreiben und weiterentwickeln.

Multi-Channel-Apps für Web, Mobile und Friends

Rendert ihr immer noch Server-side? Schlimmstenfalls pro Client und Channel in unterschiedlichen Formaten? Ach, bisher bedient ihr nur einen Client bzw. Channel? Glück gehabt! Denn damit ist der Kelch in Sachen Usability, Ergonomie und Responsive bisher an euch vorbeigegangen. Bisher, denn unweigerlich müssen sich auch klassische serverseitige Webentwickler „dem Client“ öffnen und damit Multi-Channel und Multi-Client denken und leben. Das ist gar nicht so schwer, ehrlich! Dieser Workshop nimmt nach einer kurzen Architekturdiskussion den typischen serverseitigen Webentwickler an die Hand und zeigt anhand von ausgewählten Use Cases die Möglichkeiten und Features moderner Multi-Channel-Applikationen, und zwar aus der Perspektive von clientseitigen UI-Frameworks (Bootstrap, Foundation), clientseitigen Technologien (JavaScript-Frameworks, native mobile Technologien) und der Bereitstellung von Daten durch serverseitige Technologien (JAX-RS und WebSocket). Notebook nicht vergessen – es wird programmiert.

Java EE 7 – Enterprise-Anwendungen ohne Ballast

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 nach Wunsch der Teilnehmer auf weitere Teile der Plattform, z. B. Timer, asynchrone Verarbeitung, WebSockets, 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 April auf https://github.com/dirkweil/javaee-workshop.

09:30 bis 09:45
Begrüßung Agile Day

Begrüßung und Einführung in den Agile Day.

Keine Slides vorhanden
09:45 bis 10:30
Scrum und mittelfristige Planungen – ein Widerspruch?

Im Unternehmenskontext muss ein Projektteam oft die Fragen beantworten: Wie viel Budget wird ungefähr für die Entwicklung der Software notwendig sein? Wann können wir grob mit bestimmten Features rechnen, um beispielsweise Marketingaktionen starten zu können? Auch wenn wir in Scrum mit flexiblem Scope arbeiten, gibt es Möglichkeiten, mit hierarchischen Backlogs Äquivalenzschätzungen, „Wasserlinie“ u. Ä. auf diese Fragen verwertbare Antworten zu finden.

11:00 bis 11:45
Nexus – Scaled Professional Scrum

Das Skalierungframework von Scrum.org. Viele IT-Abteilungen und -Organisationen haben in den letzten Jahren erfolgreich Projekte mit Scrum organisiert; dabei waren in der Regel ein oder zwei Teams beteiligt. Der Erfolg und die positiven Erfahrungen führen scheinbar automatisch zum nächsten Schritt – zu großen Projekten mit mehreren Scrum-Teams. Denn wenn die Produktivität bei einem Scrum-Team steigt, dann, so die Hoffnung, wird sie das bei mehreren Teams erst recht. Diese Hoffnung erfüllt sich häufig nicht. Skalierte Projekte werden durch ihre hohe Komplexität und die wachsenden Abhängigkeiten zwischen den Teams geprägt. Beides senkt die erhoffte Produktivität und gefährdet die gemeinsame Lieferung im Sprint. Mit Nexus liefert Scrum.org eine adäquate Antwort auf die speziellen Herausforderungen der Skalierung. Auf der einen Seite bringt Nexus einen soliden Ansatz, neue Ideen und effiziente Praktiken, um Abhängigkeiten zu lösen und damit Verzögerungen zu verhindern. Auf der anderen Seite baut Nexus auf das Prinzip der Professionalisierung als Basis erfolgreicher Softwareentwicklung. In diesem Vortrag diskutiere ich mit Ihnen dieses Framework und die Ideen dahinter sowie ihre Praxistauglichkeit.

11:45 bis 12:30
Effektive User Stories – Wie Sie Ihre Produktivität in Projekten deutlich steigern können

User Stories sind in agilen Projekten weit verbreitet, um Anforderungen zu erfassen. Leider zeigt die Erfahrung, dass bei der Anwendung häufig wesentliche Dinge übersehen oder falsch verstanden werden. Dieser Vortrag räumt acht typische Missverständnisse aus und zeigt einen Weg auf, User Stories so zu nutzen, dass die Produktivität in Projekten deutlich gesteigert werden kann.

13:30 bis 14:15
Das agile Pandämonium

Lernen Sie die Teufel und Dämonen kennen, von denen Menschen, Teams und ganze Organisationen während der Einführungsphase agiler Prinzipien und Methoden besessen sind. Immer mehr Organisationen sind auf dem Weg, Scrum- sowie agile Prinzipien und Praktiken zu implementieren. Leider gehört mehr dazu, als nur Prozesse, Methoden und Besprechungen auszuführen. Der Erfolg liegt tiefer. In dieser Session erfahren Sie, welche Art von Hindernissen eine Organisation während der Einführungsphase agiler Prinzipien und Methoden typischerweise zu überwinden hat. Während der langjährigen Arbeit als Agile-Coach, bei der wir Organisationen geholfen haben, agiler zu werden, haben wir eine ganze Reihe von "Dämonen" zu sehen bekommen. Oft waren es immer wieder dieselben. Einige von ihnen sind mehrere hundert Jahre alt und scheinen nicht auszusterben. Diese Hindernisse als Dämonen und Teufel zu sehen und ihnen Namen zu geben, ist nicht nur Spaß, sondern hilft uns, sich an sie zu erinnern, Muster leicht zu erkennen, um sie zu identifizieren. Lernen Sie jene Dämonen kennen, von denen Ihre Organisation besessen sein könnte, und lernen Sie, was Sie dagegen tun können, außer Knoblauch zu verwenden.

14:15 bis 15:00
Eine "Grand Unified Theory" der Softwareentwicklung

In den letzten Jahren sind verschiedene interessante Ansätze zur Verbesserung der Softwareentwicklung aufgekommen: Bekannte Vertreter sind XP, Scrum, Behaviour-driven Design, Specification by Example oder auch Domain-driven Design. Der Vortrag möchte einen kurzen Überblick über einige dieser Ansätze geben und sie miteinander vergleichen: Gibt es etwas, das sie im Kern alle verbindet? Wie sieht dieser Kern aus, und was können wir daraus für unsere tägliche Arbeit mitnehmen?

15:30 bis 16:15
Conway's Law revisited – Was soziale Systeme, Microservices und Agilität verbindet

Die Struktur einer Software spiegele die Kommunikationsstruktur der sie entwickelnden Organisation, besagt Conway's Law. Der erste Teil des Vortrags stellt die Thesen von Melvin Conway aus dem Jahr 1968 dar. Studien, die auf den Ansätzen von Conway aufbauen, stehen im Mittelpunkt des zweiten Teils: Wie können organisatorische Metriken benutzt werden, um die Fehleranfälligkeit von Modulen vorherzusagen? Wie verhält sich die Kopplung von Modulen, wenn die dahinter liegenden sozialen Systeme einmal eng und einmal weit gekoppelt sind? Im dritten Teil werden Erfahrungen aus eigenen Projekten beschrieben. Infiziert durch Conway's Law stelle ich dar, wie die Struktur der Systeme, an denen wir in den letzten Jahren arbeiteten, sich zu den sozialen Systemen verhält, in denen sie entstanden sind. Am Ende des Vortrags steht ein Vorschlag, wie denn Systeme sinnvollerweise zu schneiden seien. Dabei wird ein Zusammenhang von Cross-functional Team, Microservices und Bounded Context sichtbar. Ich berichte aus einem derartigen Projekt.

16:15 bis 17:00
Agile-Day-Expertenpanel

Zum Abschluss diskutieren die Speaker des Agile Days die wichtigsten Themen und Fragestellungen, die sich im Laufe des Tages gezeigt haben. Die Teilnehmer können selbstverständlich auch eigene Fragen, Erfahrungen und Ideen in die Diskussion einbringen.

Keine Slides vorhanden

Tuesday - 19. April 2016

08:30 bis 09:00
Eröffnung JAX, Business Technology Days und Big Data Con

Conference Chair Sebastian Meyen eröffnet die JAX, Business Technology Days und Big Data Con und wirft einen Blick auf die Themen der kommenden Tage.Die anschließende Keynote bietet den Teilnehmern inspierende und spannende Insights und Erkenntnisse.

Keine Slides vorhanden
09:00 bis 09:30
The JVM: The Enterprise and beyond

Our industry is changing at a remarkable rate. The traditional “enterprise” model is finally being swept away. The application server has finally met the end it so richly deserved. The rise of containers is having a profound effect on all layers of the stack. Even enterprises increasingly want to move from monolithic applications toward microservices, allowing greater room for experimentation with languages and infrastructure. What’s the role of Java and the JVM in this new world? Is Java still relevant? What about Scala and other JVM languages? What are the skills that a Java developer should develop to be most effective today? Rod will give a characteristically opinionated take on these topics and discuss some of his own coding preferences.

Keine Slides vorhanden
09:45 bis 10:45
Modernes JavaScript mit ECMAScript 2015

Java 8 ist das wahrscheinlich größte Update in der Geschichte der Programmiersprache. Mit ECMAScript 2015 ist nun ein ähnlich umfangreiches Update von JavaScript standardisiert worden. Die unter dem Codenamen „Harmony“ entwickelte neue Version greift so tief in die Sprache ein, dass man JavaScript-Quellcode kaum mehr als solchen wiedererkennt. Aus Sicht eines Java-Entwicklers bietet JavaScript mit einem Klassenkonzept, dem Block-Scope, einem Modulsystem und einigen Standarddatenstrukturen nun endlich all das, was man schon lange kläglich vermisst hat. Auf der anderen Seite werden beispielsweise mit Generatoren Konstrukte eingeführt, die zunächst sehr obskur wirken und erst auf den zweiten Blick ihre wahre Stärke offenbaren. Diese Session gibt einen Überblick über die neuen Sprachfeatures von ECMAScript 2015, zeigt Parallelen zu Java auf und beschreibt, wie sich dieses moderne JavaScript auch in älteren Browsern nutzen lässt.

Preventing Runtime Errors at Compile Time using the Checker Framework

Are you tired of null pointer exceptions, unintended side effects, SQL injections, and other run-time errors? A pluggable type system can guarantee the absence of many important errors.  Are you a software architect who wants to implement custom checks? You want support with creating a code checker. This presentation is aimed at both audiences. We will demo the Checker Framework, which gives a compile-time guarantee of program properties and allows you to create your own checkers. Java 8 adds syntax to use annotations on all uses of types, making pluggable type systems practical. Our tool has found hundreds of bugs in millions of lines of well-tested code, and even novices can quickly use and create a pluggable type system. The tools are freely available at http://checker-framework.org/. Come learn how you can use these tools to improve your own code!

Q&A with Rod Johnson

In this Q&A session you will have the chance to discuss with Rod the future directions of JVM in the light of new style architectures such as microservices, containers, etc.

Keine Slides vorhanden
Fünf einfache Schritte zu Continuous Delivery

Die Einführung von Continuous Delivery ist komplex. Prozesse müssen grundlegend geändert werden. Kaum ein Stein bleibt auf dem anderen. Die Gefahr ist groß, dass man das Ziel und den Weg aus den Augen verliert. Die vorgestellten fünf Schritte zeigen die Bereiche, auf die man sich fokussieren muss, und wo die meisten Stolpersteine sind. Continuous Delivery ist schließlich mehr als nur Infrastrukturautomatisierung oder nur eine Prozessoptimierung.

Lessons Learned in Software Development: QA Infrastructure in complex Systems

This talk goes into what is needed to build a QA infrastructure and how to do testing of complex, tightly coupled software, such as JVMs, runtimes or Operating Systems without ending up without a working test environment. It will be about QA system design, toolsmithing for analysis, white box testing of complex software and similar stuff. I’m going to draw upon my experience as a JVM developer at BEA and Oracle, and talk about what kind of test infrastructure we built there and what it was like acquiring Sun and bootstrapping an incomplete legacy system into something that, five years later, works a lot better. The lessons herein apply to building well working general test infrastructure as well.

Keine Slides vorhanden
Leanisieren – Verschlanken und Wertbeitrag erhöhen

Beim Leanisieren werden schnell und systematisch Ansatzpunkte für die Verschlankung und die Erhöhung des Wertbeitrags identifiziert, zielführende und handhabbare nachhaltige Lösungen aufgezeigt und geeignete Quick-win-basierte Maßnahmen zur Umsetzung abgeleitet. Techniken aus dem Lean Management wie die Suche nach Verschwendungen, Wertstromanalyse, End-to-End-Prozessanalyse finden Anwendung. In dieser Session werden sowohl die Theorie vom Lean Management als auch die Techniken an Beispielen aus der Praxis erläutert.   

Was du willst - Graphbasierte Empfehlungen mit Cypher und Neo4j dynamisch berechnen

Meetups sind eine tolle Freizeitbeschäftigung, man lernt neue Leute kennen, wird gut versorgt und lernt noch etwas dabei. In einer größeren Stadt hat man jedoch die Qual der Wahl - an einem Abend finden zehn bis zwanzig verschiedene Veranstaltungen statt. Wie kann ich die Meetups und Veranstaltungen finden, die zu mir passen? Sowohl persönlich als auch als Plattform profitiert man stets von guten Empfehlungen. Wie auch komplexere Echtzeitempfehlungen leicht umzusetzen sind, möchte ich auf Basis der Graphdatenbank Neo4j und ihrer Abfragesprache Cypher demonstrieren. Nach dem Import von Meetups, Topics, Mitgliedern und Zusagen spielen wir verschiedene Empfehlungsszenarien, basierend auf Ähnlichkeiten, Teilnehmerverhalten und anderen Faktoren, durch. Mit verständlichen Abfragen erhält man schnell nützliche Ergebnisse, die man zu einer ganz persönlichen Empfehlung kombinieren kann.

Internet der Dinge (IoT) – Alternativen für Hard- und Software zur flexiblen Umsetzung attraktiver Szenarien

IoT-Anwendungen können heute auf einen breiten Fundus unterschiedlicher Hard- und Softwarekomponenten zugreifen, die mittels einer Vielfalt von Programmiersprachen erstellt werden können. Dabei reicht die Bandbreite von einfachen Mikrocontrollern mit zunehmend auch der Möglichkeit der Programmierung in JavaScript, Python oder Lua bis hin zum populären Raspberry Pi, auf dem Linux zur Verfügung steht. Der Vortrag zeigt exemplarisch verschiedene Hardwareplattformen und deren Spezifika und vermittelt, wie diese unter Nutzung der SAP HANA Cloud Platform IoT Services in attraktive Szenarien eingebunden werden können. Die dabei vorgestellten Konzepte sind auch mit anderen IoT-Plattformen nutzbar, und es werden diverse attraktive Anwendungsszenarien sowie dabei integrierbare Komponenten und Open-Source-Projekte gezeigt.

Keine Slides vorhanden
Microservices zur Architekturmodernisierung

Dieser Vortrag adressiert ein klassisches Dilemma der IT: eine große monolithische Anwendung, kritisch und wichtig, und innerlich ungeheuer schwer und aufwendig zu warten. Um auf fachliche Änderungen und dynamische Märkte schneller reagieren zu können, müssen wir dieses Altsystem modularisieren und strukturell sowie konzeptionell modernisieren – dabei aber kontinuierlich (hoch) verfügbar halten. Ganz nebenbei verfügen wir natürlich nur über ein eingeschränktes Budget … Wir zeigen Ihnen anhand etablierter Praktiken und Patterns (aus dem Fundus von aim42.org) typische Möglichkeiten auf, solche Projekte anzugehen und Stück für Stück die Architektur des Gesamtsystems zu modernisieren. Hierbei unterstützen uns u. a. Bibliotheken wie Hystrix dabei, die Risiken dieser Umstellung zu managen und auch zu visualisieren. Nach dem Vortrag haben Sie einige anwendbare Muster kennengelernt, mit deren Hilfe Sie Ihre eigenen Monolithen wieder zu besser wartbaren Systemen migrieren können.

Beyond Multi-Tenancy: Introducing a new Container-based Application Factory

Multi-tenancy is the classical approach for delivering SaaS applications. However, multi-tenancy at the application level comes with a significant limitation in terms of processing isolation, efficient hardware utilization and advanced per-tenant configuration. Because the Nuxeo Platform is designed to be deeply configurable and extensible, the classic multi-tenant model was inadequate for Nuxeo and our customers. In this session, you will see a new application factory infrastructure built to avoid the limitations of multi-tenancy, using customized Docker containers deployed on demand for each tenant, while still being able to manage this as a single application. We will also describe why we chose Docker or Gogeta to build our open source project "Arken" and its architecture choices. We will show how it has evolved alongside the Docker ecosystem by taking advantage of the new volume and network plugins. This presentation will also show you how this new container-based application factory model optimizes the hosting costs by providing high-density container hosting on top of AWS EC2 and passivation/on-demand activation of containers.

Methodik für agile BPM-Projekte – braucht man sowas?

Das Business Process Management Framework (BPMF) ist ein frei zugängliches Methodenframework, das die in BPM-Projekten notwendige struktutrierte und einheitliche Vorgehensweise mit agilen Prinzipien verschneidet und zahlreiche Best Practices liefert. Treiber ist die Enterprise BPM Alliance, ein unabhängiger Zusammenschluss von BPM-Anwendern, die das Ziel verfolgen, praktische Erfahrungen in einer offenen BPM-Methodik zu bündeln, an der sich Menschen bei der Durchführung von BPM-Vorhaben orientieren können. In dieser Session stellen wir kurz die Arbeit der Alliance vor und gehen anschließend im Detail auf die neun Aspekte des Methodikkerns sowie das agile Vorgehensmodell ein.

Java EE meets Microservices

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? Die Session 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.

11:30 bis 12:30
Building an IoT App using MQTT

MQTT is an standards based, lightweight pub/sub messaging protocol ideal for internet of things use cases. With implementations in a number of different languages, using MQTT in your applications is simple and strait forward. In this session we will build an application that connects to an MQTT broker and can receive data from and issue commands to a number of different  IoT devices. We will cover topics related to security, scalability, device management and much more. If you are looking for an easy to use protocol for your IoT apps be sure to check out this session.

Value-based Improvement (wert-/nutzenbasierte Modernisierung)

Wenn Softwaresysteme durch ständiges „Herumbasteln“ (sprich: Erhöhung der technischen Schulden) verrotten, dann werden fachliche Erweiterungen immer teurer und riskanter. Ein Teufelskreis – denn dann steigt gleichzeitig der Druck, neue Features liefern zu müssen … Im Vortrag zeigen wir systematische Auswege aus dieser Situation: Mit aim42-basierter Analyse identifizieren Sie die schlimmsten Wartungshindernisse und bewerten sie aus betriebswirtschaftlicher Sicht. Parallel zu fachlicher Erweiterung beseitigen Sie systematisch und kontinuierlich diese Hemmnisse – und balancieren damit Wartbarkeit und Business Value. Klassischen Refactoring-Ansätzen fehlt dieser betriebswirtschaftliche Aspekt – daher stoßen sie bei Entscheidern so oft auf Widerstand.

Die Zusammenarbeit des Scrum-Teams - Soziale Herausforderungen als Chance und Risiko

Scrum stellt hohe Anforderungen an die sozialen Fähigkeiten von allen am Prozess beteiligten Personen. Gemeinsam als Team sind Tester, Entwickler etc. für die Produktion verantwortlich. Für den einen ist das spannend, für den anderen ist es bedrohlich. Auf jeden Fall müssen Menschen in einem Scrum-Team aus ihrer Komfortzone raus, und das schafft Raum für alte und neue Konflikte. Der Vortrag beleuchtet die notwendigen Veränderungen immer mit Blick auf die betroffenen Menschen und stellt Herausforderungen, Chancen und Risiken gegenüber.

Abnahme leicht gemacht - Bringen Sie Ihren Anforderungen das Laufen bei!

Fachliche Abnahmen bedeuten in vielen großen Projekten immer noch wochenlange Vorbereitungen, manuelle Durchführungen sowie aufwendige Nachtests und Aufbereitung der Ergebnisse. Das bremst die Teams bei der Weiterentwicklung und den Betrieb bei der Livestellung. Viele Organisationen erhoffen sich mit der Einführung von Agilität Besserung. Aber auch oder gerade dort ist die Problematik vor allem wegen der höheren Taktung sichtbar. Was ist nun? Ist das überhaupt realistisch und vertretbar, vor allem in großen Projekten? Unsere Erfahrungen aus der Praxis sprechen eine eindeutige Sprache. Ja, es geht. Es ist nicht nur möglich, es ist bei zunehmender Komplexität der Projekte schlichtweg unabdingbar. Aber der Weg dorthin ist nur mit hoher Disziplin und unter Einhaltung bestimmter Regeln machbar. Welche Regeln das sind, wie man sie effizient einhält und welche Rollen involviert sind, wird im ersten Teil von diesem Vortrag anhand von Beispielen aus der Praxis unserer Projekte erklärt. Da die Auswahl der richtigen Werkzeuge ein wesentlicher Faktor für den Erfolg der Teams ist, wird der zweite Teil des Vortrags testIT LivingDoc gewidmet: eine Open-Source-Plattform, die es erlaubt, ausführbare Spezifikationen in Atlassian Confluence in natürlicher Sprache zu erfassen und zu automatisieren. Dadurch steht einer integrierten und leichtgewichtigen Abnahme nichts mehr im Wege.

Pipeline as Code mit Jenkins Pipeline

Die Definition von Build-Pipelines im Sourcecode-Repository der jeweiligen Anwendung (Pipeline as Code) hat gegenüber dem herkömmlichen Ansatz zur Definition von Build Jobs viele Vorzüge, aber auch Grenzen. Dieser Vortrag soll aufzeigen, wann Pipeline as Code Sinn ergibt und wann nicht. Demonstriert wird dies an Beispielen aus der Praxis, die z.B. Build Jobs für Feature-Branches automatisch anlegen oder löschen oder auch exploratives Testen von Änderungen der Build-Pipeline erlauben. Auch wann ein Branch automatisch gebaut werden soll und wann nicht, will wohlüberlegt sein. Mithilfe von fortgeschrittenen Features werden Softwareprinzipien wie DRY auch für Build-Pipelines umgesetzt.

High-Performance Java EE with JCache and CDI

Do you need more performance from your Java EE applications? Is latency causing you stress? If so, take a look at JCache, the Java caching API. This code-driven session demonstrates how to integrate JCache into your Java EE applications, using CDI. JCache (JSR 107), the new standard API for cache access, comes with a full set of CDI annotations. Adding a single annotation to a method can achieve an orders-of-magnitude speed improvement in applications with high latency. The session gives you an introduction to how to use these standard annotations in your Java EE applications, when to use which annotations, and what is automagically happening under the covers. You will leave inspired to add twelve characters to your code.

Alles nur Routine!? BPM jenseits von Workflowautomatisierung

Traditionell wird BPM oft eingesetzt, um Routineprozesse in Unternehmen zu automatisieren. Die aktuellen Standards wie BPMN und DMN in Verbindung mit modernen Ausführungs-Engines und Frameworks bieten heute dafür beste Voraussetzungen. In der Praxis kommen aber in der Zusammenarbeit mit Geschäftsprozessverantwortlichen und Organisationsentwicklern oft ganz andere Probleme zum Vorschein, wenn es um BPM für größere Organisationen geht. Geschäftsprozesse müssen ständig an die sich verändernde Realität des Business angepasst und an die Mitarbeiter kommuniziert werden. BPM wird so oft ein zentrales Element des Wissensmanagements. Wenn sich Anwender dann noch beispielsweise Dynamisierung der Prozesse und systematisches Management von Prozessvarianten wünschen, werden die Grenzen heutiger Standards und Lösungen schnell sichtbar. Dieser Vortrag illustriert das anhand fünf ausgewählter Herausforderungen realer BPM-Vorhaben in unterschiedlichen Domänen und zeigt deren Lösungsmöglichkeiten auf.

Keine Slides vorhanden
Was wird Java 9 bringen? - Ein Ausblick auf die nächste Version von Java

Die nächste Version von Java steht bevor.  Die Freigabe von Java 9 ist für den September 2016 geplant. Die Session gibt einen Ausblick auf Java 9 und seine interessantesten Features. Es sind zwar keine neuen Sprachmittel für Java 9 geplant, aber zahlreiche Ergänzungen und Verbesserungen der JVM und des JDK, u.a. ein Modulkonzept für das JDK (Project Jigsaw) und eine Überarbeitung des Memory Models von Java (JMM 2.0).

Integration von Elasticsearch in moderne Java-EE-Webanwendungen

Dank REST-API und NoSQL macht der Start in die Elasticsearch-Welt einfach Spaß. Elasticsearch ist in wenigen Minuten aufgesetzt und bereit für erste Versuche. Wesentlich herausfordernder wird allerdings die Integration von Elasticsearch in eine Enterprise-Anwendung und -Infrastruktur. Verschiedene Datenquellen wie Datenbanken und Verzeichnisdienste zu synchronisieren sowie Anforderungen an Sicherheit und Integration, sind nicht ganz trivial umzusetzen. In der Session werden anhand von Beispielanwendungen auf Basis von Java EE und AngularJS verschiedene Herangehensweisen mit Schwerpunkt auf Synchronisierung und Frontend-Integration gezeigt.

JavaScript-Frameworks: Wieso überhaupt, und dann welches?

Das Feld der JavaScript-Frameworks für Webentwicklung ist weit und unübersichtlich. Kaum hat man sich einen Überblick verschafft, schießen neue Frameworks oder neue Versionen von existierenden Frameworks wie Pilze aus dem Boden. Anhand von praxisrelevanten Merkmalen wollen wir zusammen Struktur in das Dickicht der JavaScript-Webframeworks bringen. Dazu werden wir uns Angular 1 und 2, React und Web Components ansehen.

Resilience reloaded: more Resilience Patterns

Production is where the money is made and where customers are satisfied - but only if our application is up, running and responsive. If our application is down or latent, it's worthless - and even worse, we loose money and reputation. This is a real challenge with today's complex, distributed and highly interconnected application landscapes - and concepts like cloud computing or microservices make it even more challenging. That's what resilience is about: how to design applications that they are highly available and responsive - even in the face of unexpected failure and load situations. In this session we will focus on a resilience pattern language that is organized around recovery and mitigation, the core domains of error handling after they have been detected. To complete the picture we will add a few error prevention patterns - everything of course garnished with lots of useful tips and tricks.

Knowledge is Power: Getting out of Trouble by understanding Git

Git is rapidly taking over the development workplace, and nowadays it is integrated with many development, testing and deployment platforms. But one of the downsides of high-level tools is that they can hide the details of what is happening under the hood. So when things go wrong or just get complicated it can be hard to understand why Git behaves the way it does. But at its core Git consists of a few simple concepts that, when understood, make it a much more intuitive tool and enables powerful workflows. This talk introduces these core Git concepts and uses them to clarify some examples of seemingly counterintuitive behaviour. It also introduces some of Git's less-known features and tricks that are useful to have in your arsenal. This is an intermediate-to-advanced course for developers who are already using or investigating Git and want to gain a greater understanding of how it works.

14:00 bis 14:30
Digitale Transformation benötigt mehr als Technologie

Enterprise-Software befindet sich im Wandel – die Nutzer wollen weg von Features and Functions hin zu einer positiven Gesamterfahrung beim Nutzen der Software. In dieser Keynote erfahren Sie, wie benutzerzentriertes Design dabei hilft, einen echten Mehrwert für Ihre Geschäftsbereiche im Unternehmen zu generieren, sodass die IT zum strategischen Partner auf dem Weg zur digitalen Transformation wird.

14:45 bis 15:45
Vom Riesen, der das Tanzen lernte – Wie Enterprises in der vierten digitalen Revolution bestehen können

Wir befinden uns in der vierten Industriellen Revolution. Der gesellschaftliche Wandel, den neue Technologien auslösen, führt zu ganz neuen Nutzererwartungen („Customer Experience“). Es entstehen neue Produkte und Services in neuen Märkten, wie junge Start-ups wie etwa Uber oder AirBnB zeigen. In den Märkten bestehen diejenigen, die sich am schnellsten und elegantesten bewegen können. Enterprises dagegen sind Riesen, und Riesen sind nicht schnell und beweglich. Die Frage ist, wie lernt der Riese zu tanzen? Dies ist die Geschichte eines Enterprises, das einen Weg gefunden hat, die alte Welt der Systems of Record mit der neuen Welt der Systems of Engagement zu verbinden.

Fifty Shades of Red

Wie man es schafft, dass Entwickler (endlich) unter ihrer eigenen (schlechten) Software leiden Das Prinzip „Eat your own dog food“ wird in den wenigsten Entwicklungsteams großflächig angewendet. Zum einen kann es schwierig sein, eine produktionsähnliche Umgebung für die Software zu schaffen. Zum anderen kann ein Entwickler nur einen Teil seiner Arbeitszeit mit dem Testen der Software verbringen, er/sie soll ja schließlich auch noch entwickeln. Der Entwickler spürt also im Allgemeinen wenig von dem Schmerz, den die Benutzer seiner Software tagtäglich ertragen. Der Vortrag zeigt, wie man mit verhältnismäßig wenig Toolunterstützung die Feedbackschleife von den Nutzern einer Software zu deren Entwicklern verkürzt. Konkret wird dabei gezeigt, wie Code, der im Test- oder Produktionsbetrieb Probleme (z.B. Performance-Bottlenecks) verursacht, direkt in der Entwicklungsumgebung entsprechend (rot) markiert wird. So bekommen alle Entwickler kontinuierlich Rückmeldung darüber, wie sich ihr Code bei Kunden verhält, und dürfen an den Schmerzen der Benutzer teilhaben.

(Was für) ein Architekt willst du sein?

Hast du schon mal gedacht: „Jetzt bin ich fünf Jahre hier in der Entwicklung, habe alle Projektschmerzen durchlitten und gescheite Systeme auf die Beine gestellt – nun will ich fachlich eins rauf, nehme Verantwortung und werde Architekt/in!“ Falls ja, gratuliere ich dir zu deinem Mut. Da hast du dir was ausgesucht! Also: Möge die Macht mit dir sein! Finde in dieser Session heraus, was die Architektenrolle ausmacht und welche Art von Architekt/in du gern sein möchtest, denn da ist vom kommandierenden Feldwebel über den Coach und den Geheimagenten bis hin zum Anarchisten alles möglich. Finde heraus, welche Skills du brauchst, um ein ordentliches Standing als Architekt/in zu haben und weder als Neinsager noch als abgehobener Besserwisser, sondern als echte Hilfe rüberzukommen. Sei du selbst und werde trotzdem Architekt/in, wenn das dein Traum ist!

How to scale if nothing is for free

Skalierung ist in aller Munde und die zentrale Herausforderung für aufstrebende Unternehmen. Wie schaffe ich es, ein funktionierendes Geschäftsmodell auszuweiten? Einer der kritischsten Bereiche ist nicht selten die Produktentwicklung und der Wunsch, mehr Features und am besten in weniger Zeit zu realisieren. Viele Ansätze folgen dem Minimalprinzip, also mit möglichst wenigen Mitteln ein gegebenes festes Ziel erreichen. Leider skalieren diese aber auf der Aufwandsseite nicht linear, und häufig sind die Mittel letztendlich doch begrenzt. Der Vortrag dreht dieses Modell um. Was kann man tun, um mit festen Mitteln möglichst großen Nutzen zu erzielen? Dazu werden verschiedene Patterns und Antipatterns vorgestellt. Die Ansätze auf fachlicher, technischer und organisatorischer Ebene reflektieren dabei unter anderem die Erfahrungen aus der Produktentwicklung bei Mister Spex. Wer Effektivität mit Effizienz verbinden will, ist hier gut aufgehoben.

Verteilte Systeme automatisiert testen – geht das, und wenn ja, wie?

Bei der Entwicklung verteilter Systeme stellt sich oft die Frage nach effizienten Testverfahren. Angemessene Teststrategien sollten nicht nur das Verhalten der Einzelkomponenten des Gesamtsystems berücksichtigen, sondern auch das Zusammenspiel aller Komponenten im Integrationstest überprüfen. Die Herausforderungen umfassen einerseits das automatische Aufsetzen der Testumgebung, andererseits die Steuerung der Tests gegen die verschiedenen Einzelkomponenten. Der Vortrag gibt einen praxisnahen Einblick in das automatische Testen mithilfe von Open-Source-Werkzeugen am Beispiel einer Java-basierten Kassenlösung inklusive Backoffice- und Konfigurationsserver, die weltweit verteilt eingesetzt wird. Neben diversen Servern sind auch Rich- und Webclients Teil des heterogenen Systems. Es werden verschiedene Varianten für das Aufsetzen der Testumgebung vorgestellt, von der automatischen Verteilung des Systems auf vorhandene Server, dem Aufsetzen der einzelnen Knoten durch Clonen von vorbereiteten Template-VMs bis hin zur gezielten Verwendung von Stubs. Zusätzlich stellen die Replizierung von Daten und die Kommunikation der einzelnen Komponenten untereinander weitere Herausforderungen dar.

Java 8 + Java EE 7 - Feedback aus den Projekten

Patterns oder nicht. Maven oder Gradle. OSGi, Microservices, SOA oder was. ACID oder nicht.  Java FX, JSF oder HTML 5 — in dieser Session möchte ich Vorgehensweisen, Set-ups und Tricks vorstellen, die den Entwicklern in Start-ups und klassischen “Enterprise"-Projekten besonders gefallen hatten. Wir haben nur 60 Minuten - und so keine Zeit für Slides. Fragen sind jederzeit willkommen.

Open-Source-Workflows mit BPMN, Business Rules mit DMN und Case Management mit CMMN in Action - mit Camunda BPM

Erwarten Sie plumpes Marketing für unsere BPM-Plattform. Ähm, wie bitte? Nein, natürlich das genaue Gegenteil! Im Vortrag möchte ich live demonstrieren (und codieren), wie bestimmte Sachverhalte in den Standards BPMN 2.0 (Workflows für "starre" Abläufe"), CMMN (Case Management für mehr Flexibilität) oder auch DMN (Business Rules mit z.B. Entscheidungstabellen) grafisch modelliert und dann direkt auf einer Java Engine ausgeführt werden. Dazu verwende ich die quelloffene Camunda-BPM-Plattform, sodass alles direkt zu Hause nachgebaut werden kann. In der Session diskutiere ich mögliche Architekturen von klassischer SOA bis zu auf Spring Boot basierenden Microservices. Natürlich dürfen Best Practices sowie ein bisschen Meinung nicht fehlen, z.B. dass "Zero-Code-Lügen“ in die Märchenbücher gehören - und nicht in Marketingmaterialien der Hersteller.

Wie Microservices-Ansätze scheitern – fünf Antipatterns

Microservices sind in aller Munde, und immer mehr Initiativen widmen sich dem Thema. Es wird ausprobiert, konzipiert, "refactored" und neu aufgesetzt. Manche „haben es schon lange so gemacht“ und haben zumindest einen coolen Namen für ihren Architekturstil bekommen. Doch bei all der Breitenwirkung: Microservices sind nicht einfach umzusetzen. Häufig werden technische oder konzeptionelle Fehler gemacht. Manchmal so gravierend, dass die erkauften Vorteile nicht zur Wirkung kommen oder der Ansatz gänzlich scheitert. In dieser Session werden fünf häufig anzutreffende Antipatterns vorgestellt und ihre Auswirkungen besprochen.

Grundlegendes Domain-driven Design für Microservices

Der Trend zu kleineren Softwaresystemen stellt Entwickler beim Design dieser Systeme vor neue Herausforderungen: In welche Teile separiere ich meine Domäne? Wie referenziere ich logisch gleiche Artefakte eines Gesamtsystems in den einzelnen Teilsystemen. Domain-driven Design definiert verschiedene Konzepte, um Komplexität in Software beherrschbarer zu machen. Der Vortrag stellt die im Kontext von Microservices grundlegendsten und wichtigsten vor und erläutert, warum gerade diese es sind, die in einer Landschaft kleiner Systeme so wichtig sind. Der Vortrag zeigt auf, wie sehr Konzepte aus DDD gerade im Kontext von Microservices von höchster Wichtigkeit sind: Bounded Contexts, Aggregates, Context Maps. Er zeigt auf, welch enge Beziehung zwischen beiden Themen besteht und wie sie sich gegenseitig beeinflussen.

Mobile-Apps mit TypeScript - erster Blick auf Ionic 2

Als das AngularJS-Team bekannt gab, dass man für Version 2 des beliebten Frameworks auf TypeScript wechseln werde, war der Aufschrei der Community groß. Es störte nicht nur der Wechsel auf eine Script-Sprache aus dem Hause Microsoft, sondern auch der Bruch mit bekannten und vertrauten Ansätzen wie Controllern und dem $scope. Allen Klagen zum Trotz veröffentlicht das Team die ersten (Alpha-)Versionen von Angular2. Auch das Ionic-Team hat auf diese Änderungen reagiert und arbeitet an einer neuen Version des beliebten Frameworks für hybride Anwendungen. In diesem Talk wird ein erster Blick auf die Neuerungen in Ionic 2 geworfen und die neue Vorgehensweise anhand von Codebeispielen erläutert.

Raten, schätzen, zählen, rechnen: Praktische Tipps zum Umgang mit Unbekanntem

Trotz #noestimates-Bewegung müssen wir dauernd Dinge schätzen, etwa Kosten oder Aufwände. Das macht uns ITlern keinen Spaß, kann jedoch für andere Stakeholder hilfreiche Informationen bzw. Entscheidungsgrundlage liefern. Im Vortrag lernen Sie, wie einfache Methodik und etwas Pragmatik zusammen Ihre Schätzaufgaben deutlich vereinfachen können. Ich beginne bei den Grundbegriffen (Schätzgegenstand und -parameter) und zeige an Beispielen, dass wir häufig "raten" durch "zählen und rechnen" ergänzen können. Wir klären die Ziele von Schätzungen und hören von einer Menge interessanter und wirtschaftlich sinnvoller Anwendungen von Schätzungen.

Continuous everything

„Die einzige Konstante im Universum ist die Veränderung“ (Heraklit von Ephesus). Diese Weisheit gilt auch noch heute – sogar mehr denn je! Die schnelllebige Welt erfordert stetige Anpassung in unterschiedlichen Bereichen. Verwendung von Bleeding-Edge-Technologien, Implementierung von neuen Markttrends und die Möglichkeit zu ergreifen, selbst kreativ zu werden und dies mit der Community zu teilen. Ideen und Best Practices , um dem IT-Trenddschungel Herr zu werden: On Premise vs. Cloud, VMs vs. Container, CI + CD = Continuous everything?

Hands-on with the Checker Framework: Preventing Null Pointer Exceptions at Compile Time

We will demo the Checker Framework, which gives a compile-time guarantee of program properties and allows you to create your own checkers. A pluggable type system can guarantee the absence of many important errors. Java 8 adds syntax to use annotations on all uses of types, making pluggable type systems practical. Our tool has found hundreds of bugs in millions of lines of well-tested code, and even novices can quickly use and create a pluggable type system. The tools are freely available at http://checker-framework.org/. This session will provide an overview of the Checker Framework and will discuss a type system to prevent null pointer exceptions at compile time in detail and with sufficient time to follow along. Bring your tricky nullness issues and see how the Checker Framework can help you!

16:30 bis 17:30
Der interne IT-Provider als Treiber der digitalen Transformation

In dieser Session wird anhand verschiedener realer Projekte aufgezeigt, wie sich aktuell große interne IT-Provider wandeln, um für die Umsetzung der digitalen Transformation ihrer Kunden gerüstet zu sein. Dabei geht es um die Entwicklung neuer Geschäftsmodelle der IT-Provider, den Kundenangang der internen Kunden, die Identifikation der notwendingen Skills und die Planung zum Skill-Aufbau der Mitarbeiter sowie neue Steuerungsmöglichkeiten des Unternehmens - kurzum, es werden alle von der Veränderung betroffenen Aspekte unterschiedlich detailliert dargestellt. Es wird insbesondere gezeigt, wie IT nicht nur eine Supportfunktion einnimmt, sondern wie sie als Enabler oder sogar Innovator fungieren kann. Außerdem wird eine Methode skizziert, die sich aus der Praxis heraus sehr gut bewiesen hat, um genau diese Veränderung der internen IT-Provider zu gestalten.    

Keine Slides vorhanden
Continuous Delivery in the Cloud

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, configuration management and stage-based deployment and introduce the concept of limiting blast radius.

Eine MVC-Anwendung in 60 Minuten

Java EE 8 wird ein neues Action-basiertes Webframework namens MVC erhalten. Es beruht sehr stark auf bestehenden Technologien wie JAX-RS oder CDI und bietet Entwicklern daher einen leichten Einstieg. Ein besonderes Feature ist die Möglichkeit, nahezu beliebige Technologien für die Views zu verwenden. Auch wenn es mit der Fertigstellung von Java EE 8 noch ein wenig dauern wird, so kann man auf Basis der Referenzimplementierung von MVC bereits heute experimentieren. In dieser Session wird eine Webanwendung auf Basis von MVC per Live-Coding erstellt und die Konzepte des neuen Frameworks dabei veranschaulicht.

Leben und sterben lassen - Cloud-Sanierung bestehender Anwendungen

Bei Projekten auf der grünen Wiese ist heute technisch vieles möglich, wovon auch gewachsene Unternehmenslandschaften profitieren würden. Doch wenige jährliche Releases fressen knappe Weiterentwicklungsbudgets auf, Änderungen am Liefermodell sind kaum finanzierbar. Demgegenüber sind Kosteneinsparungen bei Migration in die Cloud gerade beim Management beliebt. Diese Chance kann man nutzen, um durch richtige Architekturentscheidungen zur richtigen Zeit weitere moderne Lösungsmuster aus dem Umfeld Cloud und Continuous Delivery einzuführen. Dieser Talk zeigt die möglichen Schritte und Widerstände bei einem solchen Vorgehen in einem Unternehmen. Letztendlich werden hierbei nur solche Applikationen zu "Legacy", die mit der Änderungsfreqenz in der digitalen Welt nicht mehr mithalten können.

Zero Bug Policy bei der digitalen Transformation eines Energieversorgers

In diesem gemeinsamen Vortrag von E.ON und CDI stellen wir die Erfahrungen aus dem Projekt zur Realisierung einer modernen Lösung für Privatkunden des Energieversorgers E.ON und einer ersten hierauf basierenden Lösung „SmartCheck“ vor. Neben den technischen Aspekten des Vorhabens wurde insbesondere durch den Aufbau einer agilen Organisation und die Fokussierung auf die Qualität der Lösung sichergestellt, dass die hohen Anforderungen des Endkunden und von der E.ON selbst erfüllt werden. Im Fokus wird hierbei unsere Erfahrung mit der Zero Bug Policy stehen.

Testen fängt beim Schneiden an

Anforderungen sind oft viel zu groß und unübersichtlich und dadurch schwierig zu testen. Kleine User Stories vereinfachen den Test, aber auch die Planung, Umsetzung und Dokumentation. Aber wie schneide ich meine User Story richtig? Wie erstelle ich übersichtliche Akzeptanzkriterien, die alle Projektbeteiligte verstehen und gut zu testen sind. Wie kann ich diese, auch bei Änderungen, gut dokumentieren? In meinem Vortrag gebe ich anhand vieler Beispiele Antworten auf diese Fragen.

Love your Architecture

Most non-trivial software systems suffer from significant levels of technical and architectural debt. This leads to exponentially increasing cost of change, which is not sustainable for a longer period of time. The single best thing you can do to counter this problem is to give some love to your architecture by carefully managing and controlling the dependencies between the different elements and components of a software system. This session will first look at the major reasons why so many systems are ending up in an unmaintainable state and then show how to address the problem by using automated quality gates with a focus on architectural and metric based rules. Regarding the architectural rules we will look at a domain specific language that can be used to automatically enforce an architectural blueprint over the lifetime of a software system.

Cross-Plattform-App-Entwicklung

Die Entwicklung von Apps für mehrere Plattformen bedingt das Entwickeln der gleichen App in verschiedenen Sprachen für verschiedene Plattformen – ein großes Problem in Sachen Pflege und Kosteneffizienz. Doch ist die getrennte Entwicklung wirklich nötig? Was taugen HTML5-Apps, und wie sind Cross-Plattform-Systeme einzuschätzen? Warum sollte man überhaupt für jede Plattform eine eigene App entwickeln? Dieser Workshop bietet im Rahmen eines einstündigen Husarenritts über die Welt der mobilen Entwicklung die nötigen Informationen und Hintergründe für Einsteiger, Entscheider und Konzepter, um im Dschungel der mobilen Plattformen und Möglichkeiten den Kurs zu halten. Fakten: Übersicht der mobilen Plattformen, User Experience, verschiedene Wege der App-Entwicklung (Nativ, Write Once, Run Anywhere, Hybrid, Cross-Plattform).

Microservices, geerdet

Conway’s Law, DevOps, Continuous Delivery, Automatisierung - das sind die üblichen Buzzwords, die man bei Kick-offs zu Microservices-Projekten hört. Doch nach und nach wird man von der Realität eingeholt, und neben organisatorischen Hürden trifft man auf nicht triviale technische Probleme. In dieser Session gehen wir nicht nur auf die üblichen High-Level-Punkte ein, sondern betrachten konkrete technische Probleme am Beispiel einer verteilten Architektur innerhalb von AWS und zeigen Lösungen, die sich in unserer Praxis bewährt haben.

Hands-on Hystrix – Best Practices und Stolperfallen

Ausfälle im Betrieb kennt jeder – und dennoch ist man selten ausreichend darauf vorbereitet. Allerdings könnten viele dieser Ausfälle deutlich abgemildert oder gar gänzlich verhindert werden. Netflix hat das Problem erkannt und die Bibliothek Hystrix entwickelt, die Entwickler bei der Implementierung von Resilience Patterns wie „Fail Fast“ und „Graceful Degradation“ unterstützt. In einer Microservice-Architektur vergleichbar mit Netflix kann die Anzahl von abhängigen Services nochmal deutlich ansteigen und Hystrix in einem solchen Szenario seine Stärken ausspielen. Überraschungen kann es aber auch bei Hystrix geben. Um diesen entgegenzuwirken bietet dieser Talk Erfahrungen und Beispiele aus bereits angepassten Anwendungen für die Integration von Hystrix. Eine Demo mit den kleinen Diensten zeigt, wie kleine Ursachen große Ausfälle auslösen können. Mit Hystrix im Einsatz dagegen werden die Folgen durch automatische Behandlung der Fehler minimiert.

Lückenschluss im BPM-Zyklus - Graphbasierte Prozesskennzahlenermittlung in Echtzeit

BPMN-basierte Prozess-Engines erzeugen eine für Prozessanalysten nützliche Datenbasis. Der klassische Weg zur Auswertung von Logdaten auf Basis von DWH-Systemen wird der Anforderung einer Analyse und Visualisierung am Prozessmodell nicht gerecht, da Prozessmodelle und deren Semantik nicht interpretiert werden können. Es findet immer ein Bruch in der Repräsentation des Analyseobjekts statt. Mit einer Kombination von innovativen Open-Source-Technologien wie Java 8, Neo4j, Apache Camel, Vaadin und BPMN.io wird ein Abstraktionsniveau ermöglicht, das mit klassischen BI-Tools nicht zu erreichen ist. Der vorgestellte Ansatz erlaubt die Definition von Prozesskennzahlen auf fachlich selektierten Modellelementen. Durch die Interpretation der Prozessmodelle als Graphen können über Suchmuster die für eine Prozesskennzahl relevanten Prozesselemente identifiziert werden. Mittels einer Event-driven Architecture werden Kennzahlen in Echtzeit berechnet. Durch die anschließende Visualisierung der aggregierten Kennzahlen am Prozessmodell kann der BPM-Zyklus vollständig durchlaufen werden, ohne den Bezug zum Prozessmodell in der Analysephase zu verlieren.

Keine Slides vorhanden
AngularJS 2.0

Die Wurzeln von AngularJS liegen im Jahre 2009 – zu Zeiten, als der IE8 releast wurde und Node.js das Licht der Welt erblickte. Seit dieser Zeit hat sich Einiges getan in der Welt des Webs. Vieles, was AngularJS mitbringt, ist mittlerweile in diversen Spezifikationen verabschiedet und in den Browsern nativ implementiert. Hierzu gehören u. a. Web Components und ES6, der neue Sprachstandard von JS. Es wird also Zeit, die neuen Möglichkeiten zu nutzen. Genau hier setzt AngularJS 2.0 an! Was hat das für AngularJS 1.x zu bedeuten? Wann können wir mit AngularJS 2.0 rechnen? Diese und andere Fragen werden in diesem Talk besprochen und versucht zu beantworten.

Jigsaw – The Module Platform arrived in JDK 9

Auf der JavaOne 2015 wurde die neue Plattformmodularisierung mit dem Projekt Jigsaw vorgestellt, jedoch wurde bereits im Dezember der Feature-Complete-Status für JDK 9 mit der Plattformmodularisierung Jigsaw auf Mai 2016 verlegt. Über die JDK-Enhancement-Vorschläge JEP 200 (modulares JDK), JEP 201 (modularer Sourcecode) und JEP 220 (modulare Laufzeitimages) gelangen die technischen Vorschläge ins JDK 9. Diese Veränderungen 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. Die geplante Verfügbarkeit vom JDK 9 ist für Ende März 2017 vorgesehen.

17:45 bis 18:45
In-Process or distributed? Performance or Scalability?

We like to think we’re architecting, designing and writing good code, we write for scalability, create a distributed system by decoupling components and use micro-services for modularity. Moving from in-process to distributed gives us the scalability but the performance cost of serialisation and the related garbage collection is orders of magnitude worse. John will show how we can move from in-memory to network or disk with very little cost by using binary rather than Java Objects. Explore lambdas on big-data and Spark over the network. Architecture, code, bits, bytes and demos.

Continuous Delivery 2016 – kontinuierlich an die Pipeline andocken

Docker ermöglicht es, Anwendungen und Dienste in leichtgewichtige und wiederverwendbare Container zu kapseln, und ist auf dem besten Weg, sich zum De-facto-Standard für Containerisierung zu entwickeln. Das Thema Continuous Delivery ist ebenfalls aus der IT nicht mehr wegzudenken, und ein Deployment-Pipeline-Bauer kann heutzutage aus einer ganzen Reihe möglicher Continuous-Delivery-Server auswählen. Aber wie passen Deployment-Pipelines und Docker nun konkret zusammen? Der Vortrag zeigt, wie und wo Docker in die Deployment-Pipeline integriert werden kann, welche Toolunterstützung vorhanden ist, und was dies alles für den Anwender bedeutet.

Testumgebungen verschiffen – Docker für Integrationstests

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings lässt es sich in vielen Organisationen aus unterschiedlichen Gründen noch nicht für den produktiven Einsatz verwenden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung schon einen großen 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 kompletten Umgebungen mit definierten Testdaten. Wird hierfür vom Standardvorgehen abgewichen und Daten in Containern abgelegt, ergeben sich für die Verteilung und die Testprozesse einige Vorteile. Weiterhin wird die Erstellung und Einbindung der Container in die Testausführung mit Docker Compose, Gradle, Maven und Arquillian verglichen. Die Szenarien werden anhand von Beispielen demonstriert.

Komponentenentwicklung mit React

React ist ein JavaScript-Framework, mit dem sich 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 wird bereits auf zahlreichen namhaften Websites eingesetzt. In diesem Talk stelle ich die grundsätzlichen Konzepte und Ideen von React vor und zeige anhand von Codebeispielen, wie sich mit React sehr einfach wiederverwendbare Komponenten entwickeln lassen.

Wie viel Client braucht das Web?

Fullstack-Java-EE-Anwendungen schreibt man mit JSF, zumindest im Standard. Nun sind Browser schon lange nicht mehr einfache Remote-Displays, sondern führen mit JavaScript eine leistungsfähige und allgegenwärtige Programmumgebung mit sich. Also dann HTML+JS+CSS, vielleicht mit ein bisschen AngularJS? Wie integriert sich das mit dem Java-EE-Backend? Und was ist mit Vaadin als serverzentrierte Präsentation ohne Zwang zu einer weiteren Sprache neben Java? Wir stellen diese Varianten mit viel aussagekräftigem Code gegeneinander und liefern Argumente für die Beantwortung der Frage, welches GUI-Framework wann und für wen am besten geeignet ist.

Einmal mit Profis arbeiten

Einmal mit Profis arbeiten – das heißt einmal mit Leuten zu arbeiten, die mir richtig zuliefern und genau sagen, was sie brauchen. Gibt es so etwas? Kann es so etwas überhaupt geben? Warum liefert mir der Designer eine riesige Photoshop-Datei, obwohl ich nur ein GIF-Icon wollte? Warum gibt mir der Projektleiter ein „Go“ für etwas, das ich schon längst begonnen habe, und möchte sich heute Nachmittag nochmal „synchen“? Anhand treffender und teils amüsanter Geschichten aus der Praxis werden einige Probleme in der Zusammenarbeit zwischen Entwicklern, Designern, Testern und Projektleitern ausgearbeitet und Lösungswege für den alltäglichen Wahnsinn aufgezeigt.

Data Thinking – es braucht ein neues Denken, um neue digitale Ziele zu erreichen

Der Druck, sich digital „transformieren“ zu müssen, treibt Unternehmen und schafft mit einer Vielzahl von Begriffen und Produkten derzeit mehr Verwirrung als Orientierung. Dies zu ändern, beginnt mit der Modernisierung des Mindsets. The unbelievable Machine Company (*um) nennt es Data Thinking: die strategische Fundierung von Daten, Algorithmen und Technologien im Data Enterprise der Zukunft. Und die ganzheitliche Begleitung der individuellen „digitalen Entwicklung“ durch erfahrene Experten. Es setzt weit vor Beginn eines konkreten Data-Projekts an und markiert den Shift vom „Enablement“ der Unternehmen zu wirklicher „Creator- und Leadership“. Klaas Bollhoefer führt aus, dass Data Thinking neue und zeitgemäße Beratungskonzepte und -ansätze in den Bereichen Data, Algorithms, Compute und Mindset umfasst. Er zeigt, dass diese mit ausgeprägtem Gespür für Markttrends/Themen und umfassender Erfahrung gedacht, projektübergreifend platziert und maßgeschneidert bis in die Organisation des Unternehmens integriert werden müssen.

Keine Slides vorhanden
DDD und REST – Domain-driven APIs für das Web

Während Domain-driven Design versucht, Komplexität im Kern der Software handhabbar zu machen, ist REST für viele nur eine Schnittstellentechnologie. Der Vortrag deckt Berührungspunkte zwischen DDD und REST in Bezug auf die Modellierung der Domäne und der REST-Ressourcen auf. Wir diskutieren, warum und inwiefern ein gutes Domänendesign essenziell ist, um ein gutes REST-API zu modellieren, und welche Elemente von REST besonders helfen, ein API domaingetriebener zu machen. Der Vortrag identifiziert die DDD-Bausteine, die im Kontext von REST-APIs am wichtigsten sind: Aggregate als natürliche Grenzen für Representationen, Repositories als Grundlage von Collection- und Item-Ressourcen und wie domänenspezifische Aktionen mit Hypermediamitteln ausgedrückt werden können.

(Schon wieder) Legacy – und nun?

Ist Ihre Enterprise-Java-Anwendung auch schon zehn Jahre alt? Oder planen Sie, Ihre neu realisierte Anwendung mindestens so lange einzusetzen? Ja? Dann ist diese Session ein Muss. Mithilfe von typischen Mustern und Codebeispielen widmet sich diese Session den „Gefahren“ für Enterprise-Java-Anwendungen, die durch den kontinuierlichen konzeptionellen und technologischen Fortschritt entstehen. Dabei zeigen die Erfahrungen aus Projekten, dass Enterprise-Java zwar das Handwerkszeug für robuste, wartbare und zukunftsfähige Anwendungen bilden kann, aber durch die Art des Einsatzes selten bildet. Getreu dem Motto „Was heute neu ist, ist morgen veraltet“ identifiziert diese Session die Ursachen für architektonische und technologische Schwachstellen, die erst im Laufe der Lebenszeit einer Enterprise-Java-Anwendung sichtbar werden. Hierzu werden sowohl Symptome und Indizien für zukünftige Sackgassen herausgearbeitet als auch Lösungen bzw. Ansätze vorgestellt, mit denen die Konsequenzen abgeschwächt oder vermieden werden können.

Schnellere und effizientere Prozesse mit Mobile und BPM - aber sicher!

Auch wenn es iOS, Android und Co. nun schon seit einigen Jahren gibt, der Markt ist immer noch unübersichtlich und wenig standardisiert. Die Entwicklung von mobilen Applikationen und die sichere Anbindung an die Enterprise-IT stellen viele Organisationen immer noch vor große Herausforderungen. Dennoch lohnt sich der Aufwand. Die Kombination von mobilen Ansätzen mit Business Process Management verspricht noch schnellere und effizientere Prozesse im Unternehmen. In diesem Vortrag zeigen wir Ihnen, welche Eisberge es beim Einsatz von Mobile und BPM zu umschiffen gilt. Anhand von mehreren Case Studies erfahren Sie, wie andere Unternehmen erfolgreich mobile Ansätze zur Optimierung ihrer Prozesse eingesetzt haben.

Was jeder Java-Entwickler über Strings wissen sollte

Strings sind wahrscheinlich der am meisten verwendete Datentyp in jeder Java-Anwendung. Es ist daher nicht überraschend, dass JDK-Ingenieure versuchen, Strings möglichst gut zu optimieren oder Bücher über Performancetuning und Testen dem Thema Strings ganze Kapitel widmen. Jeder Entwickler sollte daher wissen, was Strings sind und wie sie sinnvoll und effizient eingesetzt werden können. Dieser Vortrag stellt JDK-Klassen vor, die mit und auf Strings arbeiten, sowohl auf der API- aber auch auf der Implementierungsebene. Wir beleuchten interne Strings und die für sie verwendeten Speicherbereiche sowie die noch recht unbekannte „String Deduplication“-Option des G1 Garbage Collectors.

20:00 bis 20:45
Taming the Bitcoin Blockchain

Bitcoin and blockchain technology are mentioned everywhere in the media and described alternately as disruptive, innovative, criminal, brilliant, and the future of financial technology. This keynote will separate the reality from the hype, covering a brief history, current uses and developments, and advantages being explored by the fintech industry. Bitcoin will be demystified as a currency, recognizing its usefulness and perceived threat to governments, corporations, and banks. We'll also cover what makes the bitcoin blockchain such a revolutionary tool, and why those same institutions are trying to bend it to their will. Lastly, we'll discuss alternative blockchains like Ethereum, and the additional solutions they offer.

20:45 bis 21:45
Ballroom

Der Ballroom ist das Networkingevent der JAX. Es bietet die Gelegenheit, in lockerer Atmosphäre mit den Speakern und Teilnehmern der Konferenz ins Gespräch zu kommen. Die Spielregeln sind denkbar einfach: Es werden Tische zu jeweils einem Spezialthema vorbereitet, an denen sich mindestens ein Experte befindet, der für Fragen und Diskussion zur Verfügung steht. Alle Teilnehmer können sich einem Gespräch nach Wahl anschließen – und wenn sie wollen, einfach den Tisch wechseln und in anderer Runde weiterdiskutieren.

Keine Slides vorhanden

Wednesday - 20. April 2016

09:00 bis 09:45
Hypothesis-driven Development: The New Agile and the Next Gen Developer

When the forefathers of Agile met to write the manifesto that provides the guiding principles of Agile software development, Wikipedia was just formed, the iPod hadn’t launched, and the first versions of IntelliJ IDEA and Eclipse were in beta. The principles of Agile have not changed. More than ever, we strive to satisfy the customer through early and continuous delivery of valuable software. Developers welcome changing requirements, deliver working software frequently, and collaborate with other people through the whole process. As software eats the world, software development will be democratized - more people will code, contribute and commit on platforms and tools that are more accessible than ever before. The value of a “developer” will be their problem-solving mindset and ability to work with and learn from others. In this keynote, you’ll hear from Lee Faus, Senior Solutions Architect at GitHub, developer, open source contributor, and teacher about the evolution of the software development process and the mindset of the Next Gen Developer to succeed in the New Agile.

10:00 bis 11:00
Geospatial Applications created using JavaScript and NoSQL

Ever wondered how geospatial data works? Why don’t you come along and learn it where you’ll be presented to a fully functioning geospatial application that uses metadata from images to pinpoint them to a map. You’ll be introduced to a NoSQL tool and you’ll learn the basics of NoSQL technologies in a fun and initiative way. Along the way you’ll experience geospatial data, full stack application development using JavaScript and a little bit on semantic data as well. You will experience how easy it is to manage hybrid data (JSON documents, JPEG images as well as RDF triples) in one database, how to query geospatial data and how to work with JavaScript across a three tiered application.

Icebergs right ahead! - IT, Management and Chaos

Fünfzehn Teams an drei Standorten und fünfundsiebzig Softwarekomponenten sind Zutaten für Chaos. Der hohe technische Innovationsdruck treibt Chaos. Und die Planlosigkeit des Managements treibt Chaos. Und so versagen alte Strukturen und ein neues Muster entsteht. In diesem Talk spricht Johannes Mainusch über: Chaos, und warum es entsteht wie aus Teams neue Managementstrukturen entstehen die neue Architekturdirektive neue Organisationen Beispiele aus verschiedenen Firmen und darüber, wie viel Zeit der Change braucht

Keine Slides vorhanden
RESTful Hypermedia-APIs

RESTful Web Services sind schon seit einiger Zeit in aller Munde und sehr beliebt. Viele der bekannten öffentlichen Web-APIs behaupten von sich, RESTful zu sein. Die meisten sind es allerdings nicht wirklich, unter anderem, da sie ein wichtiges Element von REST nicht erfüllen: Hypermedia as the Engine of Application State (HATEOAS). Diese Session gibt einen Überblick über das Thema und zeigt an vielen konkreten Beispielen, warum RESTful Hypermedia-APIs sinnvoll und sehr nützlich sind. Dabei geht Kai Tödter sowohl auf verschiedene Repräsentationen wie z. B. HAL und Siren ein als auch auf deren Einbindung in existierende Infrastrukturen wie z. B. Spring oder Jersey.

MagicTest - Visuelles Testen für Java

Mit dem Testing ist es ein Kreuz. Jeder weiß, wie wichtig es ist, keiner macht es gerne. Das Hantieren mit Assert-Statements, um die erwarteten Resultate zu prüfen, ist mühsam, negative Tests brauchen unnötige Hilfskonstrukte und komplexe Objekte oder große Datenmengen machen immer wieder Probleme. Das Testframework MagicTest für Java  setzt genau dort an. Mit ihm sind keine Assert-Statements mehr nötig. Geänderte Testresultate lassen sich einfach visuell prüfen und akzeptieren, ohne dass die Test-Sources angepasst werden müssen. Mit einem automatisch generierten HTML-Report können auch Dritte die Tests nachvollziehen. Damit ist nicht nur das Schreiben und Warten von Tests effizienter, sondern es macht auch endlich Spaß. Die Präsentation zeigt die Unzulänglichkeiten des Assert-basierten Ansatzes auf, der von traditionellen Testtools wie TestNG oder JUnit verwendet wird - was mit ein Grund dafür ist, dass niemand wirklich gerne Tests schreibt. Außerdem erfahren die Zuhörer, wie die Idee des visuellen Ansatzes in der Geschichte des Testens einzuordnen ist und wie er hilft, die bekannten Probleme zu lösen. Schlussendlich führe ich vor, wie MagicTest das visuelle Testen unterstützt und wie es sich in Praxisbeispielen für Unit- oder Characterization-Tests einsetzen lässt.

Oracle JET: Enterprise JavaScript for Visualizing Cloud Data

The Cloud is everywhere, but how do you get into it? Developers everywhere are being told every day that the Cloud is important and that "everything is moving to the Cloud". What does that mean for developers? And what do you do with data, once it is in the Cloud? In this session, you will see many demos -- with code -- and very few slides, that will introduce you to new and exciting free and open source data visualization tools, written in JavaScript, that help you visualize data in the Cloud. You will learn about Oracle JET, Oracle's free and open source toolkit for creating JavaScript applications, which Oracle has been using internally over the past three years and is now available on GitHub.

Die Last mit den Tests - Lasttests mit Gatling

Haben sich Unit-, Integrations- und Oberflächentests in der Vergangenheit mehr oder weniger gut durchgesetzt, fristen Lasttests eher ein Nischendasein oder fallen meist Zeitbudgets zum Opfer. In vielen Unternehmen klicken Mitarbeiter meist schnell, aber unkontrolliert hin und her. Diese Art von Smoke-Tests haben keine Aussagekraft, sind nicht reproduzier- und damit nicht vergleich- oder bewertbar. Tritt ein Performanceengpass auf, ist die eigentliche Ursache nicht ersichtlich. Gatling schickt sich an, dieses Feld neu aufzurollen. Mit einer zeitgemäßen Architektur basierend auf Scala, Akka und Netty arbeitet Gatling asynchron und nicht blockierend und damit mit einem hohen möglichen Durchsatz. Mit der Scala-DSL sind die Testszenarien schnell erstellt, anhand von Assertions können globale Erfolgskriterien definiert werden, und in übersichtlichen Reports sind alle Ergebnisse detailliert nachlesbar. Umfangreiche Tests können mit dem Recorder aufgenommen und realitätsgetreu wiedergegeben werden. Mit Gatling gibt es keinen Grund mehr, Lasttests nicht von Anfang an auszuführen.

DevOps is not enough

The DevOps movement is gaining momentum - which is good. But still DevOps often is seen way to small. DevOps is not only some more collaboration between Development and Operations. It is the implementation driver for a massive change in IT - and it is not enough in itself. In this session we will examine the drivers and goals behind DevOps, why we need the change, how DevOps affects the whole IT value chain and what else is needed to really "become DevOps". We will develop an "DevOps ecosystem" and draw the missing lines between several important concepts that all feed into the actual goals behind DevOps.

Wie sieht ein Microservices-Technologiestack aus?

Microservices stellen ganz neue technische Herausforderungen - schließlich laufen verteilte Dienste auf verschiedenen Servern im Netz. Wie finden sich die Services? Wie geht man mit dem Ausfall von Services um? Und wie verteilt sich die Last auf die Services? Dieser Vortrag zeigt, welche Herausforderungen durch welche Technologien gelöst werden, und gibt so eine Orientierung in diesem Bereich.

Schnelle Applikationsentwicklung in der Cloud und On-Premise mit Docker

Mit der Verfügbarkeit von neuen Plattformen und neuen Werkzeugen hat sich die Codierung von Applikationen in den letzten Jahren vereinfacht. Das Deployment der Applikationen in verschiedene Umgebungen stellt allerdings häufig ein Problem dar und verlangsamt den Entwicklungsprozess. Die typische Entwicklerausrede "es funktioniert auf meinem Rechner" zählt nicht mehr. Stattdessen sind Entwickler heute für den kompletten Entwicklungszyklus bis hin zum Deployment und Testen in Produktionsumgebungen verantwortlich. Glücklicherweise hilft Docker Entwicklern, diese neuen Herausforderungen zu meistern und Applikationen schnell in verschiedene Umgebungen zu deployen. In dieser Session werde ich anhand von IBM Bluemix demonstrieren, wie man Docker in der Cloud nutzen und in Unternehmen betreiben und verwalten kann.

Streams in Java 8: Reduce vs. Collect

In dem Stream API, das mit Java 8 zum JDK hinzugekommen ist, gibt es die beiden Operationen reduce() und collect(). reduce() ist im Gegensatz zu collect() eine klassische Reduktionsoperation aus der funktionalen Programmierung. Da es in funktionalen Sprachen typischerweise keinen veränderlichen Zustand gibt, funktioniert reduce() nur auf Typen mit unveränderlichem Zustand ("immutable types"). In Java haben aber die meisten Typen veränderlichen Zustand (d. h. sie sind "mutable types"). Um eine Reduktion auch auf veränderlichen Typen zu unterstützen, gibt es die Operation collect(). In der Session wird erläutert, worin sich die beiden Operationen unterscheiden und wie man die Funktionalität von collect() ggf. durch eigene Kollektoren erweitern kann.

Modernes Java-Komponentendesign mit Spring 4.3

Dieser Vortrag stellt ausgewählte Features des Spring-Komponentenmodells vor – mit einem Fokus auf Spring Framework 4.3, das im Mai 2016 erscheinen wird. Die Themen reichen vom umfassenden Support für Java 8 bis hin zum verfeinerten Einsatz von Annotations in vielen Bereichen, illustriert mit Codebeispielen und Erläuterungen zur Designphilosophie in Spring.

Architecting scalable, resilient, digital Platforms for Financial Services

Digital transformation is probably the greatest disruptive innovation that the financial services industry has ever faced. Nowadays, bank’s customers expect applications to be immediate, interconnected and intelligent. Furthermore, applications must be accessible 24/7 and across multiple channels such as the “Web”, mobile devices, kiosks, and branches. That is the new reality! It is a reality where “THE OLD WILL NOT GET US THE NEW”. Financial institutes have to unlock their digital potential by building reliable fast systems of integration on top of their legacy systems. During the talk I am going to discuss the current challenges in the financial sector, how they translate into a modern architecture to serve millions of users with a digital experience.

Architektur von Big-Data-Lösungen

Mit der Architektur steht und fällt jedes IT-Projekt. Das gilt in noch stärkerem Maße für Big-Data-Projekte, denn hier konnten noch keine Standards über Jahrzehnte ihre Tauglichkeit beweisen. Dennoch verbreiten und etablieren sich auch hier gute und effektive Lösungen. Der Vortrag erklärt, welche Bausteine wichtig für die verschiedenen Einsatzmöglichkeiten im Big-Data-Umfeld sind, und wie sie in konkrete Lösungen gegossen werden können. Dabei beleuchtet er sowohl traditionelle Big-Data-Architekturen als auch aktuelle Ansätze, wie z. B. die Lambda- und die Kappa-Architektur. Ebenfalls ein Thema sind Stream-Processing-Infrastrukturen und ihre Kombination mit Big-Data-Technologien. Ausgehend von einer produkt- und technologieunabhängigen Referenzarchitektur stellt dieser Vortrag verschiedene Lösungsmöglichkeiten auf Basis von Open-Source-Komponenten vor.

11:45 bis 12:45
Spring Framework 5 – Preview und Roadmap

Das Spring-Team arbeitet schon intensiv an Spring Framework 5.0, dessen Milestones im Laufe des Jahres zu einem Release Candidate im Herbst 2016 führen werden. Dieser Vortrag gibt einen Ausblick auf die Schwerpunkte in Spring 5: die Verwendung von Java 8+ in der Framework-Codebasis, die umfassende Unterstützung von JDK 9, sowie das Schlüsselthema reaktive Architekturen auf Basis von Spring. Neben dem aktuellen Stand der Entwicklung werden wir auch die weitere Roadmap diskutieren.

Der Transformation-Pilot, oder: Wie bleiben wir auf Kurs?

Wie das Statistische Bundesamt mitteilt, werden etwa 35 Prozent aller in einem Jahr geschlossenen Ehen im Lauf der kommenden fünfundzwanzig Jahre geschieden. Man kann also sagen, fast zwei Drittel aller Ehen sind erfolgreich. Dem gegenüber sind Transformationsprojekte nur zu 30 Prozent erfolgreich und kosten viel Geld, Zeit und Nerven. Würden Sie heiraten, wenn die Erfolgsaussichten so gering sind? Bei Transformationen scheinen wir dazu bereit zu sein. Doch was ist das Problem, warum liefern Transformationen so selten den intendierten Wert? Wann kann man überhaupt von Erfolg sprechen, wenn das Transformationsprojekt in klassischer TBQ-Manier abgeschlossen wird? In diesem Vortrag werden wir über Störfaktoren für Transformationen sprechen und wie man ihnen begegnen kann. Dazu lernen Sie die Rollen des Business-Enterprise-Architekten kennen, seine persönlichen Eigenschaften und Werkzeuge, um Transformationen auf Kurs zu halten. Wir lassen Eindrücke und Erfahrungen aus dem Projektalltag einfließen und werden überraschende Analogien herstellen.

Keine Slides vorhanden
OpenStack: Java-Entwicklung in der privaten Cloud

Seit einigen Jahren ist die private Cloud-Lösung OpenStack in aller Munde. OpenStack erlaubt in erster Linie das Orchestrieren von Infrastrukturkomponenten wie z.B. Compute, Netzwerk und Storage. Darüber hinaus gibt es dem Entwickler aber auch Lösungen im Platform-as-a-Service-Bereich an die Hand, mithilfe derer sich z.B. Datenbanken oder gar ganze Hadoop-Cluster auf Knopfdruck provisionieren lassen. In diesem Vortrag wollen wir zeigen, wie die Möglichkeiten von OpenStack für die eigene Anwendungsentwicklung genutzt werden können und dies an praktischen Beispielen demonstrieren.

Recruiting und moderne Mitarbeiterentwicklung

Heute steht in den meisten Unternehmen der Mitarbeiter im Mittelpunkt, denn gute und zufriedene Mitarbeiter sind entscheidend für den Unternehmenserfolg. Wie führt man Bewerbungsgespräche, was ist eine guter Recruitingprozess, was ist moderne Mitarbeiterentwicklung, und wie behält man gute Mitarbeiter? Der Vortrag geht auch darauf ein, was man als Mitarbeiter einfordern sollte und erwarten kann, wie man gute Mitarbeiter in der Firma hält und wie Employer Branding die Grundlage von Tech-Recruiting ist.

Software Quality – How to be better at delivering it

We all expect quality software. We all believe it is important. In reality, we generally don’t do enough to ensure quality releases. In an age where Agile is king - we have to ship more frequently. Often we are expected to do it with fewer people and this can lead to cutting corners when it comes to quality. Having helped hundreds of customers with their software quality journey, Justin Collier and Damien Walsh will discuss practical advice, best practices and overall guidance on how to do more with less while not impacting software quality. Attendees will leave with a better understanding about how to address the challenges of implementing high quality software through code review and testing. Discussion points will include: The cost of bugs found in development vs. QA. vs. the customer What it takes to create a software quality culture – ownership Options on how to build a coherent quality framework that will benefit both development and test

All Change! How the new Economics of Cloud will make you think differently about Java

How far have you got with learning about Cloud? Got your head around Platform as a Service? Understand what IaaS means? Can spell Docker? Working in a DevOps mode? It's easy to focus on learning new technology but it's time to take a step back and look at what the technical implications are when an application is heading to the cloud. In the world of the cloud the benefits are high but the economics (financial and technical) can be radically different. Learn more about these new realities and how they can change application design, deployment and support. The introduction of Cloud technologies and its rapid adoption creates new opportunities and challenges. Whether designer, developer or tester, this talk will help you to start thinking differently about Java and the Cloud.

Hystrix Warstories

Die Hystrix-Bibliothek aus dem Netflix-Stack isoliert einen Service von den Aussetzern und Fehlern seiner Abhängigkeiten. Verbindungen werden im Fehlerfall zeitweilig gekappt: Statt Timeouts und Exceptions können wohl definierte Defaults zurückgegeben werden. Im Hystrix-Warstories-Talk werden wir – nach einem kurzem Intro – die Erfahrungen und Lessons Learned aus zwei verschiedenen Hystrix-Projekten teilen. Unser Projekt-Set-up, die Fallen, in die wir gelaufen sind, und natürlich unsere Erfolge. Außerdem erfährst du, wieviel Spaß wir in unseren Projekten mit dem Hystrix-Dashboard und einem µService-Integration-Day hatten.

Ten awesome Tips for Enterprise JavaScript

JavaScript in the enterprise? Does that even make sense? After years of developing Java applications in the enterprise, many developers have become curious about what JavaScript can do for them. But how can you translate concepts like 'modularity' and 'loose coupling' to JavaScript applications? Do JavaScript applications have these kinds of concepts? AngularJS is a popular solution in the JavaScript world, though there are many other solutions, too. In this session, you will be introduced to RequireJS, responsive JavaScript, mobile development with JavaScript, as well as JavaScript transpilers such as GWT, Vaadin, and DukeScript. By the end of this session, you will have a thorough understanding of whether JavaScript is a sensible solution for you in developing enterprise JavaScript applications, today.

Reaktive Anwendungen mit Vert.x 3

Reaktive Anwendungen basieren auf asynchronem Message-Passing und versprechen Eigenschaften wie Skalierbarkeit, Ausfallsicherheit und Responsiveness. Stimmt das? Warum lassen sich diese Charakteristika nicht in traditionellen Architekturen umsetzen? Und was ist der Preis, den wir für die inhärente Asynchronizität in unseren Anwendungen zahlen müssen? Im Fokus steht eine prototypische Applikation auf Basis von Vert.x mit einer modernen, vollständig reaktiven Architektur. Anhand konkreter Problemstellungen erkennen wir sowohl die wesentlichen Unterschiede zu traditionellen Anwendungen als auch die Herausforderungen von Asynchronizität und Message-Passing. So können wir letztendlich die Vorteile und Nachteile von Reactive Design beim Einsatz in unseren Anwendungen bewerten. Vorsicht: Vortrag kann Spuren von Quellcode enthalten.

Keine Slides vorhanden
Concurrency für Profis

Diese Session behandelt Concurrency jenseits von volatile und synchronized: Memory Barriers, Hardware Friendliness, Umgang mit Prozessor-Caches, warum stark optimierter Code sun.misc.Unsafe verwendet und was es mit VarHandles in Java 9 auf sich hat.

Agile in Zahlen – die Suche nach verlässlichen Metriken

Hört man Vorträge über agile Projekte, so geht es immer um die Aspekte Kultur, Kommunikation, Management Commitment, Teambuilding – auf einen Nenner gebracht um ziemlich weiche, wenig messbare Faktoren. Wir versuchen in diesem Vortrag eine Annäherung von der Seite der Zahlen. Welche Informationen können aus Spillover, Velocity etc. gezogen werden? Wie kann ich die immer wieder aufkommenden Fragen nach „wie lange dauert das?“ „was kostet das?“ besser beantworten. Hinterlassen vielleicht sogar die eingangs genannten weichen Faktoren einen Fußabdruck in den Zahlen oder geben sie uns sogar Frühindikatoren? Wir stellen Thesen auf, zeigen einige Ansätze und bringen reale Beispiele mit.

Keine Slides vorhanden
Microsoft’s Java Focus for Supporting “all Developers, all Languages, all Platforms”

Support for Java and other cross-platform languages is central to the Microsoft Developer Tools division’s strategy. Ranging from the support of popular Integrated Developer Environments (IDEs) to integrations with other leading industry Java tools, Microsoft’s support for cross-platform development is now competitive and appealing to enterprise developers down to the individual hobbyist. The presenters will lead you through the current state-of-the-art of Microsoft’s cloud-based Visual Studio Team Services (VSTS) support for Java developers including Git workflow, continuous integration, and the ability to deploy cloud solutions to Azure Linux web applications and virtual machines (VMs).

14:15 bis 14:45
The Changing Role of the Software Developer

There are often disagreements on the precise definition of DevOps, but one thing is clear: developers are now becoming responsible for things that were once the job of Operations. At the same time, users are demanding new applications at a dizzying pace. Combined, these changes bring great news: developers are becoming more vital to the business than ever before. But, with great power comes great responsibility. How do we deal with these new operations tasks while still meeting the demands for new applications? The answer, as always, is for us to learn new skills and to choose the right technologies to help us. In this keynote, you’ll hear from David Barnes, the Program Director of Emerging Internet Technologies at IBM. David will demonstrate how a you can use cloud based services and containers to abstract the complexity of operations so you can focus on what’s important to you: creating great applications.

15:00 bis 16:00
Infrastructure as Code: Cloud-Umgebungen mit Terraform verwalten

Continuous Delivery setzt auf die Automatisierung von Entwicklungs- und Betriebsprozessen, um die Performance und Qualität im Applikationsbetrieb zu erhöhen. Hierbei ist Terraform ein passendes Werkzeug, mit dessen Hilfe Infrastruktur effizient verwaltet werden kann. Die Session erläutert den Aufbau einer Cloud-Infrastruktur bei Amazon AWS mit Terraform, bestehend aus virtuellen Instanzen, Netzen, Load Balancing und DNS. Die Herausforderungen und Vorteile (Immutable Infrastructure), die sich dadurch bei der Implementierung von Continuous-Delivery-Pipelines für die Entwicklung und den Betrieb ergeben, werden dann anhand des Beispiels diskutiert.

Building low Latency Microservices and Monoliths in Java using high Performance Serialization and Messaging

In this talk we will look at the differences between microservices and monolith architectures and their relative benefits and disadvantage. We will look at design patterns which will allow us to utilise these different strategies as a deployment concern without significant changes to the business logic. We will look at how micro-service architecture can be implemented under low latency constraints of 10–100 micro-second latencies, in Java in particular. How do these strategies reduce the impact of serializing data and logging?

Angular 2.0 und TypeScript: verliebt, verlobt, verheiratet

Angular 2.0 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. Angular 2.0 selbst wird in TypeScript implementiert. Kai zeigt anhand konkreter Beispiele, wie man als Anwendungsentwickler davon profitieren kann und robusten Clientcode mit Angular 2.0 und TypeScript entwickelt. Falls Angular zum Zeitpunkt der Konferenz noch nicht releast ist, stellt Kai die aktuelle Entwicklungsversion vor.

New Work in der Praxis

Die Diskussion über New Work findet meist entlang der Perks und der Autonomie der Kollegen statt. Aber lässt sich damit alleine Effizienz, Effektivität, Innovation und Adaptionsfähigkeit verbessern? Wie aligne ich die Firma, wenn die Kollegen und ihre Teams autonom arbeiten? Muss ich meine Organisationsform ändern? Scheitere ich an meiner Firmenkultur oder meinen Managern? Ein Bericht aus zehn Jahren Theorie und eigener Praxis.

Landung der Aliens – Arquillian in der Praxis

Arquillian ist der aufsteigende Stern in der Open-Source-Softwarecommunity, wenn es um Tests in Java-EE-Applikationsservern geht. Allerdings ist bei vielen die Unsicherheit recht groß, wenn es um den Einsatz von Arquillian in einem konkreten Inhouseprojekt geht. Ursachen sind sicher die teilweise sehr lückenhafte Dokumentation, die Misserfolge, die sich im Internet finden, und die Komplexität am Anfang. Begründet sind sie in erster Linie in dem abweichenden Fokus: Arquillian ist maßgeblich von Framework- und Applikationsserverentwicklern für den Test ihrer Produkte entwickelt worden. Trotzdem ist es eine gute Software für viele Testszenarien einer Java-EE-Anwendung. Dieser Vortrag stellt die wichtigen Punkte beim Einsatz von Arquillian in typischen Projekten in Unternehmen anhand eines durchgängigen Beispiels vor. Dabei wird in erster Linie auf Integrationstests eingegangen und ein Ausblick auf weitere Möglichkeiten wie Browsertests, Akzeptanztests und Lasttests gegeben.

Stream Puzzlers – Nützliches und Verblüffendes im Umgang mit Streams in Java 8

Das Stream-API in Java 8 hält allerlei Überraschungen bereit, wenn man genauer hinschaut. Nach dem Motto „Wussten Sie schon ... ?“ laden wir ein zur Entdeckungsreise und erläutern interessantes Verhalten, verblüffende Features, verbreitete Missverständnisse und einiges mehr im Zusammenhang mit Lambdas, Streams und Co. Eine Session zum Mitdenken und Staunen.

Spring Data, Hypermedia and the Cloud

HATEOAS, REST, JSON Schema, ALPS, Cloud, Docker ... Buzzword-Bingo? Nein! Spring Data REST ermöglicht das Bereitstellen eines REST-API über Repositories komplett mit ALPS-Metadaten und JSON Schema. Diese Session erklärt die Buzzwords anhand von Beispielen, zeigt, wie man REST Services mit dem Spring-Stack erstellt und anpasst, sowie deren Deployment lokal auf Docker, Cloud Foundry und Lattice.

Code Review to the Rescue

In dieser Session betrachten wir unterschiedliche Maßnahmen zur Steigerung der Qualität in der Softwareentwicklung, und zwar sowohl für klassische als auch für agile Vorgehensweisen. In diesem Kontext wird ein Blick auf automatisierte und manuelle Codereviews geworfen, gefolgt von einer Vorstellung von Tools wie beispielsweise Gerrit in Kombination mit Git, Jenkins, SonarQube und Sonargraph. In einer anschließenden kurzen Livedemo wird zudem der Einsatz dieser Tools aus der Sicht eines Entwicklers gezeigt.

Zehn SQL-Tricks, die du nicht für möglich gehalten hättest

SQL ist die Sprache von Big Data. Egal, ob eine klassische relationale Datenbank, ein Column Store ("NewSQL") oder ein nicht relationales Speichersystem ("NoSQL") verwendet wird, eine starke, deklarative, SQL-basierte Abfragesprache verschafft den entscheidenden Vorteil. Der SQL-Standard hat sich drastisch weiterentwickelt, genauso wie seine kommerziellen und Open-Source-Implementierungen. Leider haben dies die wenigsten Leute im Java-Umfeld mitgekriegt, weswegen die meisten nur 10 Prozent der Features ihrer Datenbank verwenden. In diesem rasanten Vortrag werden wir einige eigenartige, jedoch sehr interessante Datenprobleme anschauen und mittels SQL lösen. Wir untersuchen Common Table Expressions, hierarchisches SQL, Tabellenfunktionen, Laterale Joins, sortierte Mengen, Aggregationsfunktionen, Reihenausdrücke, Fensterfunktionen und erweiterte Datentypen wie XML und JSON. Und wir werfen einen Blick auf Oracles mysteriöse MODEL- und MATCH_RECOGNIZE-Klauseln. Am wichtigsten: Wir werden feststellen, dass jeder fortschrittliches SQL schreiben kann. Sobald die Grundsätze dieser Tricks bekannt sind, werdet ihr SQL noch mehr lieben!

Konfiguration und Service Discovery für Microservices

Anwendungen benötigen Konfigurationsdaten mit unterschiedlichen Informationen, z. B. zu den Adressen der Nachbarsysteme und zu fachlichen Parametern. In einer Microservices-Umgebung ist Automatisierung der Schlüssel zu einem zuverlässigen und effizienten Betrieb. Eine übergreifende zentrale Konfiguration ist der erste Schritt. Im zweiten Schritt müssen Konsumenten automatisch die von ihnen benötigten Services finden, wenn diese skaliert oder auf anderen Knoten neu gestartet wurden. Dieser Vortrag gibt eine Einführung in zentrale Konfiguration und Service Discovery mit praktischen Beispielen rund um Netflix Archaius, HashiCorp Consul, CoreOS etcd und Netflix Eureka.

High-Performance Lists in Java

Obwohl die Klassen des Java-Collections-Frameworks zu den meist genutzten des JDK gehören, sollten gerade die angebotenen List-Implementierungen nicht unbesehen verwendet werden, da sie nicht nur begzüglich Performance Schwächen haben. Der erste Teil des Vortrags stellt deshalb alternative Implementierungen im Detail vor: GapList ist ein hoch performantes Drop-in Replacement für ArrayList und LinkedList, während BigList speziell für das Speichern von großen Datenmengen entwickelt wurde. Der zweite Teil des Vortrags stellt die Key Collections vor, die mit den Konzepten von Keys und Constraints einen mächtigen Baukasten für Collections bereitstellen. Dieser einzigartige Ansatz erlaubt das einfache Definieren von präzisen Datenmodellen mit nur ein paar Codezeilen, wodurch nicht nur die Performance der Applikation, sondern vor allem die der Entwicklung beschleunigt wird.

Continuous Deployment und betriebliche Herausforderungen auf einem historisch gewachsenen Konzern-Backend

Im E-Commerce zählt die Devise: agiler, schneller und innovativer. Um heute erfolgreich zu sein, müssen bestehende Geschäftsmodelle regelmäßig hinterfragt und kontinuierlich weiterentwickelt werden. Aber in großen Konzernen existieren häufig historisch gewachsene IT-Infrastrukturen. Der Vortrag zeigt auf, welche Erfahrungen wir bei der Eigenentwicklung unseres Onlineshops gemacht haben, um die Stabilität des Shops trotz historisch gewachsener betrieblicher Rahmenbedingungen wie teils langsamer Antwortzeiten, sporadischen Ausfällen und längerer Entwicklungszyklen zu erhalten. Insbesondere wird auf Themen wie intelligente Datenhaltung, Microservices und Resilience in einer vertikal geschnittenen Shared-Nothing-Architektur eingegangen.

Keine Slides vorhanden
16:45 bis 17:45
Container as a Service with Docker

Docker revolutionized how developers and operations teams build, ship and run applications, enabling them to leverage the latest advancement in software development: the microservices architecture style, the immutable infrastructure deployment style, the devops cultural model. The existing software layers are not a great fit to leverage these trends: Infrastructure as a Service is too low level; Platform as a Service is too high level; Container as a Service (CaaS) is just right: container images are just the right level of abstraction for devops, allowing developers to specify all their dependencies at build time, building and testing an artifact that, when ready to ship, is the exact thing that will run in production. CaaS gives Ops teams the tools to control how to run these workloads securely and efficiently, providing portability between different cloud providers and on premise deployments. This talk will give you a detailed update of the four layers of the Docker ecosystem enabling CaaS: standards, infrastructure, platform and services. It includes demo of how to leverage the latest Docker tools to build, ship and run a Spring Boot application architected as a set of microservices.

MEAN-Stack - Durchgängige JavaScript-Entwicklung von der Datenbank bis zum Frontend

JavaScript wurde lange Zeit als Sprache unterschätzt und oftmals nur für Validierungen auf Frontend-Seite eingesetzt. In den letzten Jahren hat sich dieses Bild jedoch gravierend gewandelt - JavaScript wird nun auch vermehrt im Backend und sogar als Datenbankabfragesprache eingesetzt. Dies ermöglicht eine durchgängige Entwicklung von Webanwendungen mit JavaScript als einheitlicher Programmiersprache. Entsprechend hat sich ein Entwicklungsstack gebildet, der aus den JavaScript-Technologien MongoDB, Express, AngularJS und Node.js besteht - abgekürzt mit MEAN. In dieser Session werden diese vier Technologien kurz vorgestellt und die Entwicklung von Web-Apps auf deren Grundlage anhand eines Beispiels kurz erläutert. Abschließend erfolgt ein Vergleich mit den eher klassischen Technologiestacks, bei denen eine relationale Datenbank und Java im Backend zum Einsatz gelangen.

Ich gestalte mein Unternehmen mit!

Selbstorganisierte Teams, Management 3.0, agile Skalierung, Servant Leadership – viele Begriffe kreisen um das Thema, wie sich Unternehmen in Zukunft organisieren. CoSee wurde als Firma mit sehr klassischen Strukturen gegründet und ist daran fast gescheitert. Wir berichten, was wir als agiles Unternehmen heute erfolgreich anders machen ...

Elasticsearch Performance Best Practices

Elasticsearch has built up a reputation for providing horizontal scalability and high performance almost out of the box, and it’s incredibly easy to get started. Still, there are so many aspects of Elasticsearch that are easily overlooked, and exactly those will come back later to haunt us in production and cause unexpected performance issues. In this session, we learn about various best practices and production recommendations regarding Elasticsearch performance, backed up with anecdotes from actual events. We gain confidence not only for building Elasticsearch-based applications, but also for making them performant and bringing them to production.

Mobile-Cross-Plattform für Java-Entwickler

Es zeigt sich immer wieder, dass der Wunsch nach nativen Apps weiterhin für zahlreiche Anwendungsfälle berechtigt ist. In der Regel muss dann eine App sowohl für iOS als auch Android erstellt werden. Sehr schnell wird klar, dass mit begrenzten Ressourcen und Know-how eine komplette Neuentwicklung für jede einzelne Plattform zeit- und kostenintensiv ist. Im Markt haben sich daher einige Möglichkeiten etabliert, mittels Cross-Plattform-Entwicklung die mehrfache Umsetzung zu verringern bzw. diese zu vermeiden. Ansätze wie J2ObjC, RoboVM oder Djinni sind nur ein paar der Kandidaten, die eine Verbesserung versprechen und auch für Java-Entwickler interessant sind, die ihr vorhandenes Java-Know-how einbringen wollen.  In diesem Talk werden Cross-Plattform-Ansätze mittels RoboVM, J2ObjC und Djinni für die Erstellung von nativen Apps vor- und gegenübergestellt. Dabei werden technische Einsichten und Erfahrungen bei der Verwendung dieser Werkzeuge vermittelt.

Keine Slides vorhanden
Graph Search and Discovery for your Dark Data

To achieve new insights within your company you don't necessarily have to accumulate and crunch a lot of new data - much key information already exists in disconnected data silos, stored in different databases and systems. Graph databases offer the unique opportunity to easily cross-reference and connect disparate, variably structured datasets from many sources in a single place. Getting the data into the graph is only one interesting side of the coin, the other similarly challenging one is how to make the knowledge available for different types of users. We'll look at how to aggregate, import and connect information from disparate data-sources into a dynamic, flexible graph model and the means for graph search and discovery. We use Neo4j, its query language Cypher which also provides import and transformation abilities, as well as several tools from the Neo4j ecosystem to provide visual and textual graph search and exploration.

Keine Slides vorhanden
Reaktive Microservices mit Akka und Docker

Akka ist hervorragend geeignet, um elastische und widerstandsfähige verteilte Systeme zu erstellen. Diese können mit Docker so einfach wie nie zuvor betrieben werden. In dieser Session stellen wir kurz die Grundlagen von Akka und Docker vor und zeigen dann, wie wir diese innovativen Technologien zusammen verwenden können, um wirklich reaktive Microservices zu erstellen und laufen zu lassen. Einige wenige Slides werden durch etliche Live-Demos ergänzt.

Keine Slides vorhanden
HTTP/2 and Java 9

HTTP 2.0 is supposed to be the next big thing for the web, after the overwhelming success of HTTP 1.1. In this session we will examine the HTTP 2.0 protocol, what is the status of its specification, what features does it offer over HTTP 1.1, and how websites can benefit (in speed and money) from it. The session will also explore what it takes to write HTTP 2.0 applications in the Java platform, what plans there are to support it in JDK 9 and which Servlet Containers are already offering HTTP 2.0 support, finishing up with a demo of HTTP 2.0 new features.

The Bootiful Application

Alright, so maybe "bootiful" won't ever work, but I tried, and it was worth it too because you're reading this. Spring Boot, the new convention-over-configuration centric framework from the Spring team at Pivotal, marries Spring's flexibility with conventional, common sense defaults to make application development not just fly, but pleasant! Spring Boot aims to make address the common functional and non-functional requirements that gate quickly moving to production. Join Spring developer advocate Josh Long for a look at what Spring Boot is, why it's turning heads, why you should consider it for your next application (REST, microservices, web, batch, Big Data, integration, whatever) and how to get started.

Fachexperten als Programmierer: Erfahrungen aus zehn Jahren Projektarbeit

Die gängige Praxis, dass Fachexperten – z. B. Versicherungsmathematiker, Prozessanalytiker oder Ingenieure – unscharfe Anforderungen in Word-Dokumente erfassen, die dann von Entwicklern gelesen und (miss-)verstanden werden, ist kein besonders produktiver Entwicklungsprozess. Besser wäre, die Fachexperten direkt in die Softwareentwicklung einzubinden und sie Teile des Systems selbst „programmieren“ zu lassen. Benötigt werden dazu Werkzeuge, deren Abstraktionen, Notation und Toolunterstützung möglichst gut an die Domäne angepasst sind. Seit zehn Jahren helfen wir Organisationen dabei, genau dies umzusetzen, und in diesem Vortrag fassen wir die (guten und schlechten) Erfahrungen aus diesen zehn Jahren zusammen; Ziel ist, unseren Zuhörern den Einstieg in dieses vielversprechende Thema zu erleichtern. Unter anderem betrachten wir Dos and Don’ts beim direkten Einbinden von Fachexperten in die Softwareentwicklung, Kriterien, welche Domänen sich für End-User-Programming eignen, sowie Kriterien für die Werkzeuge, die man in diesem Zusammenhang verwenden kann.

Start your rugged DevOps Journey with Nexus, Jenkins and Docker

Nexus, Jenkins and Docker are already at the heart of the continuous toolchain. Join this session to explore how together these tools not only simplify Continuous Integration, but also ensure you manage quality and security in the same continuous processes. As docker usage increases, we must take a moment to consider the necessary toolkit to working efficiently with docker. Can all the containers we use be trusted? Are the dependencies ok? How do we ensure operationalisation? How do we lay out the pipeline? In this session we’ll explore these questions, and talk about how companies are tackling these problems today using the above tools and by leveraging the principles of rugged Devops.

Enterprise-Portale – Neue Wege gehen

Enterprise-Portale sind heutzutage ein etablierter Unternehmensbestandteil. Bei der Einführung spielt die Flexibilität von Architektur und Technologie die tragende Rolle, um in Time und in Budget auf sich schnell ändernde Unternehmensstrukturen und Marktanforderungen zu reagieren. Im Rahmen des Vortrags werden zunächst differenziert die Anforderungen an Enterprise-Portale dargestellt. Darauf aufbauend werden mögliche Lösungsszenarien betrachtet, wie althergebrachte JEE-Portalserver sowie aktuelle und leichtgewichtige Ansätze zur clientseitigen Integration mittels Java MVC oder aber AngularJS. Die Lösungsszenarien werden anhand ihrer spezifischen Vor-und Nachteile betrachtet und mittels Codebeispielen exemplarisch belegt.

18:00 bis 19:00
Von Swing nach JavaFX

Hier beleuchten wir technische und strategische Gründe, warum man JavaFX möchte, nennen Bedingungen, wann man wechseln kann, zeigen Wege, wie man von Swing nach JavaFX kommt und welche Schwierigkeiten, Kosten und Risiken uns dabei erwarten. Dazu besprechen wir mit Code im Detail, was bei einem solchen Übergang zu beachten ist in den Punkten: Desktopmuster, Implementierungsstil, Layout (Low-Level und High-Level), Datenbindung, Event Handling und Actions, Hintergrundprozesse, Objektpräsentation insbesondere mit Tabellen und Tabellenzellen, eigene Komponenten, Internationalisierung, Look and Feel und Appearance, Werkzeugunterstützung. Das führt zu einem einheitlichen Programmiermodell für Swing und JavaFX, mit dem man einen großen Teil von Geschäftsanwendungscode abdecken kann, der dann günstig übertragbar ist. Abschließend zeigen wir einen Übergangsprozess mithilfe der vorher vorgestellten Techniken und Konzepte. Er bildet eine realistische Brücke von Swing nach JavaFX und sogar weiter nach HTML5.

Kafka 101 – Massive Datenströme

Mehr als eine Billion Nachrichten pro Tag über mehrere Rechenzentren? Mit Apache Kafka kein Problem! Kafka ist ein verteilter, partitionierender und replizierender Dienst für große Datenströme. Er stellt seine Funktionen ähnlich wie ein klassischer Messaging-Broker zur Verfügung, allerdings unterscheiden sich die Konzepte grundlegend. In diesem Vortrag werden wir auf die wichtigsten Kafka-Terminologien und -Konzepte eingehen, und zeigen, welchen positiven Einfluss die getroffenen Designentscheidungen auf die Performance haben und was es dabei zu beachten gilt. Wie kann Kafka integriert werden? In welchen Szenarien ergibt der Einsatz Sinn? Zur Veranschaulichung führen wir durch ein Beispiel zum Senden und Empfangen von Nachrichten unter Verwendung des Java-API und geben abschließend einen Ausblick auf neue Funktionen künftiger Versionen.

Der glückliche Java-Entwickler

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.

Isomorphe JavaScript-Web-Apps auf der JVM mit React und Java EE MVC

Isomorphe JavaScript-Apps sind JavaScript-Anwendungen, die sowohl auf der Clientseite als auch auf der Serverseite ausgeführt werden können. Ursprünglich aus der Mathematik kommend, beschreibt der Begriff in der Webentwicklung ein Muster, bei dem der gleiche Code zwischen Front- und Backend geteilt wird. React (entwickelt von Facebook) ist der neue Stern am JavaScript-UI-Frameworkhimmel, dabei ist React kein komplettes MVC-Framework, sondern stellt lediglich das „V“ bereit. Mithilfe von Nashorn können wir die View auf dem Server (vor-)rendern und dann an den Client ausliefern, wo die Seite dynamisch mit Daten befüllt und fertiggestellt wird. Mit Spring MVC ist das schon eine zeitlang prototypisch möglich, mit dem neuen Standard MVC API 1.0 (JSR 371) wird das auch in Java EE 8 der Fall. Anhand der Referenzimplementierung Ozark zeige ich, wie moderne Java-EE-Webapplikationen heute aussehen. Nichts bleibt unmöglich – auch Netflix arbeitet nach dem isomorphen Prinzip.

Tools for the Next Gen Developer: Pull Requests, Code Review, and the GitHub Flow

The unique combination of source code protection, quality gate and collaboration makes Pull Requests one of the core parts in modern software development workflows. If used wisely, they are able to document decision history, facilitate code reviews and know-how transfer without sacrificing speed or fun of development. But what might such a workflow look like? In this session, we'll start out by looking at what makes a great pull request, and what barriers people have with sending and receiving them. Next, we'll remove some of those barriers by discussing some code review best practices to ensure our code is well written and well tested. Lastly, we'll see how and why these pieces are a crucial part of a proper workflow, and what advantages the GitHub Flow has.

UX und agile Entwicklung: eine Aufgabe fürs ganze Team

Es gibt ein wachsendes Verständnis dafür, dass die User Experience (UX) ein wesentlicher Erfolgsfaktor für Softwareentwicklung ist - für Internetanwendungen, Apps und auch bei Inhouseanwendungen. Es herrscht häufig noch Unsicherheit darüber, wie UX mit agiler Entwicklung kombiniert werden kann. Der Vortrag argumentiert, dass UX eine gemeinsame Aufgabe des ganzen Teams ist, und zeigt verschiedene Möglichkeiten, wie UX und Agile kombiniert werden können: beginnend von klassischem Denken mit vorgelagerter UX, über Dual Track Agile mit paralleler UX bis hin zu vollständiger Integration von UX in Sprints/Iterationen. Die einzelnen Ansätze werden mit Fallbeispielen unterlegt und bzgl. der jeweiligen Vor- und Nachteile bewertet. Nach dem Vortrag kennen die Teilnehmer verschiedene Optionen für die Kombination von UX und Agile und haben Ideen, was sie als Nächstes im eigenen Kontext tun können.

REST-APIs selbstverständlich

Selbstbeschreibende REST-Services setzen sich in der Praxis immer mehr durch. Mit Formaten wie HAL, Siren, ALPS und Hydra lassen sich die Schnittstellen beschreiben und mit Tools auch für den Menschen auswerten. Der nächste Schritt wäre, APIs so zu designen, dass man keine neuen Clients für jede Schnittstelle bauen muss. Browser und Newsreader beweisen, dass so etwas möglich ist. Die Session stellt Möglichkeiten und Beispiele vor, wie man REST-Schnittstellen so beschreiben kann, dass generische Clients damit zurechtkommen und nicht für jede Funktionalität eine anbieterspezifische Implementierung nötig ist.

Low Latency Lambdas in Java 8

What are some of the performance implications of using lambdas and what strategies can be used to address these? When might we want an alternative to using a lambda and how can we design our APIs to be flexible in this regard?

Immutable Infrastructure auf AWS: Hasta la vista Haustiere, hier kommt das Vieh!

Eine Anwendung auf einen Server zu deployen, kostet Aufwand und Zeit. Es fängt beim Betriebssystem und den verschiedenen Abhängigkeiten an. Die müssen nicht nur korrekt installiert, sondern auch in der richtigen Version vorhanden und konfiguriert sein. Es geht weiter mit Benutzer- und Rechtevergabe, Firewallkonfiguration, 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 Anwendungs-Deployments an. Sie werden sehen, wie die Cloud neue Türen öffnet und wie Immutable Infrastructure ein neues Zeitalter für DevOps einleitet. Es gibt keinen Weg zurück!

Making Sense of Microservices

As this Microservices track, which encompasses many different insights into architectural aspects as well as technological knowledge, comes to an end, it’s time for a wrap-up. Have a chat with the speakers about aspects which you missed, ask for organizational implications of Microservices and make the most of this debate by voicing your viewpoints!

Keine Slides vorhanden
Purpose-driven autonomous Teams

How can small startups achieve great things in such a short time? How can local responsibility without centralized control result in a better outcome? What is a learning organization and why is it so effective? What keeps the new generation of tech professionals motivated? How do people grow into new roles successfully without traditional education involved? Working at companies like Prezi and SoundCloud I experienced how new ways of building teams and organizing work can lead to amazing results. I would like to share this with you.

Keine Slides vorhanden
The Bootiful Microservice

We get it already! Microservices help you build smaller, singly-focused services, quicker. They scale out. They’re more agile because individual teams can deliver them at their own pace. They work well in the cloud because they’re smaller, and benefit from elastic, horizontal scaling. But what about the complexity? There’s a cost associated with adding services and coordinating the interactions between them.In this talk, we’ll look at Spring Cloud, which builds atop Spring Boot and the Netflix OSS stack, and see how it lets you easily integrate service-discovery, security, reliability patterns like the circuit breaker, and centralized and journaled property configuration (and more) to more quickly build microservices that scale. We’ll look at: Service discovery and registration with a Eureka service registry and Spring Cloud’s Eureka integration  Centralized, journaled configuration with Spring Cloud’s Config server Refreshing bean configuration in-situ with the '@RefreshScope' Building an API gateway using Zuul and reactive programming Isolating failure cascades using the Hystrix circuit-breaker Single sign-on between microservices with Spring Security OAuth

Keine Slides vorhanden
18:45 bis 19:45
Investigating the #PanamaPapers Connections with Neo4j

The PanamaPapers are the biggest data leak in history that was researched by journalists for over a year in private before being announced in April 2016. Like finding a needle in haystack, they had to connect the disparate pieces of (meta-)information to a cohesive picture. As a part of their tech stack the graph database Neo4j was instrumental to capturing and analyzing the many relationships between people, companies and the documents pointing to them. In this presentation, we’ll cover some of the background of the panama papers investigation. We’ll look into the technical aspects of data modeling, data import, querying and visualizing this kind of „hot“ data with Neo4j. It enabled non technical reporters to unearth this web of hidden activities by the public figures of the world.

Self-contained Systems: Microservices-Architekturen mit System

Microservices sind der aktuelle Hype in der Software-Architektur-Szene. Aber einfach nur kleine Dienste entwickeln, ist bei weiterm nicht genug. Self-contained Systems (SCS, http:///scs-architecture.org ) fokussieren auf einen Architektur-Ansatz, der vor allem bei großen Systemen mit entsprechend komplexer Team-Struktur sinnvoll ist. Mit SCS kann in einem solchen Kontext auch langfristig produktiv Software entwickelt werden. Der Vortrag erläutert Self-contained Systems, ihre Vor- und Nachteile und die Abgrenzung zu Microservices.

20:00 bis 20:30
Containerization in the physical World: about Ships, and Ports, and logistic Chains

Containerization is having a huge impact on the software industry; but beyond software infrastructures, Docker, Kubernetes and Co. it’s interesting to inspect the basic metaphor of containerization. In the physical world it represents an intermodal system of freight transport which has brought profound change to the global economy since the middle of the last century. In this keynote, you will learn from Martin Clausen – who has worked for the world’s largest container shipping line, Maersk Line from Copenhagen, Denmark – how gigantic container ships, standardized infrastructures and impressive logistic chains brought incredible scale and productivity to the global trade – a development that continues to this day.

20:45 bis 23:15
Arduino Challenge: "Mission on Mercury"

Wir schreiben das Jahr 2075. Der Mars ist mittlerweile bevölkert, nun geht es mit der Erforschung des Planeten Merkur weiter. Trotz der extremen Temperaturschwankungen gibt es seit dem Entdecken eines Höhlenvorsprungs Hoffnung, dass dort menschliches Leben möglich ist. Es liegt nun an dir und deinem Team, einen Roboter zu bauen und zu programmieren, der nach seiner Landung am Merkur teils ferngesteuert, teils autonom zur Höhle findet und dort entsprechende Messungen durchführt. Es kann in Teams mit zwei bis acht Personen gearbeitet werden. Als Zeitkontingent stehen 150 Minuten zur Verfügung. Eine vorherige Anmeldung ist nicht nötig, der Wettbewerb ist für alle JAX-Teilnehmer offen. Vorkenntnisse sind ebenfalls nicht vonnöten, Wettbewerbsleiter Bernhard Löwenstein gibt vorab eine Einführung in Arduino. Auf das Gewinnerteam wartet ein toller Hauptpreis.

Keine Slides vorhanden
20:45 bis 21:45
Let’s discuss Ships, Container and etc.

After an inspiring trip to the world of real ships and physical containers, let’s discuss the metaphor of our software-based container concept. Is there something we can learn from the global freight system in order to understand our software concepts better? Have a chat with keynote speaker Martin Clausen, who is familiar with both - the physical container world as well as the software-based concept of Docker and Co.

Keine Slides vorhanden
Kommunikation als Impediment – ein satirischer Rundumschlag

Wie kommunizieren Leuchttürme mit Teelichtern? Wie kann man Fehlermacher verpfeifen und Nachfrager abschrecken? High-Performer in Scrum-Teams fühlen sich durch Low-Performer ausgebremst, und Letztere sind genervt von deren Spott und Empörung. Dieser szenische Vortrag parodiert die Situation und versorgt beide Seiten mit Munition. Sch(m)erzhafte Gesprächsbeispiele aus dem Sprint-Alltag werden vielen Zuhörern bekannt vorkommen und illustrieren, wie beide Lager sich auf Kosten des Projekts bekämpfen. Echte Teamperformance erfordert wertschätzende Kommunikation auf Augenhöhe. Viele wissen, wie das NICHT geht, aber von da aus kann man gut starten.

Keine Slides vorhanden
Neues aus der Java-Trickkiste

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

Keine Slides vorhanden
Ballroom

Der Ballroom ist das Networkingevent der JAX. Es bietet die Gelegenheit, in lockerer Atmosphäre mit den Speakern und Teilnehmern der Konferenz ins Gespräch zu kommen. Die Spielregeln sind denkbar einfach: Es werden Tische zu jeweils einem Spezialthema vorbereitet, an denen sich mindestens ein Experte befindet, der für Fragen und Diskussion zur Verfügung steht. Alle Teilnehmer können sich einem Gespräch nach Wahl anschließen – und wenn sie wollen, einfach den Tisch wechseln und in anderer Runde weiterdiskutieren.

Keine Slides vorhanden

Thursday - 21. April 2016

09:00 bis 10:00
Verarbeitung großer Datenmengen

Big Data ist seit Twitter, Netflix und Co. in aller Munde, in der Praxis mussten sich bisher aber wenige Unternehmen mit den Herausforderungen auseinandersetzen. Hier findet allerdings momentan ein Wandel statt. Es fallen nicht nur dann viele Daten an, wenn es um die Verarbeitung von Messdaten oder einer Produktionssteuerung geht, sondern bereits, wenn es darum geht, Benutzerverhalten zu tracken und auszuwerten. Im Rahmen des Vortrags werden die architektonischen Herausforderungen aus verschiedenen Praxisprojekten vorgestellt und gezeigt, welche Ansätze sich in den verschiedenen Situationen bewährt haben. Die Lösungen reichen von optimierten relationalen Datenbanken über NoSQL bis hin zu Systemen mit spezieller Hardware und speziellen Optimierungsverfahren, um der Datenmenge Herr zu werden. Natürlich wird jeweils zusätzlich betrachtet, wie eine solche Lösung geschickt in die Enterprise-Architektur eingebunden werden kann.

Docker – eine Einführung

Der Trend hin zur Virtualisierung mit Docker ist nach wie vor ungebrochen. Infrastructure as Code ist aus der IT-Welt nicht mehr wegzudenken und wird zunehmend integraler Bestandteil der Softwareentwicklung. Im Rahmen des Vortrags werden die Grundlagen zu Docker praxisnah vermittelt und es wird u.a. auf das Container-Linking, Data Volumes und Multi-Container-Applikationen eingegangen. Abschließend wird der Einsatz von Docker in der Webentwicklung anhand eines Beispiels dargestellt.

Überblick zu Apache Lucene und den darauf basierenden Suchservern Apache Solr und Elasticsearch

Dieser Vortrag wird eine kurze Einführung in das Gebiet der Volltextsuche und der Bibliothek Apache Lucene geben und dann die neuen Features und Verbesserungen präsentieren, die seit Version 5 hinzugekommen sind. Dabei wird das besondere Augenmerk auf die Suchserver Apache Solr und Elasticsearch gelegt, denn diese werden von den meisten Usern eingesetzt. Der Vortrag wird ebenfalls einen kurzen Featurevergleich zwischen den beiden Servern präsentieren, sodass neue Nutzer besser entscheiden können, welches der beiden Produkte besser für das Projekt geeignet ist.

Was passiert im Eclipse (Platform) Project, oder: What's hot in Eclipse?

Was treibt das Eclipse-Platform-Team und JDT-Team so neben dem Java-9-Support? In dieser Präsentation werden die Highlights der aktuellen Eclipse-Plattform und JDT-Entwicklungen vorgestellt, die im Juni 2016 mit Eclipse Neon dann für alle verfügbar sein werden. Hierbei wird der Fokus auf die Features für den Nutzer gesetzt und weniger auf die internen Verbesserungen des Projekts. Aber als einer der Projektleiter des Eclipse Projects kann der Preferent auch zu solchen Fragen bei Bedarf Rede und Antwort stehen. Auch wird die aktuelle Teamstruktur erklärt und beschrieben, was man von der Eclipse-IDE in Zukunft erwarten kann.

Von Schwergewichten und Walfischen – automatische Plattformtests mit Docker

Continuous Delivery, die Containertechnologie Docker und Microservices sind in aller Munde. Wie kannst du diese Trends aufnehmen und davon in deinem gewachsenen IT-Umfeld profitieren? Der Vortrag stellt ein Szenario vor, in dem bestehende, produktive Anwendungen automatisiert auf verschiedenen Versionen einer Anwendungsplattform getestet werden. Am praktischen Beispiel wird das Zusammenspiel der Containertechnologie Docker und des Build-Servers Jenkins demonstriert. Durch den Einsatz von Praktiken aus dem Continuous Delivery erreichen wir ein kontinuierliches und direktes Feedback. Dieser Use Case zeigt, wie Docker auch in einem noch nicht auf Microservices umgestellten Umfeld einen direkten Mehrwert bietet und erste Erfahrungen mit diesen neuen Technologien gesammelt werden können.

Hack your Brain – Google Style

Dass wir selbst der wichtigste Faktor in der Softwareentwicklung sind, ist an sich eine triviale Erkenntnis: Unsere Fähigkeiten, fokussiert zu arbeiten, kreative Lösungen zu finden und im Team zu lernen, wie wir ein gutes Produkt entwickeln, entscheiden über Erfolg und Spaß an der Arbeit. Wie entwickelt man diese Fähigkeiten jedoch konkret? Ein Ansatz dazu ist „Search Inside Yourself“, eines der gefragtesten Fortbildungsprogramme innerhalb von Google, das jetzt öffentlich zugänglich ist: Es kombiniert Achtsamkeitstechniken mit Techniken zur Entwicklung emotionaler Intelligenz. Das Besondere: Das Alles ist kein Hokuspokus, sondern basiert auf neurowissenschaftlichen Erkenntnissen. Search Inside Yourself ist quasi ein wirksames Fitnesstraining für den Geist, das im Laufe der Zeit zu mehr Fokus, Motivation und Zufriedenheit führt. Ich stelle Ihnen Techniken aus dem Programm vor, und wir machen einige Übungen. Ihr Gehirn bekommt ein kleines Workout, und Sie gehen mit Impulsen für eine Umsetzung im Alltag aus der Session heraus.

Beyond the Buzzword: a reactive Web Application in Practice

In this talk/live-coding session we will have a practical look at how a reactive web application is different from a “normal” one and how resilience, elasticity and responsiveness translate into code. We will start by having a quick theoretical introduction to asynchronous computation and then build, run, deploy and load-test a small reactive web application built with the Play Framework, exploring a few key concepts such as Futures, Actors and Circuit Breakers along the way.

Threat Modeling - Von Anfang an sichere Webanwendungen

Jede Webanwendung ist generischen und spezifischen Bedrohungen ausgesetzt. Um eine möglichst sichere Webanwendung zu entwickeln, ist es daher unbedingt notwendig, sich bereits vor Beginn der Implementierung mit möglichen Bedrohungen und dazu passenden Gegenmaßnahmen zu beschäftigen. Nur so lässt sich eine Webanwendung „von innen heraus“ sicher entwickeln. Hier setzt Threat Modeling an. Mit dessen Hilfe werden vorhandene Bedrohungen bereits frühzeitig während des Entwurfs der Architektur sichtbar gemacht. Vor, während und nach der Entwicklung müssen anschließend die dabei identifizierten Gegenmaßnahmen eingeplant und implementiert werden. Die Session stellt die Grundlagen des Threat Modelings vor und zeigt, wie Entwickler und Architekten bereits vor der Implementierung die entscheidende Basis für die Sicherheit einer Webanwendung legen. Mit den vorgestellten Tools kann anschließend jeder Teilnehmer Webanwendungen selbst modellieren, Bedrohungen analysieren, die notwendigen Gegenmaßnahmen rechtzeitig einplanen und in die Wege leiten.

Steht alles im Wiki? Softwarearchitektur im Wandel

Viele Softwaresysteme blicken auf eine bewegte Vergangenheit zurück. Änderungen im Umfeld, etwa im Markt oder durch technologische Neuerungen, setzten sie unter Druck. Mitunter stand am Ende die Neuentwicklung der Lösung oder zumindest großer Teile davon. Die Geschichte solcher Systeme wird selten erzählt. Nicht so hier: In diesem Vortrag unternehmen wir eine kleine Zeitreise und bewerten eine prominente Softwarelösung, die bereits viele Jahre in zahllosen Umgebungen produktiv ist, zu verschiedenen Zeitpunkten: Atlassian Confluence. Zum Einsatz kommen dabei Werkzeuge aus qualitativen Evaluierungsmethoden wie ATAM, gezielt ergänzt um quantitative Techniken. Wir fokussieren auf gravierende Veränderungen im Softwaresystem – wichtigen Ereignissen in seiner Biografie. Wodurch waren die Schritte motiviert? Welche Risiken wurden bewusst in Kauf genommen, welche Kompromisse eingegangen? Haben sie sich rückblickend bewährt? Die Teilnehmer lernen nebenbei, wie eine Architekturbewertung grundsätzlich funktioniert.

JavaFX – Einstieg am lebenden Beispiel

Was kann JavaFX, und wo liegen die Besonderheiten? Die Session gibt einen Einblick unter die Haube einer Geschäftsanwendung, die im Rahmen eines Kundenprojekts mit JavaFX umgesetzt wurde. Der Fokus liegt dabei auf dem JavaFX-Property-API, der Arbeit mit FXML und anderen interessanten Features von JavaFX. Themen wie das Testen und das Deployment des Clients spielen ebenfalls eine Rolle. Interessierte Zuhörer werden in die Welt von JavaFX eingeführt und lernen die Stärken des Toolkits am Praxisbeispiel kennen.

Jenseits von Flux – Skalierbare Frontend-Architekturen mit Publish/Subscribe

Das populäre Architekturmodell Flux vereinfacht die Erstellung dynamischer Benutzeroberflächen per „unidirectional data flow“: Hierbei beschränkt sich die Darstellungsschicht auf das Rendern eines empfangenen Datenmodells sowie die Erzeugung von Events, die wiederum Modelländerungen anstoßen. Modellverwaltung wird so aus der Darstellungslogik herausgehalten. In komplexeren Anwendungen werden Modellabhängigkeiten und resultierende Zustandskonflikte so aber nur eine Ebene verschoben, nämlich in die Schicht der Fachlogikbausteine (der Stores). Abhängigkeiten zwischen Stores können in deren Implementierung jederzeit auftreten, da alle Stores über den gemeinsamen Dispatcher miteinander verbunden sind. Leider sind diese Querabhängigkeiten nicht offensichtlich und verhindern effektiv Kapselung und Wiederverwendung einzelner Bausteine. Das Publish/Subscribe-Modell ist eine Verallgemeinerung des Flux-Ansatzes: Es erlaubt die Verknüpfung ausgewählter Fachlogikbausteine mittels konfigurierbarer Topics und damit komponentenbasierte Wiederverwendung von Geschäftslogik. Wir möchten die Pub-/Sub-Architektur anhand praktischer Anwendungsbeispiele und einer Referenzimplementierung erläutern und Flux gegenüberstellen.

10:45 bis 11:45
Kontinuierliche Architekturdokumentation im agilen Umfeld

Man kann zwar an vielen Stellen nachlesen, wie man Architekturdokumentation strukturiert. Aber auf der Suche nach einer praktikablen Handhabung zur Erstellung und Pflege enden die meisten Versuche in der WYSIWYG-Hölle einer Textverarbeitung oder im tiefen Schlund eines Wikis. In diesem Vortrag wollen wir uns anschauen, wie aufbauend auf bestehenden Tools und Textformaten eine möglichst redundanzfreie Dokumentation erstellt und für verschiedene Zielgruppen in ansprechenden Formaten ausgeliefert werden kann. Es wird dabei um Begriffe wie Continuous Documentation und Documentation as Code gehen.

Not your Daddy's Language

Sprachen sind das Fundament des Software Engineerings: Als Entwickler programmieren, spezifizieren, konfigurieren und testen wir damit unsere Systeme. Dabei repräsentieren Sprachen unterschiedliche Abstraktionsebenen eines Systems und verwenden verschiedene, meist textuelle oder grafische Notationen. Sprachen sind allerdings weitaus vielschichtiger. Neben Grafik und Text können Tabellen oder (mathematische) Symbole zum Einsatz kommen, sie können modular erweitert werden, man kann die mit Sprachen erstellten Modelle oder Programme transformieren oder simulieren und verschiedene Aspekte von Korrektheit statisch überprüfen. In diesem Vortrag zeige ich anhand der Open-Source-Language-Workbench JetBrains MPS, wie man all diese Dinge mit vertretbarem Aufwand umsetzen kann und wie man damit neue Anwendungsbereiche und Nutzergruppen für Sprachen und IDEs erschließt. Diese Session kann auch als technische Fortsetzung der Session "Fachexperten als Programmierer" gesehen werden; man muss jene aber nicht besucht haben, um diese hier zu verstehen.

JavaFX im UI-Technologiedschungel

JavaFX ist mittlerweile in Java angekommen und dort fest als J2SE-Technologie verankert. Doch ist es auch bei den Entwicklern angekommen? Das Echo der Community ist nicht einheitlich und reicht von Begeisterung bis hin zu totaler Ablehnung. Warum ist das so? Und: Wer hat denn am Ende recht? Der Vortrag differenziert die unterschiedlichen Sichtweisen auf JavaFX und zeigt mit konkreten Livebeispielen, wo der Einsatz von JavaFX sehr sinnvoll ist – und wo man zu anderen (HTML5-basierten) Technologien greifen sollte. Einen großen Raum nimmt hierbei die Betrachtung der Nutzbarkeit von JavaFX im Bereich von Unternehmensanwendungen ein.

WebVR – virtuelle Realität im Web

Oculus Rift, Cardboard, PlayStation VR, HTC Vive - VR-Brillen sind in aller Munde und werden als Revolution im Spielebereich gehypt. Natürlich geht diese Entwicklung nicht an den Webbrowsern dieser Welt vorbei. Mit WebVR entsteht ein Standard, der es erlaubt, mit JavaScript auf die neuen Möglichkeiten zuzugreifen. Mit diesem Vortrag möchte ich zeigen, wie eine VR-Brille benutzt werden kann - von Beschleunigungssensoren für Cardboard-Apps, bis zum Headtracking einer Oculus Rift. Dank WebGL können performante VR-taugliche Anwendungen für den Browser entstehen und Benutzern auf Webseiten eine zusätzliche Erfahrung bieten.

Whiteboard to a Multi-Million Dollar Digital Programme

Having an IT strategy does not mean organisations have digital strategy. Most organisation’s IT strategy treat technologies in isolation, i.e. having a mobile strategy or a cloud strategy. But today’s pervasive digital connection brings individual technologies to deliver an unified and enhanced customer experience. So, it is important to have a strategy that brings these individual strategies to capitalise and deliver better business value. In this session, the speaker would like to talk about various aspect of developing a digital strategy that covers people, process, tools and things. And, how these transformations should create a digital edge by bringing digital information and physical resources together to create a greater value and revenue. The speakers intends to share his experience on how a strategy evolved with a simple idea for an organisation which was running on legacy blue screens to implementation of digital transformation.

Flux-Architektur mit JavaFX

Mit React und der Flux-Architektur hat Facebook zuletzt einigen frischen Wind in die Welt der Frontend-Entwicklung gebracht. Die Kernidee von Flux ist die Beschränkung auf einen unidirektionalen Datenfluss zwischen den Komponenten. Die View zeigt lediglich den aktuellen Anwendungszustand an, kann diesen aber nicht direkt manipulieren. Stattdessen löst sie explizit modellierte Aktionen aus, auf die die anderen Komponenten reagieren können. Das Ziel ist die leichtere Nachvollziehbarkeit der Abläufe innerhalb der Anwendung. Doch nicht nur JavaScript-Entwickler können von diesem Architekturmuster profitieren. Auch JavaFX-Entwickler, die bereit sind, über den Tellerrand hinauszublicken, können Flux in ihren Anwendungen umsetzen. In der Session wird zunächst die Flux-Architektur allgemein vorgestellt und anschließend gezeigt, wie diese mit JavaFX realisiert werden kann. Dabei kommen auch Techniken des Reactive Programmings zum Einsatz, wie beispielsweise die Data-Binding-Fähigkeiten von JavaFX und reaktive Streams.

Running Docker on AWS

Docker and AWS make a great couple. Docker can provide additional encapsulation and control while EC2 provides the scalable infrastructure. This session will show you how you can run Docker on EC2 using OpsWorks and the new Amazon EC2 Container Service (ECS). We will leverage the power of Chef to control Docker and use Docker for application and service deployment. A dive deep into ECS will help you understand how to easily manage large Docker deployments on AWS.

Keine Slides vorhanden
Get the most out of your Appium/Selenium Scripts: Learn Best Practices and Patterns

The quality of your test automation process is to no small extent defined by the quality of your test scripts. With the right structure of your code and a few simple techniques you will be able to improve your scripts and thus your whole testing process. In his talk Andreas will provide you with patterns and best practices on how to make your Appium/Selenium test scripts to be read more easily, edited faster, and allow even complex use cases to be maintained effortlessly. Through practical code examples you will be able to apply the learnings yourself immediately. This talk offers valuable technical assistance to all skill levels with a knowledge of programming.

Penetrationstests für Entwickler: Don't be the next Ashley Madison

Sicherheit in Webanwendungen ist ein alter Hut. Dazu hat jeder Entwickler schon genug Artikel gelesen und Vorträge gehört. Könnte man meinen. Doch die Realität zeigt uns ein anderes Bild. Fast täglich tauchen neue Meldungen über gehackte Webseiten auf. Wir können sicher sein, dass hier auf Seiten der Gehackten nicht nur Anfänger Fehler gemacht haben, sondern auch erfahrenen Entwicklern Flüchtigkeitsfehler passiert sind.Wie lassen sich solche Fehler auch ohne ein teures Audit von Spezialisten finden? Wie kann man als Entwickler sein Gespür für sicherheitskritische Stellen im Code entwickeln?In diesem Talk wird anhand einer Demoanwendung gezeigt, wie man die eigene Anwendung einem Securitycheck unterziehen kann, und wie man sich so mithilfe von frei verfügbarem Material langsam an die Denkweise von Hackern herantasten kann.

Leveraging the Power of Solr with Spark

Solr is a distributed NoSQL database with impressive search capabilities. Spark is the new star in the distributed computing universum. In this code-intense session we show how to combine both to solve realtime search and processing problems. We show how to setup a Solr/Spark combination from the scratch and develop first jobs with runs distributed on shared Solr data. We also show how to use this combination for your next generation BI platform.

Your first Application based on Eclipse - FAQ

The Eclipse Platform is a mature and powerful framework for building tools and applications. The modular architecture and hundreds of Eclipse open source frameworks can significantly reduce the cost of a project. However, Eclipse is also known to add new and complex concepts to the standard Java world. This can lead to frustration, non-optimal architectural decisions, and therefore, some unnecessary additional effort. From our experience in various projects, we observe a number of frequently recurring questions and issues. Some examples: Should we use Eclipse 3.x vs e4? What are bundles, plugins or features? Why and how to use a target platform? Which OSGi features are important for our project? How to test an Eclipse application? In this talk, we will highlight the most important issues to consider as well as pitfalls to avoid. We will provide some blueprint solutions, guidelines, and pointers for where to get more information.

12:00 bis 13:00
1840s Industrial Revolution meets IoT

In 1840, the steam engine was one of the cornerstones of the first industrial revolution. In this talk we will link a real steam engine with OS.bee.iot, a genious framework for writing DSL-driven business applications. We added an "IoT addon" (OSGi bundle) to OS.bee called OS.bee.iot (it’s licensed under the EPL, so feel free to use it …) So now OS.bee also talks MQTT. In this live demonstration sensors of the steam engine will push current parameters to our "OS.bee-IoT broker" (HiveMQ) giving the server the possibility to react in realtime adequately to the indicators.

Keine Slides vorhanden
Six Years of Scala and Counting

The Scala language and its environment have been evolving quite significantly over the past few years. The adoption of the language is slowly growing and it can now even be found in use in rather conservative enterprise settings. At the same time there have been quite a few criticism of the language, its ecosystem and its practicability in larger teams. Many developers are still avoiding to have a more serious look at Scala and its ecosystem for a variety of reasons ranging from the fear of good tooling support to the apprehension of advanced category theory principles. This talk is a reflection upon six years of working professionally with Scala in projects of various size and shape. It aims at conveying some of the learnings and practical insights gained during that time as well as to debunk some of the many preconceptions that surround the language and its ecosystem.

Angriffe auf Java-Deserialisierung - die Geister, die ich rief...

In den letzten sechs Monaten hat sich für so manches Projekt oder manchen Softwarehersteller eine scheinbar völlig neue Klasse von kritischen Verwundbarkeiten der eigenen Software aufgetan. Objektiv betrachtet ist das Thema "Remote Code Execution" durch Deserialisierung von Objekten in der Securityszene jedoch schon lange ein Thema und betrifft weit mehr Sprachen als nur Java. In diesem Talk ordne ich die Verwundbarkeit aus Sicht eines Security-Professionals und Pentesters ein und zeige Ihnen, wie ein solcher Angriff funktioniert und warum es ein Problem auf breiterer Basis ist, als nur eine Hand voll Bibliotheken betreffend (so wie es leider in manchen Medien behandelt wurde). Nachdem wir gemeinsam die Vorgehensweise eines Angreifers (am realen Beispiel eines großen Onlinezahlungsdienstleisters) zur kompletten Übernahme des Application Servers nachvollziehen, werden Sie das eigentliche Problem dahinter verstehen und können die abschließend präsentierten Abwehrmaßnahmen auch besser auf Wirkung und Restrisiko einschätzen. Alles in allem ein aktueller Talk zu einem brandaktuellen Thema, das vom Risikopotenzial leider noch deutlich unterschätzt wird.

Xtext: DSLs for Eclipse, IDEA and the Web

In the design of traditional business applications, the domain experts often provide their knowledge about the domain in the form of prose text or Excel sheets. It is up to the software engineers to extract the relevant information and cast it into code. Opposed to that, domain-specific languages (DSLs) allow the domain experts to capture their knowledge formally, such that it can be used in the software development directly, e.g. for code generation. This facilitates the software engineering process significantly and eliminates lots of bugs. Xtext is an open source framework hosted at Eclipse that allows you to create entire IDEs for your own programming languages in the twinkling of an eye. In this session you will learn where DSLs make sense, how to define your own DSL by means of an Xtext grammar, how to generate editors for Eclipse, IntelliJ IDEA, and the Web and how to write a code generator to execute your DSL.

Hide your Development Environment and Application in a Container

Nowadays Docker containers are really popular, and they can be used for almost any application. The common use case is to use Docker for DTAP environments, but why not use it on your development machine? In the speaker’s current project, his team shares a machine with several developers. That sounds nice until you have to fight for ports so you can start your applications. This and other issues can be solved with Docker containers. This presentation provides a quick introduction to Docker and then explains the different possibilities for running GUI apps within a Docker container. A demo shows the setup of the speaker’s development environment—including IDE, Java, Maven, and the like—which would be easy to customize to meet your own needs.

Die schrittweise Anwendungsmigration von Swing zu JavaFX „am offenen Herzen“

JavaFX nimmt immer mehr Fahrt auf, und es steigt der Bedarf, auf Swing basierende Altanwendungen hin zu den neuen UI-Technologien der heutigen Zeit zu migrieren. Wie kann ein solcher Migrationspfad an einer bestehenden Anwendung aussehen, ohne sich mit der kompletten zeitaufwendigen Neuimplementierung zu beschäftigen? Diese Session soll zeigen, wie eine weltweit eingesetzte Medizinanwendung von Swing nach JavaFX portiert wurde. Am Ende des Wegs steht eine Anwendung auf Basis von Eclipse e4 mit dem JavaFX-Renderer-Framework e(fx)clipse. Es werden die einzelnen Stufen der Migration, Best Practices und der Wechsel nach Eclipse erläutert und ein sehr interessanter Ansatz für den gleichzeitigen Betrieb der Swing-Anwendung auf Basis der veralteten Spring Rich Client Platform und dem neuen Anwendungsteil basierend auf purem Eclipse e4 und JavaFX innerhalb einer Anwendung gezeigt. Dass dabei die Funktionalitäten unbeeinträchtigt bleiben, zeigt eine Livedemo der Anwendung anhand unterschiedlicher Migrationsstände.

Resilient Microservices

Oliver Wronka zeigt in dieser Session auf, dass Fehlertoleranz bei Microservices mehr fachlich als technisch getrieben ist. Anhand einer Livedemo veranschaulicht er, wie Microservices geschnitten sein sollten, welche Daten diese sinnvollerweise austauschen und wie das Benutzererlebnis einer Anwendung erhalten bleibt, auch wenn Teile der Anwendung nicht laufen.

Web Components mit Polymer und AngularJS

"Software is eating the world" und das moderne Web hat sicherlich einen sehr großen Anteil daran. Wie könnte aber die nächste Evolutionsstufe im Web aussehen? Ein Kandidat sind hier die Web Components, die einen sehr einfachen Einstieg in die komponentenbasierte Strukturierung von Webanwendungen bieten. Hierbei können auch einzelne Komponenten in bestehende Anwendungen integriert und nachgerüstet werden, ohne dabei das Entwickler-Know-how im konkreten Framework zu verlieren. In diesem Vortrag wird zunächst ein Überblick über den aktuellen Status quo von Web Components gegeben und anschließend beispielhaft gezeigt, wie sich Komponenten in eine bestehende AngularJS-Anwendung integrieren lassen. Ein Ausblick auf Tooling und kommende Features rundet den Vortrag ab.

Theorie leuchtet ein, Praxis ist einleuchtender – Architekturbewertung live und in Farbe

Am lebhaften Beispiel einer existierenden Architektur führe ich Sie in die Kunst der qualitativen Softwarearchitekturbewertung ein. Nach einer kurzen Einleitung, in der die Wichtigkeit der umfassenden Architekturbewertung gewürdigt wird, widmet sich der Vortrag mit Workshopcharakter einem konkreten Fallbeispiel. An diesem Fallbeispiel erleben Sie, welche lohnenden Ergebnisse durch eine sorgsam durchgeführte Architekturbewertung nach ATAM zum Vorschein gebracht werden. Gemeinsam werden wir die Resultate unserer durchgängigen Beurteilung diskutieren, um Risiken und Chancen für das weitere Vorgehen zu erkennen.

Big Data – leicht gemacht mit NoSQL

Im Vortrag wird gezeigt, wie man die Vision von Big Data mit einer modernen NoSQL-Datenmanagementplattform umsetzen und beherrschbar machen kann. Um die Daten in nahezu Echtzeit auswertbar zu speichern, werden mehrere NoSQL-Technologien benutzt, wie z.B. Search, flexible Indizes, Semantics. Wie so eine Big-Data-Anwendung mit der MarkLogic-Enterprise-NoSQL-Datenbank umgesetzt werden kann, wird anhand eines bereits in Produktion befindlichen Use Cases dargestellt. Speziell die Probleme mit der Umsetzung eines „Operational Data Hubs“ und das effiziente Laden der Daten (ETL) hat dieser Use Case gelöst.

Building Cloud-native Applications

Everyone’s talking about “moving applications to the cloud”, but how do you design an application to take advantages of the characteristics of a scalable cloud platform? Rather than having multiple applications deployed on a few servers, crammed with huge amounts of memory and computing power, the cloud is designed for scaling multiple stateless “micro-services" for an application across hundreds or thousands of machines, where individual failures won’t cause downtime. Applications are deployed multiple times a day, without any visible downtime, and expected to scale elastically based upon demand. In this session, we’ll walk through the characteristics of a “cloud-native” applications, explaining terms like “12 Factor Apps” and “microservices”, before talking an example traditional three-tier web application and migrating it to a cloud-native application platform, Cloud Foundry. Developers will learn the techniques to migrate existing applications and build new cloud-native applications to take advantage of a scalable cloud platform for increased development speed, reduced downtime and lower infrastructure costs.

14:30 bis 15:15
Technologietrends, Ideen und Ausblicke

Software verändert nicht nur Wirtschaft und Gesellschaft, sondern holt uns, die wir Software bauen, am Ende selbst ein. Auch wir, die Produzenten von Software, bleiben von diesem steten Wandel nicht verschont. In dieser Panel-Keynote diskutieren wir verschiedene Themen, die Einfluss auf unser grundsätzliches Verständnis dessen haben (können), wie wir über Software denken.

Keine Slides vorhanden
15:30 bis 16:30
Infrastruktur für Microservices: Docker Orchestration

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 Data Center oder in der Cloud ist eine Herausforderung. 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 demonstriert den Umgang damit.

Der Weg von Eclipse 3 nach 4: So migrieren Sie Ihre RCP-Anwendung

Seit 2012 ist die Eclipse 4 Platform als Basis für Eclipse-basierte Anwendungen verfügbar. Seitdem werden neue Anwendungen auf Basis dieser Plattform gebaut. Die modernen Techniken, auf denen die Plattform aufgebaut ist, machen sie attraktiv für neue RCP-Anwendungen. Dazu gehören der modellbasierte deklarative Ansatz des Application Models, die Verwendung von Dependency Injection und ein globaler Event Bus. Während neue Anwendungen bereits häufig die 4.x-Plattform als Basis verwenden, gibt es noch viele ältere Anwendungen, die auf Basis der 3.x-Plattform gebaut und noch nicht umgestellt wurden. Der Grund dafür ist meist mit dem Aufwand und den fehlenden Beschreibungen begründet, wie eine solche Migration angegangen werden soll. In diesem Talk wird der Ansatz einer schrittweisen Migration beschrieben. Die einzelnen Schritte werden an einer kleinen Beispielanwendung demonstriert.

Big-Data-Visualisierung im Browser

Big Data, d. h. große Datenmengen, im Browser anzeigen? Warum sollte man das machen, und wie soll das denn überhaupt gehen? Wir werden uns dazu interaktive Visualisierung von Daten mit D3, Methoden zur kompakten Visualisierung von großen Datenmengen und interaktive Filterung von Datensätzen im Millionenbereich mit Crossfilter und DC ansehen.

Den Wald vor lauter Bäumen – Fallstricke verteilter Architekturen

Container und Microservices sind in aller Munde, Begriffe wie “unbegrenzt skalierbar” und “hochverfügbar” werden in den Raum gestellt. Doch was bedeutet es, eine Applikation auf hundert, tausend oder mehr Knoten zu betreiben, um zum Beispiel eine Big-Data-Umgebung zu betreiben? Sie erhalten einen Überblick, welche typischen Fallstricke warten, wenn das Rechenzentrum zu einem großen Computer wird. Es wird vorgestellt, welche Methoden existieren, um verteilte Systeme auf Herz und Nieren zu prüfen.

Ganz ohne Server? Ja, mit AWS Lambda und API Gateway

Mit Amazon Web Services Lambda und API Gateway lassen sich mit wenig Aufwand Microservices (mit HTTP-Schnittstelle) in der Cloud deployen – ganz ohne expliziten Server. Besonders interessant ist Lambda, wenn bereits vorhandene Services bspw. für einen mobilen Client adaptiert werden sollen und wenig „neuer“ Code notwendig ist, oder um verschiedene Amazon-Dienste zu verknüpfen. Der Vortrag zeigt anhand eines Beispiels, wie mit dem neuen Dienst kostengünstig Microservices ohne eigene Infrastruktur deployt und betrieben werden können.

e(fx)clipse – A JavaFX Tooling and Runtime Platform

e(fx)clipse is the Eclipse Project bringing JavaFX support to your IDE. It provides tight integration for the JavaFX specific CSS-Properties, an FXML-Editor which provides autocomplete, Javadoc Hovering, Refactor support, ... On the other hand e(fx)clipse provides a runtime layer which allows to run e4 application on top of pure JavaFX instead of SWT. You can now leverage the power of both technologies.

Angreifern das Handwerk legen - Spring Security

Erleben Sie in dieser Session, wie Spring Security eine verletzbare Anwendung in eine für Angreifer schwer zu knackende Nuss verwandelt. Der erste Teil der Session versetzt Sie in Staunen, wenn Sie sehen, welche Gefahren Ihrer Anwendung, Ihrem Server und Ihren Kunden drohen. Lassen Sie Ihr Staunen im zweiten Teil in Begeisterung verwandeln, wenn Sie in einer Livepräsentation erleben, wie Spring eine Lücke nach der anderen schließt. Seien Sie ab sofort mit dabei, wenn Ihre Firma über SQL Injection, Cross-Site Scripting, Click-Jacking, Session Fixation, Phishing oder andere mögliche Attacken diskutiert. Zum Abschluss werden Sie nach dieser Session mit Spring technologisch wieder ganz vorne mitspielen, wenn Sie sehen, wie Sie mit Spring OAuth 2 den sicheren Zugriff von Handy-Apps auf Ihrem Server sicherstellen.

Keine Slides vorhanden
17:00 bis 18:00
JavaFX einfach und sauber mit TestFX testen

Die Session stellt die Konzepte und Roadmap der Testbibliothek TestFX vor. Eingegangen wird auf die Einbindung von Testdaten, die Simulation von Benutzereingaben und das schlussendliche Überprüfen des GUI-Zustands. Abgerundet wird dies durch einen Blick nach innen auf die Architektur und einen Blick nach außen auf typische Anwendungsszenarien.

Werkzeugkasten eines Security-Professionals

Diese Session wird Ihnen einen praktischen Überblick über die Tools und ihre Nutzungsarten geben, die Security-Professionals und Pentester in ihrer täglichen Arbeit einsetzen, um Sicherheitslücken (manuell und teilautomatisiert) aufzuspüren. Trotz des hohen Qualitätsgrads der unterstützenden Tools in diesem Bereich, ist dies für viele Entwicklungsprojekte noch ein unbekanntes Terrain und damit ungenutztes Potenzial. Da so manchem Projekt der Einsatz des einen oder anderen Tools sicherlich helfen würde, sichere Software zu entwickeln, lohnt es sich allemal, sich einen guten Überblick zu verschaffen: Nach meinem Vortrag kennen Sie die Tools der Profis mitsamt Einsatzart, Zweck sowie Pros und Cons - in der Hoffnung, dass deren Einsatz nicht nur in der Hand der Pentester bleibt...

Build Happiness mit Gradle in Eclipse

Die Entwicklung von Buildship, dem neuen Gradle Tooling für Eclipse, begann Ende 2014. Nun sind nahezu eineinhalb Jahre vergangen, und es ist Zeit für eine Retrospektive. Diese Session soll somit auf bisherige Geschehnisse, derzeitige Features und kommende Funktionalität von Buildship eingehen. Eine kurze Einführung, was Gradle kann und ist, wird vorab gegeben. Dabei werden auch Tipps und Tricks live demonstriert und Vergleiche zu Apache Maven gezogen. Passend zu einem Eclipse Day wird auch der Build von Eclipse-RCP-Anwendungen und dessen Dependency Management thematisiert.

Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive

Das Direktiven-Konzept von AngularJS bietet dem Entwickler seit Jahren die Möglichkeit, das Vokabular von HTML um eigene, wiederverwendbare Direktiven zu erweitern. Ab Version 2.0 berücksichtigt dieses Konzept den aufstrebenden Standard Web Components, was eine frameworkübergreifende Nutzung möglich macht. Dieser Deep Dive zeigt anhand eines durchgängigen Beispiels, wie Sie mit Angular 2 für Ihre Projekte wiederverwendbare JavaScript-Komponenten entwickeln können.

Herausforderung „Multi-Channel“-Architektur

Die Zeiten einfacher Webanwendungen sind gezählt. Moderne Unternehmen stehen heute vor der Aufgabe, unterschiedlichste Kanäle wie Web, Desktop, Mobile oder 3rd-Party-Clients parallel bedienen zu müssen. Und das mit einer Architektur, die am besten auch noch zukünftigen, bisher noch nicht bekannten Anforderungen standhält. Wie aber sieht eine solche Architektur aus? Welche neuen Herausforderungen ergeben sich durch die Öffnung für zusätzliche Kanäle? Und welche Auswirkungen hat das alles auf Themenbereiche wie Security, Schnittstellendesign, Versionierung oder das Domänen- bzw. Datenmodell? Im Rahmen der Session „öffnen“ wir eine klassische monolithische Webanwendung und stellen uns den Herausforderungen.

Kubernetes für Java-Entwickler

Kubernetes ist eine Docker-Orchestrierungsplattform, die den Betrieb von skalierbaren und widerstandsfähigen Anwendungen mit Docker-Containern ermöglicht. Self-Healing und die integrierte Service-Discovery heben Kubernetes von anderen Lösungen ab.Nach einer Einführung in die Grundlagen von Kubernetes geht dieser Vortrag insbesondere der Frage nach, wie Java-Anwendungen für einen Kubernetes-Cluster aufbereitet werden. Themen wie Service-Discovery, Build-Integration und Paketierung werden ausführlich beleuchtet.Viele Livedemos verdeutlichen anschaulich diese Konzepte, sodass am Ende die Teilnehmer ein gutes Verständnis davon haben werden, wie dockerisierte Java-Anwendungen für Kubernetes erstellt und deployt werden können.

Keine Slides vorhanden

Friday - 22. April 2016

09:00 bis 17:00
Moderne Webanwendungen mit Angular 2.0

Als Nachfolger des populären und weit verbreiteten Frameworks AngularJS 1.x leitet Google mit Angular 2.0 eine neue Ära der Webentwicklung ein. In diesem Workshop lernen Sie dieses neue Framework, das „für das Web von morgen“ geschaffen wird, kennen und entwickeln Ihre erste Anwendung damit. Dabei werden die grundlegenden Konzepte hinter der Architektur genauso beleuchtet wie die konsequente Nutzung moderner Ansätze, wie ECMAScript 6, TypeScript und Komponenten.

Java Web Hacking - Pentesting und Angriffsversuche auf Webanwendungen

In diesem Hands-on-Workshop greifen wir gemeinsam eine Trainingswebanwendung an, um Schritt für Schritt die Rolle eines Pentesters einzunehmen. Sie lernen den Umgang mit professionellen Securitywerkzeugen anhand zahlreicher Praxisübungen sowie die allgemeine Vorgehensweise von Pentestern bei Angriffen auf Webanwendungen. Selbstverständlich werden wir uns auch um Abwehrmaßnahmen zur Absicherung der gefundenen Lücken kümmern, im Vordergrund steht jedoch der gezielte Umgang mit professionellen Angriffswerkzeugen zur (teilautomatischen) Durchführung einer Sicherheitsanalyse. Nach dem Workshop verfügen Sie über praktische Erfahrungen zur Angriffsdurchführung auf Webanwendungen, die Sie im Rahmen Ihrer eigenen Softwareentwicklung umsetzen können, um die Sicherheit Ihrer Projekte nachhaltig zu erhöhen.

Resilient Software Design applied

Production is where the money is made and where customers are satisfied – but only if our application is up, running and responsive. If our application is down or latent, it’s worthless – and even worse, we loose money and reputation. This is a real challenge with today’s complex, distributed and highly interconnected application landscapes – and concepts like cloud computing or microservices make it even more challenging. That’s what resilience is about: how to design applications that they are highly available and responsive – even in the face of unexpected failure and load situations. In this tutorial we will first learn a few basics about making an application more resilient, including a few basic patterns. Then we will take a simple application that is not yet resilient and transform it step by step into a resilient application applying the patterns we have just learned before. The number of attendees is limited to 40 people.

JavaFX-Power-Workshop

In Businessanwendungen spielen Aspekte wie Architektur, Test- und Wartbarkeit eine herausragende Rolle. Ein 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 dabei für Architekturgestaltung und Implementierung zeitgemäßer Oberflächen zur Verfügung? Der JavaFX-Power-Workshop auf der JAX 2016 stellt genau diese Themen in den Mittelpunkt. Er informiert erfahrene 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, der von mehreren Trainern geleitet wird, richtig. Erfahrene JavaFX-Experten beleuchten ausgewählte Aspekte der Technologie und stehen Ihnen Rede und Antwort.

Keine Slides vorhanden
Architektur-Retreat

Architektur ist eher ein trockenes, theoretisches Thema. Nicht bei diesem Workshop! Wir werden ganz praktisch Architekturen entwerfen, kommunizieren und verbessern. So lernen wir, worauf es wirklich ankommt. In mehreren Iterationen lernen wir Konzepte kennen, mit denen die Qualität eines Softwareprojekts verbessert werden kann.

Keine Slides vorhanden
X
- Gib Deinen Standort ein -
- or -