Forgot your password?

Conference slides of S&S Media Group
until september 2019

DIREKT BESTELLEN

Bestehendes Abonnement zum entwickler.kiosk-Zugang erweitern

Bitte wählen Sie Ihr bestehendes Abonnement:

Volltextsuche

Ihre Suchergebnisse für:

No content found!

W-JAX 2016

07. bis 11. November 2016
The Westin Grand München Arabellastrasse 6
81925, München - DE

Monday - 07. November 2016

09:00 bis 17:00
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 10 oder GlassFish 4. Details zur Vorbereitung stehen ab Oktober auf https://github.com/dirkweil/javaee-workshop.

A Hitchhiker’s Guide to the Cloud Native Stack

Cloud-Größen wie Google, Twitter und Netflix haben die Kern-Bausteine ihrer Infrastruktur quelloffen verfügbar gemacht. Das Resultat aus vielen Jahren Cloud-Erfahrung ist nun frei zugänglich, jeder kann selbst cloud-native Anwendungen entwickeln – Anwendungen, die in der Cloud zuverlässig laufen und fast beliebig skalieren. Die Bausteine wachsen zu einem großen Ganzen zusammen: dem Cloud Native Stack. Wir stellen die wichtigsten Konzepte und Schlüssel-Technologien wie Docker, DC/OS und Kubernetes vor, und bringen gemeinsam eine Beispielanwendung schrittweise in der Cloud zum Laufen. Folien, Lab-Beschreibungen und notwendige Voraussetzungen, um die Labs am eigenen Notebook mitmachen zu können, findet ihr auf unserem github Repo: https://github.com/qaware/hitchhikers-guide-cloudnative.

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.

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.

Keine Slides vorhanden
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, anhand eines durchgängigen Beispiels kennen. Dabei werden die grundlegenden Konzepte hinter der Architektur genauso beleuchtet wie die konsequente Nutzung moderner Ansätze, wie ECMAScript 6, TypeScript und Komponenten.

Domain-driven Design hands-on

In diesem Workshop nehmen wir uns einen Tag Zeit, um Domain-driven Design (DDD) näher anzuschauen. Themen sind die Ubiquitous Language, die „Building Blocks“ Entities, Value Objects, Services und Co. Außerdem schauen wir auf DDD im Großen und insbesondere das Konzept des Bounded Context, das auch die Grundlage für Microservices bietet. Der Workshop besteht aus abwechselnd Vortrag, Diskussion und Übungen.

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.

Transformations-Workshop: Handwerkszeug des Architekten der Zukunft

Auf Basis der Case Study LiftUp aus unserem Buch „Business Enterprise Architecture“ entwickeln wir einen Masterplan für die Transformation sowie ein entsprechend bewertetes Transformation-Portfolio. Neue Technologien sind ein wesentlicher Enabler für die Veränderungen. Diese stehen in diesem WS aber nicht im Fokus, sondern die Veränderungen im Unternehmen, um die neuen Technologien für den Geschäftserfolg nutzbar zu machen. An 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 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 Kreativität und gute Laune mit.

Keine Slides vorhanden
09:45 bis 10:30
Coaching Agile Teams

Agile Teams sollen selbstorganisiert arbeiten und dabei effizient kooperieren. Auf formaler Ebene wird dies durch Methoden wie Scrum und deren Elemente (Retrospektive, Daily Stand-up, ….) organisiert. Wie genau diese agilen Elemente eingesetzt werden, muss allerdings auf das jeweilige Team abgestimmt sein. Hier entscheidet sich dann erst, ob das agile Team wirklich Fahrt aufnimmt oder sich selbst ausbremst. In dieser Session geht es darum, was gute Kooperation im agilen Team ausmacht, wie sie erreicht und immer wieder aufs Neue hergestellt werden kann.

Keine Slides vorhanden
11:00 bis 11:45
Improvisationstechnik für Agile Teams

In dieser interaktiven Session erleben Sie, wie Sie als Agiler Coach mit Übungen aus dem Bereich der Improvisationstechnik Vertrauen und Kooperation innerhalb agiler Teams aufbauen. 

Keine Slides vorhanden
11:45 bis 12:30
Skalierte agile Softwareentwicklung in der Praxis

Agile Softwareentwicklung mit einem oder zwei Teams ist mittlerweile sehr gut verstanden. Was aber, wenn zur Erreichung des Ziels siebzig Entwickler/zehn Teams benötigt werden? Was, wenn plötzlich das Ideal der unabhängigen User Story nicht mehr gilt und man stattdessen mit Epics hantieren muss? Wie koordiniert man zehn parallel arbeitende Teams und deren Kommunikation? Welche neuen Aufgaben und Rollen ergeben sich durch die Skalierung? Wie plant man mit siebzig Entwicklern über mehrere Sprints hinweg? Wie priorisiert man das Backlog? Welche Herausforderungen stellten sich ab welcher Teamgröße und wie wurden diese gelöst? Wenn Sie diese Fragen interessieren, dann sind Sie in diesem Praxisvortrag genau richtig.

13:30 bis 14:15
Retrospektivenwerkzeugkasten

Retrospektiven sind ein Kernelement agiler Vorgehensmodelle wie Scrum. Wie können Retrospektiven aufgebaut sein, wie halte ich sie lebendig und stelle sicher, dass sie kontinuierlich Verbesserungen hervorbringen? Welche Werkzeuge gibt es für verschiedene Situationen in Retrospektiven?

14:15 bis 15:00
Deine Firma wird niemals agil werden

Deine Firma will agiler werden. Die meisten Firmen wollen das. Also holen sie Consultants, machen einige Re-Orgs, sagen ab sofort zu ihren Managern „Scrum Master“, und so weiter ... Und dann geben sie ihren Erfolg bekannt: Die Softwareentwicklung ist jetzt ein kleines bisschen billiger. Aber viele dieser Firmen mit „erfolgreichen“ „Agile Transitions“ wurden nicht wirklich agil. Sie haben keine „Business Agility“, keine nachhaltige Entwicklung, keine wirklich selbstorganisierten Teams. Die traurige Wahrheit ist: Wenn deine Firma nicht jetzt schon agil ist, wird sie es wahrscheinlich nie. Oder nicht in vernünftiger Zeit. In diesem Vortrag werde ich über Gründe sprechen, warum viele Firmen es nicht schaffen, agil zu werden, und warum viele junge, kleine Firmen „einfach sind“. Wir werden auch gemeinsam darüber diskutieren, was man tun kann, um diese Probleme zu lösen.

15:30 bis 16:15
Agile Planung

Leider wird immer häufiger noch agil mit planlos gleichgesetzt. Dies ist aber nicht der Fall. Die Art und Kultur der Planung ändert sich jedoch erheblich. In der agilen Planung kann entsprechend den Erfordernissen des Planungshorizonts in einer passenden Granularität zeitgerecht eine belastbare Aufwandsschätzung erstellt werden. Im Vortrag werden hierzu Best Practices anhand von Beispielen vorgestellt. Ein wesentliches Thema ist aber auch die Planungs- und Fehlerkultur, die immanent für den Erfolg der agilen Planung sind.

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 - 08. November 2016

09:00 bis 10:00
Eröffnungskeynote: Welches Java brauchen wir?

Die Weiterentwicklung des JDK verläuft seit Java 7 und 8 in ruhigen Bahnen, und trotz Terminverschiebungen ist weiter mit verlässlichen Innovationsschritten zu rechnen. Anders verhält es sich mit der Java Enterprise Edition: Hier sind zuletzt Irritationen nicht nur über Releasetermine, sondern auch über die generellen Ziele entstanden. Nun ergibt sich im Licht des kometenhaften Aufstiegs von JavaScript, aber auch von Microservices oder modernen Cloud-Plattformen („Serverless“) die Frage: Welches Java brauchen wir? Wir diskutieren mit Experten, welche Rolle die Java Language zukünftig spielen soll, ob wir weiterhin die „großen“ Spezifikationen à la Enterprise Edition noch benötigen und welche neuen Ansätze innerhalb der Java-Welt uns eventuell weiterhelfen werden.

Keine Slides vorhanden
10:30 bis 12:45
Fühle die Cloud: Infrastructure as Code mit OpenStack

In diesem Lab machen wir mit euch die ersten Schritte auf einer OpenStack-basierten Public Cloud. In praktischen Übungen lernt ihr nicht nur die wichtigsten Konzepte und Muster für den Aufbau eines ausfallsicheren und hochskalierbaren Systems in einer Public Cloud kennen. Nach einer pragmatischen Einführung in Ansible installieren, konfigurieren wir nicht mehr altmodisch per Hand, sondern nutzen Infrastruktur-as-Code. Am Ende hat jeder Teilnehmer eine reale Installations-Aufgabe in einer echten OpenStack Public Cloud automatisiert und hoffentlich Lust auf mehr.“ *** Anmeldung / Registration Bitte tragen Sie sich vor Ort am Speaker Check-In in die Lab-Teilnehmerliste ein; es sind nur begrenzte Plätze verfügbar. Please sign up for this lab at the speaker ceck-in desk, only limited places are available. *** Teilnehmer-Voraussetzungen - Jeder Teilnehmer bringt seinen Laptop mit; der Kura unterstützt Windows, MacOS oder Linux wird unterstützt - Der Laptop soll möglichst ungehindert auf das Internet zugreifen können (Browser und SSH) - Bedienung eines Unix TextEditors (vi oder nano) - Falls der Teilnehmer auf eine VPN-Lösung angewiesen ist, so ist sicherzustellen, dass ggf. über Proxy-Server folgende Browserverbindungen möglich sind: https://myworklpace.t-systems.com , https://console.otc.t-systems.com , https://cloud.telekom.de , sowie IP-Adressbereiche: http://160.44.*.* und http://49.29.*.* - Die wesentlichen Aufgaben werden in einer SSH-Konsole auf der Cloud selbst bearbeitet. Daher sollten Teilnehmer, wissen, wie man SSH auf dem eigenen Gerät nutzt.  Insbesondere ist sicherzustellen, dass SSH-Verbindungen vom   Gerät auf Internet-Adressen (ggf. über einen Proxy) möglich sind. Der Kurs nutzt Putty unter Windows, OpenSSH unter Linux oder SSH im MacOS Terminal - Jeder Teilnehmer sollte Erfahrung mit Programmierung und Erstellung von Shell-Skripten haben - Jeder Teilnehmer sollte schon einmal eine Anwendung auf einem Server installiert haben - Die besprochenen Themen sind DevOps-lastig - Bedienung eines Unix TextEditors (vi oder nano)

10:30 bis 11:30
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, 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!

MicroProfile.io: A Quest for a lightweight and reactive Enterprise Java Platform

Historically, J2EE servers were huge monolithic beasts. While the second generation of the platform, called Java EE, improved a lot, there are already production-ready solutions to bring even more flexibility to run enterprise Java applications. Many major vendors, including IBM, Red Hat and Payara, strive to provide lightweight and extensible runtimes to power microservices, cloud deployments and reactive architectures already. Their individual efforts are naturally followed by an open collaboration within the MicroProfile.io initiative. I invite you to join the adventure with me and follow the quest for a new generation enterprise Java platform. We will explore what has happened in the world of enterprise Java recently, including the progress of the Java EE 8 specifications and the features already provided by some interesting open-source projects. Afterwards, we will have a closer look at the MicroProfile.io initiative and how its future direction can be formed even with your contribution. Lots of coding and demonstrations using Payara Micro included to illustrate the concepts.

Werkzeugkasten eines Security-Professionals: Blackbox bis zum Root

Diese Session, anhand eines fiktiven Pentests praktisch dargestellt, wird Ihnen einen fundierten Überblick über die Tools und ihre Nutzungsarten geben, welche 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.

Das Geheimnis erfolgreicher Softwareteams

Jedes Softwareteam schreibt Code, aber einige produzieren weniger Bugs als andere. Jedes Softwareteam baut neue Features, aber einige sind schneller als andere. Was machen Hochleistungsteams anders, und warum sind diese Teammitglieder fokussierter, glücklicher und entspannter? Sie arbeiten zusammen. Kein zehn mal so produktiver Rockstarprogrammierer kann das erreichen, was ein gut geöltes, begeistertes Team kann. Sven zeigt, wie die besten Softwareteams sich Ziele setzen und diese nachverfolgen, was Vielfältigkeit ausmacht, wie man ständig die Teamgesundheit überprüfen und verbessern kann, wie man Teams mithilfe eines Playbooks durch jede Phase der Entwicklung leiten kann und auch wie eine kreative und flexible Arbeitsumgebung bei mulitdisziplinären Projekten helfen kann. Es werden Techniken vorgestellt wie Sparrings, OKRs, Feature-Buddies, Offene Demos, Fokuswochen und vieles mehr, die dabei helfen, dass Teams und Teammitglieder effektiver zusammenarbeiten, und bessere Software gemeinsam erstellen.

UX für Techies

User Experience (UX) wird immer wichtiger. Nicht zuletzt, weil Mobile-Apps und moderne Websites den Anspruch der Nutzer an Oberflächen und Bedienung drastisch erhöhen. Damit sind nicht zuletzt Entwickler von Enterprise-Anwendungen gefordert, beim Thema User Experience eine Schippe drauf zu legen. Doch was ist UX und wie kann man diese im Entwicklungsprozess mit berücksichtigen? Diese Session gibt Oberflächenentwicklern aber auch UI-Muffeln einen spannenden Einblick in Usability Engineering und dessen Notwendigkeit in Softwareentwicklungsprojekten.

Datenarchitekturen nicht nur für Microservices

Microservices sollen keine gemeinsame Datenbank haben. Warum eigentlich? Und was ist mit der dabei entstehenden Redundanz? Viele Architekturen kranken an zu großen und inflexiblen Datentöpfen. Dieser Vortrag zeigt die Gründe für die Probleme: die Missachtung von Bounded Context und eine viel zu enge Kopplung der Datenmodelle. Ansätze wie CQRS (Command Query Responsibility Segregation) und Event Sourcing zeigen, wie solche Probleme gelöst werden können – ohne dass dabei zu große Redundanzen bei den Daten entstehen.

Keine Slides vorhanden
Systematisches Vorgehen und Kulturwandel – die Erfolgsfaktoren für die Digitalisierung

Für die Umsetzung der Digitialisierung benötigt man einerseits ein Instrumentarium, um ganzheitlich Transparenz über die Ausgangslage zu schaffen, Lösungsideen zu gestalten und diese schnell zu verproben (Lean Startup). Andererseits muss parallel dazu die Organisation ertüchtigt werden, um die Businessagilität umzusetzen. Eine offene Leistungskultur muss über einen Veränderungsprozess schrittweise aufgebaut werden. Im Vortrag stellen wir erprobte Methoden, wie das Digital-Strategy-Framework und ein Lean-Methodentoolkit vor. Das Digital-Strategy-Framework beschreibt unterschiedliche digitale Treiber und deren Auswirkungen auf eine Vielzahl von Einflussgebieten innerhalb einer Organisation und die Konsequenzen hieraus. Dies beinhaltet auch eine Reifegradeinschätzung und Empfehlung, was in den verschiedenen Reifegraden pro digitaler Treiber und Fähigkeiten erreicht sein sollte. Das Lean-Methodentoolkit stellt Methoden und Tools bereit, um Transparenz zu schaffen, innovative Lösungen zu gestalten und in der Organisation zu verankern.

Experiences with a API First Approach for designing Microservices

How we save time and nerves, incorporating RAML and TDD to do rapid prototyping with our customers. Negotiating the API contract is a great way to achieve a common understanding of what they want. With our approach we're having a solid idea of what we're about to build without a single line of code and can run a prototype API with an optional API-Console right after finishing the definition of the API in RAML. Giving us the capabilities to work on all ends right off the start.

Keine Slides vorhanden
11:45 bis 12:45
Zehn Jahre JPA – Architekturkonzepte und Best Practices revisited

Der JPA-Standard ist in diesem Jahr zehn Jahre alt geworden. Längst hat er sich in Enterprise-Java-Architekturen etabliert. Welche architektonischen Konzepte und Best Practices haben die vergangenen Jahre gebracht. In der Session werden Probleme und Lösungen aus zehn Jahren JPA vorgestellt. Dabei wird gezeigt, wie man heutzutage mit JPA leichtgewichtige Anwendungen bauen kann und sich dabei Features wie Lazy Loading, den Extended Persistence Context und Transaction Synchronization zunutze macht.

Gestaltung von Geschäftsanwendungen mit Microsofts UWP und SAPs OpenUI5

Die MS Universal Windows Platform (UWP), der Standard hinter Windows 10 und Windows 10 Mobile, vereinheitlicht Gestaltungskonzepte für Desktop, Web und Telefon. Wir zeigen, woraus die UWP besteht und wie sie für gute Gestaltung in Java-Desktop- und -Webprojekten nützlich ist, sowie viele hilfreiche Quellen. SAPs OpenUI5 ist ein Rahmenwerk für rollenbasierte, plattform- und geräteübergreifende Gestaltung mit Schwerpunkt auf Geschäftsanwendungen. Wir zeigen Beispiele solcher Anwendungen und wie man das auf den Java-Desktop übertragen kann, um einfach, einheitlich und günstig zu gestalten. Die Beispiele zeigen wir mit Übertragungen der UWP und OpenUI5 für Swing und JavaFX.

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.

Defense in Depth

Webanwendungen werden auf allen Ebenen vom Frontend bis hin zum Backend angegriffen. Die Zeiten, in denen einzig die simple Absicherung des Java-Backends ausreichend war oder sich ein Angreifer durch eine Eingabevalidierung im Browser aufhalten ließ, sind vorbei. Heutzutage müssen die Entwickler von Webanwendungen jeden Layer bestmöglich schützen und alles für die Verteidigung ihrer Webanwendung tun. Und wo immer möglich die Securityfunktionalität anderer Anwendungen integrieren. Ein Angreifer, der eine Schutzebene erfolgreich aushebelt, steht dadurch weiterhin vor genügend Hindernissen, die ihn von der Erreichung seines Ziels abhalten. Die Session stellt dazu Schutz- und Verteidigungsmaßnahmen für die unterschiedlichen Layer einer Java-Webanwendung vor, vom Frontend bis hin ins Backend. So werden alle Layer optimal in die Verteidigung einbezogen und können ihren Teil zum Schutz der Webanwendung beitragen. Die entstehende Webanwendung ist rundum geschützt und versteht es, Angriffen auf allen Ebenen erfolgreich zu begegnen.

Logging mit Elasticsearch im Zeitalter von Microservices

Die meisten von uns werden an einer Software arbeiten, welche auf mehrere Services, Systeme und/oder Server bzw. Rechenzentren verteilt ist. In verteilten Systemen fallen naturgemäß auch verteilte Logs an, welche aber am Besten über ein API durchsuchbar und monitorbar sein sollten. Der Stack mit Elasticsearch, Logstash und Kibana (ELK) ist üblich, um diese Problematik zu adressieren und bietet eine wunderbare Basis für unsere Infrastruktur. In dieser Session wird exemplarisch gezeigt, wie man ELK in seine bestehende Servicearchitektur integrieren kann, um den bestmöglichen Einblick in seine Anwendung zu erhalten. Dabei werden Logs aus verschiedenen Anwendungen nach Elastic geschrieben und mit kleinen Tricks serviceübergreifende Semantik und Nachvollziehbarkeit erreicht. Dabei werden wir sehen, wie uns Dashboards für verschiedene Stakeholder (Sales, Marketing, Ops, Devs, ...) quasi geschenkt werden. Und das Coolste dabei: Unsere bestehenden Services werden gar nicht viel davon mitbekommen.

Kontrolle versus Autonomie: Wie wir Customer Value in Applikationen großer Softwareprojekte gewährleisten

Der moderne Softwarelebenszyklus hat sich in den vergangenen Jahren stark verändert. Durch Cloud- und Containertechnologien, Microservices-Architekturen, neue Frontend-Ansätze und Kulturen wie Lean Enterprise und DevOps sollte jedes Projekt auf optimalen Kundennutzen, kurze Entwicklungszyklen und schnelles Feedback fokussieren. Die Session präsentiert unseren Ansatz und unsere Erfahrungen, mit verteilten Teams real wahrnehmbaren Kundennutzen zu generieren.

Wohin mit meinen Architekten in agilen Projekten?

Die Theorie besagt, die organisatorische Ebene von Arbeiten an der Architektur und reinen Entwicklungsarbeiten in agilen Projekten nicht zu trennen. In der Realität – gerade auf großen Projekten – ist das oft anders. Verschiedenste Herausforderungen wie technische und architekturelle Rahmenbedingungen sowie Verantwortlichkeiten sind zu beachten. Spezifische Rollenbeschreibungen und die Zusammenarbeit verschiedener externer Unternehmen erhöhen die Komplexität im Zusammenspiel mit Architekturarbeiten sowie der Zusammenstellung von Teams. Dieser Vortrag gibt einen detaillierten kritischen Einblick in das Spektrum der Organisation von Architekturarbeiten in großen agilen Projekten. Zu jedem Szenario in diesem Spektrum werden die Vorbedingungen und Konsequenzen diskutiert sowie Praxisbeispiele referenziert. Im Unterschied zu anderen Vorträgen fokussiert sich dieser Vortrag auf organisatorische und Rollenaspekte wie z.B. den Architectural Runway und nicht auf die technische Realisierung einer Architektur im agilen Kontext.

Microservices ohne Esoterik

Wie weit kommt man ohne esoterische Frameworks, Abhängigkeiten und ausschließlich minimalistischen Ansätzen im Microservice-Umfeld? In dieser Session werde ich „Thin War“, kB-Microservices implementieren, versionieren, kommunizieren lassen, konfigurieren, deployen und überwachen. Da wir auf Slides verzichten, sollte die Zeit für die Implementierung der Patterns wie Bulkheads oder Circuit Breaker ausreichen. Fragen, Anregungen und Vereinfachungen sind während und nach der Session willkommen.

14:15 bis 14:45
Thinking as a Collection of Microservices - Chances and Challenges

An increasing amount of vendors is offering cloud services for various aspects of Artificial Intelligence. We investigate the possibilities, considerations and limitations when building a system from such services. This also leads to the question to which degree human cognitive performance can in general be mimicked by utilizing services with specialized capabilities.

15:00 bis 19:00
Microservices mit Spring Cloud und Spring Boot

In diesem Lab bekommen Sie eine Microservices-Umgebung mit Spring Boot und Spring Cloud. Nach einer theoretischen Einführung können Sie in der Umgebung praktische Erfahrungen mit Hystrix für Resilience oder Ribbon für Load Balancing sammeln – oder wollen Sie lieber Monitoring mit Graphite oder Loganalyse mit dem ELK-Stack ergänzen? Das Lab bietet sich zur praktischen Vertiefung der Ansätze aus dem Microservices-Power-Workshop an.   *** Anmeldung / Registration Bitte tragen Sie sich vor Ort am Speaker Check-In in die Lab-Teilnehmerliste ein; es sind nur begrenzte Plätze verfügbar. Please sign up for this lab at the speaker ceck-in desk, only limited places are available. 

Keine Slides vorhanden
15:00 bis 16:00
Conway’s Law am eigenen Leib – Wie Cloud-Technologien das Unternehmen verändern

cosee wurde als Firma mit sehr klassischen Strukturen gegründet; technologisch setzten wir am Anfang sehr stark auf Enterprise-Technologien. Nach kurzer Zeit mussten wir aber feststellen, dass uns beide Schuhe nicht so recht passten, und wir sind daran fast gescheitert. Wir haben sodann unsere Technologien verändert und sind mit unserer Software in die Cloud gewandert. Gleichzeitig änderte sich unsere Unternehmensstruktur hin zu Agilität und Selbstorganisation. Ein Erfahrungsbericht über die Verknüpfung zwischen Technologien und Arbeitsweisen.

„Wer testet schon gerne?“ Kugelsicheres Java EE mit möglichst wenig Entwicklerfrustration

In den meisten Projekten wird das Thema Testing immer noch zu stiefmütterlich behandelt. Jedoch ist es für funktionierende Software unabdingbar, alle Funktionalitäten auf Korrektheit zu prüfen. Dieser Vortrag zeigt, wie man Java-EE-Applikationen möglichst produktiv und doch umfassend testen kann, warum es unabdingbar ist, vollständige Systemtests durchzuführen und warum die meisten Integrationstests à la Arquillian überschätzt werden. Die meiste Zeit wird mit Live-Coding und natürlich Live-Testing verbracht.

Frege – echt funktionale Programmierung auf der JVM

In einem funktionalen Stil programmieren kann man in fast jeder JVM-Sprache. Frege geht aber einen qualitativ wichtigen Schritt darüber hinaus, indem die Sprache die Eigenschaften von Haskell auf die JVM bringt: garantiert seiteneffektfreie Funktionen, Bedarfauswertung und eine erstaunlich weitreichende Typinferenz. Frege kommt mit einem neuartigen Ansatz, wie man echt funktionale Programmierung mit den Vorzügen der JVM verbinden kann, ohne die Reinheit des Ansatzes zu kompromittieren. Wer funktionale Programmierung ernst nimmt und gerne mal etwas fundamental Neues in der Welt der JVM-Sprachen sehen möchte, der bekommt in dieser Session neue Anregungen.

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.

Single Sign-on für Microservices bzw. verteilte (Java-EE-)Anwendungen

Im heutigen Zeitalter von verteilten (Cloud-)Anwendungen und Microservices wird schnell klar, dass die Autentifizierung und Authorisierung der Benutzer keine leichte Aufgabe darstellt. Und wer hat schon Lust, zum 100sten Mal ein Log-in-Formular und die dazugehörige Logik zu implementieren? Die Lösung kommt mit JBoss Keycloak daher. Keycloak ist ein Single Sign-on (SSO) und Identiy-Mangement-(IDM-)System, welches sich sehr einfach und schnell in viele bestehende Anwendungen integrieren lässt. Die Token-basierte Benutzerauthentifizierung nach OAuth 2, OpenIDConnect oder auch SAML2.0 funktioniert zuverlässig und bedarf nicht noch weiterer Entwicklungsarbeit. Bestehende LDAP- oder andere Benutzerverzeichnisse lassen sich leicht einbinden und auch die Authentifizierung gegen Social-Provider wie GitHub, Twitter und Co. sind schnell konfiguriert. Im Vortrag gebe ich nicht nur einen Überblick über Keycloak, sondern zeige auch, wie diese SSO-Lösung in verschiedenste Anwendungen, angefangen von reinen Java-EE-Backend-REST-Services über Spring Boot bis hin zu JavaScript-basierten Clientanwendungen integriert werden kann.

Collaboration leads to better Quality

Building a strong, closely linked culture is critical to the success of any organization. However, there are many challenges that have to be overcome in the process of building that culture.  How do we address the ability to collaborate across different groups, be it developers, testers, or project managers, to help provide a better quality application for end users? Damien Walsh discusses how this is done at each of the product lifecycle stages and how the communication will effectively improve quality. In this session, Damien talks about software quality, the benefits of collaboration and swaying the naysayers. Discussion points will include: Who is involved, what are their roles and what is the impact they have at each stage of the lifecycle. How can we collaborate better? What options do we have in an ever changing environment? What does it mean for the company when people communicate more effectively? We are all on the software quality journey and we all share in the responsibility of delivering better products to our users. Join Damien for a candid conversation about what works and what doesn’t.

16:45 bis 17:45
Microservices? Mit Sicherheit!

Microservices sind eine tolle Sache. Die Aufgaben können gut verteilt werden. Änderungen können schnell produktiv gesetzt werden. Und vieles mehr. Allerdings hat das auch seinen Preis. Die Angriffsfläche erhöht sich im Vergleich zu monolithischen Anwendungen auf ein Vielfaches. Es gibt nicht mehr nur einen Security Context, sondern viele. Zwischen den Services muss die Nutzeridentität verteilt werden. Die Kommunikation erfolgt nicht im geschützten Kontext einer Anwendung, sondern über freie Strecke. Es gibt nicht eine Rechteverwaltung, sondern prinzipiell hat jeder Service seine eigene. Der Vortrag zeigt, wie man diese Probleme mithilfe von OAuth 2 lösen kann. Dabei wird zuerst auf die Grundlagen von OAuth 2 eingegangen, danach werden unterschiedliche Problemszenarien – und natürlich auch Lösungsmöglichkeiten – betrachtet. Den Abschluss bildet eine kleine Livedemo mit Spring Security OAuth 2 und Spring Cloud.

User Interfaces: Welche Webtechnologie passt zu mir?

Egal ob es sich um Neuentwicklungen oder Migrationsprojekte handelt, oft stellt sich die Frage nach der richtigen UI-Technologie. Wenn dann noch Web gefordert ist, fällt die Entscheidung beim aktuellen Technologieangebot nicht gerade leicht. Die Entscheidung sollte jedoch keinesfalls durch ein Bauchgefühl getroffen, sondern durch objektive Entscheidungskriterien herbeigeführt werden. Die Session zeigt Ansätze zur Bewertung von UI-Technologien und stellt beispielhaft Angular 2 und React einander gegenüber.

Moderne Gestaltung für den Java-Desktop

Hier wird frische Gestaltung für Java gezeigt, die man mit Swing, SWT und JavaFX umsetzen kann und beim Übergang von Desktop zu Web hilft. An vielen Bildschirmbeispielen zeigen wir realistische und günstig machbare Überarbeitungen von Geschäftsanwendungen. Sie lernen, wie man Omas funktions- und formularzentriertes GUI in eine rollenbasierte, aktionszentrierte Anwendung überführt, die zeitgemäße User Experience bietet – so mächtig wie Java-Desktop, so schick wie Web. Der Vortrag ist eigenständig und braucht kaum Vorwissen, lässt sich aber gut ergänzen  durch „Gestaltung mit UWP und OpenUI5“.

Das Transformationsportfolio: Reicht es, die Technologie zu aktualisieren?

Transformationen werden aus unterschiedlichsten Gründen angestoßen. Die digitale Transformation ist einer davon, oft aber auch Standardisierung und Effizienzsteigerung. Der Knackpunkt ist, dass die Vielschichtigkeit einer solchen Transformation oft nicht erkannt wird oder aufgrund von Widerständen man nur einen Teil der notwendigen Transformation angeht. Das führt dazu, dass die Transformation nicht den erwarteten Mehrwert bringt. Kotter spricht davon, dass nur etwa 30 Prozent der Transformationen gelingen. Wir zeigen in unserem Vortrag die Vielschichtigkeit eines ganzheitlichen Transformationsportfolios und wie man es steuern kann, ohne die Organisation zu überfordern. Gleichzeitig lässt sich die Fähigkeit der Organisation zur Veränderung stärken und so die Wahrscheinlichkeit erhöhen, auch große und grundlegenden Transformationen zu meistern. Wir werden weniger über die Herausforderungen einer Technologietransformation sprechen, sondern über Methoden und Frameworks wie Portfoliomangement, Ability2Execute oder Transformationspoker. Gewürzt wird der Vortrag wie immer mit Erfahrungen aus unserem Projektalltag.

Tuning TLS for Security, Speed and HTTP/2

„TLS? Langsam! HTTP2? Braucht kein Mensch!“ – Unfug! TLS ist auf dem Vormarsch, demnächst Pflicht in Chrome und Firefox und Grundlage für den Einsatz von HTTP/2. Das Gerücht von langsamen TLS hält sich hartnäckig und gründet sich in den vielen Standardinstallationen von Apache, nginx und Co. Mit dem Start von Let’s Encrypt sind reguläre SSL-Zertifikate für jedermann erhältlich. In dieser Session heben wir (live) eine ungesicherte Webseite auf TLS und HTTP/2. Wir arbeiten mit einem Let’s-Encrypt-Zertifikat. Wir prüfen und optimieren TLS-Sicherheitslevel und -Geschwindigkeit. Vor allem der initiale TLS-Handshake benötigt einiges an Optimierung, um vor allem bei mobilen Verbindungen die Latenz und damit die TTFB zu minimieren. Im letzten Schritt heben wir die Auslieferung der Webseite auf HTTP/2.

Java EE goes Microservices. Are you serious?

Das „Schwergewicht“ Java EE scheint nicht wirklich mit der Wunderwelt der Microservices und den damit einhergehenden Architekturpatterns zu harmonisieren. Dabei bringt der Java-Enterprise-Standard technologisch gesehen alles mit, was es zur Umsetzung von Microservices benötigt. Wo also liegt das Problem? In der Session werden wir Schritt für Schritt eine monolithische Java-EE-Anwendung „sezieren“ und uns den damit einhergehenden Herausforderungen der neu entstandenen, Microservice-basierten Architektur stellen. Aha-Effekte garantiert!

PaaS and Big Data, a natural Fit

In this session you will find out how T-Systems AppAgile is combining PaaS and Big Data. You will furthermore learn how easy it is to develop “Big Data ready” code, using things like docker images for Mongo Database, Cassandra and further Hadoop based images. And if things are ready to get bigger you will see how you can make use of T-Systems bare metal on demand platform starting with small data to grow to big data and if end up with huge data. You will also gain insight into the road map of hybrid solutions, combining the capabilities of public clouds like Microsoft Azure with the secure private possibilities of AppAgile. Finally you will learn why T-Systems was the Red Hat’s cloud hosting partner of the year 2015.  Featureing installations for German Toll collect Roadcharging systems, Hermes (logistic partners), and many more IoT and Non IoT workloads.

Keine Slides vorhanden
18:00 bis 19:00
DevOps is not enough – Embedding DevOps in a broader Context

The DevOps movement is gaining momentum – which is good. But still DevOps often is seen way to small. DevOps is not only 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.

Microservice UI Composition

Die Grundidee von Microservices besteht darin, kleine und unabhängige Services zu einem Gesamtsystem zu verbinden, um die einzelnen Services getrennt entwickeln, testen und deployen zu können. Das bedeutet aber auch, dass wir die zugehörige Benutzeroberfläche ebenfalls aufteilen müssen, um sie auf gleiche Art und Weise austauschbar zu machen. Die Session zeigt verschiedene Ansätze, wie sich dieses Problem in der Praxis lösen lässt.

Blockchain - das nächste große Ding

Blockchains gehören in den Werkzeugkoffer des modernen digitalen Entscheiders, Architekten und/oder Entwicklers. Der Vortrag spannt den Bogen von Bitcoin über Blockchains hin zu Disruptionen wie Smart Contracts und Decentralized Applications. Im ersten Teil geht es um elliptische Kurven und byzantinische Generäle zur Absicherung des Bitcoin-Transaktionsgraphen; als Demo gibt es auf einem lokalen Bitcoin-Testnetz (Docker) einige Beispieltransaktionen. Im zweiten Teil werden Architekturstile beim Einsatz von Blockchains vorgestellt. Damit werden im dritten Teil wichtige Nutzungsmöglichkeiten von Blockchains jenseits der Finanzwelt aufgezeigt. Der vierte Teil zeigt eine Demo mit einem Smart Contract auf Ethereum und stellt verfügbare Architekturen und Technologien für Blockchains und Decentralized Applications (Azure, Eris, Hyperledger, Ripple) vor. Im Abspann als fünftem Teil geht es dann um große Hacks der Blockchain-Welt (Mt Gox/Bitfinex/DAO), die eingangs fomulierte Perspektive und was man jetzt schon tun kann.

Machine Intelligence made easy: Vision/Speech API, TensorFlow and Cloud ML

What is Neural Network? Why is Deep Learning so important? What are the challenges for introducing those technologies to production services? In this session, we will look at the answers for those questions and how Google has been successfully deploying large scale neural network on services such as Google Photos, Android and Google Search. Also, we will introduce the new Google Cloud products such as Cloud Vision API, Speech API, TensorFlow and Cloud ML that allows developers to take advantage of the power of Google's machine intelligence with scalable and fully managed services.

Keine Slides vorhanden
How to organize your Code - Architecture made easy

Most nontrivial 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 apply some useful principles and rules to the way your organize your code. This session will explain a practical approach to code organization and architecture and also introduce a domain specific language that can be used to enforce architectural rules during all stages of the development process.

Hacking connected Cars and autonomous Vehicles through GSM

An increasing demand is being put on automobile manufacturers to move to autonomous vehicles or connected cars that require connectivity to back-end systems for pushing updates to the car’s computer system that previously required a trip to your local dealership. Infotainment systems and electronic control units are being implemented by these automakers that leverage connectivity through Bluetooth, WIFI, and cellular baseband networks for that connectivity creating an attack surface as a result of security being an afterthought to design and functionality. The vulnerabilities discussed in this presentation are exploitable and were found over the past few penetration tests performed of European automakers, and electronic control unit (ECU) and infotainment manufacturers who retained Alissa Knight to perform this testing. Because the vulnerabilities allow interception of messages between the manufacturer’s backend servers and the ECU which is connected to the CAN bus of the automobile, we will demonstrate how it’s possible to intercept, decrypt, and replay modified messages to the ECU that can result in remote control of the car. Solutions for how to address these risks and treat them to an acceptable level will be discussed as well as mitigating controls to treat the risks that are inherent in the cellular networks that the automobile, ECU, and infotainment manufacturers have no control over fixing.

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, 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.

20:00 bis 20:30
Technological Unemployment and the Search for Meaning

Many people are worried about the rise of smart machines and the impact this may have on paid employment. Several recently-published books, including Brynjolfsson and McAfee’s The Second Machine Age and Martin Ford’s The Rise of the Robots have forecast widespread technological unemployment over the next half century. Are the authors of these books right? Are those in the technology sector gradually building the machines that will render themselves obsolescent? Or should we be skeptical of these claims? If not, how can society handle the distributive crisis that will result from the death of paid employment? And how will humans find meaning and fulfilment in a world without work? These are the questions addressed in this talk. It will argue that the threat to paid employment is real and that society may need to embrace a radical “postwork” vision of the human future.

Wednesday - 09. November 2016

09:00 bis 09:45
Das Ende der Kontrolle – Wie Machine Learning die Softwareentwicklung transformiert

„Machine Learning First“ ist seit diesem Jahr das Mantra von Google. Auch wir spüren im Projektalltag bei unseren Kunden, dass Machine Learning kein Nischendasein mehr fristet, sondern seine eigene Faszination entfaltet. Waren bisher die – meist noch simpel gehaltenen – Analysen im Big-Data-Umfeld primär nach innen gerichtet, geht der Trend jetzt in die umgekehrte Richtung. Die erzeugten Daten sollen auch nach außen wirken und Kunden einen Mehrwert bieten: als Datenprodukte. Dazu werden die bestehenden Daten mithilfe von Machine-Learning-Algorithmen untersucht und die Ergebnisse als zusätzlicher Nutzen präsentiert. Preisvorhersagen, gezielterer Kundenservice und Empfehlungen sind nur einige Beispiele. Dies setzt voraus, dass Entwickler neben dem reinen Coding über Daten und Datenmodelle neu nachdenken. Jeff Dean von Google geht davon aus, dass nur 10 Prozent der Google-Entwickler dieser Herausforderung bereits gewachsen sind. In dieser Session möchten wir die Umwälzungen durch Deep Learning und Co. für das Kunsthandwerk der Entwicklung diskutieren. Wir illustrieren anhand von Beispielen, wie sich die Welt um uns herum bereits zu verändern beginnt, und spekulieren über die weitere Entwicklung der Entwicklerprofession.

Keine Slides vorhanden
10:00 bis 12:45
IoT Lab – Build your own Amazon Dash-like Device

In diesem Lab werden wir hands-on mit ESP8266-Mikrocontrollern eine IoT-Anwendung bauen, mit der man auf Knopfdruck eine „Bestellung“ machen kann, die in der Cloud verarbeitet wird. Der Fortschritt der Versandstatus wird in Echtzeit auf dem Gerät visualisiert. Die Teilnehmer bauen im Lab unter Anleitung die Schaltung auf und stellen die Softwareware fertig. Viel Spaß ist garantiert!   *** Anmeldung / Registration Bitte tragen Sie sich vor Ort am Speaker Check-In in die Lab-Teilnehmerliste ein; es sind nur begrenzte Plätze verfügbar. Please sign up for this lab at the speaker ceck-in desk, only limited places are available.    *** Voraussetzungen Bitte bringen Sie einen Laptop mit der Software "Arduino-IDE" zum Lab mit.  Detaillierte Infos werden unter: https://github.com/Accenture/iotlab-wjax2016 bereit gestellt.  

Keine Slides vorhanden
10:00 bis 11:00
Ausblick auf Java 9

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).

Tests - unendliche Weiten. Wie ermittle ich Testfälle richtig?

Die Anzahl der Testfälle sollte immer ein ausgewogenes Verhältnis zwischen Testabdeckung und Aufwand darstellen. Dazu wurden verschiedene Testfallermittlungsverfahren für White- und Black-Box-Tests entwickelt. Dieses Wissen ist besonders in agilen Projekten und genauso für Entwickler wichtig. Sie müssen gemeinsam mit den Testern innerhalb der Testpyramide Testfälle schreiben und durchführen. Der Vortrag stellt die wichtigsten Testfallermittlungsverfahren theoretisch und praktisch an Beispielen vor. Entwickler können ihr Wissen auffrischen oder neue Erkenntnisse gewinnen.

Take the „RISC“! , HTML5 im Bereich operativ genutzter Unternehmensanwendungen

Wir bewegen uns im Umfeld von UIs für Geschäftsanwendungen: am Sachbearbeiter orientiert, viele Felder, durchaus komplexe Dialoge. Wer da trotz aller Frameworks auf HTML5 setzt – der Kunde will ja schließlich „zero installation“! – der erkauft das durchaus schmerzhaft mit „endless maintenance“: Der Endnutzer findet immer einen Browser/Device, auf dem sich das System anders verhält, als es sollte. Und beim nächsten Major-Browserreleasewechsel kommt einiges in Unordnung. Muss das so sein? Wir sagen: definitiv nicht! Und zeigen es auch. Die „RISC-Methode“ nutzt den Browser auf andere Art als „normale“ Frameworks. Der Kern ist die Reduzierung der HTML-Nutzung auf alle wesentliche Elemente („Primitivelemente“) und der Aufbau von JavaScript-Bibliotheken auf Basis dieses Kerns. Und heraus kommt ein Webframework, in dem Browserkompatibilität keine Rolle mehr spielt. Und: Heraus kommt eine Gestaltungsfreiheit und Performance, die uns selbst überrascht hat. Lassen auch Sie sich überraschen!

BPM und Microservices – ein harmonisches Team

Hört man heute, dass BPM einen monolithischen Block bildet, der wenig in das Microservices-Umfeld passt, so zeigt dieser Vortrag, dass es auch anders geht. An einem Beispiel mit dem Open-Source-Projekt jBPM wird erklärt, wie Geschäftsprozesse und Geschäftsregeln sich harmonisch in eine Microservice-Architektur integrieren und sich die entstehenden Synergien nutzen lassen. BPM verhilft dabei, die Abläufe zwischen Microservices sichtbar, veränderbar und transaktionssicher zu machen. Auf der anderen Seite ermöglichen z. B. Docker, Kubernetes und fabric8 die Aufteilung von BPM und BRM (Business Rules Management) in kleine fachlich isolierte Services. Als Resultat arbeiten BPM und BRM selber als Microservice, und der Entwicklungs- und Auslieferungsprozess wird vereinfacht. Erfahren Sie in diesem Vortrag, wie BPM und BRM mit Java EE und JavaScript Frontends (z. B. Angular 2) in einer Containerarchitektur zusammenarbeiten können und welche Möglichkeiten dadurch entstehen.

OpenShift-Containernetzwerk aus Sicht der Workload

OpenShift beinhaltet eine Docker- und Kubernetes-basierte Containerlaufzeitumgebung. Sie ermöglicht mittels SDN den Zugriff auf Anwendungen in OpenShift, die Kommunikation einzelner Container untereinander und mit Services in umliegenden Netzen, isoliert Mandanten voneinander und wird nahtlos von OpenShift verwaltet. Dieser Vortrag stellt OpenShift vor, erklärt die Mechanismen des SDN und anderer Komponenten und zeigt, wie sie zusammenspielen, um eine nahtlose "User Experience" zu erreichen.

Liefern, schon vor dem Schätzen!

Aufwandsschätzungen sind in der Softwareentwicklung ein Problem – Organisationen, die Software entwickeln, fragen immer wieder, wie sie ihre geschätzten Termine besser definieren und einhalten können. Ironischerweise geht das am besten, wenn Sie Ihren Prozess so umstellen, dass Schätzen überflüssig wird! Matthias Bohlen zeigt in diesem Talk, wie Sie von Blei (Personentage) zu Gold (gar keine Schätzungen mehr) kommen.

Java EE Microservices – Swarm, Payara Micro und KumuluzEE

Im Zusammenhang mit Microservices und modernen Deployment-Modellen hat Spring Boot einige Popularität erlangt. Während dieses zwar Unterstützung für einige Java-EE-Standards wie JAX-RS mitbringt, entwickelt man damit letztlich jedoch immer eine Spring-Anwendung. Somit muss entsprechendes Spring-Know-how mitgebracht oder aufgebaut werden. Daher stellt Boot nicht für jedermann die optimale Lösung dar. Entwickler, die es bevorzugen, komplett auf Basis des Java-EE-Standards zu entwickeln, haben inzwischen jedoch einige Alternativen, wie etwa Wildfly Swarm, KumuluzEE oder Payara Micro. In dieser Session werden die unterschiedlichen Lösungen miteinander verglichen, der aktuelle Stand der Technik beleuchtet und an einem konkreten Beispiel demonstriert, wie Java EE Microservices erstellt werden.

11:45 bis 12:45
Workflow und Case Management mit BPMN und CMMN

BPMN und CMMN sind sehr spannende Standards, der eine für starre Workflows, der andere für flexible Fallbearbeitung. Beide Standards können auf entsprechenden Engines direkt ausgeführt werden. In der Session gebe ich eine kurze Einführung in beide Standards und erläutere anhand von Beispielen und Livedemos, wann welcher Standard für eine bestimmte Problemstellung geeignet ist. Also beispielsweise die Frage, bis zu welchem Punkt Case Management noch mit BPMN adressiert werden kann und ab wann CMMN die bessere Wahl ist. Vorsicht: Pragmatismus und Praxiserfahrung!

Microservices without PaaS is like Bavaria without Beer

Each microservice is a small server application which has to be implemented (including authentication, authorization, billing etc.), operated and maintained. This adds a lot extra work and duplication inside the product. For organizations it is important to reduce this extra cost by providing a platform taking care of this generic functions. What are the requirements for a microservice platform, which functionalities should be provided and how could a solution look like. We will have a look into different technologies and talk about "opinionated platforms”.

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

In den letzten zwölf 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 besser auf Wirkung und Restrisiko einschätzen.

Kommunikation ist alles! Überzeugen in Extremsituationen

Immer wieder ärgern wir uns in Konfliktsituationen, nicht schlagfertiger reagieren zu können. Oft fühlen wir uns überrumpelt und trauen uns nicht, unseren Standpunkt zu verteidigen. Andere wiederum sind in Extremsituationen vielleicht zu direkt und riskieren, es sich mit Kollegen oder gar dem Vorgesetzten dauerhaft zu verscherzen. Wie überzeuge ich nun andere richtig und finde in Konfliktsituationen die richtigen Worte? Welche Kommunikationsstrategie wende ich bei wem richtig an, um erfolgreich meine Ziele zu erreichen? In dieser Session erfahren Sie, was Kommunikation mit dem Säbelzahntiger zu tun hat und wie Sie in Zukunft wichtige Gespräche zielorientierter vorbereiten.

Pipeline as Code mit Jenkins

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 wie Global Pipeline Library werden Softwareprinzipien wie z. B. DRY (Don’t Repeat Yourself) auch für Build-Pipelines umgesetzt.

Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2.0

Die so genannten „progressiven Web-Apps“ sind die nächste Stufe moderner Webanwendungen. Sie verhalten sich noch stärker wie native Anwendungen und unterstützen dank neuester Browserstandards Offlinefähigkeit, echte Benachrichtigungen sowie Datensynchronisation im Hintergrund. Dazu kommen Ansätze wie Service Worker, das Web App Manifest, Browserdatenbanken, aber auch das App-Shell-Muster zum Einsatz. Diese Keynote geht auf diesen neuen Architekturansatz, der bereits von nationalen und internationalen Konzernen aufgegriffen wurde, ein und zeigt am Beispiel einer Angular-2-Anwendung, wie dieser Ansatz realisiert werden kann und worauf dabei zu achten ist.

Hardcore-Docker-Orchestration mit Docker Swarm und Compose

Mit Docker Swarm und Compose stehen nun endlich Werkzeuge zur Verfügung, mit der stabile Docker-Cluster aufgebaut werden können. Compose kümmert sich dabei um die Bereitstellung der Container in diesem Cluster, Swarm bietet die Grundlage, in dem es verschiedene Voraussetzungen hierfür schafft. Mit einer Beispielapplikation werden wir in die Untiefen und Abgründe der Nutzung von Swarm und Compose in einem produktiven Umfeld abtauchen.

Architekturansätze für Businessagilität: Wie die IT von der Bremse zum Antreiber wird

Bremst Ihre IT den Fachbereich aus? Sinkende Margen, Ergebnisdruck, Regulatorik und die ständige Gefahr, dass ein Wettbewerber mit einer digitalen Lösung emporschießt – der Druck auf die IT als Enabler wird immer größer und droht zur Bremse des Unternehmens zu werden. Mittels Outsourcing in die Cloud, agiler Entwicklungsmethodik, Continuous Delivery und anderen Strategien versucht die IT ihrer Rolle gerecht zu werden. Ein unterschätzter Hebel für Businessagilität wird dabei häufig übersehen: effektive Softwarearchitektur. In Verbindung mit einem geeigneten Toolset treten Business und IT aufs Gaspedal. Anhand konkreter Praxisbeispiele stellt diese Session mögliche Architekturansätze und darauf abgestimmte agile Arbeitsmodelle für Business und IT vor.

14:15 bis 14:45
Enabling Digital Transformation through Technology, Process and People

Organizations across all industries and geographies are trying to determine how they can use technology to differentiate from the competition, disrupt new markets and thrive in the new digital world. This session will explore how organizations developing new innovative applications and services will need to think differently about the role of technology; the process of innovation and how to organize the people responsible for creating new applications and services. We'll look at some of the emerging technology, trends and ideas that are making the transformation to digital possible.

Keine Slides vorhanden
15:00 bis 19:00
Coderetreat

A coderetreat is a hands-on coding lab focused on practicing the principles of test driven development, pair programming and clean code. The lab is programming language agnostic and is aimed at developers with different levels of experience. *** Anmeldung / Registration Bitte tragen Sie sich vor Ort am Speaker Check-In in die Lab-Teilnehmerliste ein; es sind nur begrenzte Plätze verfügbar. Please sign up for this lab at the speaker ceck-in desk, only limited places are available.

15:00 bis 16:00
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.

Sinn und Nutzen von 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. Viele aktuelle APIs erfüllen ein wichtiges Element von REST allerdings nicht: 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. den Spring Stack. Auch für das Erstellen von API-Dokumentation gibt Kai praxisnahe Tipps. Ziel dieser Session ist, am Ende selbst beurteilen zu können, ob Hypermedia für das eigene REST-API Vorteile bringt.

Practical Proxy Deep Dive

Everybody knows the Proxy Pattern, but how can you use it effectively? What kinds of proxy patterns are available and how can you build patterns more effectively with these? Why is reflection needed for this? Most importantly, how can we only use the Core JDK? In this talk we will start from the basics and move straight on to Dynamic Proxies, Dynamic-/Static-ObjectAdapter, DynamicStaticProxies at runtime and more. Would it influence your team members to start using functional aspects in your Core Java Project? How we can combine this with other patterns? We will have a detailed view on the possibilities to reduce the amount of code with this Pattern, and we will see how we could make it more generic. One of the main points will be the combination of this Patterns with for example NestedBuilder-Pattern and more. After this you will have a better understanding of this Pattern group from the practical point of usage. All Pattern are build up from scratch, to give a feeling of the way to develop your own pattern based on this talk, or how you could change it for the needs of your project.

Keine Slides vorhanden
Was Sie über Security in Microservices-Umgebungen wissen sollten

Microservice sind momentan in aller Munde. In Abwägungen zwischen klassischen Systemen und Microservice-Umgebungen wird den unabweisbaren Vorteilen von Microservices – kleine und verständliche Einheiten, kurze Entwicklungszyklen, flexible Technologieauswahl usw. oft die Komplexität eines verteilten Systems als Nachteil gegenübergestellt. Selten wird jedoch der Sicherheitsaspekt in solchen Abwägungen berücksichtigt, obwohl dieser eine beträchtliche Herausfoderung darstellt: Statt einer monolithischen Applikation müssen nun eine Vielzahl von Microservices, teilweise in verschiedenen Programmiersprachen/Laufzeitumgebungen implementiert sowie abgesichert werden. Die Authentifizierungs-/Autorisierungskonzepte und Mechanismen müssen über Applikationen und Netzwerkgrenzen hinweg funktionieren. Es sind potenziell deutlich mehr Schnittstellen über das Netzwerk exponiert und bieten somit auch eine entsprechend größere Angriffsfläche. Regeln für Firewalls und Intrusion-Detection-Systeme werden deutlich komplizierter. In diesem Vortrag werden die typischen Securityschwierigkeiten in Microservice-Umgebungen aufgezeigt und passende Lösungsansätze dargeboten, damit Ihnen zukünftig die Bewertung eines Micorservices-Ansatzes besser möglich ist.

Agile Engineering Practices in der Infrastrukturentwicklung

Agile Softwareentwicklungsteams haben den Anspruch, mit jedem Sprint hochqualitative Software zu liefern. Dazu setzen sie auf Praktiken wie TDD, Continuous Integration und "put everything under version control". Die Infrastruktur zum Betrieb dieser Software ist allerdings oft noch 'handgedrechselt', ungetestet und nicht reproduzierbar. Der Sprecher zeigt, wie man die obigen Praktiken auch auf die Entwicklung von Infrastruktur anwenden kann, indem man Infrastruktur in Code definiert Tests dafür schreibt und sie lokal laufen lässt diese Tests für jede Änderung in einem Continuous-Integration-Set-up startet so Infrastruktur auf Knopfdruck reproduzierbar erzeugen kann

Geschäftsregeln mit DMN

DMN ist der brandneue Standard im Bereich der Geschäftsregeln und erfreut sich großer Aufmerksamkeit. Und mit der Camunda DMN Engine gibt es bereits heute eine leichtgewichtige Open-Source-Bibliothek, die über Java oder REST verwendet werden kann. Die Session zeigt, wie Entscheidungen in DMN so definiert werden können, dass sie technisch ausführbar und fachlich verständlich und anpassbar sind. Es wird live eine Entscheidungstabelle erstellt und anschließend automatisiert und im Betrieb verändert. Dabei wird nicht nur das Einbinden der Engine in wenigen Zeilen Java-Code gezeigt, sondern auch die Nutzung fortgeschrittener Features wie Testing, Versionierung und Historisierung.

How we collaborate at GitHub

Learn how GitHub's globally distributed teams use GitHub tooling to develop GitHub, collaborate with engineering, sales, marketing, services and legal and deploy more than 500 times a week. Experience ChatOps, a great way to reduce friction between development and operations and super efficient way to bring new engineers up to speed. See life examples on how to use Hubot to retrieve log files, graph various metrics and deploy pull requests directly from Slack to Heroku. Get some ideas how to build such a ChatOps environment yourself.

16:45 bis 17:45
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.

JavaFX goes Web - JavaFX-Apps im Browser mit jpro

JavaFX ist eine moderne UI-Technologie zur Entwicklung plattformübergreifender Desktopanwendungen und mobilen Apps. Dennoch fehlt bislang die Unterstützung von Web, die die Technologie zu einem bisher nicht dagewesenen, vollständigen Cross-Plattform-Ansatz machen würde. Die hier vorgestellte Technologie mit dem Namen jpro ermöglicht es, ohne nötiges Java-Plug-in JavaFX-Anwendungen im Browser auszuführen. Dazu führt jpro JavaFX auf dem Server aus und bildet den Scene Graph direkt im Browser mittels HTML5 ab. In dieser Session werden beeindruckende JavaFX-Demos wie die Desktopapplikation “SceneBuilder” sowie eine echte DJ-Software im Browser gezeigt. Man lernt, wie einfach es ist, eine bestehende JavaFX-Anwendung unter Verwendung von Java 8 und Multi-Threading per jpro-Gradle-Task als HTML5-Web-App in den Browser zu deployen.

If it works, don’t touch … why we replaced almost every Component in Bintray Architecture

As is often the case with software development, we try to plan ahead yet we frequently fail. Here at JFrog, when we envisioned Bintray as a high-loaded distribution service, we planned for scale. And yet, when it hit us, we still had to adopt. By attending this session you will time travel through two years of agile architecture – we’ll explore and share with you what components we took, what decisions we made, what stayed, what changed, and why. Through our successes, failures, and corrections we can share our lessons learnt to benefit you on current and future endeavors.

Darfs auch etwas kleiner sein? Microservices mit AWS Lambda

Es gibt Momente, in denen will man einfach nur Code schreiben und in der Cloud ausführen, ohne sich lange mit der Infrastruktur aufzuhalten, ohne Infrastruktur dauerhaft zu betreiben/laufen zu lassen. Weil man es weder braucht noch will und weil es teuer ist. Ereignisgesteuerte Funktionen in der Cloud ausführen – darauf ist AWS Lambda spezialisiert. Entwickler schreiben einfach nur noch den Code, in JavaScript, Java oder Python, um den Rest kümmert sich Lambda. Abgerechnet wird in 100-ms-Blöcken, wer effizienten Code schreibt, zahlt entsprechend wenig. Das AWS-API steht zur Laufzeit zur Verfügung, eigene Bibliotheken können mitdeployt werden. Dank des API-Gateways erhalten Lambda-Services eine HTTP-Schnittstelle und können so auch mit dem REST der Welt kommunizieren. Wer also davon überzeugt ist, dass Microservices wirklich klein sein müssen, der muss sich mit Lambda beschäftigen. Viel kleiner geht nicht mehr. Und App-Server? Die waren gestern ...

Groovy im Zeitalter von Java 8

Mit Lambda-Ausdrücken und Streams in Java 8 eröffnen sich neue Möglichkeiten. Einige davon waren vorher ein Einsatzgrund für Groovy. Wir beleuchten, wie sich die Features von Groovy und Java 8 gegenseitig ergänzen und wie Groovy weiterhin seine Aufgabe erfüllt, die Power von Java noch vielseitiger nutzbar zu machen.

Keine Slides vorhanden
Erste Schritte mit Jenkins 2.0

Mit Jenkins 2.0 ist endlich ein Nachfolger des weitverbreiteten Build-Servers verfügbar. Diese Version lockt u. a. mit dem Versprechen, besonders für den Einsatz in einem Continuous-Delivery-Umfeld geeignet zu sein. Ob dieses Versprechen tatsächlich eingehalten werden kann und welche anderen Dinge bei einem Umstieg zu beachten sind, werden wir im Detail in dieser Session betrachten. Auch wird das Thema Stabilität sowie Unterstützung von Docker-Containern eine zentrale Rolle spielen.

Flexibilität und Prozessänderungen – BPMN-Modellierung am Beispiel Flottenmanagement

Kernelement des Fuhrparkmanagements von Sixt Mobility Consulting (SMC) ist die individuelle Beratung zu Prozess- und Qualitätsoptimierung im Flottenmanagement. Sowohl der Kunde als auch die eigenen Prozessberater erwarten, dass Änderungen einfach möglich sind und das „Zurücksetzen eines Prozesses“ jederzeit vorgenommen werden kann. Hat man sich hier mit der Implementierung in BPMN zu frühzeitig festgelegt, bedeutet jede Prozessänderung die Ausführung eines kompletten Code-Test-Deploy-Zyklusses. Eine Lösung wäre die Modellierung in CMMN, dafür muss die Organisation allerdings auch „gereift“ sein. Der im Projekt gewählte Ansatz zur Lösung dieses Dilemmas war das Aufbrechen in Subprozesse und die Schaffung manueller Eingriffsmöglichkeiten in die Prozessabfolge auf der Ebene der Usertasks. Der Vortrag zeigt außerdem die technische Umsetzung auf Camunda, das durch Integrationsmöglichkeiten, vorhandene APIs sowie das Zusammenspiel mit üblichem Testtooling überzeugt hat.

18:00 bis 19:00
Real-World Consistency explained

Here we are: Microservices, Container, Cloud ... and lots of data to deal with. Usually that’s where the real trouble starts. Many developers still base their designs on the concept of perfectly consistent ACID transactions, no anomalies or other inconsistencies around. But reality is different: Perfect consistency does not exist and many real-world use cases require much weaker consistency models in order to satisfy the scalability or robustness requirements. So, what are our options and what is the price we need to pay? Do we need to accept potentially losing data in order to get higher availability? How much can I scale without compromising consistency? In this session we will answer this and many more questions. We will also discuss how to pick the right data store (not only) with respect to consistency. Finally, we will have a peek into latest research pushing the borders of the current state-of-art.

Modernes Java-Komponentendesign mit Spring 4.3

Dieser Vortrag stellt ausgewählte Features des Spring-Komponentenmodells vor – mit einem Fokus auf das aktuelle Spring Framework 4.3. 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.

Datenarchitekturen nicht nur für Microservices

*** Wiederholung aufgrund großer Nachfrage der Session vom 08.11.2016*** Microservices sollen keine gemeinsame Datenbank haben. Warum eigentlich? Und was ist mit der dabei entstehenden Redundanz? Viele Architekturen kranken an zu großen und inflexiblen Datentöpfen. Dieser Vortrag zeigt die Gründe für die Probleme: die Missachtung von Bounded Context und eine viel zu enge Kopplung der Datenmodelle. Ansätze wie CQRS (Command Query Responsibility Segregation) und Event Sourcing zeigen, wie solche Probleme gelöst werden können – ohne dass dabei zu große Redundanzen bei den Daten entstehen.

Continuous-Delivery-Pipelines mit Docker

Containervirtualisierung revolutioniert. Continuous-Delivery-Implementierungen: Neue Anwendungsinstanzen stehen in Sekunden zur Verfügung, Anwendungsteile können sehr einfach voneinander separiert werden. Die deutlich engere Verzahnung von Software und Laufzeitumgebung bringt allerdings auch neue Herausforderungen mit. Im Vortrag zeigen die Sprecher wie Softwarestände in Docker Images zu Artefaktcontainern integriert werden den Aufbau einer mehrstufigen CD-Pipeline für Artefaktcontainer mit Jenkins 2.x die Verwaltung und das Deployment von Artefaktcontainern in Cloud-Infrastrukturen den Umgang mit Sicherheitsupdates der Laufzeitumgebung

JDK 9 Rampdown with the modular Platform Jigsaw

Im September 2016 begann die Rampdown-Phase mit Fehlerbereinigung und Vorarbeiten, um den finalen Release Candidate für JDK 9 bereitzustellen. Der JDK-9-Schwerpunkt liegt bei der neuen Plattformmodularisierung mit dem Projekt Jigsaw. Ü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. Der JSR 376 (Java-Platform-Module-System) schafft die Grundlage für die Referenzimplementierung vom OpenJDK-Projekt Jigsaw. 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 umgesetzt, sowie die Verbesserung von Sicherheit und Wartbarkeit von Java-SE-Plattform-Implementierungen (JDK) verwirklicht werden.

Fokus, Fokus, Fokus – Die geheime Zutat für den Erfolg

Vielen Firmen und Mitarbeitern fehlt Fokus. Es wird an zu vielen Dingen gearbeitet und zu viele Meetings durchgeführt. Jedes Start-up ist fokusiert. Mit Wachstum und immer neuen Ideen verliert eine Firma ihren Fokus, bis sie ihr ganzes Potenzial verspielt. Dabei ist Fokus der größte Hebel zum Erfolg. Der Vortrag zeigt, wie man Fokus zurückgewinnt, die Firma neu ausrichtet, welchen massiven Effekt Fokus hat und wie man mit Fokus mehr persönlichen Erfolg hat.

Keine Slides vorhanden
Schrittweise Einführung einer Process Engine bei der LV 1871

Der Vortrag berichtet von unseren Erfahrungen bei der Prozessautomatisierung mit BPMN und der Camunda Engine. Die Möglichkeit zur Integration mit bestehenden Legacy-Systemen zur Bestands-, Kunden- sowie Datenverwaltung war genauso essenzielle Voraussetzung, wie die Option, ein bereits etabliertes Postkorbsystem zu nutzen. Die Unittestbarkeit und Unterstützung von CI-Prozessen ermöglicht es mittlerweile, Prozesse schrittweise als BPMN zu realisieren und damit Geschäftsvorfälle nach und nach immer besser systemgesteuert zu unterstützen.

WebSocket: Fünf Jahre – und nun?

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

20:15 bis 23:15
Real Plastic – Let’s get ready to Robot!

Den Robotern gehört eindeutig die Zukunft. Bei der W-JAX übernehmen die Maschinen auch in der Kampfarena das Kommando. Sei beim großen Roboterfight dabei: Bau mit deinem Team (bestehend aus 2 bis 8 Personen) die ultimative LEGO-MINDSTORM-EV3-Kampfmaschine, programmiere sie in Java und schick sie ins Duell der Maschinen. Wer seinen Konkurrenten als Erstes aus dem Ring befördert, ist eine Runde weiter. Vor dem Wettbewerb gibt es eine rund 45-minütige Einführung in LEGO MINDSTORM EV3 und dessen Programmierung unter Java. Der Wettbewerb eignet sich also auch bestens für Einsteiger. Auf alle Fälle garantieren wir allen Teilnehmern jede Menge Spaß!    

Keine Slides vorhanden
20:15 bis 21:15
Let’s demystify IoT for Java Developers (with a Drone!)

During this session we will build a full-stack cloud based IoT system from scratch. We gather data from a flying drone, publish the data to the IoT system, deploy a beautiful IoT dashboard web app and send two-way commands back and forth between the cloud and the drone inside the conference room. All of this is done step-by-step from Java developer’s point of view to really demystify how to build IoT systems from scratch. And because learning can also be fun, we’ll be flying a drone as the IoT device and spice it all up with some social media magic so the audience can join hands-on. Technologies and tools used: Mosquitto MQTT broker, Eclipse Paho MQTT messaging, Vaadin Framework web apps and Parrot AR.Drone 2.0.

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

Thursday - 10. November 2016

09:00 bis 10:00
Using static Languages for Automation, a Scala Case Study

Scripting languages are commonly used to write automation code. Python and Ruby seem to be the default choices for the task. They are flexible and easy to work with. But often a problem arises as the code base grows: refactoring becomes harder and harder without the compiler support. As a consequence it becomes almost impossible to keeping the code clean and readable. Change the people working on the project and you easily end up in ... well ... hell. Is there another way? Can you gain the benefits of statically-typed languages without losing the development speed? To answer this question I’ll present our journey of rewriting existing Ruby deployment tooling from scratch in Scala. This will include: What were the problems with existing tooling? Why did we decide to have a full rewrite? All the design-decisions we made and why. What were the problems and what we learned along the way? The goal of the presentation is not to convince you to rewrite everything in Scala, nor to preach the benefits of static languages. It is simply to give you another perspective on the topic of tooling. Who knows, maybe you’ll find some parts worth adopting to your situation.

Spring Framework 5: Reactive Microservices on JDK 9

Das im Frühjahr 2017 erscheinende Spring Framework 5.0 setzt auf ausgewählte Schwerpunktthemen: insbesondere reaktive Webapplikationen auf Basis von Reactive Streams, mit klassischem Server oder auch mit Embedded Runtime sowie umfassende Unterstützung für JDK 9. Dieser Vortrag stellt den aktuellen Stand der Entwicklung gegen Ende der Milestone-Phase vor und gibt einen konkreten Ausblick auf die weitere Roadmap.

Aufzeichnungen mit dem Java Flight Recorder

Java Mission Control basiert auf dem Eclipse RCP und besteht aus zwei Komponenten, der Management Console und dem Java Flight Recorder. Tatsächlich ist dieses Werkzeug mit einem echten Flugdatenschreiber vergleichbar, wie man ihn im Flugzeug findet. Die auf ihm gespeicherten Informationen werden wichtig, wenn etwas schief gelaufen ist, und so ist es auch beim Java Flight Recorder: Hier finden sich kontinuierlich aufgezeichnete Informationen darüber, was auf der Java Virtual Machine passiert ist, wenn ein Fehler auftrat. Das Werkzeug ist im Oracle JDK enthalten und kann mit beliebigen Java-Anwendungen und Applikationsservern, von der Entwicklung bis zum produktiven Betrieb verwendet werden. Die einheitliche Datenbasis vom Java Flight Recorder ermöglicht Administratoren und Entwicklern, gemeinsam an Problemlösungen zu arbeiten und Konflikte besser und schneller bewältigen zu können.

Containerorchestrierung mit Mesos - DC/OS für Java-Entwickler

In Zeiten von Docker, Big Data und Microservices wird es immer wichtiger, seine verteilte Anwendung sinnvoll auf sein Cluster zu verteilen und dabei trotzdem noch den Überblick zu behalten. Daher werden Plattformprodukte bzw. Cluster-Management-Systeme wie Kubernetes oder DC/OS immer wichtiger und halten in immer mehr Bereiche Einzug. In dieser Session werden wir einen Java-basierten Service implementieren und ihn mit einer Handvoll umgebenden Services zunächst mit Docker-Compose starten. Danach werden wir sehen, wie einfach es ist, die gleiche verteilte Anwendung in DC/OS auf dem eigenen Cluster zu deployen und zu monitoren. Danach werden wir einzelne Services unabhängig von der restlichen Anwendung skalieren und im laufenden Betrieb aktualisieren. Und das Coolste dabei: Wir können uns alle Vorgänge visualisieren lassen.

Mobarchitekturverbesserung – Technische Schulden im Team erkennen und abbauen

Fast jedes Softwaresystem wird mit guten Vorsätzen, aber unter schwierigen Bedingungen entwickelt. Deadlines, unterschiedliche Qualifikationen und Missverständnisse im Entwicklungsteam führen dazu, dass die Architektur des Systems erodiert und Schritt für Schritt technische Schulden aufgebaut werden. In diesem Vortrag zeige ich Ihnen, wie Sie Ihre Architektur im Team analysieren, diskutieren und schnell Refactorings entwickeln können. Das gemeinsame Verständnis über die Architektur wird bei der Mobarchitekturverbesserung geschärft und jeder im Entwicklungsteam versteht, wie der Sourcecode organisiert und weiterentwickelt werden muss, um technische Schulden zu verhindern. Meine Empfehlungen basieren auf über hundert Analysen in Java, C#, C++, PHP und ABAP.

Keine Slides vorhanden
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.

Microservices: Der Schnitt ist entscheidend!

Microservices ermöglichen es, dass Teams unabhängig voneinander arbeiten und neue Features ohne großen Aufwand in Produktion gebracht werden können. Und natürlich können Microservices einzeln skaliert werden, sodass bei hoher Last oft nur ein Service in mehr Instanzen laufen muss. Dazu muss die Aufteilung in Microservices aber stimmen – und das ist gar nicht so einfach. Dieser Vortrag zeigt, wie Microservices geschnitten werden und so die verschiedenen fachlichen, organisatorischen und technischen Rahmenbedingungen ideal unterstützen können.

JavaScript im Jahr 2016

Kaum eine Sprache hat sich in den vergangenen Jahren so stark gewandelt wie JavaScript. Während die Sprache früher als Spielerei abgetan wurde, hat sich besonders in den letzten Sprachversionen gezeigt, dass man auch in JavaScript professionellen und hochwertigen Code schreiben kann. Dieser Talk zeigt anhand konkreter Beispiele, in welchen Bereichen es deutliche Verbesserungen gegeben hat und auf welche Weise man heute die typischen JavaScript-Fallstricke vermeiden kann. Dabei stehen besonders die neuesten Sprachversionen ECMAScript 2015 und 2016 im Fokus, die sich mithilfe von Transpilern auch problemlos in älteren Browsern nutzen lassen.

Wie wirkt sich eine PAAS-Umgebung auf die Softwarearchitektur aus?

PAAS-Lösungen wie Cloud Foundry oder OpenShift bringen viele Vorteile für den Betrieb und die Entwicklung einer Anwendung mit sich. Aber kann tatsächlich eine bestehende Anwendung ohne Änderung auf einer PAAS-Umgebung betrieben werden? In der Tat ist das häufig so, doch die Frage sollte eine ganz andere sein: Ergibt es Sinn, eine Anwendung unverändert auf einer Plattform zu betreiben, bei der ganz andere Bedingungen herrschen und andere Annahmen getroffen werden, wie z. B. die Art der Skalierung, Netzwerklatenzzeiten, Restart-Verhalten usw. Was sollte ich also beachten, wenn ich meine Anwendung in eine PAAS-Umgebung bringe? Welche Architekturpatterns eignen sich für PAAS? Wie könnte ein Migrationsplan aussehen?

10:45 bis 11:45
Schliemanns Erben – Systemlandschaften wirkungsvoll (nach-)dokumentieren

Softwaresysteme wachsen historisch. Das gilt nicht als Idealzustand, aber so ist die Realität nun mal. Für Systemlandschaften gilt es erst recht. IT-Trendwellen schwappen über Unternehmen und hinterlassen ihre Spuren in den Anwendungen, geglückte Würfe ebenso wie gescheiterte Initiativen. (De-)Zentralisierung, Objektorientierung, SOA, Standardisierung, Cloud ... Manche Unternehmen haben Vermächtnisse (engl. Legacy) aus drei Jahrzehnten im Betrieb. In vielen Fällen wird das Wissen darum nur mündlich weitergegeben. Die Konsequenz: langwierige und lückenhafte Einarbeitung, Unsicherheiten bei Änderungen und Neuentwicklungen. Im Extremfall führt dies zu geringem Vertrauen bei Entscheidern. Dabei ist der Aufwand, das Wesentliche fest und aktuell zu halten, gar nicht groß. In dieser Session zeige ich, wie ihr bestehende Systemlandschaften kartografiert und es allen Beteiligten leichter macht, sich zurechtzufinden und informierte Entscheidungen zu treffen. Mit Anlehnung an Methoden wie arc42 (das initial nur auf Einzelsysteme passt), Beispielen aus echten Ausgrabungen, aber ohne C14.

App war gestern: Mobile Engagement als Teil der Enterprise-Strategie

„Hilfe, wir brauchen eine App!“ Erschreckend, aber wahr: Nicht selten starten Unternehmen genau so ihre mobilen Projekte. Dabei geht es doch weniger um einzelne Apps, als vielmehr darum, mit einem sinnvollen „Mobile Engagement“ die bestehende Enterprise-(IT-)Strategie gewinnbringend zu ergänzen. Mobile Mehrwerte schaffen ist der Schlüssel zum Erfolg. Doch wie findet man diese? Und hat man sie einmal gefunden, ist dann das Backend überhaupt in der Lage, den neuen Channel „Mobile“ sinnvoll zu bedienen? Keine Frage, eine Mobile-Enterprise-Strategie muss her! Die Session zeigt die typischen Stolpersteine vieler Unternehmern auf dem Weg in die Wunderwelt „Mobile“ und gibt praxisnahe Tipps an die Hand, wie man diese mit ein wenig Planung umgehen kann. Am Ende steht – statt einer Menge Frust – eine gelungenes Mobile Engagement mit Anbindung an das Unternehmens-Backend.

paydirekt: Microservices machen die Organisation agil

Das Onlinebezahlsystem paydirekt der deutschen Banken und Sparkassen setzt auf eine Microservices-Architektur. Im Talk wird gezeigt, wie durch Microservices Geschäftsnutzen generiert wird, wie die IT-Architektur auf die teilnehmenden Banken und Sparkassen ausstrahlt und wie technische Aspekte wie Event-Sourcing und Fail-Fast als fachliche Anforderungen formuliert werden.

Next Level Redis with Spring

Mit seinen sieben Jahren zählt Redis zu den beliebteste Open Source Key Value Stores. Spring Data Redis Lead Christoph Strobl führt Sie durch High Availability und Cluster Set-ups. Grundlegende Redis Commands, Object Hash Mapping und Secondary-Index-Strukturen begleiten uns auf dem Weg, mit Spring das Beste für Ihre Applikation herauszuholen.

Mobile Development: Take Advantage of Test Automation

Automated testing of mobile applications can shorten your delivery cycle, improve your application’s reliability, and save you time. Join this talk to learn how to deliver these benefits to your team. You’ll be introduced to the Appium testing framework, learn how to automate a use case, and run your tests on real devices in the cloud. Finally, you’ll be introduced to test automation best practices that will allow you to scale your test coverage more effectively.

Maschinelles Lernen für Java-Entwickler

Man muss kein Prophet sein, um den weiteren Einzug von maschinellem Lernen (ML) in unseren Alltag vorherzusagen. Der Erfolg von angewandtem ML hängt davon ab, dass nicht nur Data Scientists sich durch Daten wühlen und einen Wert darin entdecken, sondern dass diese Erkenntnisse auch „auf die Straße“ gebracht werden. Hier sind Java-Entwickler und DevOps-Enthusiasten gefragt. Im Vortrag führe ich zunächst die wichtigsten Kennzahlen und „Best Practices“ für das Lernen von Modellen aus Daten ein. Dann schauen wir uns ausgewählte Beispiele an, unter anderem mit DL4J und Weka. Damit wird einerseits die Nutzung dieser beiden Bibliotheken demonstriert. Darauf aufbauend präsentiere ich jedoch auch Designempfehlungen für den Entwurf von ML-Systemen, indem die wichtigsten Abstraktionen identifiziert werden. Abschließend liste ich aktuelle Herausforderungen für ein angewandtes Maschinelles Lernen.

Keine Slides vorhanden
TypeScript – das bessere JavaScript!?

JavaScript ist eine dynamisch typisierte Programmiersprache. Obwohl diese Eigenschaft manchmal sehr nützlich sein kann, bringt das fehlende Typensystem auch deutliche Nachteile mit sich. Während der Compiler bei statisch typisierten Sprachen bereits sehr früh auf Fehler hinweisen kann, so fallen bei JavaScript Probleme oft erst zur Laufzeit auf. Das macht Refactorings fehleranfällig, und die Arbeit an großen Codebasen wird enorm erschwert. TypeScript ergänzt JavaScript um ein mächtiges Typensystem, welches die Vorteile einer statisch typisierten Sprache auch in die JavaScript-Welt bringt. Darüber hinaus bietet TypeScript sogar eine große Menge von modernen JavaScript-Sprachfeatures aus dem aktuellen ECMAScript-Standard. Diese Session stellt TypeScript anhand konkreter Beispiele vor und zeigt, wie einfach sich TypeScript in klassischen Java-Webanwendungen nutzen lässt.

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 zur Entdeckungsreise ein 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.

DevOps @Scale

Remember the times when one server was enough? And a guy named “sysadmin” was babysitting it along with his other duties of installing MS Office for everybody? For better or for worse, those times are long gone. Today, companies manage tens of thousands of servers and perform thousands of production changes per day. In this talk we will look at the resources, techniques and tools needed for managing DevOps at Scale and we will discuss the challenges that companies encounter when they hit it.

12:00 bis 13:00
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.

Keine Slides vorhanden
Write once, run anywhere – jetzt aber!? Cross-Plattform-Anwendungen mit Angular 2, Cordova und Electron

Der Traum von einer einzigen Codebasis für alle Clientplattformen: Er lebt immer noch. In dieser Session zeigt Ihnen Christian Weyer, wie weit dieser Traum mit HTML5/JavaScript und aktuellen Cross-Plattform-Werkzeugen Wirklichkeit werden kann. Auf Basis moderner UI/UX-Konzepte lassen sich Oberflächen für Desktops, Tablets und Smartphones entwerfen – mit einer Codebasis. Mischt man diesen Ansatz mit Tools wie Cordova und Electron, so kann man mit Single-Page-Applications-(SPA-)Frameworks wie Angular 2 echte Anwendungen für alle relevanten Plattformen und Devicegrößen bauen, Mobile und Desktop: Windows, Linux, Mac OS, iOS, Android und Co. – und natürlich den Browser. Kommen Sie vorbei und sehen Sie all dies in Action!

Instrumentierung – das Werkzeug der Werkzeugmacher

Das Package java.lang.instrument führt das Konzept eines Java-Agenten ein, der Klassen beim Laden in die VM oder bereits geladene Klassen innerhalb der VM ändern kann. Man kann daher mit Standard-Java ohne zusätzliche Bibliotheken Klassen zur Laufzeit ändern. Die Änderungen sind beschränkt auf (neue) Methodenrümpfe und Konstanten. Das Hinzufügen, Löschen oder Umbenennen von Methoden und Variablen ist nicht erlaubt. Dieser Vortrag führt die Konzepte der Instrumentierung ein und zeigt, wie einfach das Ersetzen von Klassen zur Laufzeit (Hot-Swap) mit Standard-Java ist. Der Vortrag belegt diese „Einfachheit“ durch kleinere Demos. Die letze Demo zeigt, wie eine JRebel-Light-Variante mit Standard-Java ohne externe Bibliotheken gebaut werden kann.

Was gibts Neues in Spring Data?

Das Spring-Data-Projekt organisiert seine Releases in ungefähr halbjährlichen Release-Trains, die ein gutes Duzend Module enthalten, um Datenzugriffsschichten für verschiedene Datenbanken zu implementieren. Der Vortrag widmet sich den wichtigsten Features der letzten Releases: Erweiterung der Unterstützung von Java 8, ein Programmiermodell für Projektionen in Repositories und Store-spezifische Änderungen in JPA, MongoDB, Redis und den Spring-Data-Communitymodulen.

Moderne App-Entwicklung am Beispiel waipu.tv

Eine App "from scratch" zu entwickeln, ist der Traum jedes Entwicklers. Endlich kann mal der Code sauber und durchdacht aufgebaut werden, man setzt hippe neue Libraries ein und muss sich nicht mit Altlasten herumschlagen. Wir haben bei der Entwicklung der waipu.tv-Android-App u.a. RxJava, Retrofit und Dagger verwendet und versucht, eine saubere App-Architektur auf die Beine zu stellen. Dass Dagger einen Zeit- und Mehraufwand bedeutet, mit RxJava leicht Memory Leaks zustande kommen und eine MVP-Architektur lange Callback-Strecken nach sich ziehen kann, sind nur einige der Herausforderungen, auf die wir gestoßen sind. Wie sich die Bibliotheken im Produktiveinsatz geschlagen haben und welche Lektionen wir gelernt haben, zeigen wir im Vortrag anhand von einigen Praxisbeispielen.

Modern Enterprise Applications: Mit OpenShift "Cloud Native" entwickeln

Schnell, elastisch, fehlerresistent und serverlos. Um die neuen Möglichkeiten von Cloud-Systemen auszureizen, benötigt es geeignete Architekturen, Frameworks und effiziente Entwicklungsprozesse. An konkreten Use Cases sollen die Möglichkeiten der RH OpenShift PaaS aufgezeigt und geeignete Tools und Komponenten aus dem Kubernetes- und Open-Source-Ökosystem genutzt werden, um moderne Applikationen zu bauen, die auch in kritischen Unternehmensbereichen bestehen und das Ensemble an Legacy-Software hoffentlich schrittweise ersetzen können.

Serverless Architecture – Hochskalierbare Anwendungen ohne Server

Klassische Multi-Tier-Architekturen auf Basis von Applikationsservern und Datenbanken waren lange Zeit das Rückgrat skalierbarer Infrastrukturen. Mithilfe dieses Architekturansatzes konnten Komponenten relativ einfach voneinander isoliert werden, was die granulare Skalierbarkeit der Anwendung erhöht. Ein deutlich einfacherer Architekturansatz ist die so genannte „Serverless Architecture“. In diesem Vortrag wird gezeigt, wie hochskalierbare Anwendungen ohne Server mithilfe vom Amazon API Gateway, AWS Lambda, Amazon S3, Amazon DynamoDB und dem Serverless-Framework gebaut werden können.

Docker in der „Non-containerized“-Welt

Um das Potenzial agiler Softwareentwicklung voll ausschöpfen zu können, sind neue und vor allem schnellere Methoden der Anwendungsauslieferung nötig. Diese Methoden müssen jedoch auch mit der vorhandenen Infrastruktur integrierbar sein. In diesem Vortrag erfahren Sie, wie Sie Docker mit der „Non-containerized“-Welt verbinden, d.h. verlinken von Applikationen innerhalb und außerhalb von Containern, um einen ganzheitlichen Automatisierungsprozess zu erreichen. Lernen Sie, wie Sie Continuous Delivery selbst für komplexe Applikationen erreichen können. Entdecken Sie die Vorteile einer Einbindung von Docker in den gesamten Bereitstellungs- und Deployment-Prozess, um Transparenz und Übersicht über alle Aktivitäten hinweg zu schaffen.

Der Enterprise-Java-Architekt – eine aussterbende Gattung!?

Herzlich willkommen im Elfenbeinturm! Hier können Sie noch sehen, wie Software- und Systemarchitekturen am Reißbrett entworfen werden. Am Reißbrett? Wirklich? Hatten wir diese Zeit nicht hinter uns gelassen, schon vor vielen Jahren? Sind wir nicht in einer Zeit angekommen, in der agile und eher fachlich orientierte Teams Technologie einfach nutzt? Gänzlich ohne eigene Frameworks und Abstraktionen? Scheinbar nicht – wie viele Unternehmen und damit verbundene Organisationsstrukturen immer noch beweisen. Es wird Zeit, diese historischen Monster endlich in den Ruhestand zu schicken und der Rolle des Enterprise-Architekten ein neues Aufgabenspektrum anzuvertrauen, sodass technologisches Momentum zugelassen und dennoch Wildwuchs vermieden wird. Der moderne Enterprise-Java-Architekt in Zeiten sich auflösender zentralistischer Strukturen – modelliert in einer einzigen Session.

14:30 bis 15:30
Keine Magie: Individuelle Spring-Boot-Module

Rund um Spring Boot hat sich ein Ökosystem von „Startern“ entwickelt: Module, die automatische Konfiguration und Abhängigkeiten mitbringen und dabei helfen, vollständige Anwendungen und Microservices zu modularisieren. Durch „opionated defaults“, die nur solange aktiv sind, wie man nicht selbst tätig wird, wird ein reibungsloser Start gewährleistet. In diesem Vortrag werde ich zeigen, dass dahinter keine Magie steckt, sondern ein sehr nachvollziehbarer, einfacher Automatismus, der auch für eigene Module sinnvoll genutzt werden kann. Während der Demo wird ein individueller Dialekt für die Templatesprache Thymeleaf entwickelt, der mit einem Spring-Boot-Starter-Modul zur Verfügung gestellt wird.

Kubernetes Orchestration im Einsatz

Dieser Vortrag gibt einen Überblick über die technischen Lösungen für die Orchestrierung von Kubernetes-basierten Microservices. Erzeugen, Betreiben und Ändern von vielen Maschinen und Containern auf dem eigenen Notebook, im DataCenter 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 Kubernetes-Ökosystem bietet hier vielversprechende Werkzeuge um automatische Skalierung, Fehlerbehebung und Deployment. Der Vortrag stellt den praktischen Nutzen der Kubernetes-Plattform vor und demonstriert den praktischen Umgang damit.

Mind the Gap – Architektur vs. Code

Softwarearchitekturen werden mit Begriffen beschrieben, für die in Programmiersprachen keine überprüfbaren Repräsentationen existieren. Die Folge: Architekturdefinitionen mit ihren Konzepten und Constraints sind nur als Dokumentation vorhanden, über deren Inhalt alle Entwickler stetig auf dem Laufenden gehalten werden müssen. Dieses Vorgehen scheitert meist in der Praxis, ein Auseinanderdriften von Architektur und Codebasis ist kaum zu verhindern. Der Vortrag präsentiert einen Ansatz der automatisierten Codeanalyse, welcher Informationen aus strukturrelevanten Elementen – vom Build-System über Klassen bis hin zu Frameworkdeskriptoren – extrahiert und in einer Datenbank ablegt. Die gewonnenen Daten können über Abfragen für umfassende Explorationen und Visualisierungen genutzt werden, stellen aber auch die Basis für die Anreicherung um projektspezifische Konzepte aus der jeweiligen Design- und Architektursprache dar. Auf dieser Grundlage lassen sich Validierungen durchführen, die Entwicklern schnell aussagekräftiges Feedback über vorliegende Verletzungen geben.

JSON Schema – the Good, the Bad and the Ugly

JSON Schema (http://json-schema.org) is a web standard to define valid JSON objects. The definition is JSON itself and basically describes all properties of an object and their types. Defining a JSON Schema for your data enables a number of interesting use-cases. Just to name one: For a RESTful API the JSON content of the requests and replies can be exactly defined (also see Open API) and in addition any JSON can be validated against its JSON Schema – client- and server-side based on the same definition. Of course where there is light there is also shadow. With JSON Schema you are required to define your data and the available tooling to do so is not really great (yet). In this presentation we will provide you with criteria to judge whether JSON Schema could be beneficial for your project or is just too much overhead.

Das Performancemodell des Stream API

Worauf muss man bei der Verwendung von Stream-Operationen bzgl. der Performance achten? Die Session behandelt u. a. den Performancevergleich von einem sequenziellen Stream mit einer for-Schleife und erläutert, welche Eigenschaften der auszuführenden Funktionalität den Performanceunterschied ausmachen. Des Weiteren wird diskutiert, wann und um wieviel parallele Stream-Abarbeitung schneller ist als sequenzielle. Dazu sehen wir uns interne Details der Stream-Implementierung wie Iterator/Spliterator und Reduktions- vs. Akkumulationsalgorithmen an.  Wann lohnt sich parallele Abarbeitung bzw. wann eher nicht?

Operating the Spotify Backend

Spotify has a highly distributed engineering organization with more than 80 autonomous teams and has been experiencing fast growth. Matching the organization, the Spotify backend consists of hundreds of small services, each owned by one of the teams. Teams not only build their services, they fully operate them. In this talk, you’ll learn how Spotify went from a small centralized operations team, to fully distributed operations and how that has enabled us to both grow as a company and constantly scale our backend to an ever growing number of users.

Push-Nachrichten für Web und Smartphone

Push-Nachrichten sind ein zentraler Bestandteil von mobilen Betriebsystemen und bieten eine komfortable Möglichkeit, um mit dem App-Benutzer in Kontakt zu treten. Um diese Interaktion auch ins Web zu exportieren, bieten die großen Hersteller seit Kurzem den Versand von Push-Nachrichten für den hauseigenen Browser an. Das stellt den Entwickler vor Probleme: Neben den bisher traditionell unterschiedlichen Push-Plattformen wie Apple/iOS oder Google/Android kommen nun auch verschiedene Browser hinzu. Seit 2015 arbeiten Mozilla, Mircosoft und Google gemeinsam an dem „WebPush“-Standard. Dieser besteht aus einem JavaScript-API, sowie einem HTTP/2-basierten und plattformunabhängigen Protokoll. Google hat bereits angekündigt, das neue WebPush-Protokoll in Chrome und GCM/FCM in der Zukunft zu integrieren. Der Vortrag stellt WebPush anhand von Client- und Server-Implementierungen in Java und JavaScript vor.

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.

16:15 bis 17:15
Get past the Syntax, the Real Scare is in the Semantics

We often hear programmers complain about the syntax, especially when learning a new language. It turns out that, while syntax plays a role in our ability to learn and use languages, the real force we have to deal with is in the semantics. Once we get past the syntax, the semantics is where the real power and the real scare is. Curious to learn more?

Keine Slides vorhanden

Friday - 11. November 2016

09:00 bis 17:00
Analyse und Konfiguration der Garbage-Kollektoren in der HotSpot JVM

In diesem Workshop schauen wir an, wie die Garbage-Collection-Algorithmen in der HotSpot JVM von Oracle (aka OpenJDK) funktionieren und wie man sie konfigurieren kann. 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 wird in der Regel die Trace-Ausgabe der Garbage Collectors 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. Dieses Programm wird verwendet, um GC-Analysewerkzeuge auszuprobieren, die den GC-Trace analysieren helfen. Anschließend wird die Garbage Collection neu konfiguriert und der Erfolg des Tunings überprüft. Ab Java 9 wird der „Garbage First“-(G1-)Kollektor der Default-GC-Algorithmus sein. Selbstverständlich sehen wir uns auch seine Eigenschaften und Konfigurationsmöglichkeiten an.

Keine Slides vorhanden
Coole Web-Apps mit Angular 2, TypeScript und Spring Boot

In diesem Workshop werden wir eine kleine, aber vollständige Webapplikation entwickeln. Der Clientteil basiert auf Angular 2, 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 Tödter 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 Angular 2, TypeScript und die gängigen JavaScript-Entwicklungstools wie gulp, npm, Bower, Jasmine etc.

Reduce to the Max: vom Java-(EE-)Monolithen zu Microservices in sieben Schritten

Microservices-basierte Architekturen auf der grünen Wiese starten, mag ja noch vorstellbar sein. Was aber, wenn es – wie leider so häufig in der Praxis – einen bestehenden, historisch gewachsenen Monolithen gibt, der schon einmal bessere Tage gesehen hat? Wie kann ein möglicher Migrationspfad aussehen, und mit welchen Stolperfallen muss dabei gerechnet werden? Im Rahmen des Workshops nehmen wir uns anhand eines konkreten Beispiels einen solchen Monolithen vor, überlegen, welche Services sich sinnvoll herauslösen lassen und welche Patterns dazu verwendet werden sollten. Natürlich ergeben sich durch die neue Architektur auch neue Herausforderungen, denen wir uns stellen müssen. Aber auch das kann uns nicht stoppen ...

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, welche Sie im Rahmen Ihrer eigenen Softwareentwicklung umsetzen können, um die Sicherheit Ihrer Projekte nachhaltig zu erhöhen.

Resilient Software Design in Theory and Practice

To make the complex, distributed and highly interconnected system landscapes of today robust, responsive and highly available, we need to implement resilience into them at application level. Many patterns for implementing resilience into an application exist. The daunting questions are how to slice (design) an application and which patterns to pick and combine in order to match your specific needs best. In the first part of this tutorial we will get an overview about the resilience pattern landscape, which patterns exist, how to organize and select them and how to design resilient applications. In the second part of this tutorial you will have the opportunity to apply the just learned contents to a real-life case study and design and discuss your own resilient solution. After this session, you will have a much deeper understanding how to design a solution that satisfies your specific robustness needs.

X
- Gib Deinen Standort ein -
- or -