Passwort vergessen?

ALL YOU CAN READ!

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

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


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

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

Registrierung

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

Direkt bestellen

DIREKT BESTELLEN

Bestehendes Abonnement zum entwickler.kiosk-Zugang erweitern

Bitte wählen Sie Ihr bestehendes Abonnement:

Volltextsuche

Ihre Suchergebnisse für:

Entwickler Magazin 5.18

Windows Developer 9.18

SharePoint Kompendiu...

Java Magazin 9.18

W-JAX 2017

06. bis 10. November 2017
Arabellastraße 6 The Westin Grand München
81925 , München - Deutschland

Monday - 06. November 2017

09:00 bis 17:00
Akka Workshop – So baut man robuste und skalierbare Systeme mit Akka

Montag, 6.November 2017: Asynchrone Nachrichten statt Methodenaufrufe, fachliche Actor-Hierarchien statt Schichtenarchitektur, Supervisor und "let it crash" statt langer Stack Traces, Zustand in Anwendungskomponenten statt zustandsloser Server, Sharding statt identischer Serverinstanzen - Akka erlaubt völlig andere Architekturen als z.B. Spring oder Java EE. Es bringt andere Trade-offs als klassische Komponentenframeworks mit und eröffnet eine weitere Sicht auf Architektur jenseits etablierter Patterns. Dieser Workshop gibt eine praxisorientierte, quelltextzentrierte Einführung in Akka. Wir bauen ein lauffähiges System, an dem wir reaktive Patterns kennenlernen und neue architektonische Wege ausprobieren. Die Beispiele sind vollständig in Java, aber wenn jemand die Übungen lieber in Scala implementieren will, unterstütze ich ihn dabei gern.

Microservices-Workshop: REST, Kubernetes, UI-Integration und asynchron als alternative Ansätze

Dieser Power Workshop gibt zunächst eine Einführung in Microservices und zeigt dann drei konkrete Möglichkeiten zur Umsetzung von Microservices nicht nur mit Java: REST Microservices mit Kubernetes, UI-Integration auf Client oder Service und asynchrone Microservices mit Kafka. Konkrete Codebeispiele illustrieren die Ansätze und können ein Startpunkt für eine eigene Umsetzung sein. Die Teilnehmer können anschließend Vor- und Nachteile abwägen und die Implementierung von Microservices mit diesen Ansätzen starten.

Domain-driven Design von A bis Z

In den Zeiten von Microservices wird klar, wie wichtig Domain-driven Design (DDD) nach wie vor ist. Denn nur mit strategischem Design (also DDD im Großen) und dem Aufteilen der Domäne in Bounded Contexts kann ein sinnvoller Schnitt für die Microservices gefunden werden. Aber auch taktisches Design (also DDD im Kleinen) mit der Ubiquitous Language und den "Building Blocks" Entities, Value Objects, Aggregates, Services und Co. hat nichts an Aktualität verloren. In diesem Workshop nehmen wir uns einen Tag Zeit, um DDD näher anzuschauen. Der Workshop besteht aus abwechselnd Vortrag, Diskussion und Übungen.

Java-EE-7/8-Workshop - Enterprise-Anwendungen ohne Ballast

Java-EE-Anwendungen lassen sich sehr schnell entwickeln, einfacher sogar als im Standalone-Umfeld. Und esoterische Frameworks werden nicht benötigt: Der Standardstack reicht für serverseitige Anwendungen vollkommen aus. Wir bauen in diesem Workshop eine durchgängige Beispielanwendung auf und nutzen dazu JPA, CDI, JAX-RS als Backend sowie Angular im Browser. Je nach Wunsch der Teilnehmer gehen wir am Ende auf weitere Teile der Plattform wie JSF, Timer oder Batch ein.Das Beispiel wird interaktiv entwickelt und steht allen 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 einem Java-EE-Server wie WildFly, Payara oder WebSphere LP. Details zur Vorbereitung stehen ab Mitte Oktober auf https://github.com/GEDOPLAN/javaee-ohne-ballast.

Cloud-Workshop: Vom Cloud-Muffel zum Cloud-Native in sechs Stunden

Alle reden von der Cloud, nur man selbst scheint noch meilenweit davon entfernt. Zu viele offene Fragen, zu wenig konkrete Antworten. Und genau das soll sich in diesem Workshop ändern. Gemeinsam nehmen wir uns ein typisches Anwendungsszenario aus dem Enterprise-Umfeld vor und migrieren es Schritt für Schritt in die Cloud. Beginnend bei der Plattforminfrastruktur (DB, Storage etc.) über Standardservices (User Management) bis hin zur anwendungsspezifischen Businesslogik. Am Ende steht eine rein Cloud-basierte Lösung und natürlich die Diskussion, ob wir es nicht evtl. ein wenig übertrieben haben. Denn nicht alles, was technologisch möglich ist, macht auch für jeden Kontext Sinn. Getreu dem Motto "mittendrin statt nur dabei" darf jeder auch gerne selber Hand anlegen.

Sold out: Resilient Software Design Workshop – 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.This workshop will address those questions in three parts:* In the first part you will learn about the challenges how to design applications in a resilient way, get an overview about the resilience pattern landscape, learn some of the most important patterns and when to apply them.* In the second part 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.* In the last part we will complete the workshop with a peek in some complementing topics, like some advanced patterns, a resilient design cycle and how to introduce the topic into the software development process.After this workshop, you will have a much deeper understanding how to design solutions that satisfy your specific robustness needs

Angular-Workshop: Alles für den erfolgreichen Projektstart mit Angular

In diesem Workshop erfahren Sie von Manfred Steyer, Google Developer Expert und Microsoft MVP, alles, was Sie für den erfolgreichen Projektstart mit dem populären und weit verbreiteten Webframework Angular benötigen. Sie erfahren, auf welche Weise aus .NET bekannte Konzepte wie Komponenten oder Dependency Injection mit Angular umgesetzt werden und wie Sie dank TypeScript Klassen und eine statische Typisierung nutzen können. Zum Einstieg generiert Manfred mit dem Angular CLI eine bewährte Projektstruktur und entwickelt eine Komponente für einen ersten Anwendungsfall. Dabei zeigt er, wie Sie Web-APIs einbinden und was die Reactive Extensions for JavaScript (RxJS) damit zu tun haben. Anschließend geht er auf die verschiedenen Arten der Datenbindung ein und zeigt on the fly die Möglichkeiten von TypeScript auf. Danach erfahren Sie, wie man allgemeine Routen in Services auslagert und mit Dependency Injection die Flexibilität einer Anwendung steigert. Im Laufe der Zeit wird die Anwendung um zusätzliche Komponenten erweitert, anhand derer Manfred weitere Konzepte von Angular erklärt. Navigationsstrukturen werden mit dem Angular Router geschaffen, und zur Testautomatisierung kommt das Framework Jasmine zum Einsatz. Am Ende des Workshops liegt eine Angular-Anwendung vor, die alle wichtigen Konzepte enthält.

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

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

Keine Slides vorhanden
09:45 bis 10:30
Feuer plus Wasser - das agile Pflichtenheft

Softwareentwicklung und Integration von Software in vorhandene IT-Landschaften ist aufgrund der damit verbundenen Komplexität eine Expedition ins Ungewisse. Um diese Ungewissheit in den Griff zu bekommen, versuchen viele Organisationen mit einem Pflichtenheft vorab möglichst präzise zu beschreiben, was die gewünschte Software können und was sie als Festpreis kosten soll. Im behördlichen Umfeld ist die Vergabe ohne Pflichtenheft, Festpreis und präzisem Plan für die gesamte Projektlaufzeit häufig sogar undenkbar. Die Praxis zeigt, dass dieses Vorgehen regelmäßig scheitert: Anforderungen und Schnittstellen können im Vorweg nicht eindeutig, widerspruchsfrei und vollständig beschrieben werden. Innovative Systeme, die für die Organisation neu sind und ihre Prozesse verändern werden, können eigentlich nur agil und mit einem sich im Entwicklungsprozess verändernden Ziel entwickelt werden. Hält man sich sklavisch an das fixe Pflichtenheft, dann muss an der Software über lange Zeit nachgebessert werden. Viel Geld wird verschenkt und Innovationszyklen werden verpasst.Den Ausweg aus diesem Dilemma – das agile Pflichtenheft – haben wir in den vergangenen Jahren in verschiedenen Kundenprojekten erprobt. Ich berichte von unseren Erfahrungen der letzten Jahre und wie es uns gelungen ist, Festpreisprojekte mit Pflichtenheft und agilem Vorgehen zu verheiraten.

Keine Slides vorhanden
11:00 bis 11:45
Agilität braucht technische Exzellenz

Sie wollen agil werden. Also benennen Sie die Rollen in Ihren Teams um, machen alle Meetings und Rituale, über die Sie im Scrum Guide gelesen haben, und machen Zwei-Wochen-Sprints.   Aber das ist nicht genug. Um wirklich agil zu werden - um schneller nützliche Software an echte Kunden zu liefern, und das zuverlässiger und mit weniger Risiko - müssen Sie in allem, was Sie tun, ausgesprochen gut werden.   In diesem Vortrag erkläre ich, warum "Excellence" in Produktmanagement, Entwicklung, Test und Operations notwendig ist, und wie sie dort hin kommen.

11:45 bis 12:30
Warum Scrum ohne Inspect and Adapt nicht funktioniert

In der agilen Entwicklung ist Transparenz als Grundlage für das Prinzip von Inspektion und Adaption von zentraler Bedeutung, um ein empirisches Vorgehen zu ermöglichen. Ziel ist es, während der Entwicklung eines Produkts kontinuierlich überprüfen zu können, ob man auf dem richtigen Weg ist. Anpassungen am Produkt oder am verwendeten Vorgehen sollen fortlaufend umgesetzt werden können, um ein Produkt von höchstmöglichem Wert in der erforderlichen Qualität zu erhalten. Voraussetzung dafür ist es, möglichst umfassendes und zeitnahes Feedback zu allen Vorgängen in einem agilen Projekt zu haben. Fasst man den Begriff „Test“ etwas weiter und inkludiert neben Softwaretests auch die Events, wie sie in Scrum definiert sind, wird klar, dass wir uns mit dem Thema „Test“ als Mittel für zeitnahes und umfassendes Feedback am Kern agiler Entwicklung bewegen. Ohne Test ist die schnelle Entwicklung von Produkten mit hohem Wert und hoher Qualität nicht möglich. Der Vortrag zeigt auf, wie über Tests Transparenz entsteht und wie dadurch agile Entwicklung überhaupt erst ermöglicht wird.

13:30 bis 14:15
Technologieentscheidungen in selbstorganisierten Teams

Es fühlt sich völlig natürlich an: Technologieentscheidungen werden von den Entwicklern in den Teams getroffen – nicht durch den CTO oder einen übergeordneten Architekten. Die Entwickler in den selbstorganisierten Teams kennen die zu lösenden Probleme am besten und haben meist auch einen guten Überblick über die möglichen technischen Lösungen. Nach einigen Wochen aber entsteht Streit: Jeder will mitreden. Die Entwickler sind nicht immer alle einer Meinung. Wie viele Standards brauchen wir für alle Teams? Ein Praxisbericht über sinnvolle Rahmenbedingungen für Technologieentscheidungen in selbstorganisierten Teams.

14:15 bis 15:00
Selbstorganisation und agile Teams – zwischen Autonomie, Selbstbeschränkung und Chaos

„Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams“. Dieses Prinzip aus dem Manifest für agile Softwareentwicklung basiert auf Erkenntnissen des menschlichen Zusammenwirkens, die uralt sind. Selbstorganisation eignet sich als Organisationsform hervorragend, um den Herausforderungen einer komplexen und dynamischen Umwelt gerecht zu werden. Durch Selbstorganisation entstehen aber auch Probleme. Probleme, die dazu führen können, dass Selbstorganisation ins Chaos führt und Menschen darunter leiden. Was Selbstorganisation bedeutet, welche Voraussetzungen gegeben sein müssen, welche neuen Herausforderungen entstehen und wie ein Team dorthin kommt, beleuchtet diese Session am konkreten Beispiel diverser Teams.

15:30 bis 16:15
Auf zum Mond! Agilität und DevOps vor fünfzig Jahren - und heute?

Unvollständige Anforderungen, zahlreiche technische Probleme, ein unrealistischer Zeitplan - wer kennt das nicht? Dabei soll es erstmal nicht um Softwareentwicklung gehen, sondern um das Apollo-Programm. Ohne dass je ein Amerikaner im Erdorbit war, sollte innerhalb von neun Jahren ein Mensch auf dem Mond landen. Unvorstellbar! Aber IT kann man nicht mit Raketentechnik vergleichen - oder doch? Wie sind die echten Raketentechniker mit Unklarheiten umgegangen? Wie haben die Teams aus Fehlern gelernt? Wie hat Mission Control für einen stabilen Ablauf gesorgt? Und vor allem: Welche Charakterköpfe haben das Projekt geleitet, und welche Ideen hatten sie über Teams und deren Führung? Dieser Blick über den Tellerrand zeigt, wo wir bei Agilität und DevOps auf dem richtigen Weg sind, warum manches auch mit einem agilen Vorgehen schwierig ist und wo wir noch ein paar gute Ideen für agile Teams, Leadership und Zusammenarbeit übernehmen können.

16:15 bis 17:00
Wrap-up und Diskussion mit den Speakern des Agile Days

Zum Abschluss des Agile Days bietet sich Gelegenheit, mit den Sprechern des Agile Days zu diskutieren und die wichtigsten Fragestellungen, die sich im Laufe des Tages ergeben haben, zu vertiefen. Besonders wichtig dabei: Die abschließende Diskussion bietet allen Teilnehmern Gelegenheit für Diskussionsbeiträge und Feedback.

Keine Slides vorhanden

Tuesday - 07. November 2017

09:00 bis 09:30
Begrüßung und Eröffnung der W-JAX 2017

Sebastian Meyen, Program Chair, begrüßt die Teilnehmer der W-JAX 2017, führt in das Programm ein und gibt wichtige Hinweise zum Ablauf der Konferenz.

Keine Slides vorhanden
09:30 bis 10:00
It’s a small World after all. How thinking small is changing Software Development Big Time

The world is changing fast. More precisely, the world is changing at increasing speed. This means things that were not possibly five years ago come into reach. Incumbent organizations need to adopt fast to keep up with new competitors that use new technologies easier, faster and better than they do. As a result, every aspect of software changes towards smaller. Smaller teams, less management, flatter organizations, shorter cycles and smaller components. During this energizing and fast-paced talk Sander discusses the Cynefin model, shows why software development goes so terribly wrong, how to move beyond Scrum and enterprise agile, why self-organization is not as easy as it looks like, why continuous delivery leads to not doing projects or estimates anymore and why microservices are hard, but essential as underlying foundation.

10:30 bis 11:30
Deep Learning in Mission-critical and scalable Real Time Applications with Open Source Frameworks

This talk shows how to productionize Deep Learning models built by data scientists – a key challenge in most companies. The first part introduces Deep Learning using open source frameworks like TensorFlow, Deeplearning4j or H2O. The second part shows how to deploy the built analytic models to mission-critical and scalable real time applications by leveraging Apache Kafka as streaming platform.

Wie etabliert man DDD im Spannungsfeld zwischen Business und IT?

DDD bietet eine Reihe von Konzepten und Lösungsvorschlägen, die nur dann funktionieren, wenn sich die Stakeholder aus den Fachbereichen und die Entwickler auf eine weitgehende Zusammenarbeit einlassen. Einerseits müssen die Stakeholder für eine umfassende Diskussion ihrer Fachsprache offen sein, damit in den verschiedenen Bounded Contexts jeweils eine einheitliche Ubiquitous Language entsteht. Andererseits müssen die Entwickler ihr gewohntes Terrain der technischen Abstraktionen verlassen. Eine einseitige Konzentration auf die Building Blocks von DDD (Aggregates, Entities, Value Objects ...), führt dazu, dass das volle Potenzial von DDD nicht ausgeschöpft wird. Im Rahmen des Vortrags werden wir Ihnen vorstellen, wie Sie als Architekt in einem solchen Umfeld agieren können. Wir zeigen Ihnen Mittel, Wege und Moderationstechniken, wie Sie anfangs zurückhaltende Stakeholder doch noch überzeugen können, zusammen mit Ihnen effektiv Domain-driven Design zu praktizieren.

Profilers are Lying Hobbitses

Everybody hates a lying hobbit...  But are profilers broken or are we naive in our expectations?  In this talk we will re-visit some broken assumptions and try and get to grips with the limitations of our tools. We'll cover: — Fiction of instruction level profiling  — Skid and PEBS — Safepoint bias, theory and practice — JMC blindspots, theory and practice — Honest-Profiler vs. Async-Profiler — Profilers vs. Inlining and Inlining vs. Programmer — Profilers vs. Multi-threading

Beyond Microservices – ein Blick hinter den Hype

Im Moment sind Microservices der Architekturhype, aber auch Microservices sind nicht die Lösung aller Probleme. Dieser Vortrag schaut hinter den Hype, analysiert die Vor- und Nachteile von Microservices und zeigt alternative Ansätze, die viele Nachteile vermeiden und immer noch die wichtigsten Vorteile bieten. So sind maßgeschneiderte Architekturansätze möglich, die je nach Szenario unterschiedliche Trade-offs umsetzen. Ideen wie Domain-driven Design, Optimierung des Deployments, konsequente Modularisierung und weitgehende Selbstorganisation der Teams spielen dabei eine Rolle.

Digitization Solutions – a new Breed of Software

Digitization is it! One of the biggest current hypes - inside and outside of IT. IT becoming an integral part of business solutions. But what does it actually mean to build such a solution? Can we just go on as before or not? A little spoiler: You end up with a completely new breed of software - a lot closer to modern internet unicorn architectures than to traditional enterprise architectures. In this session we will examine the technical and non-technical forces that digitization solutions need to respond to, how they influence each other and what it does mean for the resulting solution architecture. After the session, you will have kind of a map what challenges you need to master on your way towards a successful digitization solution and know some options you have to address them.

Microservices vs. zentrale Architekturen – unser IT-Spiel um den Thron

Microservices haben etwas sehr verführerisches – sie versprechen, das Chaos in der IT zu bewältigen – und diesmal nicht mit den Mitteln aus der übergreifenden Enterprise- und Softwarearchitektur. Sie befreien die Microservices-Teams also von zentraler Kontrolle. In der Session wird aus der Praxis berichtet, dass und wie das funktioniert – und wann nicht, etwa, wenn das Prinzip einer engen Zusammenarbeit zwischen Fachseite und Entwicklern aufgrund von organisatorischen und kulturellen Gegebenheiten nicht realisierbar ist. Es wird ein Vorschlag abgeleitet, wie mit einem Minimalset an zentralen Standards – etwa für Logging und Sicherheit - maximale Autonomie im Team erreicht werden kann.  

Keine Slides vorhanden
Java EE 8: Aufbruchstimmung bei EE 8, EE4J und MicroProfile

Was lange währt wird endlich gut: Java EE 8 ist da! Das neue Release bietet eine ganze Reihe interessanter neuer Features und Weiterentwicklungen. In diesem Vortrag werden die wichtigsten Neuigkeiten vorgestellt. Hierzu zählen u.a. JAX-RS 2.1 mit Support für Server-Sent Events und einer neuen reaktiven Client API, das neue JSON Binding, Servlet 4.0 mit Support für HTTP/2 und Server Push, sowie CDI 2.0 mit zahlreichen Verbesserungen, insbesondere im Bereich der CDI Events. Darüber hinaus werfen wir einen Blick in die Zukunft, also auf EE4J. Es wird diskutiert, was die Weiterentwicklung der Plattform durch die Eclipse Foundation erwarten lässt, und wie sich die MicroProfile Initiative zum Innovationsmotor entwickelt hat.

JavaFX Real World Applications

​Sie glauben JavaFX wird nicht eingesetzt und ist irrelevant? Diese Session wird Sie vom Gegenteil überzeugen. Wir stellen Ihnen eine Vielzahl von Anwendungen aus Luftfahrt, Handel und Finanzwesen vor, die mit JavaFX entwickelt wurden und zumeist kritische Geschäftsprozesse abbilden.

Keine Slides vorhanden
Feature Branches und Continuous Integration – ein Widerspruch?

Die Verwendung von Feature Branches bietet den Vorteil, dass man in einem isolierten Bereich entwickeln kann und die Ergebnisse erst nach Abschluss der Arbeiten in die Hauptentwicklungslinie einfließen lassen muss. Ein Kerngedanke von Continuous Integration ist aber die mindestens tägliche Integration der Arbeit aller Projektmitglieder, weshalb oft zu hören ist, dass Feature Branches durch ihre verspätete Integration für CI unbrauchbar seien. Der Vortrag stellt die Hintergründe dieses "Streits" vor und zeigt, wie Feature Branches durch entsprechende Maßnahmen und Toolunterstützung im CI-Server helfen können, den Master fehlerfrei zu halten – ohne Abstriche beim Testen.

11:45 bis 12:45
Last- und Performancetests richtig gemacht

Viele Softwareanwendungen müssen in der Lage sein, eine große Anzahl an Nutzeranfragen zu verarbeiten. Mithilfe von Last- und Performancetests kann bereits in frühen Phasen der Softwareentwicklung sichergestellt werden, dass diese Anwendungen auch unter produktiver Last zuverlässig funktionieren. Jedoch sind Last- und Performancetests oft ein stiefmütterlich behandelter Bereich. In der Praxis gibt es vielerlei Gründe, weshalb diese Tests vernachlässigt werden - etwa weil nicht genügend Zeit im Releaseplan eingeplant wurde, weil die notwendigen finanziellen Ressourcen fehlen oder schlicht, weil das Thema Performance als unwichtig erachtet wird. Dabei ist die Performance einer Softwareanwendung ein entscheidender Faktor, der den Unterschied zwischen schnellen und langsamen Anfragen, zufriedenen und frustrierten Nutzern und somit zwischen Geschäftserfolg und -misserfolg ausmachen kann. Somit darf es keine Rechtfertigung geben, um auf Last- und Performancetests zu verzichten. Es ist notwendig, aber bitte richtig! Die Durchführung von Last- und Performancetests ist jedoch nicht einfach, da ein tief greifendes technisches und fachliches Verständnis über die Softwareanwendungen benötigt wird. Dieser Vortrag stellt die Herausforderungen dar, gibt Tipps, um sie zu adressieren und macht Tooling-Vorschläge aus dem Open-Source-Bereich. Erfahren Sie, wie Last- und Performancetests zielgerichtet und effektiv ausgeführt werden können, sodass Ihre Anwendung schnell ist, deren Nutzer zufrieden sind und Ihr Geschäft erfolgreich ist.

Reaktive Architekturen mit Microservices

Bis vor wenigen Jahren bestanden große Applikationen noch aus etlichen Servern mit regelmäßigen Wartungsfenstern und monolithischen Applikationen. Aktuelle Architekturen bestehen aus simplen Microservices, die untereinander kommunizieren und Nachrichten austauschen. Endnutzer erwarten heutzutage ständige Verfügbarkeit und minimale Antwortzeiten bei gleichzeitig hohen Datenraten. Diese Anforderungen werden durch reaktive Systeme sehr gut adressiert, da reaktive Architekturen antwortbereit, widerstandsfähig, elastisch und nachrichtenorientiert sind. In diesem Vortrag werden die grundlegenden Muster von reaktiven Architekturen näher betrachtet und ein vollständiges System skizziert. Zuerst werden die Grundzüge eines reaktiven Microservices anhand eines Beispiels vorgestellt. Im Anschluss wird gezeigt, wie der Service mit anderen Microservices interagiert und die komplette Architektur hochverfügbar und global in mehreren AWS Regionen ausgerollt werden kann.

Enterprise Java auf Diät

Der Java-Enterprise-Standard Java EE scheint weder für Microservices-basierte Architekturen noch für die Cloud wirklich gut geeignet zu sein - so zumindest die landläufige Meinung. Zu komplex die Fülle der APIs, zu schwergewichtig die Runtime namens Application Server. Was aber bedeutet das für die vielen, vielen Teams, die seit Jahren entsprechende Erfahrungen aufgebaut haben? Gibt es für sie noch Hoffnung, ihr Expertenwissen auch in zukünftigen Projekten weiter nutzen zu können. Die Session zeigt, wie auch Java-EE-Teams problemlos in die Wunderwelt der Microservices und Cloud eintauchen können, ohne dabei auf ihre jahrelange Enterprise-Erfahrung verzichten zu müssen. Natürlich wartet die eine oder andere Herausforderung, aber ohne wäre es ja auch langweilig.

Minimale Time to Market: Wie Continuous Delivery Volkswagen-Projekte fit macht

Die Softwareentwicklung mit Continuous Delivery macht es möglich, neue Technologien schnell und effizient in die Unternehmensprozesse zu integrieren. Grundlage dafür ist eine flexible, modulare Microservices-Architektur. Experten der Volkswagen Group IT entwickelten nach diesen Parametern die Lizenzmonitoringsoftware VWLIC. Im Vortrag erklärt Sebastian Bindick, welche Methoden zum Einsatz kamen, um dem Anwender in sehr kurzer Zeit ein erstes System zur Verfügung zu stellen. Er greift auf, welchen Stellenwert Test-driven Development für die Entwicklung der Software hat und welche Vorteile Microservices mit sich bringen.

Microservices und Containermanagement mit Mesosphere DC/OS

Die Bundesagentur für Arbeit setzt für ihr Internetportal Mesosphere DC/OS als containerbasierte Platform as a Service (PaaS) für Microservices ein. Diese Lösung befindet sich seit 2017 im Produktionsbetrieb. Genügend Zeit also, um neben einer kurzen Vorstellung von DC/OS ein erstes Fazit zu ziehen und diese Erfahrungen zu teilen. Erfüllte das Produkt die Erwartungen? Was zeichnet DC/OS im Vergleich zu ähnlichen Plattformen aus? Wie gestaltete sich die Integration in eine umfangreiche bestehende Infrastruktur? Welche Besonderheiten und Stolpersteine traten im Entwicklungs- und Produktionsbetrieb auf? Diese und viele andere Fragen werden in dem Vortrag aus den verschiedenen Perspektiven von Architektur, Softwareentwicklung, Projekt und Betrieb beleuchtet.

Decision Making based on Machine Learning at Outfittery

Outfittery's mission is to provide relevant fashion to men. In the past it was our stylists that put together the best outfits for our customers. But since about a year ago we started to rely more on intelligent algorithms to augment our human experts. This transition to become a data driven company has left its marks on our IT landscape: In the beginning we just did simple A/B tests. Then we wanted to use more complex logic so we added a generic data enrichment layer.Later we also provided easy configurability to steer processes.And this in turn enabled us to orchestrate our machine learning algorithms as self contained Docker containers within a Kubernetes cluster. All in all it's a nice setup that we are pretty happy with.   It then really took us some time to realise that we actually had built a delivery platform to deliver just any pure function that our data scientists come up with - directly into our microservices landscape. We just now started to use it that way; we just put their R&D experiments directly into production... :-) This talk will guide you through this journey, explain how this platform is built, and what we do with it.

Neue digitale Geschäftsmodelle etablieren: Wie wird eine Schildkröte agil?

Kunden verlangen heute nach integrierten Geschäftslösungen, die unmittelbar Wertversprechen für das eigene Geschäftsmodell aufzeigen. Mein Unternehmen war es bisher gewohnt, entlang der Produktionskette zu denken, und verkaufte einzelne, teils sehr technische Elemente statt Kundenlösungen. In unserem Vortrag zeigen wir, welchen Einfluss digitale Vertriebskanäle auf die Neupositionierung vom „Schraubenlager“ zum integrierten digitalen Lösungsanbieter genommen haben. Mithilfe gängiger Werkzeuge wie dem Business Model Canvas zeigen wir, wie die Strategie des digitalen Vertriebskanals definiert und mithilfe einer Business-Enterprise-Architektur und einem entsprechenden Masterplan für Fach- und IT-Seiten kommuniziert werden kann. Das Ergebnis ist die zielgerichtete Umsetzung.

API-Design: Vorsicht vor der Versioning-Hölle!

Nicht erst seit dem Hype um Microservices ist Schnittstellendesign ein essenzieller Bestandteil von Softwareentwicklung. Doch jede noch so gut definierte Schnittstelle kann an einen Punkt kommen, an dem sie weiterentwickelt werden muss, und sei es nur, weil sich die Anforderungen geändert haben. Kommt man an diesen Punkt, stellt sich die Frage: Muss ich meine Schnittstelle versionieren; wenn ja, wie gehe ich vor? Wie müssen sich die Clients der Schnittstelle verhalten, um nicht plötzlich (nach einem neuen Release des Servers) eine böse Überraschung zu erleben. Die Weiterentwicklung einer Schnittstelle wird leider initial häufig nicht mit bedacht. Hoher Wartungsaufwand für die Bedienung alter und neuer Schnittstellen sind die Folge. Wie kann ich das verhindern? Wie muss ich bei der Weiterentwicklung vorgehen, um alte Clients nicht inkompatibel werden zu lassen und dennoch nicht in der „Versioning Hell“ zu landen. Diese und weitere Fragen werden in dieser Session beantwortet. Dabei werden die Konzepte nicht nur in der Theorie beleuchtet, sondern es wird auch am Beispiel von JAX-RS gezeigt, wie Versionierung in der Praxis realisiert werden kann, ohne sich im Support alter Versionen zu verlieren.

Microservices-UI-Architektur

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 die gleiche Art und Weise austauschbar zu machen. Die Session zeigt verschiedene Ansätze, wie sich dieses Problem in der Praxis lösen lässt.

14:15 bis 14:45
Application Development in a Container-obsessed World

W-JAX is bringing you some of the most cutting edge topics in development and architecture. Not only are you seeing changes in coding practices but you are seeing them throughout the entire application development, test, and deployment lifecycle. This keynote wants to try to address the business problems these innovations are trying alleviate and well as discuss some of the current trends in relation to containers and orchestration. The speaker will bring it all together looking at real world innovations on infrastructure, runtimes, collaboration platforms, and even team organization. Come for a thought provoking overview of where we are going in application development from soup to nuts with a demo or two to highlight what can be achieved today.

15:00 bis 16:00
Code Analysis Reinvented: boosting Software Security and Privacy

Static program analysis is the analysis of software at compile time without executing it. Static analyzers allow various actors of the Software Development Lifecycle to proactively detect software issues such as security vulnerabilities (e.g., SQL injections), and leaks of private information. However, in the Java world most of the commercial tools perform syntactic analyses providing superficial feedback and their use is often seen as “too much pain, too little gain“. In this talk, we will discuss and demo various syntactic and semantic static analyses presenting different applications of these tools. We will explore the possibilities new techniques offer from the point of view of efficiency and precision, in particular when it comes to security vulnerability and data leakage detection. Finally, we will look into how these tools can be used to support IT teams’ efforts in complying with the new European GDPR regulation, effective in May 2018.

Domain-driven Java EE

Durch J(2)EE haben wir in der Vergangenheit verlernt, durchgängig objektorientiert zu denken. Viele Anwendungen nutzen anämische Fachobjekte und platzieren die Geschäftslogik in separate Services, was einen Bruch der Prinzipien der Objektorientierung darstellt. Kann man das denn mit Java EE richtig machen, lässt Java EE Domain-driven Design zu? Die Antwort ist ein klares "Ja", wenn man die ausgetretenen Pfade der massenhaften Tutorials verlässt. In dieser Session wird gezeigt, wie die Building Blocks des DDD auf Java-EE-Elemente abgebildet werden können, um übersichtliche und wartbare Anwendungen zu erhalten, die sich zudem leicht in lose gekoppelte Teile aufteilen lassen.

Agile Machine Learning: from Theory to Production

Artificial Intelligence (AI) and Machine Learning (ML) are all the rage right now. In this session, we'll be looking at engineering best practices that can be applied to ML, how ML research can be integrated with an agile development cycle, and how open ended research can be managed within project planning According to a recent Narrative Science survey, 38 per cent of enterprises surveyed were already using AI, with 62 per cent expecting to be using it by 2018. So it’s understandable that many companies might be feeling the pressure to invest in an AI strategy, before fully understanding what they are aiming to achieve, let alone how it might fit into a traditional engineering team or how they might get it to a production setting. At Basement Crowd we are currently taking a new product to market and trying to go from a simple idea to a production ML system. Along the way we have had to integrate open ended academic research tasks with our existing agile development process and project planning, as well as working out how to deliver the ML system to a production setting in a repeatable, robust way, with all the considerations expected from a normal software project.

Womit machen wir's denn nun? MVC 1.0 als alternative Webtechnologie

Es gibt kaum ein Thema, das im Enterprise-Umfeld so umstritten ist wie die Wahl des richtigen Webframeworks. Die perfekte Universallösung gibt es wie so oft nicht, und Unwissenheit über Vor- und Nachteile verschiedener Ansätze führt häufig zu folgenschweren Fehlentscheidungen. Dabei können oftmals einfache grundsätzliche Fragestellungen die Auswahl drastisch minimieren. Der Vortrag bietet einen praxisnahen Überblick zu existierenden Ansätzen für MVC-Webframeworks im Java-Umfeld (Component-oriented vs. Action-oriented) und beleuchtet zusätzlich ihre jeweiligen Vor- und Nachteile.

Data- und Event-driven Microservices mit Apache Kafka

Der Austausch von Daten zwischen Microservices wird immer wichtiger, um auf der einen Seite einen sauberen Bounded Context zu modellieren, aber auch gleichzeitig nicht unnötige Aufrufe auf reine "Data Services" zu bekommen, die keinen Geschäftszweck erfüllen. Hierzu hat sich in vielen Projekten bereits die Replikation von Basisdaten, dem so genannten Shared Kernel zwischen mehreren Microservices bewährt. Erfahren Sie hier, wie so eine Architektur mithilfe von Apache Kafka umgesetzt werden kann und welche Fallen während des Projekts auf einen lauern. Erfahren Sie ebenfalls, wie Sie Apache Kafka benutzen können, um Ihre Microservices-Architektur um Event-driven-Aspekte zu erweitern.

Effiziente Software-Delivery mit APIs, Containern, Microservices und DevOps

Eine zentrale Herausforderung für die heutige IT ist, Agilität im Unternehmen sicherzustellen und die Robustheit zentraler Businessfunktionalitäten beizubehalten. Eine Microservices-Architektur in Verbindung mit APIs zur Entkopplung der Bausteine wird immer wichtiger. Durch den Einsatz moderner Containertechnologien können Unternehmen von allen Vorteilen moderner Softwareentwicklung profitieren. Diese Session erläutert die Auswirkungen und Herausforderungen moderner Softwarearchitekturen für die IT anhand eines realen Szenarios, um schnellere Delivery-Zyklen zu etablieren und Innovation zu fördern. Anhand des Beispiels werden verschiedene Strategien erklären, wie moderne Softwarearchitekturen eingeführt werden können - geeignet für Organisationen jeder Größe und Branche.

Spring Boot Microservices mit Domain Events

Domain Events sind ein zentraler Aspekt des taktischen Domain-driven Designs und zudem noch die Basis für die Implementierung lose gekoppelter Microservices, die auf asynchrones Event Processing ausgelegt sind. In diesem Vortrag werden wir uns mit dem Konzept der Domain Events beschäftigen und kennen lernen, wie sie modelliert und genutzt werden können, um eine lose Kopplung ohne synchrone Kommunikation von Microservices erreichen zu können. Weiterhin werden wir das Konzept anhand eines konkreten Beispiels in die Praxis umsetzen. Hierbei werden wir Technologien wie Spring Boot, Spring Cloud Stream (Rabbit/Kafka) und Cloud Foundry verwenden, um anhand von Events und unterschiedlichen Modellierungsstilen von Events die Vor- und Nachteile des Ansatzes kennen zu lernen.

Die VENOM-Story: Von Leben, Leiden und Rettung eines großen (und gar nicht so hypothetischen) IT-Systems

Darf ich Ihnen VENOM vorstellen - ein E-Commerce-System für ziemlich komplizierte Produkte (Komplettausstattung von Supermärkten, Gartenplanung, Regal- und Möbelplanung und ähnliche abgefahrene Dinge) inklusive kompletter Logistik, Lieferung, Verzollung, Aufbau, Abnahme, Inbetriebnahme, nennen wir es "very normal system". Das System ist historisch/hysterisch gewachsen, wird von einer zerfahrenen, ziemlich desolaten Firma (SAMM Inc.) entwickelt und betrieben und drohte vor einiger Zeit, „den Bach herunter“ zu gehen. SAMM Inc. zog die Reißleine und beauftragte ein (agiles) Team damit, die Rettung von VENOM (und SAMM) vorzubereiten und durchzuführen - „Succeed or die" hieß die Devise. Diese (völlig fiktive) Situation ist in Wirklichkeit völlig real: Hören Sie über „rise and fall of the system“, sehen Sie die Auswirkungen desaströser Architekturarbeit und verkorkster Entwicklungs- und Betriebsprozesse. Erleben Sie anschließend, wie methodische Verbesserung von Software funktionieren kann, die Rettung von VENOM: Von der systematischen Architekturbewertung über die Entwicklung angemessener Verbesserungsmaßnahmen bis hin zur effektiven Umsetzung zeige ich auf, wie Modernisierung und Evolution sich mit Projektalltag und Featuredruck vereinbaren lassen. Disclaimer: Eventuelle Ähnlichkeiten mit realen Softwaresystemen und Entwicklungsorganisationen wären rein zufällig - obwohl ich diverse der hier geschilderten Situationen selbst erleben durfte oder erleiden musste.

Keine Slides vorhanden
Turbo Charge CPU Utilization in Fork/Join using the ManagedBlocker

Fork/Join is a framework for parallelizing calculations using recursive decomposition, also called divide and conquer. These algorithms occasionally end up duplicating work, especially at the beginning of the run. We can reduce wasted CPU cycles by implementing a reserved caching scheme. Before a task starts its calculation, it tries to reserve an entry in the shared map. If it is successful, it immediately begins. If not, it blocks until the other thread has finished its calculation. Unfortunately this might result in a significant number of blocked threads, decreasing CPU utilization. In this talk we will demonstrate this issue and offer a solution in the form of the ManagedBlocker. Combined with the Fork/Join, it can keep parallelism at the desired level.

16:45 bis 17:45
Asynchrone Microservices mit Kafka und REST / Atom

Asynchrone Kommunikation zwischen Microservices führt zu einer losen Kopplung und zu besserer Resilience. Und Event Sourcing bietet sogar noch weitere Vorteile. Dieser Vortrag zeigt, wie asynchrone Microservices mit Kafka und Atom implementiert werden können und was es dabei zu beachten gilt.

Datenschutzgrundverordnung (DS-GVO) ab Mai 2018 – was kommt auf Unternehmen, Entwickler und Bürger zu?

Im Mai 2018 kommt die europäische Datenschutzgrundverordnung (DSGVO) zur Anwendung und löst damit das bis dahin geltende Bundesdatenschutzgesetz (BDSG) ab. Darauf sind Unternehmen kaum vorbereitet. Doch angesichts drastisch erhöhter Bußgelder und der bald in Kraft tretenden Änderungen besteht Handlungsbedarf. Der Vortrag leitet kurz in die bestehende Gesetzgebung ein, zeigt dann, wieso und in welchem Umfang die EU-Gesetzgebung in Deutschland greift, bietet daraufhin einen leicht verständlichen Überblick zu den Hintergründen und den Änderungen der DS-GVO und gibt schließlich praktische Tipps zu den Anforderungen in der alltäglichen Arbeit – auch und gerade mit externen Unternehmen und Freelancern -, für Einwilligungen, Onlinemarketing und die Auftragsverarbeitung. Wie betrifft mich die DS-GVO als Arbeitnehmer und Entwickler? Welche Rechte habe ich als Bürger? Ein aktiver Frage- und Antwortteil rundet den Talk ab.

Mit Consumer-driven Contracts aus der Integrationshölle entkommen

In einem verteilten System hat man es mit vielen Schnittstellen zwischen einzelnen Komponenten zu tun. Da sich diese Schnittstellen während der Entwicklung eines Systems durchaus ändern können, müssen Integrationstests her. Um die Integrationstests auszuführen, braucht man eine Integrationsumgebung. Aber will man wirklich bei (fast) jedem CI-Build eine Integrationsumgebung mit dem aktuellen Stand aller Komponenten bespielen? Das passt nicht zusammen mit parallel arbeitenden Teams und Continuous Delivery. Zur Rettung kommen Consumer-driven Contracts. Beide Seiten einer Schnittstelle testen gegen einen Contract anstatt gegen einen echten Schnittstellenpartner. Dieser Vortrag stellt das Konzept der Consumer-driven Contracts vor, erläutert Vor- und Nachteile aus der Praxis und gibt einen praktischen Einstieg anhand lauffähigen Codes.

Innovation Lab as a Service – ein Erfahrungsbericht

Wir diskutieren unser Konzept des “Innovation Labs as a Service” anhand der Lessons Learned aus unserem nun 1,5-jährigen eigenen Lab. Wir berichten über die Org-Herausforderungen, den operativen Betrieb und eine Reihe von Beispielprojekten, in denen Prototypen und Piloten rund um Digitalisierung für verschiedene Branchen umgesetzt wurden. Warum „as a Service?“ Weil man Teile eines Innovation Labs auch kaufen kann, wie man das mit einem Cloud-Service macht: Räume, Kaffee, Netzwerk. Easy. Dazu Experten in einem Guru-Co-Working-Modell, verfügbar zu Zeiten, wo sie wirklich gebraucht werden, abgerechnet über eine flexible Flatrate. Komplette Dev-Umgebung, natürlich Docker-basiert, in der Cloud. Eine eigene „digital Plattform“ bauen? Klar, oder einfach als Option buchen. Managed Service für die fertigen „Schnellboote“? Anhaken. Keine Lust/Zeit/Know-how, sich selbst um die Cloud-Provider zu kümmern? Kein Problem. Wir berichten von unseren konkreten Erfahrungen.

Sachbearbeiter / Power User Frontends mit HTML - Take the RISC!

Frontends für operativ genutzte, umfangreiche, langlebige Geschäftsanwendungen: darum geht's! - Wir, eine Community mittelständischer Softwarehäuser, kamen von Swing, hielten uns eine Weile mit JavaFX auf - und wollten aber eigentlich immer direkt in den Browser hinein. Doch die Versuche scheiterten: Performanceprobleme, Kompatibilitätsprobleme und Layoutingprobleme trieben Entwicklungs- und Wartungskosten in die Höhe.Und dann schafften wir den Umschwung auf einmal doch - und schnell! Das Zauberwort hieß bei uns "RISC-HTML" und ist eine etwas andere Weise, mit dem Browser umzugehen als dies gewöhnliche HTML Frameworks tun. RISC-HTML verwendet vom Browser nur einige, wenige ultra-stabile Grundkomponenten und baut auf diesen die funktionalen Komponenten auf. Themen wir Browser-Kompatibilität, langfristige Robustheit und - das war eine Überraschung! - auch Performance werden deswegen architektonisch sauber gelöst.Erfahren Sie im Vortrag anhand einiger Live-Beispiele und Demos, was hinter RISC-HTML steckt und wie es sich mit anderen Frameworks vergleicht. - Lassen Sie sich überraschen!

From Zero to Hero – Web Performance

Nobody likes to wait for web pages to load in the browser. The longer it takes, the more dissatisfied the users become. Slow web pages lead to a higher bounce rate and the loss of customers. To solve this kind of problems can be very hard sometimes. Before you even start to optimise your page, you have to understand the workflows a browser performs in order to display a page on the screen. In this talk you will get some insights in the critical rendering path and the javascript engine of your browser that help you to find performance problems and solve them. I will show you also some tools and best practices that make your life easier when it comes to performance.

Beyond Cloud: Weshalb wir zu AWS wechselten und inzwischen wieder Blech streicheln

Die Public-Cloud ist inzwischen angekommen, und das so ziemlich überall. shopping24 ist schon 2010 mit einem Großteil seiner Systeme zu Amazon AWS gewechselt, betreibt inzwischen aber wieder eigene Server. Damit sind wir nicht allein, Etsy z.B. setzt konsequent auf eigene Datacenter. Eine Public-Cloud-Infrastruktur lässt sich nur mit entsprechender Automatisierung betreiben. Dank iLO und IPMI sind diese Prinzipien problemlos auf Blechserversysteme übertragbar. Ich berichte von unserer Migration zu Amazon AWS, den Vorteilen einer Public-Cloud-Lösung, zeige aber auch deren Nachteile auf (Noisy Neighbour, Maschinengröße) und räume mit ein paar Mythen auf (Kosten).

Wen interessiert Lightweight vs. Heavyweight?

In Projekten wird auf die Leichtgewichtigkeit einer Technologie penibel geachtet, ohne zu erwähnen, wie die “Leichtgewichtigkeit” eigentlich definiert ist oder welchen funktionalen oder nicht funktionalen Mehrwert sie dem Kunden bringen soll. Heavyweight Java-EE-Server werden durch leichtgewichtige Frameworks und Bibliotheken ersetzt. Sogar der Trend zu “do it yourself” ist wieder erkennbar. In dieser Session werden der Memory Footprint, Deployment-Größe, Cloud-Fähigkeit und Deployment-Zeiten von Java-EE-Servern mit Plain-Java-SE-“Hello World”-Anwendungen verglichen und diskutiert. Fragen und Anmerkungen der Teilnehmer werden während der Session diskutiert.

Angular-Anwendungen mit Redux

Angular verfolgt einen relativ klassischen MVC-Ansatz mit Two-Way Data Binding. Das erleichtert den Einstieg und ist für einfache Anwendungen ausreichend. Bei komplexer werdenden Anwendungen kann dieser Ansatz aber für Schwierigkeiten in der Nachvollziehbarkeit der Datenflüsse sorgen und damit die Wartbarkeit und Erweiterbarkeit beeinträchtigen. Eine Alternative dazu ist Redux, das sich in der React-Welt weitgehend durchgesetzt hat. Redux ist sowohl ein Pattern als auch eine Bibliothek, die auf Prinzipien der funktionalen Programmierung setzt, um den Zustand einer Anwendungung zu managen. Durch die Beschränkung auf unidirektionalen Datenfluss und die explizite Modellierung von Aktionen sorgt es nicht nur für ein besseres Verständnis der Abläufe in der App, sondern auch für eine saubere Trennung der einzelnen Aspekte und Zuständigkeiten. Redux ist aber nicht auf React beschränkt, sondern technologieneutral und lässt sich ebenfalls mit Angular einsetzen. Im Vortrag werden zunächst die Idee und Funktionsweise von Redux erklärt und es wird anschließend gezeigt, wie Redux mit Angular angewendet werden kann.

18:00 bis 19:00
Java Enterprise Experten Panel

Diskutieren Sie mit den Sprechern des Java Enterprise Day die Gegenwart und Zukunft von Java Enterprise, was von den neuesten strategischen Entscheidungen von Oracle zu halten ist und welcher Einfluss nun durch die Eclipse Foundation zu erwarten ist und vieles weitere ...

Keine Slides vorhanden
Wie kommen wir nur hier weg? Haben Sie eine Idee, Mr. Spock?

Start-ups sind agiler und innovativer. Wir müssen wie ein Start-up denken und arbeiten. Haben Sie das auch schon gehört? Man nehme ein paar Mitarbeiter, eine Menge Motivation und kombiniere beides zu innovativen Lösungen. Das geht nicht? Und wenn man es doch macht? Wie entstehen mit Design Thinking, Scrum und weiteren agilen Methoden innovative Lösungen? Welche Erfahrungen haben wir gemacht?

Microservices: Patterns und Antipatterns

Man könnte glatt das Gefühl bekommen, sämtliche Probleme aller Arten von Systemen lassen sich auf einfachste Art lösen, wenn man nur einfach ganz viele kleine Module baut und sie „Microservices“ nennt. Tatsächlich ist eine Microservices-Architektur manchmal eine gute Lösung, oft aber nur eine Quelle zusätzlicher Frustration, die außer interessant aufgewerteten Lebensläufen nur wenig Nutzen bringt. In diesem Vortrag sehen wir uns gemeinsam an, welche Muster den Weg zum Erfolg weisen können – und welche eher ein Warnsignal vor einer falschen Abbiegung sind.

Wie baue ich mir eine neue Bank mit einem SPA-Framework?

Kann das gelingen: In weniger als fünfzehn Monaten die komplette Enterprise-IT für eine neue Bank bereitzustellen? Yes you can! Nach der Vorstellung des Projekts werden die typischen Fallstricke beim Bau des Onlineauftritts beschrieben. Anschließend werden eigene Lernerfahrungen und Lösungsansätze diskutiert. Die Vielfalt an Möglichkeiten der Modularisierung und Integration von Angular mit dem CMS sollten der Öffentlichkeit nicht vorenthalten werden.

Programmierpraxis übermorgen: Mensch spezifiziert, Maschine programmiert

Wer programmiert, leidet: Die Tipparbeit beim Programmieren muss der Mensch derzeit weitgehend selber machen. (Von den trivialen Codeschnipseln mal abgesehen, die Eclipse einem auf Knopfdruck hinwirft.) Das ist nicht nur viel Arbeit, sie ist auch ziemlich fehleranfällig. Moderne Typsysteme sind schon ziemlich gut dabei, einen auf Fehler hinzuweisen, das Programm korrektfrickeln muss man aber immer noch selber. Dabei ist doch das meiste Domänenwissen schon in den Typdefinitionen und -signaturen: Program by Design heißt das Zauberwort. Mit noch ein bisschen mehr Spezifikation könnte doch der Computer den Code schreiben? Zukunftsmusik oder Irrsinn? Eine neue Generation von Programmiersprachen wie Agda und Idris mit dazu passenden IDEs setzt den alten Traum Schritt für Schritt um: Diese Werkzeuge werden langsam zu echten Partnern bei der Entwicklung. Das Programmieren macht da nicht nur mehr Freude, sondern senkt auch die Fehlerquote dramatisch. So können sich Entwickler auf die individuellen Aspekte der Software konzentrieren, anstatt wiederkehrende Patterns immer und immer wieder umzusetzen. Sie können damit ihre Aufmerksamkeit auf die Domäne und schlussendlich auf die Interaktion mit den Anwendern richten.

Der Tester ist tot. Es lebe der Tester! - Wie sich die QA in agilen Zeiten neu erfindet

In der letzten Dekade haben sich die Rollen des Testers und des Test-Managers etabliert und professionalisiert, was sich etwa an der steigenden Zahl von ISTQB-Zertifizierungen ablesen lässt. Für wasserfallartige (oder -ähnliche) Projekten ist inzwischen unstrittig, dass ein qualifizierter Test maßgeblich zum Projekt- oder Produkterfolg beiträgt. In den letzten Jahren ist jedoch in vielen Domänen und IT-Projekten die Tendenz zu erkennen, dass die Projekte immer agiler werden – oder gerne werden würden – und dass sich Teams mehr und mehr full-stack und crossfunktional zusammensetzen. Diesem Wandel fallen teilweise ganze Rollen und Organisationsformen zum Opfer. So ist zum Beispiel weder ein Projekt-Manager noch ein Test-Manager im Scrum-Framework vorgesehen. Im Gegenteil – diese klassischen Rollen werden sogar als agiles Antipattern betrachtet. In diesem Vortrag werden die QA-Methoden und -Rollen im Wandel der Zeiten betrachtet. Anhand konkreter Beispielprojekte der letzten Jahre wird beleuchet, welchen neuen Herausforderungen sich Tester und Test-Manager stellen müssen, wo die klassischen Rollen in modernen Projekten ihren Platz finden und wie die Test-Profession auch hier Mehrwerte bieten kann. LBNL diskutieren wir über die provokante These „In fünf Jahren wird es keine Tester und Testmanager mehr geben!“ und geben Ausblicke, ob und wenn ja wie man sich für die neue Zeit wappnen kann.

Wednesday - 08. November 2017

09:00 bis 09:45
Public Cloud unleashes Resolution of non-resolvable Challenges

Many big companies struggling with the new topics as automated delivery, automated testing, consolidating technologies on new platforms or setups. How do I start? How can I convince the upper management to do this step? Do I have a convincing enough business case? But is it really required to do a big first step? The answer is no! In most of the cases it is way easier to divide the mission in several sub-steps, helping me validating the new approach and also giving the possibility to give feedback to the upper management on regular bases and getting their buy-in. This procedure is shown on a real case where a Swiss banks development was moved to the public cloud.

10:00 bis 12:45
Wind of Change

Software development would be so nice if we knew all requirements before we start a project. And of course they would never change. We could come up with a rock solid plan and would always deliver on time. But yeah, reality is different... We will practice how to react to new feature requests, changing requirements and shuffling priorities. We will see how to go fast by going slow, how to be ready when change comes, how IDEs can support us in that regard, and of course why good tests are indispensable in such a world.This workshop contains heavy portions of coding, so please bring a laptop with an installed IDE and an empty project with a failing unit test.

Keine Slides vorhanden
10:00 bis 11:00
Das JavaScript-Ökosystem: Orientierungshilfen

Wer heutzutage professionelle Webanwendungen bauen will, kommt an JavaScript nicht vorbei. Für viele Nicht-JavaScript-Entwickler ist diese Vorstellung aber immer noch ein Graus, so kursieren immer noch Aussagen wie: JavaScript hat kein Typsystem, erlaubt kein Refactoring und ist unwartbar! Die durchschnittliche Lebensdauer eines JavaScript-Frameworks liegt unter zwei Tagen (außerdem gibt es viel zu viele davon!) und überhaupt: Warum ist "undefined not a function"?In dieser Session werden wir uns moderne JavaScript-Stacks ansehen, um zu überprüfen, wie viel von diesen Aussagen heutzutage noch stimmt, und eine Orientierung durch das auf den ersten Blick schier undurchschaubare JavaScript-Ökosystem zu bekommen. Damit es beim nächsten Projekt vielleicht heißt: "Hurra, ich darf JavaScript programmieren!"

Open-Source-Logging und -Monitoring

Logging und Monitoring sind kein sexy Thema: Niemand hat Lust, sich auf Konsolen einzuloggen und Logdateien zu durchforsten. In Docker-Umgebungen potenziert sich das Problem noch einmal. Eine zentralisierte Logging-Infrastruktur muss her. Und wenn man schon dabei ist, wären ein Exception-Monitoring und detaillierte Anwendungsmetriken ja auch ganz praktisch. Ich zeige in dieser Session das Zusammenspiel aus Logstash und Graylog zur Access-Loganalyse, Sentry zum Exception Logging sowie Graphite und Grafana zur Visualisierung von Anwendungsmetriken.

Microservices – Durchblick im Framework-Dschungel

Microservices stehen zurzeit hoch im Kurs. Durch bestechende Vorteile, wie z. B. bedarfsgerechte Skalierung und bessere Wartbarkeit, setzen immer mehr Firmen auf dieses Architekturmuster. Besonders erfolgreiche Umsetzungen der Webgiganten Netflix, Amazon und Twitter haben auch kleinere Unternehmen überzeugt.Dies sorgt dafür, dass die Anzahl der verfügbaren Microservices-Frameworks stetig steigt. Lagom, Micro und MSF4J sind nur ein paar der allein im Jahre 2016 erstmals veröffentlichten Frameworks. Sie bieten dabei immer neue Ansätze, wie z. B. reaktive Web Services, um gegebene Aufgaben besser zu lösen. Oder sie sind besonders leichtgewichtig und schnell, um die Effizienz weiter zu steigern.So bleibt den Softwarearchitekten die Qual der Wahl. Dank der losen Kopplung der Microservices kann für jeden kleinen Service ein eigenes Framework gewählt werden. Mit der Vielzahl an Frameworks lässt sich somit das beste Hilfsmittel für das gegebene Problem auswählen.Doch welches Framework ist das richtige, und wie lässt sich dies eindeutig feststellen? René Zarwel zeigt in seinem Vortrag, wie durch eine einfache Bewertungsmethode und klar definierte Anforderungen Ordnung in den Auswahlprozess gebracht werden kann. Dabei wird zuerst die Methode vorgestellt und anschließend an einem Beispiel näher erläutert. Hype oder etabliert, mit fundierten Kenntnissen steht dem Erfolg nichts im Weg.

Workflow and State Machines at scale

Einsatzgebiete für leichtgewichtige Workflow-Engines oder Zustandsautomaten werden immer vielfältiger, entsprechend steigen die Anforderungen an deren Skalierbarkeit. Eine stetig steigende Anzahl an Nutzern, Systemen oder "Things" sorgt dafür, dass heutige Engine-Architekturen an ihre Grenzen stoßen, da sie auf Transaktionalität und relationale Datenbanken vertrauen.Über die letzten Jahre haben wir viele Aspekte einer "next generation engine" verprobt und inzwischen eine Engine als Open-Source-Projekt releast, die im Herz vollständig anders tickt. Im Vortrag möchte ich zeigen, wie eine solche Engine dank Event-Sourcing-Zustand aus einem Event-Stream ableitet und horizontale Skalierbarkeit erreicht. Persistenz ist beliebig austauschbar, sodass auch NoSQL möglich wird. Anhand konkreter Beispiele diskutiere ich Architekturoptionen und untermauere sie mit konkreten Codebeispielen. Ich zeige verschiedene Use Cases für "Flows" und wie sie sich entwicklerfreundlich auch ohne grafische Oberflächen definieren lassen. Ich grenze diese Lösung zu Netflix Orchestrator und AWS Step Functions ab und zeige, wie sich eine solche Technologie mit aktuellen Paradigmen wie z.B. Microservices verheiraten lässt.

Using Java 8 Lambdas and StampedLock to manage Thread Safety

In this talk, you will learn: * What is StampedLock (introduced in Java 8)? * How can the StampedLock provide an effective way to manage thread safety with objects that contain several fields (with invariants across them) in many producer/many consumer systems? * What are common StampedLock idioms – and how can Lambdas be applied to make them pluggable? * What are some lock-free solutions, based on AtomicReference/Unsafe/VarHandles?

DevOps als Bringschuld der IT und wie das Management den Wandel sabotiert: Uncover your Ass

Vielfach gleicht die Situation von Unternehmen im Wandel einem Mexican Standoff. Die Beteiligten verstehen, dass es an diesem Punkt nicht wie bisher weitergehen kann. Dennoch wagt niemand den ersten Schritt aus der Deckung. Funktionale Silos und hierarchische Strukturen haben über Jahrzehnte Unternehmenskulturen des Wettbewerbs geschaffen, in denen die meiste Energie in "Cover your ass"-Aktivitäten statt in kollaborative Zusammenarbeit zu fließen scheint. Die Folge: Stillstand und Verschwendung statt wertschöpfenden Arbeitens im Sinne des gemeinsamen Unternehmensziels. Dabei hat der Vorstand doch schon längst den kulturellen Wandel ausgerufen. Und in der Entwicklung werden bereits erste Services mit Docker in der Cloud betrieben. Wo bleibt das erhoffte Hochgefühl, das DevOps und Continuous Delivery versprechen? Dieser Vortrag setzt sich anhand von Beispielen mit verschiedenen Situationen von im Wandel befindlichen Unternehmen auseinander und gibt Handlungsempfehlungen für ein Umdenken von Entwicklern, Administratoren, Fachabteilungen und Managern. Das Ziel: Gemeinsame Wertschöpfung mit harmonisierten Zielen statt absurder Kleingärtnerfehden.

Runter von der Couch - ein Start-up wird erwachsen

Die ersten Projekte werfen Gewinne ab, das eigene Produkt ist als MVP verfügbar und die Nachfrage übersteigt die Kapazität. Ein Ende ist nicht in Sicht, und so läuft die Hiring-Maschine auf Hochtouren. Dass unter der Haube des Start-ups ein gewaltiger Umbruch bevorsteht, sieht man nicht nur an dem dringend nötigen Umzug aufgrund rar gewordener Arbeitsplätze. Doch wie viel Struktur und Prozess sind nötig, ohne die Agilität und die Identität der Firma zu riskieren? Und wo ist die Grenze, um die Belegschaft auf diesem Weg nicht zu verlieren? Dieser Vortrag beleuchtet mögliche nötige Schritte und Risiken, die ein Start-up in der Transition zur Professionalisierung beachten sollte.

Erfolgreichere Geschäftsabläufe durch die Kombination von RDBMS und Graphdatenbanken

Unterehmen verabschieden sich immer mehr von isolierten Datensätzen und wollen stark verknüpfte Informationen und Daten im Alltag nutzbar machen. Dies bedeutet den Einsatz von polyglotten Architekturen: klassische RDBMS-Technologie und Graphdatenbanken müssen gemeinsam eingesetzt werden, um vernetzte Daten in Echzeit in Betrieb nehmen zu können. In diesem Vortrag soll gezeigt werden, wie RDBMS und Graphen in unterschiedlichen Umgebungen koexistieren können und wie durch dieses Zusammenspiel aktuelle, aber auch zukünftige Fragestellungen gelöst werden können. Neben einem theoretischen Teil soll der Vortrag mit Beispielen und Case Studies von Unternehmen angereichert werden, die bereits heute Neo4j als Teil ihrer IT-Infrastruktur verwenden.

11:45 bis 12:45
Java-8-Nachlese – Wie hat Java 8 die Java-Welt verändert?

Java 8 ist mittlerweile drei Jahre alt, und mittlerweile ist bereits Java 9 freigegeben. Zeit, zurückzublicken. Wie hat die Java-Community Java 8 aufgenommen? Was hat gefallen? Was hat irritiert? Mit den Lambdas und Streams haben Ideen und Features aus der funktionale Programmierung Eingang in Java gefunden. Damit ist Java zu einer Multiparadigmensprache (objektorientiert und funktional) geworden. Wie geht es den Java-Programmierern damit? Wie gehen sie damit um?

Angular für Enterprise-Anwendungen

Bei der Entwicklung großer Enterprise-Anwendungen mit Angular kommen rasch einige Fragen auf: Wie kann die Anwendung in mehrere Module und npm-Pakete untergliedert werden? Wie können bestehende Identity-Lösungen, wie Active Directory, integriert und Single Sign-on realisiert werden? Wie kann die Performance beim Einsatz großer Clients sichergestellt werden, und wie hilft AOT, Tree Shaking und Lazy Loading dabei? Wie kann die Anwendung internationalisiert werden, und wie ist mit globalen Zuständen umzugehen? Soll das viel diskutierte Redux-Muster zum Verwalten globaler Zustände umgesetzt werden oder eignen sich andere Ansätze besser? Diese Session liefert anhand einiger Beispiele Antworten auf all diese Fragen.

Elastic and Cloud-ready Applications with Payara Micro

This session will explain how to build modern and scalable applications, while efficiently adding business value. With the right tools, technical decisions can be deferred and problems can be solved according to business needs instead. Payara Micro - an open source MicroProfile-compatible runtime - provides these tools in an easy-to-use package, allowing developers to focus on getting the job done. In addition, it can be connected using a standard API to Apache Kafka or Amazon SQS for high performance messaging. In this talk, you’ll learn how to create an architecture around all these tools to get as much flexibility as possible and be ready to deploy your applications into cloud. During a live demonstration, you’ll see how a Java EE application can benefit from dynamic clustering, MicroProfile API, distributed configuration and scalable cache built into the Payara Micro runtime.

Look Mom, no Hands! Auto-Code Generation - Annotation Processing

Auto-code generation is a very powerful tool that every software engineer should use. It avoids coding that tedious and repetitive boilerplate that nobody should ever have to write, primarily because it is usually uninteresting code and highly prone to error. This talk will briefly show the annotation processor. We will understand what are the annotation processors and their defined role and then focus on how to get started writing your own annotation processor to generate source code automatically, as well as how popular frameworks such as Dagger, Butterknife or such work in the background. Will help you simplify your code by pushing the burden of the boilerplate on automated tooling.

AirBnb, Uber, Facebook oder YouTube ohne APIs? – „Geht ja mal gar nicht!”

Plattformökonomie ohne APIs? Ohne APIs sind plattformbasierte Geschäftsmodelle nicht umsetzbar. Diese Session gibt eine Einführung in plattformbasierte Geschäftsmodelle sowie APIs und betrachtet in diesem Kontext APIs aus einer strategischen und geschäftlichen Perspektive. Außerdem werden Best Practices im Kontext API-Management geteilt und das API Business Design Canvas dargestellt. Angereichert wird diese Session mit Erfahrungen aus meinem Projektalltag.

Granularität von Prozessmodellen - BPM im Kontext von SOA

Syntax und Semantik der BPMN 2.0 sind klar definiert. Kann es da überhaupt eine Granularitätsdiskussion geben? Eigentlich ist alles ganz einfach. Ausführbares BPMN 2.0 wird auf einer Workflow Engine abgearbeitet. Der "Prozess" ist im Sinne von SOA ein Servicecompose. Weitere "Services" werden von Umsystemen angebunden und in diesen wird Komplexität in Composed Services gekapselt. In der Praxis wird jedoch gern Verantwortung der beteiligten Umsysteme, im Sinne hoch detaillierter Fachlichkeit, im "Prozess" abgebildet. Aber wie bestimme ich nun die "richtige" Service-Schicht für mein Composing? Entspricht dabei eine Serviceschicht immer einer vorrangig fachlichen Systemabgrenzung? Wer sind die Serviceprovider? Serviceschichten oder (fachliche) Systeme? Welche Auswirkungen hat eine "falsch" gewählte Granularität insbesondere bei der Prozesssteuerung? Diese und andere Fragen wollen wir aus der Analyse praktischer Beispiele zur Diskussion stellen und dabei die "Sonderfälle" Geschäftsregel und Validierung differenziert betrachten. Darf ich systemübergreifend validieren? Sollen Geschäftsregeln zentral oder dezentral bereitgestellt werden? Und dann gibt es ja auch noch UIs, die systemübergreifendes Composing "personifizieren".

Es muss nicht immer gleich Docker sein – IT-Automation, die zu einem passt

Docker ist in aller Munde und wird gerne als Allheilösung für Deployment Probleme propagiert. Das führt zu der Annahme, automatisierte Deployments wären nur mit Docker möglich, obwohl Provisionierungswerkzeuge wie Ansible Lösungen außerhalb der Container-Welt anbieten. Deren Einsatz wird oft gar nicht in Betracht gezogen, weil irgendwann - in Ferner Zukunft - doch Docker im Unternehmen eingesetzt werden soll. Die Automatisierung wird immer weiter verschoben, weil der Aufwand in einem Schritt zu groß ist, obwohl Ansible mit wenig Mühe in der Gegenwart helfen könnte. Die Verwirrung wird dadurch vergrößert, dass die Einsatzszenarien von Provisionierungswerkzeugen und Container-Technologien fälschlicherweise vermischt und somit als Konkurrenz betrachtet werden. Dieser Vortrag erklärt anhand von Ansible und Docker worin sich ein Provisionierungswerkzeug von einer Container-Technologie unterscheidet. Es wird gezeigt, wie Ansible auf dem Weg zu einer Dockerisierung der Infrastruktur jetzt schon Probleme lösen kann und wie ein gemeinsamer Einsatz beider Technologien die Vorteile beider Welten kombiniert.

Agilität: Mythen, Trends und Best Practices

Märkte sind in Bewegung, Technologie ist günstig, Fachkräfte sind rar. Wie können wir darauf reagieren? Wie kann uns Agilität helfen, diese Herausforderungen zu meistern? Dieser visuelle Vortrag zeigt, warum Agilität unabdingbar ist, räumt mit Missverständnissen auf und zeigt praxiserprobte Ansätze für eine erfolgreiche Einführung agiler Prinzipien im Unternehmen.

14:15 bis 14:45
The Streaming Transformation

The value of an architecture doesn’t lie in a static picture on a whiteboard or even a well formed POC. It lies in a system’s ability to evolve over time. To grow and expand, not simply in terms of data, throughput or numbers of users, but as teams and organisation grow. Streaming Platforms provide a unique basis for such systems. They embrace asynchronicity first and foremost. Forming a narrative of events that flow from service to service. But events are more than just a communication protocol. They are the facts of our business. A shared dataset sitting at the very heart of our system. In this talk we’ll examine how Streaming Platforms change the way we build business applications. How we can embrace fine grained event driven services, wrap them in efficient transactional guarantees, and evolve our way forwards from legacies of old.

15:00 bis 19:00
Hakking mit Akka

Dieses Lab bietet einen Rahmen dafür, reaktive Programmierung mit Akka live auszuprobieren – egal ob mit Java oder Scala. Es gibt auf Wunsch konkrete Anregungen und Aufgabenstellungen, vor allem aber die Möglichkeit, mit Features und Architekturideen herumzuspielen und dabei live auszuprobieren, wie sich widerstandsfähige, elastisch skalierbare Systeme auf Actor-Basis anfühlen.

Keine Slides vorhanden
15:00 bis 16:00
Offlinefähige Desktopanwendungen mit Angular und Electron

Web- und Desktoptechnologien verschmelzen mehr und mehr. Dabei spielen Frameworks wie Angular eine große Rolle. Ihre durchdachten Konzepte ermöglichen es, komplexe und anspruchsvolle Oberflächen zu implementieren, die als Single Page Applications (SPA) bekannt sind. Von Hause aus werden diese SPAs jedoch von Webservern an die Nutzerbrowser ausgeliefert und benötigen zumindest initial eine Verbindung zum Server. Was kann man jedoch tun, wenn die Anwendung offlinefähig sein muss? Eine mögliche Lösung für das Problem ist Electron - ein Container, mit dem Desktopanwendungen auf der Basis von Webtechnologien entwickelt werden können. Die Session gibt eine kurze Einführung in Angular und zeigt, wie mithilfe von Electron eine Desktopanwendung mit Zugriff auf Betriebssystemfunktionen implementiert werden kann.

Docker-Patterns – Best Practices aus der echten Welt

Es ist sicher richtig zu behaupten, dass Docker die Art und Weise, wie wir Java-Anwendungen entwickeln, ausliefern und betreiben, verändert hat. Dennoch sind immer noch viele Fragen offen, wie Docker denn nun konkret eingesetzt werden kann. Viel wurde bislang experimentiert – doch was bleibt übrig, wenn der Goldrausch vorbei ist? Dieser Vortrag wagt eine Prognose und stellt nützliche Docker-Patterns unter anderem aus dem Bereichen Konfiguration, Service Discovery, Image Building und Logging vor. Auch das Sidecar-Pattern zur Containerentkopplung wird ausführlich erläutert. Alle Muster werden im Detail mit ihren Vor- und Nachteilen erklärt und mit Codebeispielen verdeutlicht.

Verteilte Konfiguration und Verwaltung sensibler Daten mit Spring Cloud Config und Vault

Das Ausführen mehrerer Microservices-Instanzen als Docker-Images oder in der Cloud ist aktuell weit verbreitet. Aber wie sieht es mit der Anwendungskonfiguration und den sensiblen Daten aus? Werden diese Daten mehrfach in lokalen Konfigurationsdateien abgelegt? Werden dabei die sensiblen Daten womöglich immer noch unverschlüsselt im Klartext gespeichert? Falls die Daten wie z. B. Passwörter verschlüsselt sind, wo wird dann der Schlüssel für deren Entschlüsselung gespeichert? Werden Datenbankzugangsdaten regelmäßig geändert? In der Session von Andreas Falk wird gezeigt, wie man die Anwendungskonfiguration mit Spring Cloud Config auslagern und sensible Daten sicher mit dem kürzlich veröffentlichten Spring-Cloud-Vault-Config-Projekt speichern kann. Nach einer allgemeinen Einführung in das Projekt Vault wird dargestellt, wie Spring Cloud Vault Config die Integration von Vault in die Anwendung vereinfacht. Nach dieser Session gibt es keine Ausreden mehr, Konfigurationen redundant immer wieder lokal abzulegen sowie sensible Daten unsicher zu verwalten. Dazu gibt es natürlich begleitend entsprechende Livedemos, um die vorgestellten Konzepte in der Praxis zu zeigen.

Identity Management und Autorisierung im Microservices-Universum

Im Microservices-Bereich gibt es viele Lösungen für die Authentifizierung und deren Transport zu den Services, wie OAuth 2, JWT etc. Doch welche verschiedene Möglichkeiten habe ich überhaupt, meine verschiedenen Rollen, Rechte usw. zu verwalten und darauf basierende Prüfung zu implementieren, ohne dabei natürlich die Autonomie der Microservices zu verlieren? Ein einfaches "Ich bin Groot" reicht dafür nicht ganz aus, ist aber schon mal ein guter Anfang, denn wie immer liegt es an der Interpretation. Erfahren Sie hier verschiedene Möglichkeiten mit praktischen Beispielen basierend auf Spring Security.

Exploring Java Perf Flame Graphs

Flame Graphs provide a great visual of where 'time' is spent and in what context and can be powerful aids in performance analysis. Now that the JVM better supports the Linux perf profiler we can have mixed Java/JVM/Native/OS Flame Graph profiles to aid our performance investigations. This is a powerful tool, but the information it offers is often foreign to us.In this talk we will explore the benefits of this new tool chain, explore the new data and its meaning, and see how the tool chain can be further expanded to the Java community benefit.

Keine Slides vorhanden
Sicherheit beim Build

Wer sich die Mühe macht, bei der Softwareentwicklung auf die Sicherheit zu achten, sollte die Einhaltung möglichst aller Vorgaben und gleichzeitig die Sicherheit der gesamten Webanwendung beim Build soweit möglich automatisch überprüfen. Dafür steht eine ganze Reihe von Open-Source-Tools zur Verfügung, die etwa bei der Continuous Integration in Jenkins integriert werden können. Die Session stellt dazu einige Tools vor, mit denen sich Themen rund um die Sicherheit einer Webanwendung automatisiert prüfen lassen, und gibt Vorschläge für deren Konfiguration und Einsatz in Java-Entwicklungsprojekten.

Break your Event Chains!

Mit Microservices und noch mehr, dem Trend zu Serverless, bewegt sich die Welt auf ereignisgesteuerte Architekturen zu. Diese setzen sich aus global verteilten Services und inhaltlich sehr verschiedenartigen Systemen zusammen. Die Abwicklung kompletter Geschäftsfälle und End-to-End-Prozesse überschreitet dabei oft die Grenzen einzelner Services und stellt somit eine besondere Herausforderung dar. Ereignisgesteuerte Service-"Choreographien" sind zwar fundamental, um gut entkoppelte Systeme zu verwirklichen, komplexe "Ereignisketten" können jedoch neue Probleme verursachen. Ich möchte aufzeigen, warum "ereignisverliebte" Entwickler ihre Systeme nur allzu leicht stärker miteinander koppeln, als unbedingt nötig und warum es wichtig ist, Ereignisse am richtigen Punkt in Kommandos umzuwandeln. Weiters möchte ich besprechen, wie man einerseits vermeidet, den Überblick zu verlieren, und andererseits die Fachlichkeit der Aufgabenstellung entlang organisatorischer Strukturen so herunterbricht, dass der Gedanke der Decentral Governance von Microservices nicht unterlaufen wird. Schließlich möchte ich diskutieren, wie vorhandene Technologien dazu genutzt werden, die schwierigeren Aspekte langlaufender Services zu bewältigen, etwa die fachlich und technisch richtige Reaktion auf Fehler, den Umgang mit Time-outs und die Rückabwicklung bereits durchgeführter Schritte. Ich werde meine Praxiserfahrung kompakt zusammenfassen und mithilfe konkreter Codebeispiele alternative Wege illustrieren.

16:45 bis 17:45
KSQL - An Open Source Streaming SQL Engine for Apache Kafka

KSQL is an open-source, Apache 2.0 licensed streaming SQL engine on top of Apache Kafka which aims to make stream processing available to everyone. This session introduces the concepts, architecture use cases and benefits of KSQL. A live demo shows how to setup and use KSQL quickly and easily on top of your Kafka ecosystem.

Mit Prozessen, Services und Regeln zur effizienten Kreditvergabe – ein Erfahrungsbericht über eine menschenzentrierte IT-Architektur bei der Bank11

Im Jahr 2016 wurden bei der Bank11 die Systeme für die Finanzierungsabwicklung vollständig neu entwickelt. Durch eine sinnvolle Kombination von Technik und Methodik ist in kürzester Zeit eine Lösung entstanden, die Anwender begeistert und Wettbewerbsvorteile schafft. Im Zentrum steht eine moderne Architektur, die Prozesse, Services und Regeln vereint und die Menschen in den Mittelpunkt stellt. Die Session stellt die Architektur und Technologien vor und beleuchtet wichtige Designentscheidungen und Lösungsansätze aus der Praxis. Sie vermittelt, welchen konkreten Nutzen der zielgerichtete Einsatz aktueller Technologien und Methoden haben kann, und zeigt die Relevanz für den praktischen Einsatz.

Ansible für Java-Entwickler

Das automatisierte Konfigurieren von Servern ist dank Orchestrierungswerkzeuge wie Puppet und Chef heute kein Problem mehr. Doch eignen sich diese Werkzeuge wenig für die regelmäßige Softwareverteilung von typischen Java-Webapplikationen. Ansible hat dieses Problem erkannt und liefert Lösungen für das Konfigurationsmanagement und für die Softwareverteilung aus einer Hand. Diese Session erklärt am Beispiel einer Infrastruktur für eine Java-Webapplikation die Funktionsweise von Ansible. Dabei wird sowohl auf die Serverkonfiguration als auch auf das Deployment der Anwendung eingegangen. Zusätzlich wird gezeigt, warum Ansible vor allem für Entwickler interessant sein kann. Dabei wird beschrieben, wie Continuous Deployment auch in einer klassischen Unternehmungsstruktur umsetzbar ist.  

Lagom – Microservices weiter gedacht

Können wir uns die Entwicklung von Microservices einfacher machen? Durch den Siegeszug der Microservices bekommen auch ihre Nachteile immer mehr Aufmerksamkeit – aus unserer vertrauten Anwendung wird plötzlich ein komplexes verteiltes System mit neuen Fehlerszenarien, ohne zentrale, gemeinsame Datenbank. Das Ganze muss zusammenspielen, ohne dass der Ausfall eines Teils das Gesamtsystem gefährdet. Und wir müssen all die Services auch noch in Produktion bringen und betreiben! Das Open-Source-Java-Framework Lagom (http://www.lagomframework.com) gibt einen Weg vor, skalierbare und ausfallsichere Systeme aus Microservices zu bauen, und orientiert sich dabei an Prinzipien des Domain-driven Designs. Mehr als andere Bibliotheken wurde es spezifisch für Microservices entwickelt. Es bietet Features wie typsichere Service Descriptors, eingebauten Service-Look-up und ein Persistenzframework für verteilte Datenhaltung mit Event Sourcing und CQRS. Dazu bietet es außerordentliche Entwickungsunterstützung, die es erlaubt, mit einem einzigen Kommando eine Vielzahl von Services lokal zu starten und Änderungen sofort, ohne Neustarts, wirksam werden zu lassen. Am Ende dieser Session sollten die Zuhörer/innen eine gute Vorstellung haben, was Lagom bringen kann, aber auch, worauf man sich bei der Verwendung einlässt.

Muster für Log-in und Access Control in modernen Single Page Applications mit OAuth 2 und OpenID Connect

Das Thema Authentifizierung und Autorisierung wirft immer wieder Fragen auf: Wie können sich Benutzer bei einer Angular-Anwendung anmelden, und wie können existierende Identity-Lösungen, wie Active Directory oder LDAP-Server, integriert werden? Wie werden Benutzersitzungen repräsentiert, und was ist zu machen, wenn eine Benutzersitzung abläuft? Wie kann eine Single Page Application im Namen des Benutzers auf das Backend zugreifen und dabei Single Sign-on realisiert werden? Diese Session präsentiert anhand einer Beispielanwendung einige Muster, die sich in der täglichen Arbeit bewährt haben, und Antworten auf diese Frage. Zusätzlich erfahren Sie, welche Vor- und Nachteile die einzelnen Ansätze bringen und wo eventuelle Gefahren lauern.

Performancemessungen: Der JIT-Compiler und sein Einfluss auf Messergebnisse

Die Ablaufperformance unserer Software ist wichtig. Deshalb wird immer wieder versucht, die Performance von Software zu messen, zu vergleichen und idealerweise vorherzusagen. Das ist aber extrem schwierig und sehr fehlerbehaftet. In dieser Session wollen wir uns ansehen, warum Performancemessungen so schwierig sind und was man tun kann, um typische Fehler zu vermeiden. Worauf muss man beim Micro-Benchmarking achten? Wir werfen einen Blick auf den JIT-Compiler und seinen Einfluss auf die Messergebnisse. Welche Werkzeuge können helfen? Wir schauen kurz auf JITWatch und JMH. Wie geht man mit den Messergebnisses eines Micro-Benchmarks um? Skeptisch! Auf keinen Fall verallgemeinern und auf jeden Fall selbstkritisch hinterfragen.

Keine Slides vorhanden
Road to Continuous Delivery

  In vielen Unternehmen ist man der Meinung, agil zu entwickeln und Kulturen bzw. Methoden wie DevOps und Scrum zu leben. Bei genauerer Betrachtung zeigt sich jedoch, dass es zur vollständigen Umsetzung der genannten Methoden noch an einigen Kleinigkeiten mangelt. Nicht selten ist dies die für Continuous Delivery notwendige vollständige technische Automatisierung des Deployment-Prozesses. Im Vortrag wird anhand der Automic-internen Transformation aufgezeigt, welche Herausforderungen auf dem Weg zu Continuous Delivery auftreten können und welche Vorteile sich durch die Implementierung eines vollautomatischen Deployment-Prozesses, von der Entwicklung bis in die Produktion, ergeben.  

Business-Activity-Monitoring - Geschäftsprozessüberwachung bei der 1&1

In der Wertschöpfungskette der 1&1 Telecommunication SE kommen hoch automatisierte Prozesse zum Einsatz. Die Fachbereiche modellieren die Prozessabläufe standardisiert mit BPMN 2.0 und orchestrieren dabei eine Vielzahl unterschiedlicher Services. Die Prozesse werden in einem Workflow-Management-System technisch ausgeführt. Sowohl der hohe Automatisierungsgrad mit großem Datenaufkommen als auch die starke Verteilung der Service- und Prozesslandschaft sind Herausforderungen für die Überwachung der laufenden Geschäftsvorfälle. Wir stellen eine Lösung zur Nachverfolgung, Messung und Überwachung betrieblicher Aktivitäten vor. Insbesondere gehen wir auf hilfreiche Business-Activity-Monitoring-Konzepte ein und erläutern unsere Anforderungen an ein geeignetes Überwachungssystem. Wir geben einen Überblick zur aktuellen Systemarchitektur und nennen wichtige Anwendungsfälle. Aufbauend auf den Grundlagen, zeigen wir die Realisierung ausgewählter Anwendungsfälle für die nachgelagerte Datenanalyse und das Monitoring, basierend auf technischen Werkzeugen wie ELK und Apache Spark.

18:00 bis 19:00
How to write your own Slack Chatbots in JavaScript

Through conversational experiences people can interact with applications easier than ever before. For developers this means they have to understand how to build these natural user interfaces in addition to browser interfaces and mobile apps. In this session we will demonstrate live how to develop a chatbot for Slack. Via Node.js and the open source project botkit we’ll connect to Slack’s WebSocket API. In order to define the conversation flow we’ll leverage intents, entities and dialogs from IBM Watson’s Conversation service.

Quo vadis BPM?

Business Process Management: Ist das nicht der verstaubte Bruder von SOA und ESBs? Führen aktuelle Trends nicht zu reaktiven Microservices-Architekturen, die ohne BPM auskommen? Ist Orchestrierung nicht gar ein Antipattern? Oder ist es ganz anders und der Bedarf nach BPM steigt, um Ordnung in dieses Chaos zu bringen? Wie können wir zum Beispiel vermeiden, dass Fachabteilungen oder Businessanalysten das Handtuch werfen, wenn sich die IT mit resilienten und elastischen Systemen austobt, in denen aber nicht mehr erkennbar ist, wie Geschäftsprozesse "Ende zu Ende" ablaufen? Und kann moderne BPM-Technologie Entwicklern nicht auch bei handfesten Problemen helfen? Tools und Methoden haben doch eine große Reife erlangt. Was können wir davon weiter nutzen, und was sollten wir vielleicht bleiben lassen? Im Fishbowl-Format diskutieren die Sprecher des BPM Days mit Ihnen, um zu klären, welche Zukunft BPM hat.

Keine Slides vorhanden
Alexa, frage JAX: Wie entwickelt man Skills?

Mobil war gestern, heute braucht jeder einen Alexa-Skill. So ungefähr könnte die Flut von Skills im Store von Amazon erklärt werden. Denn Alexa erfreut sich steigender Beliebtheit - und das nicht nur im privaten Umfeld, sondern auch in Unternehmen. Die starke Verbreitung hat nicht nur mit der Einfachheit des Systems zu tun, sondern sicherlich auch mit dem breiten Angebot an Skills, den „Apps“ für Alexa. Doch was steckt dahinter? Wie wird so ein Skill entwickelt? Wie kommt ein Skill zum Kunden? In diesem Talk beleuchten wir die Anatomie eines Skills und zeigen am Beispiel eines der größten Logistikunternehmens die Entwicklung von Skills in Java auf Basis der Serverless Computing Platform AWS Lambda.

Keine Slides vorhanden
Von Jurassic Park zu Microservices

Wer kennt das nicht: Über fünfzehn Jahre alter Java-Code, angewachsen auf mehrere Millionen LOCs und bei einer größeren Menge Kunden im operativen Einsatz. Eine ausreichende Testabdeckung sucht man vergeblich. Immer wieder stellt sich im Laufe eines Produktlebenszyklus die Frage, wie man dem Stand der Technik folgen kann, ohne auf der einen Seite alles wegzuwerfen und nicht mit einem großen neuen Projekt alles zu riskieren, und auf der anderen Seite nicht viel zu langsam zu modernisieren. In diesem Talk möchte ich Einblicke in die Strategien, Techniken, Tools und Patterns geben, die in dem aktuellen Projekt seit fast drei Jahren nun zum Einsatz kommen. Hierbei handelt es sich um ein Projekt mit mehreren Millionen LOCs, das als Produkt in mehreren Versicherungen zum Einsatz kommt.

Keine Slides vorhanden
Java-Projekte für Kubernetes und OpenShift entwickeln

Viele sprechen von einem neuem IT-Zeitalter, bei dem Anwendungen in Container verpackt und von Orchestrierungsplattformen wie Kubernetes oder OpenShift skalierbar betrieben werden. Und tatsächlich spricht vieles dafür, dass wir unsere Java-Anwendungen künftig nicht mehr als JAR-, WAR- oder EAR-Artefakte ausliefern werden, sondern als Docker-Container-Images. Dieser Vortrag zeigt, wie dieser Übergang schmerzfrei vollzogen werden kann. Damit das gelingen kann, brauchen wir eine lokale Clusterentwicklungsumgebung. Tools wie Minikube und Minishift zeigen, wie einfach es ist, komplexe Plattformen wie Kubernetes oder OpenShift mit einem einzigen Kommando zu installieren. Um ein bestehendes Projekt auf diese Umgebungen umzustellen, helfen Werkzeuge wie das fabric8-maven-plugin. Dieses erlaubt es, ähnlich wie Spring Boot, Java-Anwendungen ohne Anpassungen und ohne Konfiguration für Kubernetes bzw. OpenShift aufzubereiten, um es dorthin zu deployen. Dieser Vortrag konzentriert sich auf Livedemos, bei denen wir bei Null beginnen. Es wird gezeigt, dass es nur Minuten braucht, um eine klassische Java-Anwendung auf Kubernetes zu portieren. Wir lernen die Facetten eines neuen Entwicklungsworkflows kennen, sodass wir am Ende ein gutes Gefühl dafür haben werden, wie man Java-Projekte für Kubernetes und OpenShift entwickeln kann, ohne jedoch alle Feinheiten dieser Plattformen im Detail kennen zu müssen.

Microservices mit Spring Boot, Angular und Docker

In dieser Session wird Kai einen kleinen Microservice auf Basis von Spring Boot/Data/REST und Angular (aktuelle Version) entwickeln. Kai zeigt auch ein paar Tricks, wie man diesen in ein effizientes Docker Image verpackt und schließlich einen Docker-Container in einer Cloud-Infrastruktur (AWS und Heroku) zum Laufen bringt. Natürlich alles mit Live-Coding und Demos.

Onlinemarketingorientierte Architektur

Oftmals sind unsere Anwendungen Teil des öffentlichen Internets, und wir wollen mit unserem Content, Shop oder Webanwendung von Kunden oder Interessenten gefunden werden. Dabei kümmern wir uns entweder selbst um das Thema Onlinemarketing, haben eine externe Agentur oder gar eine eigene interne komplette Abteilung dafür. Ich entdecke bei meinen Kunden und Partnern immer wieder dieselben Muster und Konflikte in Zusammenarbeit mit den Themen aus dem Onlinemarketing. In meinem Vortrag geht es um diese Beobachtungen, Probleme, Ursachen und Lösungen. Dabei werden konkrete Implementierungen angerissen wie der "No-Index Feature Toggle", "Graceful degraded Dead Links" oder "Header-based A/B Testing". Des Weiteren möchte ich unserer Java-Community zeigen, dass uns SPA oder Tools wie React zwar wunderbar bei der Umsetzung helfen, aber K.o.-Kriterien und Horrorszenarien für Google-Optimierungen werden können. Mein Appell dabei an alle Architekten und Entwickler von öffentlichem Content ist es, onlinemarketingorientierte Architekturen zu entwerfen und entsprechende Konzepte umzusetzen.

Prevent Hacking with Modules in Java 9

Before Java 9 there was a lot of room to do tricky things mainly using reflection. Some of these possibilities were even considered as security holes. With the advent of Java 9 the module systems closes these secret doors in Java run time library and also allows library developers to do the same for their libraries. The presentation will demonstrate some shocking and funny examples what you could do using Java 8 and then tries to do the same obviously failing using Java 9.

20:15 bis 21:15
Retro-Computing: Spaß mit C64 und 8 Bit – früher war doch alles besser!?

Zurück in die Zukunft: Heute ist Pixelblockgrafik wieder in. Damals in den 80er-Jahren war es technisch State of the Art: die Zeiten, als PAL oder NTSC einen großen Unterschied machten, als PEEK and POKE alles andere war als ein Kartenspiel. Und als 3-Kanal-„Blech“-Sound sich anhörte wie eine himmlisch süße Arie. Wir reden von der Ära der 8-Bit-Computer und ihren Vertretern wie dem Commodore C64. In einer lockeren Night Session wollen Jörg Neumann und Christian Weyer Sie in eine niemals zu vergessende Zeit mitnehmen. Was die anderen „Retro“ nennen, ist faktisch eine Hommage an eine Epoche der maßgeblichen Beeinflussung einer gesamten Computergeneration und sogar einer gesamten Industrie. Die beiden BASTA!-Haudegen wollen in gemütlicher Atmosphäre zurückblicken, mit dem C64 Spiele zocken, ein kleines bisschen BASIC und vor allem ein bisschen 6502 Assembler hacken – aber vor allem ganz viel positive Stimmung und Erinnerungen verbreiten. Lassen wir Datasette, Floppy, SID, VIC und Co. wieder aufleben: Come and have some fun!

Keine Slides vorhanden
Bombenstimmung im Team - Umgang mit Cholerikern und anderen schwierigen Zeitgenossen

Was tun, wenn der Chef ein Choleriker ist oder der Projektleiter immer einen Schuldigen sucht? Der Umgang mit schwierigen Kollegen und Vorgesetzten kann einem den Berufsalltag so richtig vermiesen, selbst wenn die Arbeit an sich Spaß macht. Wie reagiere ich auf die cholerischen Attacken meines Chefs, und wie neutralisiere ich Konflikte im Team? Deeskalation oder Hyperventilation? Welche Strategie führt zum Ziel, und wie sehen geeignete Maßnahmen aus? In gewohnt unterhaltsamer und informativer Manier lernen die Teilnehmer in dieser Session, wie man Konflikten im Team begegnet und zukünftig Eskalationen vermeidet.

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.

Keine Slides vorhanden

Thursday - 09. November 2017

09:00 bis 13:00
Java-Modulsystem: Eine praktische Einführung

Mit dem Release 9 hat Java ein Modulsystem bekommen. Das Modulsystem hat zwei relevante Aspekte. Es bedeutet einerseits, dass das JDK selbst modular ist. Wir wollen u. a. der Frage nachgehen: Welche Konsequenzen hat das modulare JDK für unsere Java-Applikationen? Darüber hinaus bietet das Modulsystem die Möglichkeit, die eigenen Applikation oder Bibliotheken zu modularieren. Was muss man dafür tun? Wir schauen uns die Syntax und die Werkzeuge für die Definition eigener Module an und diskutieren den Migrationspfad von der nicht modularen zur modularen Anwendung.Bitte Notebooks mit JDK 9 mitbringen; wir wollen einige der Prinzipien an kleinen Beispielen üben und ausprobieren.

Keine Slides vorhanden
09:00 bis 10:00
Microservices als technisch funktionierender Flow – so geht's!

Der Trend geht klar zu (Micro-)Services und komplexen verteilten Systemen. Aber wie kann aus einem Haufen Services ein technisch funktionierender "Flow" entstehen, der einen übergreifenden fachlichen Geschäftsprozess abbildet? Welche Probleme bringen rein eventgetriebene Systeme mit sich? Welche Art der Kollaboration zwischen den Services ist erwünscht? Wie können besonders lang laufende Prozesse berücksichtigt werden? Was bedeutet all dies für uns, die Entwickler? In diesem Vortrag werde ich anhand einer Beispielanwendung (verfügbar auf GitHub) und Live-Hacking zeigen, wie eine sinnvolle Architektur aufgebaut werden kann. Dazu verwende ich Java, Spring Boot, Apache Kafka und Camunda. Ich zeige Limitierungen rein ereignisbasierter Architekturen auf und diskutiere Kopplung. Ich beschreibe die Auswirkung verschiedener Lösungsvarianten auf die Änderbarkeit des Gesamtsystems. Außerdem zeige ich, warum die Einführung einer leichtgewichtigen Zustandsmaschine keinesfalls zentrale Steuerung bedeuten muss. Der Vortrag ist mit Praxiserfahrungen aus realen Kundenprojekten gespickt.

JShell in Java 9: Ich mach dann mal RDD in Java

Wer kennt es nicht: Man hat eine schöne neue Bibliothek gefunden, die alle Probleme löst. Doch die Dokumentation lässt viele Fragen offen, wie sie benutzt wird. Oder was passiert, wenn ich diese oder jene Zeile in unserem Projekt ändere? Und was für ein Ergebnis gibt mir nochmal "Hallo Welt".substring(3,6) zurück? Während man so darüber nachdenkt, schaut man neidisch zu seinem Scala/Clojure/Haskell-Kollegen rüber, der diese Fragen in sekundenschnelle in seiner REPL ausprobiert. Mit Java 9 hält endlich auch eine REPL namens JShell Einzug ins Java-Universum. In diesem Vortrag werde ich zeigen, was JShell kann und wie es an vielen Stellen den Alltag als Java-Entwickler verbessern kann.

Offline-First Apps with Web Components

We will explore how to boost the usability of web and mobile-web apps by implementing offline-first functionalities, it's the only way to guarantee 100 per cent always on user experience. Low signal or no connectivity should no longer be a blocker for the user, we will discuss the available solutions for caching, in-browser database, and data replication. We will also take a look at how WC help solving those issues out of the box. There will be a live coding demo to see how it's simple to manipulate a large data, completely offline.

Serverless – Lessons learned

Wie ist der Status quo vom Serverless-Hype? Auf jeden Fall Zeit, sich die ersten „Lessons learned“ anzuschauen. Nicht nur für Einsteiger in der Serverless-Welt gilt es, einige Stolperfallen zu berücksichtigen, in die man nicht ein zweites Mal laufen muss. „No Server“ heißt nicht „No Ops“! Die Verantwortung für Fehlerfreiheit, Zuverlässigkeit und korrekte Ergebnisse können nicht einfach unter den Tisch fallen gelassen werden. Wir diskutieren geeignete und ungeeignete Einsatzmöglichkeiten von „Serverless“, Besonderheiten, die es beim Programming Model zu berücksichtigen gibt, ebenso wie beim Handling der Containerinstanzen, Caching, Latenzen, Sicherheit, Monitoring, Deployment Chains etc.

100 per cent Code Coverage in Real World Software

If you create software that is planned for continuous enhancements over several years then you'll need a sustainable strategy for code quality. Code coverage by automated tests is one important metric, and its value should equal 100 per cent at all times. This talk will show why this is so and how it can be achieved in real world software.

Keine Slides vorhanden
Sichere(re) Software durch bessere Abstraktion und statische Analyse

Neben einem geschärften Bewusstsein für Softwaresicherheit und der Schaffung von organisatorischen Randbedingungen, die eine sichere Entwicklung zulassen, sind auch die Sprachen und Werkzeuge, die wir zur Softwareentwicklung einsetzen, ein relevanter Faktor. Auch heute entstehen viele Sicherheitslücken immer noch aufgrund von Problemen wie Buffer Overruns, kaputter Zeigerarithmetik oder unvollständigen Verzweigungen oder Switch Fallthroughs. Um hier Fortschritte zu machen, sind bessere Abstraktionen der Schlüssel. In modernen Sprachen und VMs helfen sie, sicherheitsrelevante Fehler wie Buffer Overruns gar nicht erst entstehen zu lassen. Programmannotationen können für die statische Programmanalyse verwendet und ausgewertet werden. Passende Abstraktionen helfen aber auch dabei, die Programmlogik für Fachanwender besser verständlich zu machen. Dadurch wird die Software leichter reviewbar, und Teile der Implementierung können durch Generierung oder Interpretation automatisiert werden, was wiederum hilft, Low-level-Fehler zu vermeiden. In diesem Vortrag zeigen wir einige Beispiele, wie man mit diesen Mitteln Software robuster und damit sicherer entwickeln kann. Dabei kommen einige Konzepte aus der theoretischen Informatik zur Sprache (bspw. SMT Solver oder Model Checker), wir illustrieren alles aber mit konkreten Beispielen aus der Praxis. Damit sollte der Vortrag für jeden Softwareingenieur nachvollziehbar sein. Wir sprechen beispielhaft Werkzeuge wie Z3, MPS oder Xtext an, betonen aber die konzeptionellen Aspekte.

Spring 5.0 und Spring Boot 2.0 – ein Überblick

Drei Jahre nach dem letzten Major-Release erschien im Spätsommer 2017 die fünfte Generation des Applikationsframeworks Spring. Der Vortrag gibt einen Überblick über die wesentlichen Neuerungen: Updates bzgl. Infrastruktur und Abhängigkeiten, neue Containerfeatures sowie das reaktive Webframework WebFlux. Weiterhin werfen wir einen Blick auf die Integration mit Ökosystemprojekten und wie sich diese Neuerungen in Spring Boot 2.0 niederschlagen.

Keine Slides vorhanden
10:45 bis 11:45
Blockchain Platform Hell: Do you understand your Investment?

Currently the technology market around the so called “blockchain technology” has reached a new hype-cycle high. New platforms, cryptocurrencies, token sales and “innovative products” make it into the media every other week. During the last twelve month several products evolved on the blockchain market. Some of those products are based on smart contracts, some of those products are platforms with underlying cryptocurrencies. There are token sales as well as new protocols that will disrupt the market. Many people jumped on the hype train and invested into some of those platforms, currencies and products – often without actually knowing what is really behind and what risks are to bare. In this talk we present a handful of platforms, protocols and business models currently available. Through the talk you get an introduction into the technology and an insight into the blockchain platform universe. We will discuss the possibilities of investing into certain products and take a look at current and future risks that come with such investments. The talk focuses on public ledgers and products building on them.

Keine Slides vorhanden
Neues aus der Scala-Welt

Scala hat sich hinter Java als Sprache Nummer Zwei auf der JVM etabliert. Populäre Frameworks wie Spark, Kafka, Flink sind in Scala geschrieben, Firmen wie SAP und IBM bekennen sich zu Scala und unterstützen öffentlich das Scala Center. Und als wären das nicht genug Gründe, sich den aktuellen Stand der Scala-Entwicklung anzusehen, scheinen einige geplante neue Java-Features Scala als Blaupause zu haben (z.B. Data Classes, Pattern Matching usw.) - ein genauerer Blick auf Scala ist also vielleicht auch ein Blick auf die Zukunft von Java. Am Anfang steht die Bestandsaufnahme: Scala 2.12. Die aktuelle Scala-Version ist das "Scala für Java 8" - wie sieht es mit der Interoperabilität von Scala und Java 8 aus? Und wie groß sind eigentlich noch die Unterschiede, wo doch Java mit Lambdas nun auch "Higher Order Functions" kennt? Davon ausgehend der Überblick über einige interessante, aktuelle Projekte in der Scala-Welt: Scala.js, Scala Native und Metaprogrammierung mit Scalameta.Schließlich der Blick in die nahe Zukunft: Was ist geplant für Scala 2.13, und was verrät uns Martin Oderskys Forschungsprojekt "Dotty" über Scala 3.0?

Keine Slides vorhanden
Web-APIs – ganz einfach, oder?

Web-APIs sind allgegenwärtig und haben sich als Mittel zur Systemintegration in der Breite durchgesetzt – nicht zuletzt auch deshalb, weil sie als leichtgewichtig und einfach umsetzbar gelten. Doch ist es wirklich so einfach? Spätestens beim ersten größeren Projekteinsatz wird deutlich, dass eine Reihe von Herausforderungen zu meistern ist. Wie geht man mit vorübergehend nicht erreichbaren Endpunkten um? Bietet SSL in allen Umgebungen ausreichende Sicherheit? Wer kümmert sich um ungültig werdende Zertifikate? Und wie setzt man langlaufende Prozesse am besten um? Dieser Talk liefert zahlreiche Tipps aus dem Projektalltag.

Serverless Architecture meets Continuous Delivery

Serverless Architekturen basieren auf Function-as-a-Service-Angeboten, wie zum Beispiel AWS Lambda, welche den Kleber für Serverless Ressourcen darstellen. Genauer gesagt ist AWS Lambda eine elegante und skalierbare Lösung für die Verarbeitung von Events in der Cloud. Geeignete Beispiele sind die Analyse von eingehenden E-Mails und das Konvertieren von Dateiuploads in andere Formate. In Kombination mit serverless API Gateways eignet sich AWS Lambda auch für den Betrieb von HTTP-basierten APIs. Aus Entwicklerperspektive sollten Serverless Architekturen einfacher zu ändern sein, da das Pflegen der zugrundeliegenden Infrastruktur entfällt. Hierbei wird häufig übersehen, dass Serverless Applikationen meist mehrere Cloud-Dienste und zahlreiche Cloud-Ressourcen umfassen und daher eine manuelle Konfiguration dieser stark fehleranfällig ist. Dem neuesten Stand der Technik entsprechend ist die Lösung für dieses Problem Continuous Integration/Delivery (CI/CD). Jedoch lassen sich etablierte Praktiken und Tools für CD-Pipelines nicht auf natürliche Art auf Serverless Architekturen anwenden und schaffen hierdurch neue Herausforderungen. Wir zeigen Lösungen für die bei der Entwicklung von Serverless Anwendungen zwangsläufig auftretenden Probleme auf. Hierbei diskutieren wir Methoden, etablierte Praktiken und Tools für die Realisierung von Serverless CI/CD-Pipelines für AWS Lambda und verwandte Dienste. Demonstriert werden diese anhand einer Single Page-Applikation, welche ausschließlich auf Serverless Technologien basiert.    

Die Top-Hacks der letzten Monate - Schlimmer geht immer

In dieser unterhaltsamen Session sehen Sie meine persönliche Auswahl an öffentlich gewordenen skurrilen, tollkühnen, wunderbaren sowie peinlichen Hacks der letzten Monate. So manchen wird es verwundern, welch grobe Schnitzer und einfache Versäumnisse zu den offensichtlichsten Hacks der letzten Monate geführt haben. Ebenso wird es erstaunen, wie technisch ausgefeilt manch anderer Hack doch war und wie kreativ Angreifer vorgehen. In dem obligatorischen „Lessons Learned“-Teil versuche ich, mit Ihnen die Punkte zu erarbeiten, die die Sicherheitslücke vermieden oder zumindest das Ausnutzen erschwert hätten. Somit entsteht abseits des Unterhaltungswerts der jeweiligen Hacks noch ein sicherheitstechnischer Nutzen.

How to organize your Code - Modules vs. Architecture

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 carefully manage and control the dependencies among the different elements and components of a software system. This session will first look at the major reasons why so many systems end up in an unmaintainable state and then look at different strategies for better code-organization. We will first consider module systems like Java 9 or OSGI. Then we will look a new innovative domain specific language to describe software architecture that allows to define an enforceable architectural blueprint for any software system. As a takeaway you will understand the limitations of module systems used for architectural purposes.

Keine Slides vorhanden
Going reactive with Spring Data

Reaktive Anwendungen verlagern Verantwortlichkeiten in Richtung einer Streaming-orientierten Ausführung. Reaktive Programmiermodelle erlauben somit die vorhandenen Ressourcen, wie Speicher und CPU, effizienter zu nutzen. Dieser Talk konzentriert sich auf die geänderte Perspektive der Ausführung mit Fokus auf Project Reactor. Wir schauen uns detailliert eine Applikation an, die durchgängig reaktiv ist: vom Datenzugriff mit Spring Data bis hin zum Weblayer mit Spring Web Flux.

Property-based Testing mit Java

Testgetriebene Entwicklung in objektorientierten Sprachen setzt bislang meist auf beispielbasierte Testfälle, wie man sie leicht mit JUnit und ählichen Testframeworks erstellen kann. Schaut man jedoch über den Tellerrand zu funktionalen Programmiersprachen wie z.B. Haskell oder F#, dann findet man dort etwas anderes: Property-Tests. Property-Tests basieren auf der Idee, die erwünschten Eigenschaften unseres Programms zu beschreiben und anschließend das Framework selbstständig Testfälle generieren zu lassen, die diese Eigenschaften bestätigen oder falsifizieren. In diesem Vortrag werde ich sowohl auf die Theorie hinter Property-based Testing eingehen als auch konkret zeigen, wie man mit Jqwik unter Java solche Tests umsetzen kann.

Keine Slides vorhanden
12:00 bis 13:00
Java Flight Recorder – So funktioniert das Java-Profiling-Tool

Mit dem Oracle-Java-SE-Advanced-Featureset wurden Werkzeuge zum unternehmensweiten Java-Management bereitgestellt. Der Werkzeugkoffer beinhaltet Diagnose- und Monitoringtools für Java-Laufzeitumgebungen. Java Mission Control ist ein etabliertes Werkzeug für Monitoring, Profiling und Diagnose der eigenen Java-Anwendung bis zum Applikationsserver. Als Bundle mit der HotSpot Java Virtual Machine ist Java Mission Control als Client- oder als Eclipse-Version verfügbar. Java Mission Control basiert auf dem Eclipse RCP und besteht aus zwei Komponenten, der Managementkonsole 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.

Serverless-Szenarien mit Azure Functions - Integration as a Service

Wie bitte? Microsofts Azure-Cloud auf der W-JAX? Ja, in der Tat. Denn nicht immer muss oder soll es AWS oder GCP sein. Azure bietet mittlerweile eine holistische Plattform für so gut wie jede Cloud-Anforderung an. Auch und vor allem in den Bereichen Cloud-native und Serverless Functions investiert Microsoft sehr viel. In dieser Session zeigt Christian Weyer neben den Grundlagen vor allem typische Anwendungsszenarien für Azure Functions. Der Fokus soll dabei auf eventgetriebenen Integrationslösungen und Workflowszenarien liegen - hier bedarf es nicht immer Unmengen von Code, um ans Ziel zu kommen. Lehnen Sie sich also zurück und sehen Sie "die andere Cloud" in Action. Keine Angst vor Azure!

Hot Java or just Instant Coffee

Wie schütze ich meinen Java-Bytecode vor unerwünschten Manipulationen, Reverse Engineering und Dekompilierung? Diese Frage stellen sich mittlerweile immer mehr Java-Entwickler. Denn die JVM-Spezifikation liefert alle nötigen Informationen, um Java-Bytecode in den ursprünglichen Sourcecode zurückzuentwickeln. Kennen Sie JD-GUI, JAD oder auch andere Java Decompiler? Erfahren Sie, wie Sie diesen Tools effektiv entgegenwirken.

Security bei Microservices-Architekturen: außen hui, innen pfui?

Die Notwendigkeit der Authentisierung und Autorisierung der Nutzer eines Anwendungssystems steht außer Frage und wird durch moderne Standards hinreichend unterstützt. In einer Microservices-Architektur besteht allerdings zusätzlich Bedarf, die Schnittstelle jedes einzelnen Service abzusichern, um den Zugriff auf die zur Verfügung gestellten Ressourcen zu beschränken. Serviceaufrufe können dabei im Rahmen einer Session eines am System angemeldeten Benutzers erfolgen, viel häufiger werden sie aber asynchron und ohne Nutzeridentität (z.B. gesteuert durch Workflowsysteme oder ETL-Tools) ausgelöst. Dabei legt nicht der Betrieb fest, welcher Service durch wen aufgerufen werden kann, vielmehr definiert der Entwickler einer Schnittstelle, ob und worauf ein Klient zugreifen darf. Die Mechanismen wie tokenbasierte Identitätsprüfung und Autorisierung sollten dabei durchgängig verwendet und zentral bereitgestellt werden. Begleiten Sie mich bei der Einführung einer Sicherheitsarchitektur im Rahmen der Ablösung eines Monolithen durch Microservices.  

The Beginner’s Guide to Spring Cloud

You have heard and seen great things about Spring cloud and you decide it is time to dive in and try it out yourself. You fire up your browser head to Google and land on the Spring Cloud homepage. Then it hits you, where do you begin? What does each of these projects do? Do you need to use all of them or can you be selective? The number of projects under the Spring Cloud umbrella has grown immensely over the past couple of years and if you are a newcomer to the Spring Cloud ecosystem it can be quite daunting to sift through the projects to find what you need. By the end of this talk, you will leave with a solid understanding of the Spring Cloud projects, how to use them to build cloud-native apps, and the confidence to get started!

Keine Slides vorhanden
Finally, Enterprise JavaScript is easy!

JavaScript in the enterprise: is it hard? Is JavaScript really usable in the context of enterprise applications and as the basis of frontend browser-based applications? How are enterprises such as PayPal, Tesco, and Oracle solving these problems? In this session, you'll be introduced to kraken.js by PayPal, as well as Oracle JET (oraclejet.org) which is Oracle's JavaScript toolkit, including data visualizations, architectures, templates, components, and a range of enterprise solutions, such as modularity, internationalization, and accessibility. Everything is free and open sourced on GitHub and you'll be shown how to get started with it, via demos and live coding. By the end of the session, you'll be able to leverage free and open source technologies as the basis of your own web and mobile solutions, today!

Cloud Computing mal anders: ein Blick auf die Wolfram-Cloud durch die Java-Enterprise-Brille

Alle großen Player im Java-Enterprise-Umfeld und darüber hinaus bieten inzwischen Cloud-Angebote. Am bekanntesten ist hier sicherlich das Angebot von Amazon AWS. Weitaus weniger bekannt ist das relativ neue Cloud-Angebot der Wolfram Development Platform. Dieser Platform liegt die Wolfram Language zugrunde, eine Verallgemeinerung der ursprünglich primär für mathematische Anwendungen entworfenen Programmiersprache Mathematica. Die Wolfram Development Platform bietet einerseits notebookzentrierte Entwicklung gegen eine lokale Engine. Andererseits können fast beliebige Funktionen sehr einfach als Webservice deployt und in der Cloud ausgeführt werden. Als extremes Beispiel lässt sich ein nicht trivialer Service inklusive Cloud-Deployment in einer einzigen Zeile aufschreiben. Hier sind bei allen Unterschieden deutliche Parallelen etwa zu Amazon Lambda oder anderen Serverless-Plattformen zu erkennen. An allgemeinen Vorteilen lassen sich die elegante zugrunde liegende Wolfram Language mit funktionalen und symbolischen Sprachelementen und die riesige Standardbibliothek mit unzähligen Funktionen sowie einer großen Anzahl unterstützer Import- und Exportformate nennen. Hauptnachteil ist sicherlich das Closed-Source-Modell und die damit einhergehende restriktive Lizenzierung. Viele Arten von Services oder Anwendungen - insbesondere im Bereich traditioneller Geschäfts- und Persistenzlogik - lassen sich sicherlich weiterhin am besten mit einer Java-Enterprise-Lösung umsetzen. Für stark algorithmische bzw. berechnungslastige Web Services und für Rapid Prototyping fast beliebiger Services ist die Wolfram-Cloud schon heute eine interessante Alternative.

Keine Slides vorhanden
14:30 bis 15:15
Architecting for Continuous Delivery

DevOps and Continuous Delivery represent a new paradigm for IT service delivery that promises higher quality and stability as well as faster time-to-market. However deploying this new paradigm requires changes to both organizational culture and architecture. In this talk, Jez will present the architectural principles and patterns that enable continuous delivery at internet scale, and discuss how to incrementally evolve existing systems in order to deploy them.

15:30 bis 16:30
UI-Feuerwerk mit Struktur: Web Components mit Angular

Was haben Bootstrap, Foundation oder Material Design gemeinsam? Richtig, sie bieten ein Framework, um unsere HTML5-Anwendung “entwicklerhübsch” darzustellen. Werden auf dieser Basis UI-Komponenten entwickelt, sind sie meist stark mit Konzept und Design des Frameworks verwoben. Eigene, oftmals durch Corporate Identity vorgegebene UI-Semantiken, Bedienkonzepte und Designkonzepte lassen sich nur schwer mit einem bestehenden Framework verheiraten. Die Portier- und Wiederverwendbarkeit leiden darunter. Doch moderne Konzepte, wie Web Components, Shadow DOM und Custom-HTML-Elemente können helfen, eigene wiederverwendbare und gutaussehende UI-Komponenten zu entwickeln. In dieser Session wollen Jörg Neumann und Manuel Rauber ein Konzept zur Entwicklung von Web Components mit dem Angular-Komponentenmodell vorstellen und zeigen, mit welchem Workflow man vom Design bis hin zur stylisch umgesetzten App kommt.

Testgetriebene Entwicklung bei funktionalem Code – Alles gleich oder alles anders?

Testgetriebene Entwicklung (engl. Test-driven Development, abgekürzt TDD) hat sich bei der Entwicklung objektorientierter Systeme bewährt. Manche Vertreter funktionaler Sprachen behaupten, dass TDD bei „richtig“ funktionalem Code nicht mehr nötig ist. Ich möchte in diesem Vortrag beleuchten, inwieweit TDD bei der Verwendung funktionalen Programmierstils noch sinnvoll ist, was wir dabei verändern müssen und wie sehr das Vorgehen von der Programmiersprache abhängt. Typsysteme, Property Testing und Mocks spielen in dieser Diskussion eine wichtige Rolle. Und vielleicht können wir dabei auch etwas über die Verwendung funkionaler Programmierelemente bei der Programmierung mit Java lernen. Die Zuhörer sollten sowohl die Grundlagen der testgetriebenen Entwicklung kennen als auch an der aktuellen Diskussion über funktionale Sprachen interessiert sein.

Keine Slides vorhanden
Fun with JShell

Die neue JShell in Java 9 macht Spaß. Man kann damit einfache Ausdrücke testen, oder Softwarebibliotheken ausprobieren. In dieser Session lernen Sie, was man darüber hinaus noch Alles damit anstellen kann. Sie lernen zum Beispiel, wie man die JShell API in einer eigenen Anwendung nutzen kann. Mit der richtigen Strategie wird die JShell sogar zum interaktiven Debugging Tool, das sich per Java Agent mit einer laufenden Anwendung verbindet, sodass Sie diese live analysieren und manipulieren können.

Keine Slides vorhanden
Microservices mit Apache Mesos und DC/OS betreiben

Um den wachsenden Daten- und Usermengen begegnen zu können, verändert sich die Architektur von Anwendungen aktuell sehr stark. Eine Anwendung besteht immer häufiger aus vielen kleinen Services, die verteilt und in Container verpackt sind. Verteilte Systeme hingegen unterliegen anderen Regeln als klassische monolithische Anwendungen. Insbesondere im Bereich Service Discovery, Load Balancing und Networking entstehen Herausforderungen für das moderne Datacenter. Um diese Probleme zu minimieren, abstrahieren DC/OS (Datacenter Operating System) und Apache Mesos die Komplexität von verteilten Systemen und etablieren sich dadurch als Clustermanager vieler großer Anwendungen. In dieser Session wird Johannes die Idee und Vorgehensweise von Apache Mesos erläutern, DC/OS vorstellen und im Zuge einer Demo viele coole Features am lebenden Objekt zeigen. Insbesondere wird dabei auf Best Practices und Betrieb im Bereich Microservices eingegangen.

Less Server vs. Serverless?

Kaum haben wir uns von dem klassischen Monolithen und der zugehörigen Ablaufumgebung namens Application Server zugunsten von Microservices und Embedded Runtimes verabschiedet, taucht am Horizont mit Serverless Applications bzw. Architectures schon die nächste Evolutionsstufe auf. Was bitte ist das jetzt schon wieder? Und wer braucht so etwas? Die Session zeigt, wie sich dank PaaS, BaaS, FaaS und einiger anderer Akronyme Mobile- und Enterprise-Anwendungen Cloud-basiert implementieren lassen - ganz ohne Server! Ganz ohne? Naja, fast.

Websecurity im Jahr 2017 – Neuigkeiten aus den OWASP Top 10

Seit 2003 erhebt das Open Web Application Security Project (OWASP) die OWASP Top 10, eine Liste der zehn kritischsten Sicherheitsrisiken für Webapplikationen. Es handelt sich dabei um eine der bedeutendsten Publikationen aus dem Bereich Websecurity überhaupt. Das Rating verkörpert einen breiten Konsens unter den Sicherheitsexperten weltweit und eignet sich dafür, Risiken in Anwendungen gezielt zu identifizieren, zu priorisieren und zu beheben. Die letzte Version der OWASP Top 10 stammt aus dem Jahr 2013. Nun wurde die Vorabversion der in diesem Jahr zur Veröffentlichung anstehenden neuen Fassung bereitgestellt. Neue Schwerpunktsetzungen finden sich u.a. im Bereich der Sicherung von Web-APIs sowie der automatisierten Detektion und Abwehr von Angriffen. Im Vortrag werden die Neuerungen der neuesten Auflage vorgestellt und deren Implikationen auf den Projektalltag von Java-Entwicklern verdeutlicht.

Keine Slides vorhanden
API-First-Design – Best Practices für ein konsistentes API-Management

APIs sind ein essenzieller Bestandteil moderner Applikationsarchitekturen und erlauben – bei einem konsistent umgesetzten Managementansatz – die effiziente Implementierung innovativer Lösungen. Der Mehrwert für Unternehmen: Neue digitale Märkte und Economies durch die engere Vernetzung mit Kunden und Partnern. Doch welchem Qualitätsansprüchen müssen solche Business-APIs erfüllen, um den gewünschten Mehrwert zu liefern? Wie sieht der Lifecycle insbesondere in der Designphase aus, und wie kann dieser IT-technisch unterstützt werden? In diesem Vortrag erläutern wir Best Practices, zeigen ein Vorgehen, wie das Design von APIs gelingt, und wie damit ein konsistenter API-Design-Lifecycle umgesetzt werden kann.

17:15 bis 18:15
Visuelle Regressionstests im Web als praktikable Alternative zu E2E-Tests?!

Visuelle Regressionstests sollen es dem Softwareentwickler erleichtern, im Web-Frontend-Bereich sichere Aussagen zur Qualität der entwickelten Anwendungen zu geben. Dabei werden Screenshots von Benutzeroberflächen gemacht und diese mit einem vorhandenen Referenzsatz verglichen. Auf diese Weise können CSS- und Templateregressionen erkannt werden, die mit DOM-basierten E2E-Tests nicht zu erkennen sind. Dazu zählen beispielsweise ungewollte Überschreibungen von CSS-Klassen oder Grafiken, die versehentlich nicht mehr sichtbar sind. Damit schließt dieses Testverfahren eine Lücke in der Reihe automatisierter Softwaretests. Mühselige manuelle Testaufwände werden so reduziert und Probleme DOM-basierter E2E-Tests überwunden. Was visuelle Regressionstests (VRT) in der Praxis leisten können, warum sie bisher nur vergleichsweise wenig Verbreitung finden und ob sie tatsächlich DOM-basierte E2E-Tests ersetzen können, soll diese Session versuchen zu klären.

RESTful Hypermedia-APIs: Sinn und Nutzen

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 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 es, am Ende selbst beurteilen zu können, ob Hypermedia für das eigene REST-API Vorteile bringt.

Keine Slides vorhanden
The Anatomy of Java Vulnerabilities

Java is everywhere. According to Oracle it’s on 3 billion devices and counting. We also know that Java is one of the most popular vehicles for delivering malware. But that’s just the plugin right? Well maybe not. Java on the server can be just at risk as the client. In this talk we’ll cover all aspects of Java Vulnerabilities. We’ll explain why Java has this dubious reputation, what’s being done to address the issues and what you have to do to reduce your exposure. You’ll learn about Java vulnerabilities in general: how they are reported, managed and fixed as well as learning about the specifics of attack vectors and just what a ‘vulnerability’ actually is. With the continuing increase in cybercrime it’s time you knew how to defend your code. With examples and code this talk will help you become more effective in tacking security issues in Java.

Keine Slides vorhanden
Software Craftsmanship matters!

Why craft and deliberate practice matter and how to raise the bar in today's software industry. What is software craftsmanship all about and how could you be part of it?

JDK 9 – The Java Platform Module System Working Practices

Nach der Freigabe des JDK-9-Release steht die Praxistauglichkeit für die Entwickler im Vordergrund. Das Oracle JDK 9 enthält mehr als neunzig technische Merkmale, und der Schwerpunkt von JDK 9 liegt bei der neuen Java-Plattformmodularisierung mit dem Projekt Jigsaw. Über die JDK-Enhancement-Vorschläge JEP 200 (modulares JDK), JEP 201 (modularer Sourcecode) und JEP 220 (modulare Laufzeit-Images) 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 auch für kleine Endgeräte berücksichtigt werden sowie die Verbesserung von Sicherheit und Wartbarkeit von Java-SE-Plattformimplementierungen, speziell vom JDK, verwirklicht werden. Im Vortrag werden Demobeispiele gezeigt, die eine Erstellung von individueller Java Runtime mit Anwendung anhand der JDK-9-Werkzeuge verdeutlichen, inbesondere mit jlink.

Friday - 10. November 2017

09:00 bis 17:00
Von 0 auf 100 - OpenShift, Kubernetes und Docker für angehende DevOps-Spezialisten

Von Docker hat sicher jeder Entwickler schon einmal gehört. Doch Container allein reichen nicht aus, um komplexe Anwendungen containerbasiert in Produktion zu bringen. Load Balancing, Fehlertorleranz, Continuous Integration und Delivery, Logging/Monitoring sowie Releasemanagement sind einige weitere wichtige Bereiche, um erfolgreich Softwareprodukte auszurollen.Kubernetes hilft in vielen Bereichen, diese Ziele und Aufgaben zu meistern. Dabei kommen weitere Begriffe und Konzepte zum Einsatz, die den Bereich der Container in die Cloud übergeben und es erlauben, aus vielen „kleinen“ Hosts einen einzelnen großen Host zu modellieren, der dann von vielen Automatismen profitiert. Aber auch Kubernetes ist lediglich ein Stück Technologie, das die Grundlage für weitere Themen, wie die Unterstützung der entsprechenden Release- und Entwicklungsprozesse vereinfachen soll.Für den allumfassenden Blick auf das DevOps-Thema kommt schlussendlich noch OpenShift von Red Hat ins Spiel. Hier können alle zuvor genannten Aspekte zusammengeführt und genutzt werden. 

Keine Slides vorhanden
React und TypeScript Workshop – Moderne Webanwendungen entwickeln

Wenn es um die Entwicklung zeitgemäßer Webanwendungen geht, fällt die Wahl mittlerweile immer häufiger auf die JavaScript Bibliothek React, die unter anderem auch von Facebook, Netflix und Twitter verwendet wird.In diesem Workshop lernen Sie, wie Sie mit React moderne Webanwendungen bauen können. Dazu werden wir gemeinsam Schritt für Schritt eine Beispielanwendung entwickeln, an Hand derer wir uns neben den React-Grundlagen auch ansehen, wie Sie z.B. REST-Aufrufe an ein Backend machen. Um Ansprüchen an Langlebigkeit, Entwicklungskomfort und Wartbarkeit gerecht zu werden, nutzen wir zur Entwicklung der Anwendung die Programmiersprache TypeScript. Voraussetzung für die Teilnahme an dem Workshop sind JavaScript-Kenntnisse. Die für React notwendigen neueren JavaScript- und TypeScript-Features werde ich Ihnen in dem Workshop Schritt für Schritt vermitteln.Zur Teilnahme an den Übungen ist ein Notebook erforderlich, auf dem Git, die LTS-Version von Node.js und eine IDE (z.B. Visual Studio Code oder WebStorm) installiert sind.

Coole Web-Apps mit Spring Boot, Angular und TypeScript [SOLD OUT]

In diesem Workshop werden wir eine kleine, aber vollständige Webapplikation entwickeln. Der Client basiert auf Angular (aktuelle Version), TypeScript und ein wenig Bootstrap. Der Server 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 und auch die generellen Prinzipien von REST und HATEOAS (Hypermedia as the Engine of Application State, ein wichtiges REST-Architekturprinzip) erklären. Für die Cliententwicklung gibt Kai eine Einführung in Angular, TypeScript und die gängigen JavaScript-Entwicklungstools wie npm, Jasmine, webpack etc.

Web Security Workshop: 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 anhand zahlreicher Praxisübungen den Umgang mit professionellen Securitywerkzeugen sowie die allgemeine Vorgehensweise von Pentestern bei Angriffen auf Webanwendungen. Selbstverständlich werden wir uns auch um Abwehrmaßnahmen zur Absicherung der gefundenen Lücken kümmern, im Vordergrund steht jedoch der gezielte Umgang mit professionellen Angriffswerkzeugen zur (teilautomatischen) Durchführung einer Sicherheitsanalyse. Nach dem Workshop verfügen Sie über praktische Erfahrungen zur Angriffsdurchführung auf Webanwendungen, die Sie im Rahmen Ihrer eigenen Softwareentwicklung umsetzen können, um die Sicherheit Ihrer Projekte nachhaltig zu erhöhen.

X
- Gib Deinen Standort ein -
- or -