Montag - 2. November 2015
07:30 bis 09:00

Konferenz Check-in

09:00 bis 17:00
Workshop

Concurrency in der Praxis

german

+

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

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

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

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

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

Arno Haase, Nico Feiertag
Workshop

Workshop: Einführung in JavaScript für Java-Entwickler

german

+

In diesem ganztägigen Workshop führe ich euch in alle für Java-Entwickler wesentlichen Spracheigenschaften von JavaScript ein. Wir werden die Themen Objekte, Arrays, Funktionen, prototypische Vererbung und Module besprechen. Wir werden uns auch die neuen Sprachfeatures der nächsten Sprachversion ECMAScript 2015 ansehen.

Oliver Zeigermann
Workshop

Workshop zu Lambdas und Streams in Java 8

german

+

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

Angelika Langer, Klaus Kreft
Workshop

JavaFX Power Workshop

german

+

In Businessanwendungen spielen Aspekte wie Architektur, Test- und Wartbarkeit eine herausragende Rolle. Ein gewichtigerer Faktor ist zudem die User Experience (UX): Nicht blockierende Oberflächen, elegante Nutzerführung und auch das Aussehen einer Anwendung spielen in dieses Feld hinein und gelten heute als erfolgskritisch. Welche Werkzeuge stellt mir JavaFX dabei für Architekturgestaltung und Implementierung zeitgemäßer Oberflächen zur Verfügung? Der JavaFX Experts Workshop auf der W-JAX 2015 stellt genau diese Themen in den Mittelpunkt. Er informiert erfahrene Entwickler und Softwarearchitekten über die Besonderheiten von JavaFX für Business-UIs und beleuchtet dabei auch das Thema Migration von Swing nach JavaFX. Wenn Sie Ihr Wissen über JavaFX vertiefen wollen oder für ein Kundenprojekt nützliche Informationen für die Praxis benötigen, dann sind Sie in diesem Workshop, der von mehreren Trainern geleitet wird, richtig. Erfahrene JavaFX-Experten beleuchten ausgewählte Aspekte der Technologie und stehen Ihnen Rede und Antwort.

Alexander Casall
Workshop

Java EE 7 – Enterprise-Anwendungen ohne Ballast

german

+

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

Dirk Weil
Workshop

Der Docker Basis Workshop

german

+

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

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

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

Peter Roßbach
09:00 bis 09:15

Begrüßung Agile Day

09:45 bis 10:30
Session

Agile Verteilung: Geht nicht, gibt’s nicht!

german

+

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

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

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

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

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

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

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

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

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

 

 

Dr. Carola Lilienthal, Henning Schwentner
10:30 bis 11:00

Kaffeepause

11:00 bis 11:45
Session

Behavior-driven Development in plain Java

german

+

Obwohl Behavior-driven Development (BDD) schon seit über zehn Jahren existiert, hat es sich in der Java-Welt noch nicht etabliert. Ein Grund sind die existierenden BDD-Tools für Java, die für Entwickler einen erhöhten Wartungsaufwand mitbringen und BDD deswegen oft wieder aufgegeben wird. JGiven ist ein neues Open-Source-Tool für Java, bei dem Entwickler Szenarien direkt in Java-Code schreiben. Aus dem Code erzeugt JGiven einen HTML5-Report, den Fachexperten ohne Java-Kenntnisse lesen können.

Dr. Jan Schäfer
11:45 bis 12:30
Session

Agil wachsen

german

+

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

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

Judith Andresen
12:30 bis 13:30

Mittagessen

13:30 bis 14:15
Session

Train your Brain – Google Style

german

+

Das wir selbst der wichtigste Faktor in der Softwareentwicklung sind, ist an sich eine triviale Erkenntnis: Unsere Fähigkeiten, fokussiert zu arbeiten, kreative Lösungen zu finden, im Team zu lernen, wie wir ein gutes Produkt entwickeln und wie wir gut zusammenarbeiten, entscheidet über Erfolg und Spaß an der Arbeit. Wie man diese Fähigkeiten jedoch direkt und konkret entwickeln kann, darüber gibt es noch viel Diskussion. Ein Ansatz dazu ist „Search Inside Yourself“, eines der gefragtesten Fortbildungsprogramme innerhalb von Google, das jetzt öffentlich zugänglich ist: Es kombiniert Achtsamkeitstechniken mit Techniken zur Entwicklung emotionaler Intelligenz. Das Besondere: Das Alles ist kein Hokuspokus, sondern basiert auf neurowissenschaftlichen Erkenntnissen. Search Inside Yourself ist quasi ein wirksames Fitnesstraining für den Geist, das im Laufe der Zeit zu mehr Fokus, Motivation und Zufriedenheit führt. Markus Wittwer ist zurzeit in der Ausbildung zum Trainer für das Programm, stellt einige wesentliche Gedanken daraus vor und wird einige Übungen machen. Ihr Gehirn bekommt ein kleines Workout und Sie gehen (hoffentlich) erfrischt mit einem Lächeln und Impulsen für eine Umsetzung im Alltag aus der Session heraus.

Markus Wittwer
14:15 bis 15:00
Session

Agile Coach zu werden ist nicht schwer...

german

+

...einer sein dagegen sehr. Aber daran sind wir selbst schuld. Wir wissen, wie es geht und tun das auch beständig kund. Manchmal hören wir auch zu, aber meistens geben wir Antworten. Dass die dann manchmal nicht zur Frage passen, liegt daran, dass die anderen oft einfach noch nicht so weit sind. Besonders Manager haben einen großen Nachholbedarf. Das kann man alles so sehen, muss es aber nicht.

Dieser Vortrag ist eine Fundamentalkritik an agilem Coaching, an fehlenden Antworten und fehlenden Verständnis für Management. Der Vortrag möchte agile Coaches motivieren, Perspektiven zu wechseln und Wege zeigen, wie sie die fehlenden Antworten finden können.

Gerrit Beine
15:00 bis 15:30

Kaffeepause

15:30 bis 16:15
Session

Ich gestalte mein Unternehmen mit!

german

+

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

Konstantin Diener
16:15 bis 17:00
Session

Agile-Day-Expertenpanel

german

+

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

Mirko Schrempp
Dienstag - 3. November 2015
07:30 bis 09:30

Konferenz Check-in

09:00 bis 09:30

Begrüßung

09:30 bis 10:00
Keynote

The Journey of a Bank where IT took the Lead

english

+

This talk is about the journey of bank – from a traditional bank that believed in processes and outsourcing, to a bank where IT took the lead to become agile. You’ll hear all about the belief system that needed to be in place as a pre-condition for such a journey and the transformation that resulted in an IT organisation of 180 DevOps teams by 2014. In the beginning of 2015, this model was integrated with the bank’s commercial colleagues. The result was 400 “BusDevOps” teams, organised in “tribes” and “squads”, similar to Spotify, because the bank liked how they organised stuff. But of course with numbers like these, the bank ran into the challenges of agile at scale. One issue was backlog chaining, which can potentially result in a lot of waste, if you are not careful. In this talk, you’ll learn about solving these problems, as well as about microservices, service discovery patterns, continuous delivery at scale and how to organise squads and tribes according to a microservices architecture. Of course, you will also hear about how to build all this from a technology perspective.

Henk Kolk
10:15 bis 11:15
Session

MVC 1.0 – Das neue Webframework in Java EE 8

german

+

Der Begriff „MVC“ ist in aller Munde. Das zeigen auch die Ergebnisse des Java EE 8 Community Surveys. Über 60 Prpzent der Befragten gaben an, dass sie sich neben JSF auch ein MVC-Webframework in Java EE wünschen würden. Geleitet von diesem Wunsch wird in JSR 371 zurzeit am MVC-1.0-API für Java EE 8 gearbeitet. Doch es bleiben viele Fragen: Warum ein weiteres Webframework in Java EE? Woher stammt der Wunsch nach einer alternativen Technologie? Wie wird das MVC-1.0-API aussehen? Diese Session geht auf all diese Fragen ein und zeigt anhand konkreter Beispiele, wie mit MVC 1.0 leichtgewichtige und moderne Webanwendungen realisiert werden können.

Christian Kaltepoth
Session

The new Job of QA – Was ein Quality Engineer zukünftig können muss

german

+

Die Entwicklung und der Betrieb von Software haben sich in den vergangenen Jahren deutlich verändert. Agile Vorgehensweisen, Test-driven Development, Continuous Integration und DevOps sind erwachsen geworden und werden in immer mehr Unternehmen eingesetzt. Wie positioniert sich aber die Qualitätssicherung (QA) in diesem stark veränderten Umfeld? Software-Craftsmanship sorgt dafür, dass Softwareentwickler und Architekten die Verantwortung für die technische Qualität ihrer Software übernehmen. Product Owner und Businessanalysten behalten die fachliche Qualität im Auge. Fehler tun auch längst nicht mehr so weh, wenn Softwareänderungen mehrmals täglich live gehen können. Und bei Releases im Minutentakt kann sowieso nur noch automatisiert getestet werden. Was macht denn jetzt die QA? James Whittaker, Autor von „How Google Tests Software“, provozierte sein Auditorium schon 2011 mit der Aussage: Test is dead! Welche Rolle spielt QA dann zukünftig in der Produktentwicklung? Ausgehend vom überkommenen Verständnis von Qualität und Qualitätssicherung zeigt der Vortrag auf, was es morgen heißen wird, Quality Assurance oder, weiter gefasst, Quality Engineering zu betreiben und was ein guter Quality Engineer zukünftig können muss. Die Arbeit in Cross-funktionalen Teams erfordert zunehmend T-shaped Professionals, gleichzeitig sollte in einem Produktteam, das den gesamten Entwicklungszyklus betreut, eine Rolle existieren, die durchgehend Qualitätsaspekte im Auge behält und im Team vertritt. Der Vortrag soll zu einer Diskussion darüber anregen, wie sich Quality Assurance zu einem ganzheitlichen Quality Engineering erweitern muss, um den veränderten externen als auch internen Rahmenbedingungen zu genügen. Dem Zuhörer wird ein mögliches, neues Bild von Quality Assurance und Quality Engineering als Fundament einer qualitätsgetriebenen Organisation vorgestellt und ein Pfad für diese Veränderung aufgezeigt.

André Neubauer, Manfred Rätzmann
Session

Optional<T> - Ein kontroverser Typ in Java 8

german

+

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

Klaus Kreft
Session

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

german

+

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

Jens Schumann
Session

Reactive Design Patterns

english

+

Our software needs to become reactive, this realization is widely understood: we need to consider responsiveness, maintainability, elasticity and scalability from the outset. Not all systems need to implement all these to the same degree, specific project requirements will determine where effort is most wisely spent, but in the vast majority of cases the need to go reactive will demand that we design our applications differently. In this presentation we explore several architecture elements that are commonly found in reactive systems (like the circuit breaker, various replication techniques, or flow control protocols). These patterns are language agnostic and also independent of the abundant choice of reactive programming frameworks and libraries, they are well-specified starting points for exploring the design space of a concrete problem: thinking is strictly required!

Roland Kuhn
Session

Effektive Code-Reviews

german

+

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

 

Thorsten Maier
Session

Transactions? ACID, XA, BASE or what?

german

+

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

Adam Bien
Session

Wo bleibt das Semantic Web

german

+

Das „semantische Web“ ist ein Schlagwort, das mittlerweile seit über einem Jahrzent in der IT-Welt kursiert. Mittlerweile versteht Siri, wozu ein Regenschirm gut ist und Wolfram Alpha weiß, dass die Lottozahlen nicht vorraussagbar sind. 
Durchschlagende Erfolge und wirklich nützliche Informationen blieben bisher aus. Was sind die Hürden, mit denen Systementwicker konfrontiert sind? Wie können semantische Zusammenhänge in Big Data effektiv ermittelt und analysiert werden?

Sebastian Sprenger
Session

Personalverantwortung: Recruiting und People Management

german

+

Heute steht in den meisten Unternehmen der Mitarbeiter im Mittelpunkt, denn gute und zufriedene Mitarbeiter entscheiden über den Erfolg. Für viele ist Personalverantwortung neu und ein großer Schritt. Wie führt man Bewerbungsgespräche, was ist eine guter Recruiting-Prozess, wie unterstützt man Mitarbeiter mit People Management und wie behält man gute Mitarbeiter. Der Vortrag gibt einem alle notwendigen Grundlangen an die Hand, um richtig mit Personalverantwortung zu starten.

Stephan Schmidt
11:15 bis 12:00

Kaffeepause

12:00 bis 13:00
Session

Predictive Modelling mit R und Spark

german

+

„Predictive Modelling“ ist der Versuch, zukünftige Entwicklungen durch die Analyse von Vergangenheitsdaten vorherzusagen. Das Einsatzfeld reicht von intelligenten Vorschlägen im Internetshopping bis hin zur Risikoanalyse im Banking. Doch welche Technologien kann man dazu nutzen und welche Potenziale erschließen sich daraus? Diese Fragen stehen im Fokus des Vortrags. Es wird gezeigt, wie man Vorhersagemodelle mit R und Spark generiert, diese in Java-Code umwandelt und in seine Anwendung integriert.

Christian Koch
Session

Streams in Java 8: Reduce vs. Collect

german

+

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

Klaus Kreft
Session

Java EE meets Microservices

german

+

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

Lars Röwekamp
Session

Reactive Microservices mit Vert.x 3

german

+

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

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

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

 

Jochen Mader
Session

Die Unbenutzbarkeit von Enterprise-Webanwendungen – Naturgesetz oder Vorsatz?

german

+

Seien wir doch mal ehrlich: Unternehmensanwendungen im Web werden meistens von wahren Backend-Entwicklern gebaut. Das schließt die Bedienoberflächen in der Regel mit ein. Benutzerfreundlichkeit und Ästhetik haben dabei im Gegensatz zur Produktentwicklung oftmals nur einen sehr geringen bis gar keinen Stellenwert. Wir behaupten: Das muss nicht so sein. In diesem Vortrag geben wir praktische Empfehlungen und zeigen Herangehensweisen, mit denen Informatiker Bedienbarkeit und Nutzerakzeptanz von Weboberflächen wesentlich verbessern können.

Robert Glaser, Roman Stranghöner
Session

Lass die Affen testen – das Ende der Bananensoftware

german

+

Testen macht derzeit ca. 20 Prozent der Kosten einer neuen Software aus, Tendenz steigend. Diese Kosten entstehen hauptsächlich durch manuelles Testen bzw. manuelle Testfallerstellung. Was, wenn man automatisch Testen könnte? Und d. h. nicht manuell erstellte Tests (die will sowieso keiner erstellen und erst recht keiner pflegen will) automatisch ablaufen lassen, sondern wirklich vollautomatisch Testen? Wenn man sie pflegen muss, hat man zuviele Assertions, wenn ein Fehler durchschlüpft zuwenige. Regressionstesten ist eigentlich nur Änderungskontrolle. Warum nicht gleich ein „behavioral diff“ erstellen – 100 Prozent Assertions, 0 Prozent Pflegeaufwand? Und mittels Monkey-Testing kann man dafür die Tests sogar generieren. Monkey-Testing bezeichnet zufallsbasiertes Testen von Software über die Benutzeroberfläche und findet vollautomatisch und kostengünstig Fehler bzw. zeichnet das Programmverhalten auf. Durch die Kombination mit „behavioral diff“ und wenn man diesen Affen etwas trainiert, kann man seinen Testaufwand halbieren und die Ergebnisse verdoppeln.

Jeremias Rößler
Session

Panel: Der neue CTO – digitaler Zehnkämpfer?

german

+

Angesichts der viel beschworenen digitalen Transformation, welche immer mehr Unternehmen erfasst, ändert sich auch die Rolle des technischen Managers (CTO) ganz erheblich. Je stärker Technologie zum Erfolgsfaktor wird, desto mehr sind neben allen anderen Steuerungsfunktionen z. B. auch technische Skills gefragt. Welche Anforderungen an eine neue Generation von CTOs gestellt werden und welche spezifischen Erfahrungen diese in ihren Organsationen machen, wird in diesem hochkarätig besetzten Panel diskutiert.

André Neubauer, Henk Kolk, Stefan Schubert-Peters, Stephan Schmidt
Session

Projektmanagement – Eine Geschichte voller Missverständnisse … und was wir daraus lernen könn(t)en

german

+

Warum waren schon im Mittelalter agile Multiprojektmanager gefragt und was hat der Kölner Dom mit Continuous Delivery zu tun? Die Suche nach der ultimativen Projektmanagementmethode gleicht der Suche nach dem Heiligen Gral, und neue Begriff und Methoden werden immer schneller aus der Taufe gehoben. Bei all dem bleibt oft der schale Beigeschmack von „kenn ich doch irgendwo her“ und „ist doch logisch, mach ich immer so“, bis am Ende doch wieder alles in Hektik, Budgetstress und unzufriedene Anwender ausartet. Dieser Vortrag möchte Projektleiter, Entwickler, Tester und eigentlich alle, die am und im Projekt arbeiten auf eine historische Reise rund um das Projektmanagement mitnehmen. Erfahren sie Best Practices, die schon vor hunderten von Jahren für Projekterfolg gesorgt haben, verstehen Sie, welche Aspekte Projektleiter in allen Dekaden zur Verzweiflung gebracht haben und warum es selbst der heutigen Informationsgesellschaft so schwer fällt, aus all dem nachhaltig zu lernen.

Alexander Broz
Session

Java-Batch: Der Standard fürs Stapeln

german

+

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

Dirk Weil
Session

ReactJS und JavaScript ES2015 – Moderne Webtechnologien erfolgreich in Großprojekten einsetzen

german

+

Immer mehr Unternehmen setzen bei der Webentwicklung auf den neuen JavaScript-Standard ES2015 (ES6) und das UI-Framework ReactJS. Aber welche Erfolgsaussichten bietet deren Einsatz in Großprojekten, und stehen diesen auch Risiken entgegen? In dieser Session bekommen Sie einen Überblick über den Einsatz von ReactJS in Kombination mit dem neuen JavaScript-Standard ES2015. Darin wird auf folgende Themen, hinsichtlich der Umsetzung in Großprojekten, genauer eingegangen: Erhöhung der Produktivität der Entwickler, Wiederverwendbarkeit der UI-Komponenten, Browserkompatibilität mit dem Fokus auf Transpilation, serverseitiges Rendering , Dokumentation und Performance. Zusätzlich werden Schwierigkeiten der Technologien im Zusammenspiel mit Content-Management-Systemen und Templating Engines beleuchtet. Den Abschluss bildet eine Übersicht über erfolgreiche Projekte samt deren Vorgehensweise.

Roman Schiefer
13:00 bis 14:15

Mittagessen

14:15 bis 14:45
Keynote

The Changing Role of the Software Developer

english

+

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

David Barnes
15:00 bis 16:00
Session

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

german

+

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

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

Angelika Langer
Session

Hystrix in Action – ein Weg zu robuster Software

german

+

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

Gerrit Brehmer
Session

Einen Sack Flöhe hüten – oder: Choose your own Technology bei der Entwicklung modularer Webanwendungen

german

+

Moderne Webframeworks wie AngularJS, Ember.js, Backbone.js oder React ermöglichen hoch interaktive und benutzerfreundliche Web-Frontends. Gleichzeitig macht die Entwicklung mit solchen Frameworks Spaß und geht anfangs leicht von der Hand. Aber wie lassen sich diese Möglichkeiten auf große Unternehmensanwendungen oder Enterprise-Portale mit vielen integrierten Anwendungen übertragen? Auf eine Welt, in der Bausteine vieler interner und externer Entwicklergruppen flexibel zu einer funktionierenden Gesamtlösung kombiniert werden müssen? Der Vortrag stellt konkrete Lösungen mit dem Open-Source-Projekt LaxarJS vor, einem Framework, welches sich auf die Integration modularer Webanwendungen konzentriert – unabhängig von den eingesetzten Webframeworks.

Tobias Haustein
Session

Tech-Entscheidungen besser treffen

german

+

Eine neue Tech-Firma wird in der Küche einer Studenten-WG aus dem Boden gestampft. In einem großen Konzern wird ein Entwickler beauftragt, für die neue Produktidee eine technische Vision zu erstellen, die die Arbeit von acht Teams beeinflussen wird. Für eine kleine Internetfirma zeichnet sich ab, dass der Monolith langsam unwartbar wird. Ständig müssen Programmierer neue Technologieentscheidungen treffen. Manche klein und unbedeutend, andere mit weitreichenden Konsequenzen. Welche Technologien sind am besten für mein Projekt geeignet? Welche sind besser für die Firma? Und welcher Konsequenzen sollte ich mir schon vorher bewusst sein? Dieser Vortrag zeigt einen Weg, wie man bessere Technologieentscheidungen trifft.

Stefan Schubert-Peters
Session

Reactive Microservices with Akka and CoreOS

english

+

Akka is a fantastic toolkit for building elastic and resilient distributed systems and CoreOS provides a great platform for actually running such a system. In this talk we will give a quick overview of Akka and CoreOS and then show how you can use these innovative technologies in concert. Don’t expect a lot of slides, but be prepared for live coding and live demos.

Heiko Seeberger
Session

Apache Spark – die neue Art der Datenanalyse und Verarbeitung

german

+

Apache Spark ist ein Framework für clusterbasierte Datenanalyse und -verarbeitung, welches sich als Alternative zum klassischen Hadoop Map/Reduce positioniert hat. Spark hat im letzten Jahr viel Aufmerksamkeit bekommen und enthält viele interessante Konzepte, die das effiziente Verarbeiten von Daten (nicht nur Big Data), ermöglicht. Spark unterstützt dabei insbesondere auch das explorative Arbeiten auf Daten und kann daher sowohl vom Entwickler als auch vom Data Scientist eingesetzt werden. Diese Session bietet einen Einstieg in Apache Spark und zeigt die Unterschiede zu Apache Hadoop auf. Daneben wird aber auch auf das Hadoop-Ecosystem eingegangen, welches das Spark-Kernsystem ergänzt und auf diesem aufbaut und Spark um Machine Learning, Graphenverarbeitung, SQL-Zugriff sowie Stream-Processing ergänzt.

Guido Schmutz
Session

Flux - Facebooks Beitrag zur UI-Architektur der Zukunft

german

+

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

Oliver Zeigermann, Stefan Toth
Session

Enterprise Scripting mit Nashorn: Tipps & Tricks live on Stage

german

+

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

Adam Bien
Session

Next-Generation-MDM-Architektur mit Neo4j

german

+

MDM (Master Data Management) stellt eine ständige Herausforderung an Unternehmen: Organisations-, Produkt-, Kunden- und Lieferantendaten befinden sich in einer Vielzahl von anwendungsspezifischen Systemen, strukturiert und optimiert, um die jeweiligen Anforderungen zu erfüllen. Diverse Anforderungen aus dem Unternehmen erhöhen den Bedarf einer dynamischen MDM-Architektur, die systemübergreifend Daten und ihre Beziehungen zueinander zur Verfügung stellt. Die Datenstrukturen, ihre komplexen Beziehungen, Hierarchien und Abhängigkeiten können dabei intuitiv am Besten mit einer Graphdatenbank, wie Neo4j, abgebildet und in eine graphbasierende Architektur eingebettet werden. In Neo4j basierenden MDM-Referenzprojekten unterstützen hoch skalierbare, dynamische und performante Ad-hoc-Zugriffe – z. B. mit einer 360-Grad-Sicht auf Kunden und Produkte – das Erzielen von Wettbewerbsvorteilen.

Stefan Kolmar
16:00 bis 16:45

Kaffeepause

16:45 bis 17:45
Session

JPA and WebSockets on GlassFish

english

+

In this session, we will provide an overview of some of the key API available in both the EclipseLink JPA and Grizzly WebSocket API’s. We will demonstrate the usage of the advanced features of both API’s by presenting an application which is hosted on a GlassFish/Payara Server cluster and provide users with a tutorial on developing WebSocket and JPA based applications.

David Winters
Session

Integration Testing from the Trenches

english

+

Years after Kent Beck provided JUnit, unit testing is part of most developer teams tooling. However, there’s a trend that tends to threaten unit testing, claiming only integration testing can truly detects defects in software. In this talk, we will first define what unit testing and integration testing are, and their respective pros, cons and uses. Then, we will have a look at the unique challenges posed by integration testing. Finally, tools and techniques will be presented to somewhat remedy to that so that integration testing becomes a true asset in each software developer bag of tricks.

Nicolas Fränkel
Session

Dual Mode IT – nur ein Anfang

german

+

CTOs sehen sich grundverschiedenen Herausforderungen ausgesetzt: stabile Infrastruktur, Compliance, Sicherheit – und zu all dem noch innovative Produkte bauen, oftmals sogar erdenken. Und all das verlässlich und wiederholbar. Dual Mode IT ist ein populärer Vorschlag von Gartner. In diesem Vortrag wird gezeigt, was an Dual Mode IT klappt, warum es aber auch zu kurz greift. Es werden die unterschiedlichen Anforderungen an IT analysiert und entsprechende Ableitungen an Gestaltung von Arbeitsmodi und -umgebungen geleistet. 

Markus Andrezak
Session

Reaktive Geschäftsanwendungen

german

+

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

Arno Haase
Session

Event Sourcing in der Praxis

german

+

Object-Relational Mapping (ORM) ist der unangefochtene Standard, um Domainobjekte zu persistieren. Sobald das Domainmodell jedoch an Komplexität zunimmt und Objektgraphen mit Strategies oder Composite Pattern in der Datenbank persistiert werden sollen, knarzt und knackt ORM an allen Ecken. Ein anämisches Domänenmodell, in dem sich die Geschäftslogik außerhalb des Domänenmodells befindet, ist häufig die Folge. Es geht aber auch anders! Event Sourcing eignet sich sehr gut zum Speichern und Wiederherstellen von komplexen Objektgraphen auf Grundlage einer beliebigen Datenbank. Es hat viele Vorteile wie lückenlose Nachvollziehbarkeit, einfaches Debugging der Nutzeraktionen, eine einfache Undo-Funktion, gute Performance und Skalierbarkeit – um nur einige zu nennen. Wie jedes Pattern hat Event Sourcing aber auch Nachteile. Johannes Seitz zeigt mögliche Probleme, die der Einsatz mit sich bringen kann, und zeigt gängige Lösungsvorschläge auf. 

Johannes Seitz
Session

API-Design mit Lambdas

german

+

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

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

Für diese Session sind Vorkenntnisse erforderlich.

Angelika Langer
Session

In der Cloud – und dann?

german

+

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

Bernd Rederlechner
Session

Focus on Quality – Bessere Enterprise Web Frontends durch Web Components

german

+

Seit gut vier Jahren wird der Begriff „Web Components“ verwendet, um einen der größten Meilensteine in aktuellen Browser-Engines zu beschreiben. Seither hat sich viel getan, die Hersteller haben die Spezifikationen implementiert und in Ihre Browser integriert. Es gibt viele brauchbare Komponenten, dennoch trauen sich nur wenige, diese Technik heute einzusetzen, obwohl mit Polymer 1.0 eine Bibliothek zur Verfügung steht, die den produktiven Einsatz von hochqualitativen Komponenten ermöglicht. In dieser Session zeige ich, welche Vorteile sich aus der Verwendung von Polymer und Co. ergeben und wie die Qualität von Webanwendungen durch das zur Verfügung stehende Web-Components-Ökosystem sehr einfach und effizient gesteigert werden kann.

Patrick Hillert
18:00 bis 19:00
Session

Streamingdatenstrukturen zum Analysieren von Nutzeraktionen in Echtzeit

german

+

Bloom-Filter, Count-Min-Sketches und TopK sind Streamingdatenstrukturen, die – mit unterschiedlichen Garantien – Datenpunkte extrem dicht und effizient speichern. So lassen sich komplexe Analysen statt auf einer Armee von Batch-Servern auf nur einer Instanz erstellen. Und das in Echtzeit: Der Zugriff erfolgt in sublinearer Zeit, wodurch sich z. B. Nutzeraktionen direkt in eine Anwendung rückkoppeln lassen. Am Beispiel einer E-Commerce-Suche zeigt dieser Talk Anwendungsbeispiele für den Einsatz dieser Datenstrukturen auf.

Torsten Köster
Session

Haben wir die entscheidenden Änderungen erwischt? Risikobasiertes Testen von gewachsener Software

german

+

Natürlich hätten wir am liebsten robuste automatisierte Tests, die unsere komplette Anwendung abdecken. Aber was tun, wenn man die nicht hat und (wenigstens teilweise) manuelle Tests durchführen muss? Bei langlebiger Software treten meist dort Fehler auf, wo viel geändert wurde. Es lohnt daher, geänderte Bereiche besonders ausführlich zu testen. Unsere Forschungsarbeiten zeigen jedoch, dass trotzdem große Mengen an geändertem Code ungetestet in Produktion gelangen und dort den Großteil der Feldfehler verursachen. Ich stelle im Vortrag Test-Gap-Analyse vor, einen Ansatz, der statische und dynamische Analyseverfahren kombiniert, um geänderten aber ungetesteten Code zu identifizieren. Ich gehe dabei auf die Erfahrungen aus mehreren Jahren Einsatz in Teams mit bis zu zwanzig Entwicklern und dreißig Testern ein. Ich zeige, wie Test-Gap-Analyse Transparenz in die Qualitätssicherung bringt und dabei hilft, Testaufwände bewusst zu allokieren und die Zusammenarbeit zwischen Entwicklern und Testern zu synchronisieren.

Elmar Juergens
Session

Using Spark, Kafka, Cassandra and Akka on Mesos for Real-Time Personalization

english

+

The gambling industry has arguably been one of the most comprehensively affected by the internet revolution, and if an organization such as William Hill hadn’t adapted successfully it would have disappeared. We call this, “Going Reactive”. The company’s latest innovations are very cutting edge platforms for personalization, recommendation, and big data, which are based on Akka, Scala, Play Framework, Kafka, Cassandra, Spark, and Mesos. Join Patrick Di Loreto, R&D Engineering lead for William Hill as he reveals how this company, which was founded in 1934, is Going Reactive to remain a leader in the gambling industry.

Patrick De Loreto
Session

REST 2015

german

+

REST-konforme Anwendungen sind State of the Art. Allerdings wird der zentrale „Hypermedia as the engine of application state“-Aspekt zurzeit noch als die neue Entdeckung schlechthin gehandelt, auch wenn er das eigentlich gar nicht ist. Oft stellt sich dann die Fragen: Wie baut man denn nun solche „Hypermedia-Services“? Was muss ich dazu wissen? In dieser Session werden diese Fragen beantwortet und außerdem gezeigt, was man im Jahr 2015 sonst noch rund ums Thema REST wissen sollte. Dazu gehören neben HTTP/2, OAuth 2.0 und OpenID Connect auch Themen wie Dokumentation, Versionierung sowie Resource-oriented Client Architecture (ROCA).

Silvia Schreier
Session

Neue Concurrency-Modelle auf der JVM – über Fibres, Agents, Verticles und Actors

german

+

Java-Nebenläufigkeit unterhalb des Threadlevels: Fibers, Agents, Verticles und Actors. Nebenläufigkeit heißt in Java: java.util.concurrent und Threads. Threads wurden ursprünglich als „lightweight processes“ tituliert. Neue Prozesse zu starten, um nebenläufige Operationen zu implementieren, bedeutete zuviel Overhead und hat das Problem der Kommunikation zwischen den Prozessen aufgeworfen. Threads sollten „leicht“ sein und beide Nachteile beseitigen: Weniger Ressourcen für die Erzeugung und das Scheduling und gemeinsame Speichernutzung. Allerdings stößt das Modell heute an seine Grenzen. Der Resourcenverbrauch ist immer noch zu groß, und der gemeinsame Speicher ist mehr Problem als Lösung: Race Conditions, Locks, Contention. Um Oracles Java-VM-Architekten John Rose zu zitieren: „Threads sind passé“. Wir wollen verschiedene Ansätze betrachten, Nebenläufigkeit unterhalb des Threadlevels umzusetzen und ihre Vor- und Nachteile beleuchten. Vorgestellt werden Quasar Fibers, Clojure Agents, vert.x Verticles und Akka Actors.

Lutz Huehnken
Session

MVC (JSR 371) – Ein neues Webframework für Java EE

german

+

Der vielleicht am kontroversesten diskutierte JSR für Java EE 8 trägt den Namen „MVC“. Dabei handelt es sich um ein Action-basiertes Webframework, das als Alternative (und nicht etwa als Ersatz) zum komponentenbasierten JSF dienen soll. In dieser Session werfen wir einen Blick auf den aktuellen Stand der Spezifikation von MVC und auch auf die bereits existierende Referenzimplementierung. Beides erlaubt einen guten Eindruck davon, wie MVC voraussichtlich aussehen wird. Zudem diskutieren wir gemeinsam, ob Java EE ein zusätzliches Webframework überhaupt benötigt.

Thilo Frotscher
19:00 bis 20:00

Expo Reception

20:00 bis 20:30
Keynote

Reflexions on Big Data, Ethics, Politics and Human Rights

english

+

Less than a decade after Big Data emerged as a mainstream concept raising both significant excitement and skepticism, and just over two years into the aftermath of Edward Snowden’s revelations about the activities of the US National Surveillance Agency, many hard questions remain to be properly asked and addressed about Big Data’s potential to foster positive social change. Individual privacy is rightfully mentioned in all discussions on the topic, but other ethical and legal aspects are often overlooked; human capacity gaps and “data literacy” needs are thankfully gaining growing attention, but their conceptualization tends to be too narrow; the societal applications and implications of future technological advances are being considered, but history teaches us that they are largely unpredictable and require developing adaptive and inclusive systems. The talk will attempt to place these questions within a coherent conceptual and contextual framework, connecting and contrasting as much as possible their ethical, political and legal dimensions.

Emmanuel Letouzé
Mittwoch - 4. November 2015
07:30 bis 09:00

Konferenz Check-in

09:00 bis 10:00
Session

Modernes Java-Komponentendesign mit Spring 4.2

german

+

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

Jürgen Höller
Session

Conway’s Law Revisited oder Die Einführung einer SOA in einer Silo-Organisation

german

+

Das Gesetz von Conway besagt, dass die Architektur von Systemen durch die Kommunikationsstrukturen der leistenden Organisationstrukturen bestimmt wird. Für ein IT-Unternehmen mit klassischer anwendungssystembezogenen Organisationsform (Silos) stellt sich daher die Frage, ob eine SOA überhaupt realisierbar ist.Wir berichten von den Erfahrungen, die wir über die letzten Jahre aus den SOA-Einführungen bei einem transnationalen DAX30-Telko-Konzern einerseits und dem IT-Dienstleister eines regionalen Versicherungskonzerns andererseits gesammelt haben. Welche Fallstricke lauern in der Organisation des Hauses, in der etablierten Anwendungslandschaft, in den gelebten Verfahren und der Kultur? Was funktioniert, was funktioniert nicht? Wie können Sie die gegebenen Rahmenbedingungen zum Vorteil des Vorhabens einsetzen? Sie lernen, wie Kommunikationsstrukturen verändert werden können, und welche Rolle Richtlinien, ein kanonisches Datenmodell oder eine adäquate Toolunterstützung dabei spielen, auch werden wir auf kulturelle Fallstricke eingehen.

Carsten Sensler, Michael Heinke
Session

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

german

+

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

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

Hendrik Still, Tobias Bayer
Session

Module Platform Evolvement - The Rise of Jigsaw in JDK 9

german

+

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

Wolfgang Weigend
Session

BPM in der Praxis – Eine Klassifizierung von Prozesstypen und Umsetzungsmustern in der Finanzindustrie

german

+

Prozessdigitalisierung ist in der Finanzindustrie eine Kernkompetenz. Einerseits, weil Finanzdienstleistungen per se informationszentriert sind, andererseits weil der starke Wettbewerb in der Branche hocheffiziente Prozesse unabdingbar macht. In diesem Kontext gibt es eine Vielzahl unterschiedlicher Muster, um eine manuelle Sachbearbeitung zu unterstützen oder die Prozessverarbeitung zu automatisieren (bspw. Case Management, Serviceorchestrierung und Batch-Verarbeitung). In diesem Beitrag werden zunächst typische fachliche Anforderungen an Prozesse beschrieben. Darauf aufbauend werden unterschiedliche Prozessklassen beschrieben, die typischerweise jeweils mit anderen IT-Werkzeugen und -Mustern umgesetzt werden, sowie die in der Praxis anzutreffenden musterspezifischen Herausforderungen.

Dr. Jörg Ziemann
Session

REST-Architekturen erstellen und dokumentieren

german

+

In Büchern und Vorträgen über REST wird der Dokumentation wenig bis gar keine Aufmerksamkeit geschenkt. Wie wichtig die Dokumentation von Schnittstellen jedoch ist, erleben wir alle immer wieder im Alltag. Eine gute Dokumentation zu schreiben, ist schwierig, da sie stark von der Anwendung abhängt, die erstellt wurde. REST-Services bilden hier eine Ausnahme, da sie grundlegend einen immer gleichen Aufbau besitzen und die Dokumentationserstellung erheblich durch Automatisierungsprozesse beschleunigt werden kann. In der Session wird ein kleiner REST-Service konzipiert und erstellt, an dessen Beispiel verschiedene Tools vorgestellt werden, mit denen (interaktive) REST-Service-Dokumentationen erstellt werden können.

Martin Walter
Session

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

german

+

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

Oliver Zeigermann
Session

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

german

+

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

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

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

Axel Fontaine
10:00 bis 10:45

Kaffeepause

10:45 bis 11:45
Session

Microservices mit Spring Boot und Spring Cloud

german

+

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

Eberhard Wolff
Session

Microservices - hilfreich auch im Enterprise-Kontext?

german

+

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

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

Dennis Schulte, Tobias Flohre
Session

Open-Source-Workflows, Business Rules und Case Management in Action – mit Camunda BPM

german

+

„Wenn ihr #*?-Entwickler das nicht schneller und billiger hinbekommt, dann kaufen wir einfach eine teure BPM-Suite, die all unsere Probleme löst!“ – und dann wundert man sich über gescheiterte Projekte. Dabei geht es doch auch anders: Mit entwicklerfreundlichen Open-Source-BPM-Plattformen wie Camunda bekommt man eine Workflow Engine basierend auf dem BPMN-2.0-Standard, Business-Rule-Unterstützung basierend auf dem brandneuen DMN-Standard sowie Case Management mit CMMN. All dies kann eingebettet als Library verwendet werden, aber auch in riesige Szenarien skalieren – natürlich auch in SOA oder Microservice-Architekturen. Grafische aber eben auch ausführbare Notationen helfen dann sowohl bei der Entwicklung als auch im Betrieb. Der Vortrag gibt eine Hands-on-Einführung in die Standards anhand eines realen, fachlichen Beispiels und zeigt die Umsetzung auf Camunda BPM – natürlich inklusive Live Coding. Außerdem berichten wir von zahlreichen Erfahrungen aus unseren Projekten. 

Bernd Rücker
Session

Angular 2.0 – Migrationspfade von 1.x zu 2.0

german

+

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

Manfred Steyer
Session

MongoDB – Eine Einführung

german

+

Der Umgang mit schnell wachsenden Datenmengen, sich ändernden Strukturen, sowie dem Wunsch nach Skalierbarkeit stellt herkömmliche RDBMS-Systeme vor neue Herausforderungen. Eine adäquate Lösung hierfür bieten NoSQL-Datenbanken. Im Rahmen dieser Session werden die Grundlagen zu MongoDB behandelt, um abschließend auf die Themen Skalierbarkeit, Ausfallsicherheit und Map/Reduce einzugehen.

Andreas Hartmann
Session

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

german

+

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

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

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

Elmar Juergens
Session

Was jeder Java-Entwickler über Strings wissen sollte

german

+

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

Bernd Müller
Session

Lean Management – Schlüssel zur Wirksamkeit

german

+

Best Practices des Lean Managements beinhalten Rezepte für nachhaltige Quick-Wins. Die hohe Kunst besteht darin, die richtigen Schwerpunkte zu finden und zu setzen, die Organisation und Prozesse passend dazu festzulegen und die Rahmenbedingungen für operative Teams zu schaffen. Aber: Wie finden Sie die richtigen Schwerpunkte, die dazu passende Organisation und damit die erfolgversprechenden Quick-Wins? In dieser Session führen wir zunächst in Ziele, Kontext, Methoden und Werkzeuge des Lean Managements ein. Wir zeigen an den Beispielen Lean Enterprise Architecture Management (EAM) und Lean Demand Management, wie Sie mit diesem Ansatz schnell und nachhaltig Erfolge realisieren.

Dr. Christian Röder, Inge Hanschke
12:00 bis 13:00
Session

Rapid Application Development in the Cloud and On-Premises with Docker

english

+

With the availability of new platform stacks and new tools, the coding of applications has become a lot easier over the last years. However a key problem of software development often still occurs which is the challenge of rapid deployments in different environments – development, testing and production and both on-premises and cloud. The typical developers’ excuse “it works for me” doesn't count anymore. Instead today developers are responsible for the complete development cycle up to the deployment and testing in production environments. Fortunately Docker addresses this challenge and makes it very easy to deploy applications in different environments. This empowers developers and allows them to be really innovative by focussing on writing code to go from concept to production in minutes rather than months. In this session we are going to use IBM Bluemix to get applications deployed to the cloud by leveraging the power and portability of Docker containers. We’ll talk about everything from build pipelines, to private registries, container monitoring and more.

Niklas Heidloff
Session

Erfahrungsaustausch – Wo ist ACM heute?

german

+

Business Process Management (BPM) ermöglicht Effizienzsteigerung – ein viel zitierter und oft genannter Ausspruch. Aber schafft die reine Modellierung eines oder mehrerer Geschäftsprozesse tatsächliche Mehrwerte? Lassen sich praxisrelevante und geschäftskritische Probleme immer in einem rigiden Prozessmodell formulieren? Ist es wirklich möglich, alle Abläufe in standardisierte und automatisierte Prozessketten zu gießen? Demgegenüber stehen neue Ansätze, welche mit dynamischen Prozessen oder Adaptive Case Management (ACM) die Flexibilität und die beteiligten Personen in den Fokus stellen. Beide „Welten“ werden durch entsprechende Standards unterstützt. Was BPMN für rigide Prozessmodelle darstellt, ist der noch recht junge CMMN-Standard für Case Management. Anhand eines durchgängigen Beispiels aus der Praxis wird in dieser Session gezeigt, wie strukturierte und dynamische Prozesse sowohl auf der Oracle BPM Suite als auch auf der Camunda-BPM-Plattform realisiert werden können. Sie erfahren, mit welchen Fragestellungen bei einer ACM-Implementierung zu rechnen ist und welche Elemente z. B. ein passender Benutzerdialog benötigt. Wir diskutieren, wie sich die beiden Ansätze (traditionelles BPM und ACM) optimal ergänzen können und werfen einen Blick auf weiterführende Szenarien, die sich daraus eröffnen.

Danilo Schmiedel, Torsten Winterberg
Session

Java 8 – Understanding functional Interfaces and writing Mixins

english

+

Java 8 was launched in March 2014 with great fanfare. The new lambda syntax allows us to have a more succinct coding style and get rid of a lot of boilerplate code. However, there is also confusion. Even the “State of the Lambdas” paper starts by comparing lambdas to ActionListener. Even though that is indeed a functional interface, its related listeners such as MouseListener are not. In this talk, Heinz will show a number of interfaces and let the audience decide whether or not it qualifies as a functional interface. We finish the talk with a short demo of how we can write mixins in Java, by combining functional interfaces with default methods.

Dr. Heinz Kabutz
Session

Mit React UI-Komponenten für das Web entwickeln

german

+

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

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

Nils Hartmann
Session

Integration von Microservices – REST vs. Messaging

german

+

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

Eberhard Wolff, Oliver Gierke
Session

Continuous Delivery in the Cloud

english

+

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

Jonathan Weiss
Session

What’s new in Spring Data?

german

+

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

Christoph Strobl
13:00 bis 14:30

Mittagessen

15:15 bis 15:45
Keynote

Not just DevOps ... BizDevOps!

english

+

There is much hype these days about DevOps – the notion of development and operations working more closely together and iterating more rapidly. But is this just about speeding up IT for its own sake? No! We argue that the acceleration of IT innovation manifested in DevOps practices is passing an inflection point where the business itself can fundamentally change the way it adapts and competes. In this keynote we elaborate this idea and discuss some of the technologies that are enabling this dramatic paradigm shift, leading not merely to DevOps but to a much grander BizDevOps.

Markus Eisele, Mike Piech
16:00 bis 17:00
Session

Mobile, Microservices und Multi-Channel – warum Web-App-Architektur sich ändern muss

german

+

Was machen wir eigentlich, wenn wir eine Webanwendung entwickeln – und warum machen wir das auf dem Client, dem Server oder sonstwo? Was ist eigentlich eine Webanwendung – nur irgendetwas, das HTML ausspuckt – oder können wir vom Web lernen, wie gute Architekturen Systeme erfolgreich machen? Und wie bekomme ich jetzt eine Mobilausleitung in meine Anwendung, ob responsive, adaptive oder per App? Und ein API zur Integration neuer Kanäle brauche ich doch auch noch irgendwie ... Mobile-first-Design hat nicht nur Auswirkungen auf das Frontend, sondern benötigt und ermöglicht auch neue Ansätze in der Architektur der gesamten Anwendung. Es werden Trends vorgestellt, Buzzwords kritisch besprochen und Lösungsansätze gezeigt, wie zukunftsfähige Architekturen aussehen können.

Elmar Schraml
Session

Auf dem Weg zu komplexen adaptiven Architekturen

german

+

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

Uwe Friedrichsen
Session

Spring Data REST – Repositories meet Hypermedia

german

+

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

Oliver Gierke
Session

unRESTful Web Services mit HTTP/2

german

+

HTTP/2, der Nachfolger des aktuellen HTTP/1.1-Protokolls, bringt eine Vielzahl von neuen Möglichkeiten für HTTP-basierte Server-to-Server-Schnittstellen: HTTP/2 ermöglicht bidirektionale Kommunikation, erlaubt Multiplexing innerhalb von TCP-Verbindungen und unterstützt lang laufende und zustandsbehaftete Verbindungen. Der HTTP/2-Standard beschreibt kein JavaScript-API, mit dem die neuen Features im Browser genutzt werden können. Deshalb stehen die neuen Features für Webclients nicht zur Verfügung. Für Server-to-Server-Kommunikation bietet HTTP/2 jedoch viel Potenzial, das über die bisherigen Möglichkeiten von REST-Schnittstellen hinausgeht. Im Vortrag wird HTTP/2 vorgestellt, und es wird gezeigt, wie Java-Entwickler die neuen Features für HTTP-basierte Server-to-Server-Schnittstellen nutzen können.

Dr. Fabian Stäber
Session

Fair Trade – Alles andere als kalter Kaffee

german

+

Wie schütze ich meine Java-App vor unerwünschten Manipulationen, Reverse Engineering und Dekompilierung? Diese Frage stellen sich mittlerweile viele Java-Entwickler. „Write once, run anywhere“ bietet Vor- und Nachteile. Kennen Sie JD-GUI, JAD oder andere Java Decompiler? Erfahren Sie, wie Sie diesen Tools die Stirn bieten und gleichzeitig attraktive Lizenzmodelle für die Vermarktung Ihrer Anwendung erschließen können. Kurz gesagt: Fair Trade für Java.

Günther Fischer
Session

The Secrets of Concurrency

english

+

From the first version of Java, we have been able to create multiple threads. Initially, this was mostly used for making our GUIs more responsive. For example, we would read a file using a separate thread from the main AWT thread, updating the GUI as to the progress. Running many active threads on one CPU seldom made the program faster, on the contrary, the swapping overhead frequently bogged down the machine. However, in the last few years, the speed increase of CPUs has not been the clock speed, but the number of cores on each chip. We are in a position now where we can get a job done much faster by splitting it between multiple threads. Unfortunately there is still a lack of understanding of the mysteries surrounding threading. This has caused programmers to write code that is fundamentally incorrect, not taking into account best practices for threading. Here is an example of such incorrect code, seen recently on a web forum: 

    synchronized (namedQueues) {

      try {

        namedQueues.wait(5000);

      } catch (InterruptedException ie) {

        // Can safely ignore this

      }

    }

    if (isInterrupted() || isStopped())

      break;

In this talk, we look at ten laws that can help us to write more correct threaded code. We will now briefly summarise these ten laws:

1. The Law of the Sabotaged Doorbell

    We show how to manage the InterruptedException. Since they are thrown by several methods in Java 5, this is useful to know.

 2. The Law of the Xerox Copier

    Concurrency faults can sometimes be avoided by making copies of important objects, instead of allowing mutability.

 3. The Law of the Overstocked Haberdashery

    Threads use up resources, even if they are not active, putting an upper limit on the number of threads in our system.  Also, when analysing threading problems, we should know what every thread is doing. If we gloss over one thread without understanding it, we can easily miss a problem.

 4. The Law of the Blind Spot

    Fields can be cached locally by threads to improve the performance of retrieving their value. Thus, if one thread modifies a field, the other threads might not see the updated value.

 5. The Law of the Leaked Memo

    The Java Memory Model allows the hotspot compiler to reorder statements, as long as the final result is still correct. This can lead to some results which seem logically impossible.

 6. The Law of the Corrupt Politician

    Data races can cause the best objects to become corrupt. They can be really difficult to detect and analyse. In this law, we look at how we can avoid these problems.

 7. The Law of the Micromanager

    Adding synchronization to our code can cause problems with contention, where threads are waiting for each other to execute a critical section.

 8. The Law of Cretan Driving

    The rules of the road for Java threading are quite strict, but not enforced by all of the Java Virtual Machines. Even though your code seems correct, it might still be wrong.

 9. The Law of Sudden Riches

    Sometimes a system has latent defects that are only seen every few months. When running the system on faster hardware, these defects are amplified and can happen more frequently.

10. The Law of the Uneaten Lutefisk

    It is often possible to detect deadlocks in Java, but unfortunately it is impossible to recover cleanly. The only option is to analyse the problem that caused it and then restart the JVM.

What you will get out of the talk: You will learn several tips that will help you in writing correct threaded code in Java.

 

Presentation Summary:

The talk starts with a quick introduction into threading, explaining why it has become so important of late. It then presents ten laws that we can use to write more correct threaded code in Java

Some of the ten laws have already been described in our newsletter. Here they are again:

The Law of the Sabotaged Doorbell

http://www.javaspecialists.eu/archive/Issue146.html

The Law of the Xerox Copier

http://www.javaspecialists.eu/archive/Issue176.html

The Law of the Overstocked Haberdashery

http://www.javaspecialists.eu/archive/Issue149.html

The Law of the Blind Spot

http://www.javaspecialists.eu/archive/Issue150.html

The Law of the Leaked Memo

http://www.javaspecialists.eu/archive/Issue151.html

The Law of the Corrupt Politician

http://www.javaspecialists.eu/archive/Issue152.html

The Law of the Micromanager

http://www.javaspecialists.eu/archive/Issue155.html

The Law of Cretan Driving

http://www.javaspecialists.eu/archive/Issue156.html

The Law of Sudden Riches

http://www.javaspecialists.eu/archive/Issue159.html

The Law of the Uneaten Lutefisk

http://www.javaspecialists.eu/archive/Issue160.html

Dr. Heinz Kabutz
Session

Business Enterprise Architecture: Praxistipps für Transformationsstrategien in Unternehmen

german

+

Die industrielle Revolution haben wir hinter uns, doch seit geraumer Zeit befinden wir uns in der digitalen Revolution. Aufgrund der Digitalisierung verändern sich Industrien und Märkte rasend schnell. Nach Kotter – Change-Experte – sind nur 30 Prozent der Transformationsprojekte erfolgreich. Diese Session zeigt Möglichkeiten, digitale, diskrete Transformationen von IT und Business erfolgreicher zu machen: das „Transformation Triangle“ – drei Kernaspekte spielen eine zentrale Rolle: Leadership, Driver und Master-Plan. Theorie, gespickt mit praktischen Beispielen, untermauert durch Research-Ergebnisse zeigen diesen Weg auf – und das wie üblich bildhaft dargestellt und angereichert mit vielen persönlichen Erfahrungen.

Carsten Sensler, Thomas Grimm
Session

AngularJS 2 und TypeScript: verliebt, verlobt, verheiratet

german

+

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

Kai Tödter
17:00 bis 17:45

Kaffeepause

17:45 bis 18:45
Session

Towards a Benchmark for BPMN Engines

english

+

As opposed to databases for which established benchmarks have been driving the advancement of the field since a long time, workflow engines still lack a well-accepted benchmark that allows to give a fair comparison of their performance. In this talk we discuss the reasons and propose how to address the main challenges related to benchmarking these complex middleware systems at the core of business process automation and service composition solutions. In particular, we look at how to generate a representative workload and how to define suitable performance metrics. You will learn how to use our framework to measure the performance and resource consumption of your BPMN engine and compare different configurations to tune its performance in your concrete real-life project. The talk will also present preliminary experimental results obtained while benchmarking popular open source engines.

Cesare Pautasso, Vincenzo Ferme
Session

MVVM mit JavaFX

german

+

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

Alexander Casall, Manuel Mauky
Session

QS-Maßnahmen bei Continuous Delivery

german

+

Umfangreiche Qualitätssicherungsmaßnahmen und die Definition von Quality-Gates im Rahmen von Continuous Integration sind der eigentliche Enabler für Continous Delivery. Doch welche Tests sollte man eigentlich auf welcher Umgebung vorsehen und welche Werkzeuge bieten die entsprechende Unterstützung? Dieser Vortrag vermittelt einen Überblick über relevante Qualitätssicherungsmaßnahmen für Java-Webanwendungen und Web Services. Die Aktivitäten zur Unterstützung der ISO 25010 werden beleuchtet, sowie der gesamte Aspekt auch im Kontext traditioneller Vorgehensweisen. Es werden konkrete Open-Source-Tools und Auswertungsmöglichkeiten vorgestellt und die Integration in den Build-Prozess erläutert.

Stephan Kaps
Session

Testwerkzeuge für JavaFX

german

+

Softwareentwicklungsprojekte leben vom Einsatz von modernen Werkzeugen, die die Projektbeteiligten bei ihrer Arbeit unterstützen. JavaFX-Entwicklungsprojekte haben hier eine besondere Herausforderung. Die „neue“ Technologie stellt eine Herausforderung an die Testwerkzeuge, speziell an die Werkzeuge zur Testautomatisierung. Viele Hersteller werben mit JavaFX-Unterstützung, aber nicht immer wird JavaFX vollständig unterstützt. Der Vortrag geht den Fragen nach: Welche Kategorien von Testwerkzeugen für JavaFX gibt es? Welche Unterschiede gibt es zwischen den Testwerkzeugen? Wie werden die Testwerkzeuge in meine Toolkette eingebunden?

Kay Grebenstein
Session

Der glückliche Java-Entwickler

german

+

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

Thilo Frotscher
Session

Legacy-Systeme modernisieren mit Microservices, Hystrix und RxJava

german

+

Als Softwareentwickler ist man nur sehr selten in der Situation, ein völlig neues System auf der Basis neuester Technologien entwickeln zu dürfen. Oft sollen bestehende Systeme nur um viele kleinere Features erweitert werden. Die Renovierung der grundlegenden Systemarchitektur und die Einführung neuer Programmierparadigmen ist in diesem Umfeld schwierig. Umso wichtiger ist es, dass man die Modernisierung von Altsystemen zu einem fortlaufenden Bestandteil auch des featuregetriebenen Entwicklungsprozesses macht. In diesem Vortrag möchten wir zeigen, wie auch größere, monolithische Altsysteme mithilfe der offenen Netflix-Bibliotheken schrittweise in Richtung einer Microservice-Achitektur weiterentwickelt werden können. Hystrix kann dabei einen wertvollen Beitrag zur Gesamtstabilität des entstehenden verteilten Systems leisten. Der Einsatz von RxJava ist eine gute Möglichkeit, den Anteil von asynchronen Prozessen innerhalb der Legacy-Architektur zu erhöhen. Der Vortrag wird anhand von Beispielen demonstrieren, wie der hier angedeutete Modernisierungsprozess umgesetzt werden kann.

Arne Landwehr, Holger Kraus
Session

Boot your own Infrastructure - Spring Boot erweitern

german

+

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

Dennis Schulte, Tobias Flohre
Session

Technologiewechsel bei AutoScout24 – verrückt oder zukunftsweisend?

german

+

AutoScout24 krempelt seine gesamte IT um: von Windows und .NET zu Linux und der JVM, von eigenen Rechenzentren zu Amazon Web Services, von einer monolithischen Architektur zu Microservices und von getrennten Abteilungen für Entwicklung und Betrieb zu „You build it – you run it“-Teams. Dabei entwickeln wir praktisch unsere gesamte Plattform neu. Sind wir bescheuert? Laufen uns alle Mitarbeiter weg? Welche strategischen Entscheidungen haben uns dazu gebracht? Wie halten wir Betrieb und Produktentwicklung aufrecht? Wie gehen wir vor und was haben dabei wir gelernt?

Simon Hohenadl
18:45 bis 20:00

Expo Reception

20:00 bis 20:30
Keynote

Rise of the Machines

german

+

Marcus Tandler nimmt uns mit auf eine Reise in die Zukunft der Suche. Mit hunderten von Slides entfacht er einen wahren #SlideStorm und zeigt auf, was die Zukunft für alle, die digitale Angebote gestalten, entwickeln und vermarkten, in punkto Suche bereithält. 

Marcus Tandler
20:30 bis 22:30
Session

LEGO MINDSTORMS EV3 Challenge: „Mission on Mars“

german

+

Wir schreiben das Jahr 2050. Die Menschen haben mittlerweile den Mars bevölkert. Doch inzwischen steht auch fest: Wir sind nicht allein! Nachdem die menschliche Siedlung am roten Planeten immer mehr unter Beschuss gerät und sich die Vorräte dem Ende neigen, liegt es nun an dir und deinem Team, einen Roboter zu bauen, der nach der Landung am Mars selbstständig zur Kolonie findet und alle Schwierigkeiten am Weg dorthin erfolgreich meistert. Es kann in Teams mit zwei bis acht Personen gearbeitet werden. Als Zeitkontingent stehen 120 Minuten zur Verfügung. Eine vorherige Anmeldung ist nicht nötig, der Wettbewerb ist für alle W-JAX-Teilnehmer offen. Vorkenntnisse sind ebenfalls nicht vonnöten: Zu Beginn gibt Wettbewerbsleiter Bernhard Löwenstein eine Einführung in LEGO MINDSTORMS EV3 und das zugehörige Java-API leJOS EV3. Und einen Hauptpreis für das Gewinnerteam der Challenge gibt es natürlich auch.

Bernhard Löwenstein
20:30 bis 21:30
Session

Neues aus der Java-Trickkiste

german

+

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

Arno Haase
Donnerstag - 5. November 2015
07:30 bis 09:00

Konferenz Check-in

09:00 bis 10:00
Session

Moderne Authentifizierungslösungen mit OAuth 2.0 und AngularJS

german

+

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

Manfred Steyer
Session

What's new in Scala?

english

+

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

Heiko Seeberger
Session

Microservices-Architekturen mit Vert.x, Jetty und Docker

german

+

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

 

Björn Stahl
Session

Cloud im Wandel – Transformation von IaaS zu PaaS

german

+

CoSee transferierte vor ca. zwei Jahren das Produkt eines Kunden „in die Cloud“. Obwohl sie immer noch in der Cloud läuft, sieht diese Software heute gravierend anders aus als damals. Zu Beginn lief sie auf „angemieteten Servern“, heute geht der Trend hin zu extrem schlanken Backends. Der Vortrag zeigt an einem konkreten Beispiel basierend auf der Amazon Cloud, wie sich Cloud-Technologien und die Architektur der Anwendung kontinuierlich verändert haben und welche Möglichkeiten sich daraus ergeben. Die Auswirkungen auf die laufenden Kosten werden ebenfalls dargestellt.

Andreas Mohrhard
Session

JavaFX Jumpstart

german

+

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

Alexander Casall
Session

Enterprise meets Mobile aka Lust statt Frust

german

+

„Hilfe, wir brauchen eine App!“ Erschreckend aber wahr: Nicht selten starten Unternehmen genau so ihre mobilen Projekte. Dabei wird gerne vergessen, dass eine mobile App nicht nur zum Selbstzweck dient, sondern auch einen Mehrwert mit sich bringen sollte. Doch wie findet man diesen? Und hat man ihn einmal gefunden, ist dann das Backend überhaupt in der Lage, den neuen Channel „Mobile“ sinnvoll zu bedienen? Keine Frage, eine Mobile-Enterprise-Strategie muss her! Die Session zeigt die typischen Stolpersteine vieler Unternehmern auf dem Weg in die Wunderwelt „Mobile“ und gibt praxisnahe Tipps an die Hand, wie man diese mit ein wenig Planung umgehen kann. Am Ende steht – statt einer Menge Frust – eine gelungene App mit Anbindung an das Unternehmens-Backend.

Lars Röwekamp
Session

High Performance Integration Analytics

english

+

In the last thirty years CPU performance has increased by roughly 30,000 times, that’s fifteen iterations of Moore’s law. Sadly though a significant part of our CPU performance is spent allocating objects and then garbage collecting them just seconds later. This is the price we pay for a language that was designed to abstract us from the hardware. John will show some interesting techniques to vastly reduce the amount of objects created by using binary, even going as far as putting an entire FpML message into binary and then into a singly byte array, reducing it’s size by around fifty times and increasing serialisation performance by over hundred times. The demos will be run under Java 8 using lambdas to process through millions of complex derivative messages per second, big data in memory.

John Davies
Session

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

german

+

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

Stefan Zörner
10:00 bis 10:45

Kaffeepause

10:45 bis 11:45
Session

Easy Android Persistence

german

+

Die Datenanbindung bei der Android-Entwicklung ist durch die direkte Verwendung von SQLite und häufiges Schreiben gleichartigen Codes ein mühseliges und damit auch fehleranfälliges Unterfangen. Die Erstellung der Datenbanktabellen, die Zugriffe darauf, das Mapping von Projektionen zu POJOs und das Implementieren von Content-Providern sind Standardaufgaben, welche häufig gleichartig wiederholt werden müssen. In diesem Vortrag zeigen wir Ihnen live, wie wir mit „Datarobot for Android“ Möglichkeiten geschaffen haben, diese Probleme mit Annotations und Codegenerierung zu adressieren und trotzdem den vollen Zugriff auf die Android-Standard-APIs zu ermöglichen.

Alexander Frank, Falk Appel
Session

Sicherheit in Single-Page-Webanwendungen

german

+

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

Philipp Burgmer
Session

Building Cloud Native Applications

english

+

With the availability of application platforms in the cloud, developers have incredible opportunities to build new applications that can leverage advantages of these platforms like the provisioned and managed infrastructure. However with new power comes more responsibility for developers. The lack of absolute control and predictability of the cloud is what makes it necessary to think differently when running applications in the cloud. Monolithic 3-tier applications often don’t work well in the cloud since they haven’t been designed with cloud characteristics like fault tolerance and scalability in mind. In this session we are going to introduce concepts how to build cloud native applications that leverage patterns like microservices. We will explain how to build and run cloud native applications on IBM Bluemix, IBM’s cloud application platform. Bluemix also provides more than 100 services that can be used to build cloud applications. We will demonstrate how to use Internet of Things and cognitive services to build an application to take selfies via drones.

Niklas Heidloff
Session

JavaFX – Standortbestimmung

german

+

JavaFX nimmt in der Java-Community an Fahrt auf – zwar ohne gleich auf die Überholspur zu wechseln, aber immerhin. Der Vortrag gibt einen Abriss über den Stand von JavaFX: Was kommt im Standard mit? Welche Communityaktivitäten gibt es? Welche Frameworks verwenden JavaFX? Im Vortrag wird mit Livedemos gezeigt, wo Sie JavaFX bereits gut und sinnvoll nutzen können – und wo Sie besser die Finger davon lassen ...

Björn Müller
Session

Scala in Action

english

+

This presentation will provide a comprehensive overview of the Scala-based technology stack used for the HFactory project (http://hfactory.io). In a nutshell, HFactory is a Docker-based application development environment delivering full-stack scaffolding on top of Apache HBase: the solution automates the REST API, integrates with Spark for complex data compressing and generates the JavaScript client side logic, services and entities. We will first go through the design principles of our Scala-based DSL for HBase and the advantages of entity-centric modelling vs the low-level API offered in the Apache project. In the process we will discuss the reasons why we selected Scala as our development language, the advantadges we gained from it and some of the inconveniences it generated versus more mainstream Java. We will then move on to detail the technology stack, from the use of Scala macros for automated code generation to the packaging of all software components as Docker containers. As an illustration of the above, the presentation will conclude with a live demo of the scaffolding of a fully functional app using the HFactory Studio IDE.

Éric Le Blouch
Session

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

german

+

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

Christian Schneider
Session

Hitliste der Legacy-Sünden

german

+

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

Eberhard Wolff
12:00 bis 13:00
Session

Ganz schön Groovy

german

+

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

Dierk König
Session

Von Swing nach JavaFX

german

+

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

Karsten Lentzsch
Session

Testautomatisierung: Appium, das Selenium für Apps und Web-Apps

german

+

Testautomation auf mobilen Geräten steckt noch in den Kinderschuhen. Dennoch hat sich mit Appium ein Framework entwickelt, das es ermöglicht, mobile Webseiten, Web-Apps und auch native Apps auf allen Plattformen effektiv zu testen. Appium ist Open Source und setzt auf das vom W3C spezifizierte WebDriver-Wire-Protokoll. In diesem Talk wird Hannes Lenke zeigen, was Appium ist, wie man es anfängt und was die Vor- und Nachteile sind. Außerdem wird er auch Appium-Tests live auf Smartphones und Tablets ausführen.

Hannes Lenke
Session

arc42 Reality Check

german

+

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

Gernot Starke
Session

The Web Application strikes back

german

+

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

Dominik Schadow
Session

Cross-Plattform-App-Entwicklung

german

+

Die Entwicklung von Apps für mehrere Plattformen bedingt das Entwickeln der gleichen App in verschiedenen Sprachen für verschiedene Plattformen – ein großes Problem in Sachen Pflegbarkeit und Kosteneffizienz. Doch ist die getrennte Entwicklung wirklich nötig? Was taugen HTML5-Apps, und wie sind Cross-Plattform-Systeme einzuschätzen? Warum sollte man überhaupt für jede Plattform eine eigene App entwickeln? Dieser Talk bietet einen Husarenritt durch die Welt der mobilen Entwicklung, die nötigen Informationen und Hintergründe für Einsteiger, Entscheider und Konzepter, um im Dschungel der mobilen Plattformen und Möglichkeiten den Kurs zu halten.

Steffen Müller
13:00 bis 14:30

Mittagessen

14:30 bis 15:00
Keynote

Innovation in der Realität – Technologie in 99 Prozent der Projekte

german

+

Die Kunst ist es nicht, in einem innovativen Umfeld etwas Neues zu erschaffen, sondern in einem konservativen und gewachsenem Umfeld (wie in 99 Prozent der Fälle) innovativ zu sein. Diese Keynote ist ein Erfahrungsbericht über das Erleben der alltäglichen Projekte, in denen innovative Technologien auf konservative Realität treffen. Der Vortrag präsentiert praktische Vorschläge, wie man als Entwickler/in eigene Wünsche zu modernen Technologien durchsetzen kann.

Dr. Jure Zakotnik, Theresa Bihn
15:00 bis 15:30

Kaffeepause

15:30 bis 16:30
Session

Apple Watch und Android Wear – hybride App-Entwicklung für Wearables

german

+

Wie bereits bei mobilen Anwendungen erwarten Nutzer mehr und mehr auch die Unterstützung einer Smartwatch in ihrer Lieblings-App. Während der Markt für Smartwatches mit Google Wear noch recht schleppend angelaufen ist, verspricht die iWatch endlich einen Durchbruch für intelligente Uhren und damit auch die Nutzung von Apps am Handgelenk. Leider wiederholt sich hier ein bekannter Kampf mit heterogenen Umgebungen, Plattformen und Entwicklungsumgebungen. In der mobilen Welt haben sich daher hybride Apps als akzeptable Alternative für native Apps durchgesetzt. Im Umfeld von Smartwatches ist die Auswahl an Alternativen zur nativen Entwicklung noch etwas mager und bedarf einer genauen Auswahl der Tools. Dieser Vortrag zeigt anhand der DB-Schenker-App, wie Smartwatches in hybride mobile Applikationen integriert werden können. Dabei wird sowohl auf die Apple iWatch auch als auf Android Wear eingegangen, sodass sich der hybride Ansatz auch auf die Smartwatch überträgt.

Adam Giemza, Marek Wester
Session

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

german

+

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

Gernot Starke
Session

Patterns in a containerized World?

english

+

Structuring and developing applications in a containerized world involves new challenges. Some old best practices need to be adapted and new patterns evolve. In this talk we will give an overview of typical patterns that we have seen in developing, deploying and operating applications that leverage containers. Some of these are: immutable deployment artefacts, config via arguments, general purpose sidekicks, special sidekicks for logging and metrics, ambassador for service discovery or other networking related things, like load-balancing and circuit breaking. As containers are a fairly new concept for general purpose application development, we see this list far from complete. This talk can be seen as a starting point for a general discussion about best practices and resulting patterns.

Dennis Benkert, Matthias Lübken
Session

Effiziente Oberflächen mit dem Projektor-Pattern

german

+

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

Dierk König
Session

Testen mit Containern – Docker für Integrationstests

german

+

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

Stefan Hildebrandt
16:45 bis 17:45
Session

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

german

+

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

Phillip Ghadir
Session

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

german

+

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

Christian Schneider
Session

Infrastruktur für Mircoservices: Docker Orchestration

german

+

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

Peter Roßbach
Session

Mobile und Beyond in Industrie und Enterprise

german

+

Während für den Endverbraucher die mobile Revolution vor allem in Form von allgegenwärtigen Smartphones und Apps sichtbar wird, so tut sich hinter der Fassade noch wesentlich mehr. Mit der ständig steigenden Verbreitung von M2M-Technologien werden unter dem Sammelbegriff „Internet of Things“ immer größere Bereiche des täglichen Lebens, vor allem aber auch der Industrie, digitalisiert und vernetzt. Unter Schlagworten wie Industrie 4.0, Smart City, Smart Home, E-Health und Wearables halten diese Technologien Einzug in die verschiedensten Bereiche des Alltags. Auch im Einzelhandel oder im Automotive-Bereich zeichnen sich vergleichbare Trends ab. Diese Session soll einen Überblick über den aktuellen Stand der Entwicklung und die zugrundeliegenden Technologien geben und auch einen Ausblick in die Zukunft wagen. Nicht zuletzt soll auch der Frage nachgegangen werden, wie sich aus Unternehmenssicht bestehende Systeme und Prozesse in diese neun Welt überführen lassen und wie es möglich wird, die Unmengen an Geräten und Daten per Device Management und Big Data zu verwalten und zu bändigen.

Kay Glahn
Session

Moderne Gestaltung für den Java-Desktop

german

+

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

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

Karsten Lentzsch
Freitag - 6. November 2015
08:00 bis 09:00

Konferenz Check-in

09:00 bis 17:00
Workshop

Microservices-Workshop: Architektur und Praxis

german

+

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

Eberhard Wolff
Workshop

Coole Web-Apps mit AngularJS, TypeScript und Spring Boot

german

+

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

Kai Tödter
Workshop

Moderne Multi-Channel Application für Web, Mobile und Friends

german

+

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

Jens Schumann, Marc Petersen
Workshop

Webarchitektur und Qualitätsmerkmale

german

+

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

Daniel Takai
Workshop

Moderne Webanwendungen mit AngularJS 2.0

german

+

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

Manfred Steyer