Bitte aktivieren Sie JavaScript! Einen alternativen Plan finden Sie hier: JavaLand Konferenzprogramm

Thema: Core Java


Datum Beginn Titel Autor, Firma Details
25.03. 10:00

My old Friend malloc - Off-Heap in Java

Today higher heaps and bigger RAM amounts are typical for standard Java server applications. We often than get to the limit of performance, predictability or GC pause times and using Off-Heap technologies we may can lower that pains. This talk will bring you basic idea of Off-Heap and how to implement it or finding the right framework to being used.
Christoph Engelbert, Hazelcast, Inc. mehr
25.03. 11:00

JSR 354 - Go for the Money

Die Präsentation gibt eine Übersicht und Einführung in die Aspekte, die zum JSR 354 (Currency and Money) geführt haben. Nebst der Modellierung und Manipulation monetärer Beträge wird gezeigt, wie sich verschiedene Währungssysteme inklusive virtueller Währungen abbilden lassen. Weiter werden auch fortgeschrittene Themen wie Währungsumrechnung, Formatierung/Parsing, numerische Repräsentation und Regions behandelt. Außerdem wird gezeigt, wie arithmetische Operationen und Rundung elegant als Funktionen modelliert werden und somit eine flexible Basis für höherwertige finanz-mathematische Applikationen und Frameworks zur Verfügung steht. Alle Aspekte werden live anhand der aktuellen Referenzimplementation demonstriert.
Anatole Tresch, Credit Suisse mehr
25.03. 12:00

55 New Features in Java SE 8

Java SE 8 is the next release of the core Java platform and contains lots of exciting new features. In addition to the big features like Lambda expressions, extension methods for interfaces and a new Date and Time API there are plenty of smaller features as well. This session will rapidly cover fifty-five new features that are scheduled for inclusion in Java SE 8 when it is released early in 2014.
Simon Ritter, Oracle Corporation mehr
25.03. 13:00

JVM and Application Bottlenecks Troubleshooting with Simple Tools.

Very frequently developers spend a lot of time and energy trying to find performance bottlenecks and hotspots that prevent applications from scaling in production. There are commercial tools that can help with diagnosis but often they also introduce monitoring overhead and are not used with all features in business critical applications. Moreover most tools take into consideration only a narrow range of potential problems (for example JVM issues) and do not correlate events with the operating system or hardware. This workshop will show how to use free and open source as well as system software to find application problems in a very fast way and without using any commercial tools. Typical problems that can be diagnosed in this fashion include: sub-optimal application configuration (extensive logging, too small pools, too big pools); application hotspots (synchronized sections); performance hotspots (critical functions); and JVM-level problems (Garbage Collection, memory management). After this workshop you should be able to diagnose potential problems and performance bottlenecks in your application that cause most critical scalability issues.
Daniel Witkowski, Azul Systems, Inc mehr
25.03. 14:00

Get back to Coding - How solving GC problems help you to code better.

Garbage collection is an integral but often misunderstood part of application behavior on Java platforms. As such, it is important for Java developers to understand how collector mechanisms work. This presentation reviews and classifies the major garbage collectors available in JVMs today. Following an overview of common garbage collection techniques such as generational, parallel, stop-the-world, incremental, and concurrent algorithms, it defines terms and metrics common to all collectors. It also discusses trade-offs in balancing requirements for responsiveness, throughput, space, and available memory and covers some pitfalls, common misconceptions, and garbage collection behavior myths.
Daniel Witkowski, Azul Systems, Inc mehr
26.03. 14:00

Aus Freud wird Leid: Emotionaler StampedLock

Welche Klasse in Java ist im Stande, einen fröhlichen Optimisten in Nanosekunden in einen deprimierten Pessimisten zu verwandeln? Nein, hier befassen wir uns mal nicht mit java.util.Calendar. Es geht eher um die nagelneue Java-8-"StampedLock"-Klasse. Der Name trügt, denn es ist nicht wirklich ein "Lock", denn es erlaubt uns, optimistisch zu lesen, ohne ein "Lock" zu setzen. Optimistisch. Wie wenn man das Glas als halb voll sieht. Man liest mit der Annahme, dass kein anderer Thread zur selben Zeit versuchen wird, die Felder zu verändern. Alles wird schon gut gehen. Und wenn wir es nicht schaffen, optimistisch zu lesen, dann können wir irgendwann mit dem guten Humor aufhören und pessimistisch lesen. Dies ist die feingefühligste Klasse in Java. Sie kann auch noch mehr. Sie bevorzugt nicht Leser oder Schreiber, sodass Threads, die StampedLock benutzen, vom Verhungern verschont bleiben, was bei der Stiefschwester ReentrantReadWriteLock immer eine Gefahr war. Und dabei sind sie auch viel schneller als ihre böse Stiefschwester. Zusätzlich kann man eine Lesesperre in eine Schreibsperre verwandeln, was bei dem ReentrantReadWriteLock auch nicht möglich ist. Verpassen Sie diese Session nicht, wenn Sie ein erfahrener Java-Programmierer sind.
Dr. Heinz Kabutz mehr
26.03. 15:00

Java 8:Mehrere Prozessorkerne effizient nutzen mit Lambdas und Streams

Lambda-Ausdrücke und Streams sind wohl die beiden wichtigsten Neuerungen in Java 8. Viele Lösungen lassen sich mit Lambdas kürzer und prägnanter ausdrücken, als das in vorherigen Java-Versionen möglich war. Streams ermöglichen die Anwendung der neuen Lambda-Ausdrücke auf klassische Datenstrukturen, wie z.B. ArrayList und HashMap. Die Kombination von Lambdas und Streams bietet jedoch mehr als nur eine elegantere Schreibweise für dieselbe Funktionalität. Ein grundlegender Mehrwert besteht besteht darin, dass die Verarbeitung von Streams parallelisierbar ist. Diese Parallelisierbarkeit ermöglicht es, moderne Mehrkernprozessoren ohne viel Aufwand effektiv zu nutzen. Im Vortrag wird die parallele Streamverarbeitung von Java 8 genauer unter die Lupe genommen: Wie kann man die Parrallelisierbarkeit der neuen Standarddatentypen nutzen? Wie kann man eigene Datenstrukturen für parallele Verarbeitung implementieren? Wann ist der Einsatz von paralleler Streamverarbeitung sinnvoll und wann sollte darauf verzichtet werden? Welche Mechanismen werden unter der Haube verwendet, um parallele Streams zu realisieren?
Fabian Stäber, ConSol* Consulting & Solutions Software GmbH mehr
26.03. 15:00

The Quantum Physics of Java

If we were able to take a microscope and observe how our programs work on the lowest level, we would be surprised and shocked. Close to the wire, programs behave very differently from what we expect. In this session we will go through code examples that show the counter-intuitive behavior of Java on the microscopic scale. We will take a detailed look at how the underlying technology works that causes the surprising behavior and how we can measure our programs on the lowest level. Topics covered will be the cache hierarchy, false sharing, pipelining, branch prediction, and out-of-order execution. After this talk you will have a good understanding of how modern CPUs work and how this can affect the performance of your programs.
Michael Heinrichs, Barclays mehr
26.03. 16:00

Bytecode, Class-Loader und Class-Transformer

Der Vortrag gibt einen Einblick in die innere Arbeitsweise einer Java Virtual Machine im Hinblick auf das Laden und Transformieren von Klassen. Mit Java 5 wurde das Package java.lang.instrument eingeführt, das es erlaubt, Java-Klassen beim Laden zu instrumentieren, also zu verändern. Mit Java 6 wurde dieses Package noch einmal erweitert, sodass sogar geladene Klassen verändert werden können. Der Vortrag beantwortet Fragen wie: - Wie sieht Bytecode aus, aus was besteht er? - Wie kommt eine Klasse in die JVM? - Wie kann diese Klasse manipuliert werden? - Was ist eine Class-Loader-Hierarie?
Bernd Müller, Hochschule Ostfalia mehr

Thema: Enterprise (Java)


Datum Beginn Titel Autor, Firma Details
25.03. 11:00

codecentric (City Partner): Spring XD - Tackling Big Data Complexity

Wenn man von Big Data spricht, redet man häufig über Hadoop oder NoSQL-Datenbanken, dabei ist Big Data viel mehr als bloße Persistenz. Daten müssen gesammelt, verarbeitet und exportiert werden, Real-Time-Analytics sind ein weiteres großes Thema. Zur Lösung dieser Aufgaben gibt es seit neuestem die Plattform Spring XD. Es handelt sich dabei um ein einheitliches, verteiltes und erweiterbares System für Datensammlung, Real-Time-Analytics, Batch-Verarbeitung und Datenexport. Spring XD bietet dabei eine einfache DSL zur Erzeugung von Datenströmen und Batch-Jobs. Intern werden Spring Integration und Spring Batch verwendet. Durch Projekte wie Spring for Apache Hadoop und Spring Data können damit beliebige Big Data - Persistenzformen unterstützt werden. In dieser Session geben wir eine Einführung in das Projekt und zeigen dabei auch eine Live-Demo.
Tobias Flohre, Dennis Schulte, codecentric AG mehr
25.03. 13:00

IRIAN (City-Partner): Flexibilität mit CDI und Apache DeltaSpike

CDI ist eine sehr flexible und erweiterbare Spezifikation. Ein Standard kann jedoch nie alle Anforderungen abdecken. Durch solide und portable Erweiterungen wie Apache DeltaSpike ist es auch in komplexeren Projekten möglich die Produktivität zu steigern und den Wartungsaufwand zu reduzieren. Im ersten Teil des Vortrages wird dies anhand mehrerer Beispiele veranschaulicht. Der zweite Teil widmet sich möglichen Fallstricken bei verschiedenen EE-Servern und wie diese gelöst werden können.
Gerhard Petracek, IRIAN Solutions mehr
25.03. 14:00

Implementing Batch Processing in Java EE 7

The introduction of batch support in Java EE 7 opened up a whole new world for batch processing applications. No longer is there need to run your batch applications as standalone processes. This presentation will give an introduction to the Batch Applications for Java Platform (JSR 352) and highlight the benefits of implementing batch processing on the Java EE platform as opposed to standalone applications. The objectives of this session are: 1. See the advantages of batch processing in Java EE 7 2. Highlight the features of Batch Applications for the Java Platform (JSR 352) 3. Learn how to implement a batch application on the Java EE 7 Platform The session will be divided into a theoretical part with slides going through the key points and a demo part where a simple batch application is implemented.
Ivar Grimstad, Cybercom Sweden mehr
25.03. 14:00

codecentric (City Partner): Spring Data, Jongo & Co. - Java Persistenz-Frameworks für MongoDB

MongoDB ist eine populäre dokumentenorientierte NoSQL-Datenbank. Ich beleuchte ausführlich mit vielen Code-Beispielen, wie man MongoDB aus Java-Anwendungen heraus nutzen kann. Nach einem Blick auf das Low Level API des Java-Treibers beschäftigen wir uns mit Frameworks für Object/Document-Mapper, die Java-Objekte ohne den Impedance Mismatch relationaler Datenbanksysteme auf Dokumente in MongoDB abbilden. Dabei vergleichen wir anhand eines durchgehenden Fallbeispiels die Frameworks Morphia, Spring Data für MongoDB und Jongo.
Tobias Trelle, codecentric AG mehr
25.03. 15:00

IRIAN (City-Partner): JSF mit GET-Requests und lesbaren URLs

Seiten mit lesbaren und Bookmark-tauglichen URLs - das funktioniert doch nicht mit JSF! Doch, das funktioniert auch mit JSF! Diese Session tritt den Gegenbeweis an und zeigt neben der in JSF 2 integrierten GET-Unterstützung mit View-Parametern und View-Actions auch noch, wie die URLs einer JSF-Applikation mit PrettyFaces/Rewrite verschönert werden. Ein begleitendes Beispiel zeigt die Umsetzung auf Tomcat 7 mit CDI und MyFaces CODI.
Michael Kurz, Irian Solutions GmbH mehr
25.03. 15:00

Hypermedia-getriebene REST-Architektur mit Spring

Spring MVC bietet eine solide Grundlage, um REST-basierte Webservices mit Java zu implementieren. Dennoch bleibt das Umsetzen von Hypermedia und komplexerer Geschäftslogik eine Herausforderung. Der Vortrag diskutiert Grundsätze von Hypermedia und zeigt die daraus entstehenden Problemstellungen an einem praktischen Beispiel. Darauf antwortend werden Ansätze und Lösungen für diese Problematiken anhand von Hands-on-Codebeispielen erörtert, die in Kundenprojekten erarbeitet wurden. Mittelpunkt hierbei ist Spring RESTBucks, eine Referenzimplementierung für einen REST Webservice auf Basis verschiedener Technologien aus dem Spring-Ökosystem.
Oliver Gierke, Pivotal mehr
25.03. 16:00

A New Approach to the UI for Distributed Applications

User interface technology is the most volatile portion of the enterprise software stack. This one hour session begins with a sweeping overview of the history of the UI for distributed applications to support that assertion. There is a clear pendulum that has swung back and forth from client to server in the 50 years since the first graphical interface for a distributed application appeared. At the present time, the pendulum is swinging to the client again. The ubiquity of HTML 5 and the rise of the cloud as the primary deployment platform are likely to shift the pendulum away from today's thin-client based server-side web frameworks, as exemplified by JSF, to JavaScript powered next generation rich clients. These trends impact all aspects of application design from user interaction to iterative development. With strong support for REST, WebSocket and JSON, Java EE is well positioned to adapt to this change. In this code driven session, we will show you how you can utilize today's most popular JavaScript rich client technologies like AngularJS, Backbone, Knockout and JQuery to utilize the core strengths of Java EE using JAX-RS, JSR 356/WebSocket, JSON-P, CDI and Bean Validation. We will also touch on Oracle's own JavaScript rich client solution code named project Avatar.
Ed Burns, Oracle Corporation mehr
25.03. 17:00

Multi-Threading in Java-EE-Applikationen

Kopfschmerzen wegen Multi-Threading in Java EE Applikationen waren gestern. Die "Concurrency Utilities for Java EE" bringen Thread Pool Management und Monitoring in den Application Server, sodass Entwicklern diese Sorgen genommen werden. Welche Vorteile bringt der JSR 236 eigentlich mit? Wie können die ManagedExecutor Entwicklern und Operatoren helfen, Asynchronität und Parallelverarbeitung zu realisieren, zu steuern und zu überwachen? Was hat Spring 4.0 eigentlich mit dem JSR 236 zu tun? Diese und weitere Fragen sollen in der Session beantwortet werden.
Alexander Heusingfeld, innoQ Deutschland GmbH mehr
26.03. 09:00

50 New Features of Java EE 7 in 50 Minutes

The Java EE 7 platform has four new components (WebSocket, JSON-P, batch, and concurrency), three that are significantly updated (JAX-RS, JMS, and EL), and several others that bring significant changes to the platform. As you can imagine, a lot of new functionality has been introduced in the platform. In this fast-paced session, you will learn about 50 new features introduced in the Java EE 7 platform. @ClientEndpoint, chunk-style batch processing, @FlowScoped, @AroundConstruct, @JMSDestinationDefinition, and @Transactional are some of features the presentation covers. It explains each feature with a code snippet and provides details on where and how you can use it in your applications.
Arun P. Gupta, Red Hat Inc. mehr
26.03. 10:00

Apache TomEE, Java EE Web Profile and More on Tomcat

Apache TomEE is the Java EE 6 Web Profile certified version of Apache Tomcat and combines the simplicity of Tomcat with the power of Java EE. The first half of this session introduces TomEE and shows how Tomcat applications leveraging Java EE technologies can become simpler and lighter with a Java EE 6 certified solution built right on Tomcat. The second half jumps right into action and gives a coding tour of TomEE, including quickly bootstrapping projects, doing proper testing with Arquillian, and setting up environments. If you're a Tomcat lover or a TomEE enthusiast, this is the session you don't want to miss!
David Blevins, Tomitribe mehr
26.03. 12:00

The Adventurous Developer’s Guide to Application Servers

There are many application servers on the market today, but which are right for you as a developer? This session looks at the popular application servers - including Tomcat, TomEE, GlassFish, Jetty, WebSphere, Oracle WebLogic Server, Liberty Profile, and JBoss - and analyzes them from the point of view of a developer. It focuses on performance, config management, open source compliance, feature richness, tooling, and developer productivity, among others. Come to this session to learn about the main differences between the application servers on the market today and understand which might be best for your needs.
Simon Maple, Oliver White, ZeroTurnaround mehr
26.03. 13:00

Testing the Enterprise Layers: The ABCs of Integration Testing

For years developers have been exploring how to layer and separate code to test it in isolation on the unit level. It has kept integration and functional testing as a big ball of mud, jumping straight from unit to full system testing. But could some of the same lessons learned from unit testing apply to integration testing? Is it possible to isolate and stay real at the same time? Do mocks, stubs, and test doubles have a place in the world of integration testing? Are there other lessons to be learned? This session explores the different technologies within the enterprise Java specification and shows how enterprise Java applications can be tested in isolation - layer for layer, module for module, and component for component.
Andrew Rubinger, JBoss by Red Hat mehr
26.03. 13:00

ORACLE (City-Partner): Enterprise Software 2 go mit ADF Mobile – Schnell und einfach Webservices in einer App konsumieren

Paul-Enno Schulte, OPITZ CONSULTING mehr
26.03. 14:00

Best Practices for Migrating Spring to Java EE

The Spring Framework has no-doubt played a major role in evolving the way we write enterprise applications on the Java platform today. However, it is still a proprietary framework owned by a single company. The age of having to rely on such proprietary frameworks in order to develop decent enterprise applications is now over and Java EE has become an even easier way to develop enterprise applications based on standards which makes it the best choice for any enterprise application. In this session you will experience how to migrate a typical full stack Spring application to a standards based, completely portable, Java EE 6/7 application including integration tests. Oh, and of course we'll discuss why you want to migrate in the first place!
Bert Ertman, Luminis mehr
26.03. 15:00

Building Modern Applications Using JBoss and OpenShift

Good applications are a mix of powerful technologies and a productive approach to development. In this session, Pete Muir will discuss how both aspects blend together in the context of a working application. He will introduce the JBoss preferred approach to developing applications, with its underlying motivations and design goals. Next he'll will walk you through a demo Java EE 6 application, and show you how JBoss' RAD tool, JBoss Forge, allows you to easily add capabilities. Pete will deploy both locally, and to Red Hat’s free PaaS in the cloud, OpenShift. The application will offer a mobile-friendly HTML5 front end, allowing you to use the app during the session. Finally, Pete will discuss the requirements for the application, why the technologies were chosen, and how the application is architected. At the end you’ll have experienced a variety of technologies by Red Hat, including JBoss and OpenShift, to help you develop your applications.
Pete Muir, Red Hat, Inc. mehr
26.03. 16:00

Das Avatar-Framework: JavaScript-Binding für Java-EE-Komponenten

Die Zeit der schwergewichtigen Java-EE-Anwendungen mit viel Geschäftslogik auf dem Server geht dem Ende zu. Schon seit einiger Zeit sind leichtgewichtige Architekturen gefragt, in denen der Server lediglich die Ressourcen per (REST-)Services zur Verfügung stellt und ein großer Teil der Logik in HTML5-Clients per JavaScript implementiert ist. Avatar macht mit seiner Thin-Server-Architektur (TSA) Java-EE-Ressourcen direkt per JavaScript zugreifbar, egal ob auf dem Server (Service Components) oder dem Client (View Components). Zudem sorgt das Framework für das Binding der Ressourcen an HTML5-Widgets und beschränkt sich dabei auf so wenig JavaScript wie möglich und nur so viel wie gerade nötig. Und wer kein Avatar im Client verwenden will, der nimmt einfach das Framework seiner Wahl. Oder kein Avatar auf dem Server und nur auf dem Client? Wäre schade, aber auch das ist möglich.
Heiko Spindler, Freiberuflicher Software-Architekt, Niko Köbler, Niko Köbler IT-Beratung mehr

Thema: Frontend


Datum Beginn Titel Autor, Firma Details
25.03. 10:00

Von Swing nach JavaFX - Anwendungsportierung leicht gemacht

JavaFX wird das neue Standardtoolkit, und Swing ist im Wartungsmodus. Was bedeutet das für bestehende Swing-Anwendungen? Wo sind Vor- und Nachteile der neuen Technologie? Ist nun alles neu aufzusetzen, oder gibt es einen sanften Übergang? In dieser Session lernen Teilnehmer, was zu beachten ist, wenn sie bestehende Anwendungen mit JavaFX anreichern oder komplett portieren wollen. Sie lernen interessante neue Komponenten kennen und sehen, wie man JavaFX in Swing-Anwendungen einbettet und umgekehrt.
Anton Epple, Eppleton IT Consulting mehr
25.03. 11:00

JavaFX Apps in the Real World

Now that JavaFX is included in the JDK, adoption of the JavaFX API in real-world applications has increased dramatically. This session will highlight some of these applications, why JavaFX was a great design choice, as well as specific features of JavaFX that they leverage.
James Weaver, Oracle mehr
25.03. 12:00

Superheld: Web-Applikationen mit AngularJS

Betrachtet man die Entwicklung der clientseitigen Web-Frameworks, sticht in jüngster Zeit ein Kandidat mit enormen Zuwachsraten heraus: AngularJS. Das JavaScript-Framework bietet einen optimalen Weg zur Trennung von Design und Anwendungslogik sowie der Anbindung an Backends. Der Vortrag gibt eine Einführung in die Implementierung von AngularJS-Anwendungen und zeigt Wege zum Aufbau moderner, hochskalierbarer Web-Architekturen.
Joachim Weinbrenner, jsolutions mehr
25.03. 13:00

"Having fun" mit Raspberry Pi, Java und Sensor-Netzwerken

Mittlerweile ist der Raspberry Pi nicht mehr nur für den Geek interessant, sondern auch für den ganz "normalen" Software-Entwickler. Dabei sind Themen wie Home Automation, Robotik oder die Erfassung von Wetterdaten interessante Themen, welche sich mit Java auf dem Raspberry Pi wunderbar bearbeiten lassen. Diese Session zeigt den Einsatz von Java auf dem Raspberry Pi in Verbindung mit drahtlosen Sensornetzwerken auf XBee-Basis. Dabei kommen Technologien wie Java SE, ME embedded und JavaFX zum Einsatz. Der Raspberry Pi dient hierbei nicht nur zur Erfassung der Daten des Sensor-Netzwerkes, sondern auch zur Visualisierung der erfassten Daten, was den Einsatz eines Desktop-Rechners weitgehend überflüssig macht. Des Weiteren kommt noch ein CubieBoard als Datenbank-Server zum Einsatz, auf welchem die Messdaten in einer MongoDB abgelegt werden.
Gerrit Grunwald mehr
25.03. 14:00

Tragfähige Frontend-Architekturen

Nutzer von Webanwendungen erwarten heutzutage zurecht ein gewisses Maß an Dynamik und Komfort in den Frontends, das weit über die nativen Fähigkeiten von HTML hinausgeht. Begegnet man dieser Anforderung ohne ein klares Konzept, führt dies fast immer zu Wildwuchs und unwartbarem JavaScript-Code. Dieser Vortrag soll zwei Möglichkeiten gegenüberstellen, die diesem Problem eine klare Frontend-Architektur entgegenstellen: ROCA und Single-Page-Anwendungen. ROCA bzw. Unobtrusive JavaScript ist ein Ansatz, der vom Server kommend versucht, JavaScript eine klare Rolle zuzuweisen und so beherrschbar zu halten. Dies basiert im Kern auf dem Prinzip des "Progressive Enhancement", also auf dem sukzessiven Hinzufügen von Features genau dann, wenn die Zielplattform diese auch unterstützt. Progressive Enhancement wird oft als das klassische Prinzip der Web-Frontend-Architektur angesehen, auch wenn es in der Praxis selten konsequent umgesetzt wird. Single-Page-Anwendungen stellen eine weitaus radikalere aber ebenso tragfähige Variante dar, bei der weitgehend auf Applikationslogik im Server verzichtet wird, da die Anwendung meist vollständig in JavaScript implementiert ist. Dies resultiert in einem Programmiermodell, in dem das Client-Server-Problem fast gänzlich verschwindet, was erheblich zur Reduktion von Komplexität beitragen kann.
Till Schulte-Coerne, innoQ Deutschland GmbH mehr
25.03. 14:00

IRIAN (City-Partner): Cross-Platform app development with PhoneGap, TypeScript and SVG

Play is an experimental teaching app for mobile devices developed at IRIAN Solutions Softwareentwicklungs- und Beratungsgesellschaft mbH, Vienna, Austria. This talk presents the tools and technologies used during the development of Play. We show some of the issues and pitfalls we encountered and suggests how to avoid them. This session focuses on PhoneGap and whether it really is the write-once-run-everywhere platform it promisses to be. This session also gives a brief introduction into TypeScript and why it it might be a viable JavaScript-alternative - especially for developers used to Java.
Jan Zarnikov, IRIAN Solutions Softwareentwicklungs- und Beratungsgesellschaft mbH mehr
25.03. 15:00

Modular JavaScript

Java development taught us that large code bases are hard to maintain. Modularity makes this easier and JavaScript is no different in this aspect. Modularity brings flexibility, agility and maintainability. The Java community has tremendous experience developing modular systems on top of the JVM. However, the past years have given rise to Java-based systems with large JavaScript front-ends. JavaScript has very different characteristics than Java and the JVM. How can we build modular JavaScript applications, and what benefits does this bring? This talk provides an overview of the current state-of-the-art for JavaScript modularity. This starts with design patterns within JavaScript code to create composable modules. It also includes discussion on creating modular architectures, spanning Javascript and Java backends. We also touch upon dependency management and other practical aspects. It's time to get serious about modularity in JavaScript to prevent an unmaintainable future!
Sander Mak, Paul Bakker, Luminis Technologies mehr
25.03. 16:00

IRIAN (City-Partner): JSF 2.2 Kompositkomponenten im Einsatz

Komponenten sind der wichtigste Erweiterungspunkt in JavaServer Faces. Vor Version 2.0 von JSF war die Komponentenentwicklung jedoch relativ aufwendig. JSF 2.0 macht in diesem Bereich einen großen Schritt auf die Entwickler zu. Mit den neuen Kompositkomponenten existiert eine sehr einfache Möglichkeit, Komponenten ohne eine Zeile Java-Code oder XML-Konfiguration deklarativ zu erstellen. Diese Session gibt eine Einführung, zeigt aber auch wie Kompositkomponenten im erweiterten Einsatz das Leben eines JSF-Entwicklers vereinfachen.
Gerald Müllan, IRIAN Solutions GmbH mehr
25.03. 16:00

GWT-Architekturen und "lessons learned"

GWT-Entwicklung ist Rich-Client-Entwicklung, und das ist für viele Webentwickler neu. Mit den "Lessons Learned" aus der Entwicklung von Google AdWords wurden Architekturmuster für GWT-Anwendungen vorgestellt. Einiges davon ist inzwischen in GWT gelandet und kann sofort eingesetzt werden. In diesem Vortrag werden Architekturmuster vorgestellt, die in den letzten Jahren in einigen Projekten erfolgreich eingesetzt wurden.
Papick Garcia Taboada, pgt technology scouting GmbH mehr
25.03. 17:00

Do-it-yourself usability design for developers

Good user experience (UX) is essential in modern software, be it a web-application based on JavaEE, Spring, Play or a similar framework, or a rich client developed with JavaFX/Swing. It is a must-have in consumer oriented applications and even in business applications good user experience becomes increasingly important. Therefore proper UX design should be embedded into the development of any user facing software. Unfortunately only few teams are equipped with a UX expert and it is up to the developers to incorporate good usability. This talk covers the basics of UX design. We will take a look at several concrete and simple techniques that every team can use, even with small budget, and that will enable you to increase the usability of your software tremendously.
Michael Heinrichs, Barclays mehr
26.03. 09:00

Apache DeviceMap - Mobile Geräteerkennung für Java EE

Das Wachstum an Mobiltelefonen, Tablets und ähnlichen Geräten, die den Markt geradezu überschwemmen erleben wir Tag für Tag. Die Spezifikation jedes Einzelnen genau zu verfolgen ist ein Knochenjob. Diese Mühe kann reduziert werden, wenn zur Verbesserung dasDevice Description Repository – kurz DDR - beigesteuert wird und Anwender dieses selbst verwaltet können. Apache DeviceMap enstand als Kooperation von Adobe, OpenDDR und anderen, um ein umfassendes Open Source Daten-Repository mit Geräteinformationen, Bilder und andere relevante Informationen für alle Arten von mobilen Geräten zu schaffen, Smartphones, Tablets, Smart-TV, u.dgl. Das Projekt begann im Januar 2012, im Herbst 2012 wurden DDR APis für Java und .NET von OpenDDR beigesteuert. Die nächsten Schritte sind ein gemeinschaftliches Device Repository, eine Speicher-Struktur, die langfristige Erhaltung und Pflege dieser Daten durch die Apache Gemeinde erlaubt, unter Nutzung geläufiger Formate, wahrscheinlich JSON und / oder XML.
Werner Keil, Creative Arts & Technologies mehr
26.03. 13:00

The Saga Continues: JavaFX Apps in the Real World

This session is a continuation of the JavaLand "JavaFX Apps in the Real World" session, and highlights yet more real-world JavaFX applications. This session also covers additional JavaFX features and technologies used in apps that were introduced in the previous session.
James Weaver, Oracle mehr

Thema: Keynote


Datum Beginn Titel Autor, Firma Details
25.03. 18:00

Open Park - Abendevent

mehr

Thema: Security


Datum Beginn Titel Autor, Firma Details
25.03. 15:00

Endlich sichere Webanwendungen mit Java

Sehr viele Java-Webanwendungen enthalten auch heute noch kritische Sicherheitslöcher, für die es bereits teils seit Jahren praktikable und funktionierende Gegenmaßnahmen gibt. Auch gerade erst neu entwickelte Webanwendungen enthalten trotz des in den letzten Jahren gewachsenen Sicherheitsbewusstseins und der Unterstützung durch Frameworks häufig noch dieselben altbekannten Bugs. (SQL-)Injection, Cross-Site Scripting (XSS) und Cross-Site Request Forgery (CSRF) sind die Klassiker in diesem Umfeld und belegen seit langem Spitzenplätze beispielsweise in den OWASP Top 10. Die aus diesen Bedrohungen möglicherweise folgenden Konsequenzen sind den meisten Java-Entwicklern auch mehr oder weniger bekannt. Dennoch werden diese Bedrohungen in der täglichen Entwicklungsarbeit viel zu selten durchgängig beachtet oder bei der Entwicklung einfach vollständig ignoriert. Übersehen wird dabei häufig auch, dass die Konzentration auf eines dieser Probleme nur teilweise hilfreich ist und beispielsweise der vermeintliche Schutz vor Cross-Site Request Forgery wirkungslos werden kann so lange die Webanwendung auch noch per Cross-Site Scripting verwundbar ist. Dabei kann jeder Java-Entwickler selbstständig während der Entwicklung einer Webanwendung etwas gegen diese und viele weitere Bedrohungen unternehmen und zumindest seinen eigenen Code sicher entwickeln. Die Session stellt dazu die von Injections, XSS und CSRF ausgehenden sicherheitskritischen Bedrohungen dar und zeigt, wie ein Angreifer eine solchermaßen ungeschützte Webanwendung angreifen kann. Im weiteren Verlauf wird gezeigt, wie Java-Webanwendungen sicher entwickelt werden können und was jeder Java-Entwickler in seiner täglichen Arbeit berücksichtigen muss, damit diese Sicherheitslöcher endlich der Vergangenheit angehören.
Dominik Schadow, BridgingIT GmbH mehr
25.03. 16:00

Massig neue Features in Spring Security 3.2

Spring Security hatte bisher hauptsächlich die Aufgabe, sich um Authentifizierung und Autorisierung zu kümmern. In der Version 3.2 kamen jedoch zahlreiche neue Themen, wie Unterstützung bei XSS, CSRF, Clickjacking und vieles andere mehr dazu. Sie verstehen kein Wort? Kein Problem, in dieser Session werden nicht nur die Spring-Security-Features gezeigt, sondern auch die Schwachstellen an sich erklärt und dann mit Live-Beispielen gezeigt, wie Spring Security dabei helfen kann, diese zu verhindern. Zusätzlich wird auch gezeigt, wie nun Spring Security 3.2 gänzlich ohne XML konfiguriert werden kann.
Michael Wiesner, Pivotal mehr
25.03. 17:00

Web Security rund um die Anmeldung

SQL-Injection und Cross-Site-Scripting sind inzwischen vielen Entwicklern geläufig; das Thema Login, Session-Management und Verwaltung der Benutzerdaten wird hingegen eher stiefmüttlerich behandelt - zu Unrecht, rangieren Probleme in diesem Bereich doch unter den ersten Plätzen der häufigsten Sicherheitslücken. Die Schwierigkeiten, die hier auftreten, sind meist von eher subtiler Natur, und im Gegensatz zu den zuerst genannten Bereichen gibt es hier keine einfache Bibliothekslösung. Dieser Vortrag möchte Denkanstöße geben, was abseits vom einfachen Anlegen einer Session und dem Speichern des Benutzerpassworts passieren kann.
Stefan Schlott, BeOne Stuttgart GmbH mehr
26.03. 09:00

ORACLE (City-Partner): Mobile Applikationen - User Experience und Sicherheit

Dr. Steffo Weber, Oracle Deutschland mehr

Thema: Softwarearchitektur


Datum Beginn Titel Autor, Firma Details
25.03. 10:00

Go Reactive: Blueprint for Future Applications

The game has changed: we write interactive web applications, we distribute the processing of huge data sets and our services need to be available at all times. This new breed of applications comes with its own set of requirements and forces us to establish new blueprints for designing our systems. In this talk we ask the crucial questions along this path, show which answers work and which don’t, and distill the essence of the common theme—Going Reactive.
Roland Kuhn, Typesafe AB mehr
25.03. 12:00

Die Herausforderungen der Event Loop am Beispiel Vert.x

Die Anforderungen an Server-Architekturen haben sich in Folge neuer Anwendungskonzepte im Bereich der Web- und Mobil-Anwendungen massiv gewandelt. Wo früher ein paar Tausend Request pro Sekunde die Spitzenlast darstellten, sehen wir uns heute mit mehreren 10.000 oder gar bis zu100.000 konfrontiert. Das altgediente "one thread per response"-Konzept erreicht hier seine Grenzen. Die Suche nach Alternativen führte zu Frameworks wie vert.X, Akka und Spring Reactor. Sie alle haben dabei eine Gemeinsamkeit: Die Verwendung einer Event Loop in Verbindung mit nicht blockenden APIs. Ziel des Vortrags ist es, die Kernprobleme aktueller Architekturen und einen möglichen Lösungsansatz aufzuzeigen. Nach einem praxisnahen Ausflug in die Welt von Java-Multithreading (Locks, CAS ...) werden dann die Event Loop erläutert, wie sie die zuvor aufgezeigten Probleme lösen kann und wo ihre Grenzen liegen. Zum Abschluss wird dann noch auf die Probleme bei der Umsetzung Event-Loop-basierter Systeme eingegangen (z.B. fehlende asynchrone Standard-APIs). Der Vortrag richtet sich dabei vor allem an technisch versierte Zuhörer die keine allzu große Angst vor java.util.concurrent, Locks und ein paar Details zu Thread-Scheduling haben.
Jochen Mader, codecentric AG mehr
25.03. 13:00

Modernisieren von Legacy-Frameworks im Grossunternehmen

Einige der zentral genutzten Frameworks in der Credit Suisse wurden in den letzten Jahren komplett neu designt und erweitert. Unnötige Schnittstellen entfernt bzw angepasst sowie die Kopplung nach innen und außen stark verringert. Dabei war das Management der Schnittstellen, der Verhaltensaspekte und der Stabilität zentral. Neben diesen, eher konzeptionellen Aspekten geht die Präsentation auch konkret auf einige Beispiele ein und zeigt, in welchen Schritten die Modernisierung angedacht, geplant und durchgeführt wurde und welches die Schlüsselaspekte sind, um ein solches Vorhaben zum Erfolg zu führen. Zu guter Letzt wird gezeigt, wie sich die erreichten Qualitätsfortschritte quantitativ und qualitativ messen lassen und was am Ende (Beachtliches) erreicht worden ist.
Anatole Tresch, Credit Suisse mehr
25.03. 14:00

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

Während im Enterprise-Umfeld Systeme häufig immer noch nach denselben Mustern entworfen werden wie vor 10 oder 15 Jahren, haben sich die Dinge in den immer größer werdenden Internet-Plattformen, -Diensten und Anwendungen der bekannten Internet-Anbieter dramatisch weiterentwickelt. In diesem Vortrag wird diskutiert, wie sich nach Mustern aus diesem Umfeld und mit der Maxime "weniger ist mehr" kleinere Systeme sehr viel effizienter entwickeln und diese dann zu großen Systemlandschaften zusammensetzen lassen.
Stefan Tilkov, innoQ Deutschland GmbH mehr
25.03. 15:00

codecentric (City Partner): Hadoop 2 - Going beyond MapReduce

Die im Oktober 2013 veröffentlichte Version 2 von Apache Hadoop hat eine lange Entwicklungszeit hinter sich und entsprechend umfangreich sind die Neuerungen ausgefallen. Die signifikanteste Änderung ist sicherlich die Auslagerung des Ressourcenmanagements im Cluster in die eigene Komponente YARN (Yet Another Resource Negotiator). Dadurch ist es nun möglich die in HDFS - welches ebenfalls umfangreiche Neuerungen gerade bezüglich High Availability erfahren hat - gespeicherten Daten nicht mehr nur mit MapReduce zu verarbeiten, sondern mit einer Vielzahl von unterschiedlichen Paradigmen wie z.B. Stream Processing (Storm), In-Memory Processing (Spark) oder Graph Processing (Giraph). Aber MapReduce bleibt natürlich auch weiterhin ein Kernbestandteil des Hadoop-Ökosystems und hat mit einer an die neue Architektur angepassten Implementierung zahlreiche Verbesserungen und Optimierungen erfahren. Der Vortrag wird die Neuerungen von Hadoop 2, die weit über YARN hinausgehen aus einer technischen Sicht erläutern und dabei natürlich die konkreten Anwendungsmöglichkeiten und Beispiele nicht außer Acht lassen.
Uwe Seiler, codecentric AG mehr
26.03. 09:00

Spring 4, Java EE 7 or Both?

Problems choosing between Java EE and Spring? Or do you want to use both in combination? Then this session is something for you. In this session I will build an application using Spring 4, then build the same application using Java EE 7 and at last build it again using a combination of the two. Strenghths and weaknesses with the three approaches will then be explored and lessons learned summarized.
Ivar Grimstad, Cybercom Sweden mehr
26.03. 09:00

codecentric (City Partner): Continuously Driven by Behavior - Continuous Architektur für eine unvollkommene Welt

Continuos Delivery ist ein super Ding - wenn die komplette Systemlandschaft dem Paradigma unterliegt. Wenn man aber zum Beispiel eine Web Anwendung nach C.D. baut und die darunter liegenden Services nicht per Pipeline verfügbar sind, hat man einen Medien Bruch. Ich würde gerne ein von mir erprobtes Vorgehensmodell mit dem man: • Externe Services mit sauberen APIs kapselt • Anforderungen mit JBehave modelliert • Mocking Services während der Entwicklung für die externen Services nutzt, welche auch über Given and Then Steps bedient werden • Echte Services während der Abnahme und Deployment nutzt, welche wiederum eigene Given und Then Step nutzen Damit hat man eine saubere Architektur, klar definierten Schnittstellenanforderungen, automatisierte Dokumentation und kann isoliert nach C.D. arbeiten.
Stefan Siprell, codecentric AG mehr
26.03. 10:00

Where’s my architecture?

When a code-base grows beyond a certain size, any original arrangement of source files (or architecture) is often lost. The developers also become lost, and start drowning in the ever-expanding sea of classes. Usually the underlying code – the classes – are in reasonable shape. The problem is that there are too many classes to understand without any higher-level guiding structure, and physical structures (such as packages or jars) have become a tangled mess. The good news is that it is generally perfectly feasible to organize existing classes into a modular hierarchy with minimal impact on the implemented code. This is far less expensive than starting over, and more likely to succeed! A code-base with a clearly communicated, cogent architecture is much more valuable than a Big Ball of Mud, and developers will love the result. The process of architecture discovery/development requires the use of “code-first” modeling tools such as Structure101, Lattix, SonarGraph, etc., which parse the as-is code and capture the containment and dependency structures. This model can be manipulated to organize the classes into a new containment hierarchy by reusing useful aspects of the existing physical structures, and/or assembling together cohesive clusters of classes from the bottom-up. Once a measurably well-structured containment model is in place, the allowable visibility and dependencies between groups of classes can be defined, and the code refactored as needed to make it conform. The alignment of the physical structures can follow once the implementation-level code already conforms to the target architecture.
Chris Chedgey, Structure101 mehr
26.03. 10:00

Daten natuerlich modellieren und verarbeiten mit Neo4j

Der Social Graph von Facebook ist mit Abstand die bekannteste Anwendung für eine Graphendatenbank. Darüber hinaus gibt es noch weit spannendere Anwendungsfälle wie Spatial Data, Financial Trail, Indexing, und andere. Kombiniert man unterschiedliche Graphen lassen sie sich, mit den aus der Graphentheorie bekannten Algorithmen, gemeinsam auswerten. Obwohl Graphendatenbanken nicht neu sind, haben sie dank der ganzen NoSQL-Bewegung frischen Aufwind halten. Eine Domäne lässt sich oft leichter schemalos und natürlicher als Graph, anstatt mit vielen normalisierten Tabellen, abbilden. Dies fordert neben einer anderen Denkweise bei den Entwicklern auch Unterstützung aus der Community für die Verbreitung. Dieser Vortrag führt in das Thema der Graphendatenbanken ein und vermittelt wie man Modelle mit grossen, komplexen und stark vernetzten Daten mit Neo4j umsetzen kann. Anschliessend werden die Themen Querying, Indexierung, Import / Export, Skalierung sowie weitere Tools und APIs betrachtet. Zum Schluss beleuchten wir die Highlights & Challenges beim Einsatz der Technologie.
Patrick Baumgartner, 42talents GmbH mehr
26.03. 12:00

IRIAN (City-Partner): Intoduction to Vaadin

Vaadin is Java framework for rapid development of highly interactive HTML5-based web applications in server-side environment. It abstracts the underlying document and state transfer technologies (DOM, AJAX, JSON), allowing web applications to be developed in Java following the desktop application metaphor. Vaadin leverages the full power of GWT, a Java to Javascript compiler making it possible to develop the entire web application stack and new client-side components without leaving the Java environment. Rapid development is facilitated by a great variety of library components and immediate server deployment. Vaadin applications are executed in server environment providing great enhancement for security as well as binding Vaadin front-end to any existing back-end system. During the session attendees will get an overview of Vaadin framework and its architecture, a hand on demonstration on how to build Vaadin applications from scratch and what really happens behind the scenes of the framework.
Peter Lehto, Vaadin Ltd. mehr
26.03. 15:00

Memes and Cargo Culting in JavaLand

Given most of our profession comes from a computer scientist background, it is expected that we use a scientific and verifiable approach in decision taking processes. Unfortunately, nothing could be further from the truth. Our environment is ridden with irrational convictions that come from out of nowhere. Those are of two different kinds: memes are "ideas, behaviors, or styles that spreads from person to person within our culture" while cargo culting is the "ritual inclusion of code or program structures that serve no real purpose". Both are deeply entrenched in our community. This talk will try to challenge some of those common ideas, by highlighting the most pervasive ones.
Nicolas Fränkel, hybris mehr
26.03. 16:00

Qualitätssicherung mittels Graph-basierter Code-Analyse

Mit wachsendem Umfang der Code-Basis eines Projektes wachsen die Herausforderungen an die eingesetzten Methoden zur Qualitätssicherung. Dabei spielen die Definition von Architektur- bzw. Design-Constraints, Konventionen sowie die Überwachung von Metriken eine wichtige Rolle. Im Alltag finden diese jedoch oft weniger Beachtung als nötig, da die Einhaltung definierter Regeln entsprechende Selbstdisziplin aller Beteiligten erfordert bzw. abstrakte Zahlenwerte oft nur schwer interpretierbar sind. Der Vortrag demonstriert einen Ansatz, der auf Bytecode-Analyse von Anwendungen sowie der Überführung gewonnener Informationen in eine Graphendatenbank basiert. Damit eröffnen sich für Entwickler und Architekten umfangreiche und flexible Möglichkeiten, um mittels entsprechender Abfragen manuell oder automatisiert die Einhaltung definierter Constraints sicherzustellen, verständliche Aussagen über die Eigenschaften ihrer Software zu erzeugen sowie Impact-Analysen für anstehende Code-Änderungen durchzuführen.
Dirk Mahler mehr

Thema: Sprachen (JVM Languages)


Datum Beginn Titel Autor, Firma Details
25.03. 10:00

IRIAN (City-Partner): Scalaz Einführung für Java Programmierer - mehr als nur Lambdas

Funktional zu programmieren bedeutet mehr als sich nur Lambdas zu bedienen. Selbst mit Java 8 gibt es daher nicht weniger gute Gründe sich auch funktionale Sprachen wie Scala anzusehen. In diesem Vortrag werden die wichtigsten Konzepte und Ideen aus der Scalaz Library (Monads, Monoids, Applicative Functors, etc.) vorgestellt, in einer praktischen Art und Weise, losgelöst von rein akademischen Hintergründen, um Ihnen hoffentlich selbst als Java Programmierer weiterhelfen zu können.
Bernhard Huemer, IRIAN Solutions GmbH mehr
25.03. 15:00

Frischer Wind für die JVM - sechs Programmiersprachen im Vergleich

Lange Zeit war Java Alleinherrscher auf der JVM. Andere Sprachen traten kaum oder nur am Rande in Erscheinung. In den letzten Jahren hat sich dies grundlegend geändert. Ausschlaggebend waren nicht nur neue Ideen für Programmiersprachen, sondern auch der Wandel der JVM hin zu einer polyglotten Laufzeitumgebung (Multi Language VM). Doch was können die neuen (oder auch alten) Konkurrenten besser als Java? Dieser Vortrag stellt sechs Programmiersprachen in jeweils fünf Minuten vor und zeigt die Vorzüge und Eigenheiten auf. Als Wettbewerber treten Groovy, Scala, Clojure, Ceylon, Kotlin und Fantom an. Sie verbinden bestehende Konzepte mit neuen Ideen oder krempeln die bestehende Sicht auf Programmiersprachen komplett um. Einen guten Überblick über neue Sprachen zu haben erleichtert nicht nur den Smalltalk beim Entwicklerstammtisch, oft fallen auch gute Tipps für den Arbeitsalltag ab. In diesem Sinne will der Vortrag Denkanstöße vermitteln und den Blick für neue Entwicklungen schärfen.
Simon Olofsson, Content Management AG mehr
25.03. 16:00

Scripting in Java

Anhand der im JDK 8 bestehenden neuen JavaScript-Engine Nashorn werden die Vorteile des JSR 292 (Supporting Dynamically Typed Languages on the Java Platform) für Skriptsprachen auf der JVM aufgezeigt und mit welchen Performanzsteigerungen diese in Zukunft innerhalb von Java rechnen können. Neben einer Einführung in die Lambda Expressions, die ebenfalls Einzug in das JDK 8 haben und bereits Bestandteil einiger Sprachen ist, werden weitere spezielle Sprachkonstrukte von bestimmten Skriptsprachen betrachtet. Einfache Code-Beispiele zu den jeweiligen Sprache, die auf der JVM laufen, heben ihre Vorteile gegenüber Java hervor. Neben JavaScript (Nashorn) und den üblichen JVM Sprachen wie zum Beispiel Groovy, JRuby und Clojure werden auch Beispiele zu Common Lisp (ABCL), Haskell (Jaskell), Prolog (JLog), Perl (Sleep) und Java als Skriptsprache (BeanShell) gezeigt.
Lars Gregori, msgGillardon AG mehr
25.03. 17:00

codecentric (City Partner): Mechanisch, sympathisch, sucht

Dieser Vortrag ist mehr als reger Erfahrungsaustausch mit Experten als Frontalbeschallung gedacht. Ich stelle den aktuellen Stand unserer Arbeit an einer Lösung vor, die dem Zwecke der sofortigen Datenanalyse auf ununterbrochenen Datenströmen im Bereich von mehreren Millionen Events pro Sekunde liegt, und das bei minimaler Hardware. Ich erkläre, was wir überhaupt vorhaben, warum wir uns für den Ansatz kompromissloser Mechanical Sympathy entschieden haben, warum wir uns am Ende für die JVM entschieden haben, was wir davon und wie überhaupt nutzen und vor allem nicht nutzen, wie wir die Event-Aufnahme in dem Multi-Millionenbereich lösen, wie wir mit der Zeitsteuerung umgehen, wie wir Berechnungen für die Datenanalyse schneiden und parallelisieren, wie wir Datenströme splitten, welche Algorithmen wir auf verschiedenen Ebenen einsetzen, welche Hardware-Accelerators wir testen etc. Außerdem stelle ich gerne unsere aktuellen Herausforderungen und noch ungelöste Aspekte vor. Ich hoffe, von den Experten zu lernen, und dass ich vielleicht auch das eine oder andere Neue/Unbekannte aufzeigen kann.
Pavlo Baron, codecentric AG mehr
25.03. 17:00

Akka - Reaktive Applikationen einfach entwickelt

Die Entwicklung paralleler oder verteilter Anwendungen mit Java ist komplex und fehleranfällig. Abhilfe verspricht hier Akka, ein in Scala implementiertes Framework von Typesafe, dass ein einfaches Programmiermodell mit guter Performance verspricht. Akka baut auf Aktoren und dem "Let it crash"-Prinzip auf, die schon in Erlang zum Einsatz gekommen sind und es erlauben, Event-getriebene und fehlertolerante Applikationen zu erstellen. In diesem Vortrag wird anhand von vielen Codebeispielen Akka eingeführt. Einer Erklärung der wichtigsten Konzepte folgen Features, die dem Entwickler das Leben leichter machen, wie die hervorragende Camel-Integration oder die neuen Clusterfunktionen. Dass Akka nicht bedeutet, in Scala entwickeln zu müssen, zeigt ein Blick auf die gelungene Java API. Dieser Vortrag ist für Entwickler gedacht, die noch nicht mit Akka gearbeitet haben, Scala-Kenntnisse sind zum Verständnis nicht erforderlich.
Michael Pisula, TNG Technology Consulting GmbH mehr
26.03. 09:00

Groovy 3 und das neue Meta Object Protocol in Beispielen

Mit Groovy 3 wird sich vieles ändern. Der Kern der Sprache, das Meta Object Protocol, wurde konzeptionell überarbeitet und hat nun einige inkompatible Änderungen. Dieser Vortrag hat zum Ziel, einige Teile des neuen MOP anhand praktischer Beispiele zu zeigen - und was sich gegenüber dem alten MOP verändert hat.
Jochen Theodorou, GoPivotal Deutschland GmbH mehr
26.03. 10:00

Scala in action

Du sprichst noch kein Scala? Dann sei eingeladen zu einer Rundreise, bei der du die herausragenden Features dieser Programmiersprache für die JVM kennen lernen wirst. Zum Einstieg gibt es einige wenige Folien, anschließend zeigt der Referent die Sprache und typische Anwendungen anhand "lebendiger" Beispiele - und natürlich mit viel Live-Coding.
Heiko Seeberger, Typesafe mehr
26.03. 12:00

Ein Projekt steigt um von Java auf Scala

Das Scala-Ökosystem, also Sprache und verfügbare Bibliotheken, bietet viele Chancen für die Softwareentwicklung auf der Java Virtual Machine. Scala besticht von Anfang an durch den Verzicht auf Boilerplate Code. Das Prinzip, dass Code knapp und präzise geschrieben werden kann, ist auch ein wichtiges Merkmal bei der Verwendung in Scala entwickelter Bibliotheken. Der Vortrag ist ein Erfahrungsbericht, wie die Entwicklung eines zuvor jahrelang auf Java basierten Softwareprodukts auf Scala umsteigt. Die an den Umstieg gesetzten Erwartungen, die Probleme beim Umstieg und natürlich auch die bereits sichtbaren Erfolge werden beleuchtet. Kurze Beispiele geben einen Einblick in die Eleganz der Sprache und in die Verwendung von Bibliotheken, beispielsweise für Datenbankabfragen, für Nebenläufigkeit, Fehlerbehandlung und das Schreiben von Tests.
Georg Dietrich, imbus AG mehr
26.03. 13:00

Using Ruby Beneath a Java API

Ruby is a programming language focused on simplicity and productivity. JRuby is an implementation of the Ruby language on the Java Virtual Machine (JVM). Does it make sense to integrate Ruby libraries (Gems) with Java so they can be used transparently within any JVM-based application? Absolutely! With the diversity and innovation in the Ruby ecosystem and the popularity of polyglot programming on the JVM, it's a great fit. In this presentation, we'll explore several ways to invoke Ruby from Java, including how variables are transferred, how to adapt to data types that only exist in Ruby, how to create Java interfaces to wrap Ruby code and, finally, how to bundle Ruby Gems alongside Java code in a jar file using Apache Maven for publishing to Maven Central. As a practical example, we'll examine AsciidoctorJ, a library that provides a Java API to the Ruby-based Asciidoctor library. You'll leave the presentation with the knowledge you need to leverage JRuby to integrate any Ruby Gem into your JVM-based application.
Alex Soto Bueno, Everis mehr
26.03. 14:00

Play: "One Web Framework to Rule Them All"

Mit Play existiert ein Web-Framework für die JVM, das den Geist von Ruby on Rails mitbringt. Play ist von Web-Entwicklern für Web-Entwickler entworfen worden. Es bricht mit herkömmlichen Java-Standards und Gepflogenheiten – zugunsten einer einfachen Entwicklung und schnellen Entwicklungszyklen. Eine sehr gute Developer Experience ist das Ergebnis. Das Play Framework wurde in der aktuellen Version 2.x komplett in Scala neu entwickelt, bietet allerdings auch eine separate Java API an. Es bietet neben einer sehr guten Skalierbarkeit weitere interessante Features, wie statisch typisierte Templates oder eine vollwertige Unterstützung für die asynchrone Programmierung. In diesem Vortrag wird Play vorgestellt, wobei keine Scala-Kenntnisse vorausgesetzt werden. Es wird gezeigt, warum sich das Framework für den Einsatz im Web und gewachsenen Enterprise-IT-Landschaften besonders gut eignet. Zudem wird darauf eingegangen, welche Probleme bei der Einführung von Play auftreten können und wie diese am besten gelöst werden.
Felix Müller, Deutsche Post E-Post Development GmbH mehr
26.03. 15:00

Funktionale Programmierung bringt's

Java 8 steht unter dem Zeichen von "Project Lambda", das erste Elemente der funktionalen Programmierung in Java einführt. Die Erweiterung von Java um Lambda-Ausdrücke zielt vornehmlich auf die effiziente Ausnutzung von Multicore-Architekturen mit Hilfe der neuen Stream-API, kann aber auch in der alltäglichen Programmierung viele Aufgaben erleichtern. Dazu gehört insbesondere die Programmierung mit Collections. Viele der Vorteile der funktionalen Programmierung bleiben aber dennoch den waschechten funktionalen Sprachen vorbehalten. Dazu gehören die rein funktionale Programmierung mit Hilfe effizienter funktionaler Datenstrukturen, die Implementierung eleganter eingebetteter domänenspezifischer Sprachen oder die Benutzung fortgeschrittener Patterns wie Monaden. Vor allem aber profitieren Benutzer funktionaler Sprachen von der uneingeschränkten Komponierbarkeit von Funktionen, die in Java 8 aufgrund der großen Vielzahl spezialisierter Funktionstypen im Package java.util.function leider noch untergeht. An funktionalen Sprachen gibt es zum Glück auf der Java-Plattform inzwischen eine reichhaltige Auswahl: vorn dabei sind Scala und Clojure. Sie bilden eine sinnvollen und hocheffizienten Ersatz für die Entwicklung in Java, und lassen sich auch in existierenden Java-Projekte einfach einbinden. Inzwischen ist auch die Tool-Landschaft um diese Sprachen soweit ausgereift, dass ihre Benutzung in der Praxis uneingeschränkt empfohlen werden kann. Der Vortrag bietet einen Streifzug durch die funktionale Programmierung. Dieser erlaubt Entwicklern, ihre Vorteile einzuschätzen und zu entscheiden, ob und wie funktionale Programmierung in ihren Projekten zum Einsatz kommen kann.
Michael Sperber, Active Group GmbH mehr
26.03. 16:00

Web-Entwicklung mit Clojure

Die Anzahl der Optionen zur Entwicklung von Webanwendungen mit Clojure macht den Einstieg nicht leicht. Im Rahmen dieses Vortrags werde ich eine kleine Ring-basierte Webanwendung programmieren und so erweitern, dass sie den häufigsten technischen Anforderungen genügt. Der Zuschauer erhält einen Überblick über Bibliotheken, Integrationspunkte und Entwurfsmuster in Bezug auf die folgenden Themen: - Routing von Requests und Auswertung von Request-Parametern - HTML-Templating - Authentifizierung, Autorisierung und Session-Verwaltung - Bereitstellung von HTTP-APIs - Bau und Deployment von Clojure-Webanwendungen Die Präsentation wird weitestgehend in Form von Live-Coding erfolgen.
Nils Wloka, codecentric AG mehr

Thema: Tools


Datum Beginn Titel Autor, Firma Details
25.03. 10:00

codecentric (City Partner): ElasticSearch

Es gibt einen neuen Stern am Suchmaschinenhimmel: ElasticSearch - ein in Java geschriebener Suchserver, der mit Apache Lucene auf bewährter Technologie basiert, gleichzeitig aber von Grund auf für das Big-Data-Umfeld konzipiert wurde. Die Hauptvorzüge von ElasticSearch lassen sich mit drei Worten beschreiben: Skalierbarkeit, Flexibilität und Einfachheit. Der ElasticSearch-Kern beinhaltet leicht konfigurierbare Mechanismen für Sharding, Replikation und Failover, um auch bei großen Datenmengen transparent skalieren zu können. Die Datenrepräsentation von ElasticSearch ist dokumentenorientiert und schemafrei, wodurch es nahezu beliebige Inhalte indizieren kann ohne deren Struktur vorher zu kennen. Dank seines benutzerfreundlichen Default-Verhaltens lässt sich ElasticSearch innerhalb weniger Minuten in Betrieb nehmen und testen. Dieser Vortrag gibt eine Einführung in ElasticSearch und verschiedene Advanced Topics. Wir lernen Best Practices sowie weniger bekannte Gotcha’s kennen, und betrachten Fallbeispiele aus dem produktiven Einsatz für einen größeren Cloud-Dienst.
Patrick Peschlow, codecentric AG mehr
25.03. 10:00

Eclipse Track: JavaFX at Eclipse.org

Many people in the Java community when they hear about Eclipse still think of SWT. This was in the early days of Eclipse but started to change since a few years and more and more projects at Eclipse try to get widget toolkit agnostic and/or make use of other UI frameworks - even the new Eclipse 4 Platform who provides the foundation for the Eclipse 4.x SDK is designed in this regard. Most JavaFX activity at Eclipse.org is happening in a dedicated project named e(fx)clipse who provides JavaFX tooling for Developers and also an OSGi and Eclipse 4 based runtime platform and framework to develop complex business applications on top of it This talk will demonstrate the tooling and runtime platform and will show of an currently experimental port of SWT backed by JavaFX to run your SWT-based RCP applications unmodified - even the Eclipse SDK itself to some extend.
Tom Schindl, BestSolution.at mehr
25.03. 11:00

Eclipse Track: JDT embraces Java 8

Java 8 is coming. It is happening right here. Developers of your favorite Java IDE are participating in shaping this long awaited milestone for the Java ecosystem: On time with the GA of Java 8, JDT will ship its first release with support for developing in Java 8. This talk will give a tour to how JDT supports the new language features. A particular focus will be on Type Annotations (JSR 308); using the example of null annotations, you will see how type annotations can help detecting bugs already at compile time. Type annotations are a major step towards a final bye-bye to NullPointerException, and many other errors can be addressed much in the same way. I will conclude with a back stage view introducing the team behind JDT and how we mastered the challenge of implementing support for Java 8.
Stephan Herrmann, GK Software AG mehr
25.03. 12:00

Eclipse Track: Besser Java programmieren mit Xtend

Xtend ist eine statisch typisierte, Java ergänzende Programmiersprache. Ihre mächtigen Konstrukte geben dem Entwickler mehr Freiheiten, ausdrucksstärkeren sowie kompakteren Quellcode zu schreiben. Xtend unterstützt unter anderem funktionale Programmierung, Extension-Methoden, Makros und Template-Ausdrücke. Des Weiteren macht Typ-Inferenz die redundante Angabe von Typen überflüssig. Xtend kompiliert zu menschenlesbarem Java-Quellcode, und das Typsystem ist zu Javas Typsystem identisch. Damit ist 100-prozentige Kompatibilität zu jedem Java-Projekt garantiert. Die Xtend IDE integriert sich mit der Eclipse-Java-IDE, dem Eclipse-Debugger sowie Maven. Xtend ist Open Source und bei eclipse.org gehostet. In diesem Talk werde ich anhand anschaulicher Beispiele die Möglichkeiten und Vorzüge von Xtend demonstrieren. Ziel des Talks ist es, einen ersten Eindruck von einer Programmiersprache zu vermitteln, welche zeitgleich Codequalität, Produktivität und den Spaßfaktor anhebt.
Jan Köhnlein, itemis AG mehr
25.03. 12:00

Sagt mein Profiler die Wahrheit? Wie funktioniert er eigentlich?

Um die Performance einer Anwendung zu verstehen oder einem dubioseN Performanceproblem auf die Schliche zu kommen, setzen Entwickler gerne Profiler ein. Doch was sind das für Zahlen, die der Profiler produziert? Stimmen diese überhaupt? Wie misst der Profiler eigentlich? Was sind mögliche Fehlerquellen? Sind die Zahlen überhaupt vergleichbar? Lässt sich irgendetwas Sinnvolles mit den produzierten Ergebnissen anfangen? Der Vortrage gibt Antworten auf diese Fragen. Die Teilnehmer werden verstehen, wie die von Profilern produzierten Ergebnisse zu bewerten sind. Sie betrachten die eingesetzten Messverfahren und lernen, sie korrekt zu konfigurieren. Viele der Probleme und ihre Lösungen werden am Code live ausprobiert. Die gewonnen Erkenntnisse lassen sich im Entwickleralltag auf die Werkzeuge aller Hersteller anwenden.
Fabian Lange, codecentric AG mehr
25.03. 13:00

Eclipse Track: Are you still manually coding UIs

Manual development of user interfaces for Business application has several drawbacks. Visible components such as forms or reports are typically subject to constant change, based on user feedback. Additionally often many forms are developed in parallel while still all forms must comply to a uniform look and feel. Typical UI layout technologies are powerful, but also complex to use, as they have to support any kind of possible layout. Maintenance and testing of manually coded forms is costly, time-consuming and error-prone. All these shortcomings are in turn typical advantages of Model-Driven-Development. In this presentation, we present an approach, where the user interface is expressed with a simple model instead of code. The model defines only concepts, which are allowed by the given user interface guideline. A modeled UI is then interpreted by a rendering engine. The goals of this approach are to more efficiently produce form-based UIs adapt form-based UIs to changes in data model with minimum effort establish or easily change a uniform look and feel enable a much shorter turnaround with other stakeholders (e.g. product manager, customer) lower the technical entry barrier to create form-based UIs We start with a short generic motivation and introduction to the concept of UI modeling. We then demonstrate a concrete open source implementation of a UI modeling framework called EMF Forms. The framework abstracts the custom layout of the user interface from the applied UI technology and allows to switch UI technologies from SWT to JavaFX, Swing or Web - just by replacing the renderer. It is therefore a perfect match with the concept of the Application model rendering in e4. We focus on our experience in applying the concept to commercial projects, including lessons learned and potential pitfalls.
Maximilian Kögel, EclipseSource München GmbH mehr
25.03. 13:00

Take Back Your IDE - Finally, Tools You Can Share, with Forge

Everyone has their favorite development environment - Eclipse, NetBeans, IntelliJ IDEA, Vi, and Emacs are a few, but how easy is it to add your own custom tooling? Forge is not only a rapid application development tool, but a platform for creating reusable tools that can make you, or your entire group, more effective. Come learn how to build an Forge plugin in 5 minutes, test it, run it in Eclipse, see it working in the command line without any changes required, and embed it for re-use in a custom Java application.
Andrew Rubinger, JBoss by Red Hat mehr
25.03. 14:00

Eclipse Track: Connecting things with Eclipse IoT

In just about 2 years, the Eclipse Foundation has started gathering an incredibly active community around the Internet of Things. With now a dozen projects that allow to build open-source connected solutions for virtually every object of your day-to-day life, this talk will take you on an extensive tour of the technologies that Eclipse IoT federates around communication protocols, developments tools, frameworks and solutions. Whether you want to learn more about protocols like MQTT or CoAP, about the role that OSGi will play for the Internet of Things, or if you're simply curious, this talk is the perfect opportunity for you to learn more about IoT at Eclipse and how you can get involved and contribute!
Benjamin Cabé, Sierra Wireless mehr
25.03. 15:00

Eclipse Track: Eclipse SmartHome

Das neue Eclipse-SmartHome-Projekt ist ein flexibles Framework für Lösungen im Bereich Smart Home and Ambient Assisted Living (AAL). Es spielt seine Stärken in heterogenen Umgebungen aus, indem es bei der Integration unterschiedlichster Protokolle und Standards unterstützt. Ziel des Frameworks ist es, einen gleichförmigen Zugriff auf Geräte und Informationen bereitzustellen und darauf aufbauend Interaktionen zu ermöglichen. Dafür stellt ESH eine auf etablierten Eclipse-Technologien wie Xtext/Xbase basierende Regel-Engine sowie interne DSLs zur Beschreibung des User Interface bereit. Zur Interaktion mit anderen System steht eine hoch flexible REST API bereit. ESH ist dazu designt, damit Entwickler es um ihre eigenen Bedürfnisse erweitern und somit individuelle Smart-Home-Lösungen aufbauen können. Dazu kann ESH auf Embedded Devices mit einer JVM, wie dem Raspberry Pi, deployt werden. Die ganze Anwendung ist rein Java/OSGi und baut auf weiteren Frameworks wie Equinox, EMF und Jetty auf. In dieser Session werden wir nicht nur die technischen Aspekte des Projekts beleuchtet, sondern auch coole Anwendungsfälle aus der Heimautomatisierung zeigen, die mit solch einem flexiblen Framework überhaupt erst möglich werden. Die initiale Contribution in das ESH-Projekt stammt übrigens aus dem bereits bekannten Projekt openHAB, dass seinerseits eine riesige Menge freier Erweiterungen im Gepäck hat. Somit können Systeme wie KNX, Philips Hue, Z-Wave, EnOcean, DMX, Plugwise, Homematic und Sonos leicht integriert werden.
Thomas Eichstädt-Engelen, innoQ Deutschland GmbH mehr
25.03. 16:00

Eclipse Track: Does the world need long-term support for open-source projects?

Open Source projects like Eclipse typically work like this: • A release is issued (in the case of Eclipse, this happens once every year in summer) • Service releases may be issued after fixing the bugs (Eclipse provides 2 service releases called SR1 and SR2) • Development starts for the next release And here is where the problem starts. Our organizations need to support our products for a period of time. For some of the organizations using Eclipse, this period of time may be 8 years, for others it may extend to 20 and more years. And it turns out that this problem is not just related to products that we build and sell. Eclipse technology has been so successful. We have talked to many banks, insurance companies as well as organizations from automotive and various other industries. We have been told that Eclipse technology is widespread, may it be as tooling platform, as platform for rich client applications or as platforms for model-driven development and execution. And as Eclipse technology develops, we will soon see it spreading into new domains such as Internet-of-Things applications. Come and listen how we want to solve the problem.
Ralph Müller, Eclipse Foundation, Inc. mehr
25.03. 16:00

codecentric (City Partner): Realtime Big Data - Step by Step mit Lambda, Kafka, Storm & Hadoop

Dieser Vortrag beschreibt wie man zunehmenden Anforderungen an die Schnelligkeit der Datenauswertung großer Datenmengen mit der Lambda Architektur und deren Umsetzungen mit den Open Source Tools Kafka, Storm und Hadoop begegnen kann. Ausgehend von konkreten Anwendungsbeispielen wird erst die Lambda Architektur vorgestellt, dann die verwendeten Werkzeuge und schließlich konkret technisch die eigentliche Umsetzung.
Valentin Zacharias, codecentric AG mehr
25.03. 17:00

IRIAN (City-Partner): Messaging mit RabbitMQ

RabbitMQ ist eine Open Source Messaging Software basierend auf dem Advanced Message Queuing Protocol (AMQP). Im Fokus stehen hohe Durchsatzraten in Verbindung mit Clustering und Failover. Zahlreiche Plugins und AMQP Client Bibliotheken ermöglichen einen vielfältigen Einsatz von RabbitMQ.
Marcus Kröger, Bernd Bohmann, Irian Deutschland GmbH mehr
26.03. 10:00

ORACLE (City-Partner): Integration mobiler Anwendungen in die Infrastruktur des Unternehmens

Detlef Müller, Oracle Deutschland mehr
26.03. 10:00

codecentric (City Partner): Continuous Learning - Agiles Anforderungsmanagement mit Impact Mapping

Mit Continuous Delivery steht uns ein mächtiges Werkzeug zur Verfügung. Lange Release-Zyklen gehören der Vergangenheit an, das neue Feature ist nur noch einen Commit entfernt. Umso mehr rückt die Frage in den Vordergrund, wie wir dieses Werkzeug gewinnbringend einsetzen können. Eine entscheidende Voraussetzung dafür ist, die Anforderungs-Pipeline ohne monatelange Planungsphasen sinnvoll zu füllen. Mit Impact Mapping möchte ich eine Methode vorstellen, die uns dabei helfen kann, die durch Continuous Delivery verkürzten Feedbackschleifen dafür zu nutzen, unsere Anforderungen konsequent und kontinuierlich an Projekt- und Geschäftszielen auszurichten.
Nils Wloka mehr
26.03. 12:00

ORACLE (City-Partner): Plattformunabhängige Entwicklung von Mobil-Applikationen mit ADF Mobile

Dr. Jürgen Menge, Oracle Deutschland mehr
26.03. 12:00

Git mit "T" für Team

Git ist nicht nur ein Versionskontrollsystem. Git kann die Art und Weise verändern, wie wir im Team miteinander arbeiten. Viele Teams wissen nicht, dass ihr Entwicklungs-Workflow in Git abgebildet werden kann, und benutzen es einfach "out of the box". Git ist aber viel leistungsfähiger und kann das Team produktiver machen, die Delivery-Pipeline schützen und zur besseren Zusammenarbeit beitragen. Teilnehmer lernen, wie man ALM-Techniken wie Continuous Integration, Code Reviews und Fehlerverfolgung in den individuellen Workflow integriert. Diese Präsentation zeigt wie man mit Git am effektivsten im Team zusammenarbeitet - egal ob man gerade zu Git wechselt oder bereits ein erfahrener Git-User ist.
Sven Peters, Atlassian mehr
26.03. 12:00

codecentric (City Partner): The Role of Continuous Integration for Continuous Delivery

The concept of DONE have changed in project teams to evolve from “The unit tests are green” to “The software is shippable in production”. Continuous Integration mutated into Continuous Delivery and this process was no longer limited to the DEV teams but had to integrate the OPS team to cover the deployment phases of the applications. Come and discover how the Continuous Integration server Jenkins CI became the nexus of Continuous Delivery orchestrating the phases of complex Application Lifecycle processes. Discover how Jenkins is becoming the lingua franca between DEV teams and OPS teams to deliver applications faster.
Cyrille Le Clerc, CloudBees mehr
26.03. 13:00

Effektive Verwendung von IDEs

Keine Lust mehr auf java.awt.List als Import-Vorschlag, wenn man nur java.util.List verwenden möchte? In diesem Vortrag werden die interessantesten Features der führenden Java IDEs Eclipse, IntelliJ IDEA und Netbeans in den jeweils aktuellen Versionen behandelt. Deren Standard-Einstellungen bieten eine gute Grundlage, aber es gibt viel zu entdecken, um produktiver arbeiten zu können. Es werden Einstellungen und Benutzung von Syntax Highlighting, Editor, Compiler, Code-Vervollständigungsassistenten sowie die wichtigsten Refactorings und Shortcuts in theoretischen Exkursen und Live-Demos gezeigt. Auch für langjährige Nutzer der IDEs wird noch etwas Neues dabei sein. Die gezeigten Einstellungen und Programmiertipps helfen dabei, die IDE so einzustellen, dass sie die eigene Arbeitsweise und den eigenen Programmierstil optimal unterstützt und damit ein schnelleres und effektiveres Arbeiten ermöglicht.
Rabea Gransberger mehr
26.03. 13:00

codecentric (City Partner): Minimizing Turnaround times for CI and CD with Docker

Moderne verteilte Anwendungen bestehen aus einer Vielzahl von Komponenten, wie zum Beispiel MongoDB, RabbitMQ, ElasticSearch, Apache und Tomcat. In der agilen Entwicklung ändern sich diese Komponenten schnell und teilweise abhängig voneinander. Dies stellt Entwickler vor zwei besondere Herausforderungen. Erstens ist es schwierig, eine produktionsähnliche Entwicklungsumgebung mit mehreren, verteilten Instanzen der verschiedenen Komponenten aufzusetzen und zu pflegen. Zweitens müssen die Continuous Integration Pipeline sowie die Produktionsumgebung aktualisiert werden. Linux Container und Docker schaffen hier eine leichtgewichtige Abstraktion, die ähnlich zu virtuellen Maschinen ist, jedoch mit einem Bruchteil der Ressourcen auskommt und leicht in Pipelines integriert werden kann. Auf diese Weise können sich Entwickler und Administratoren gleichermaßen aus einem gemeinsamen Repository bedienen und Artefakte unverändert lokal oder in Produktion nutzen. Dieser Vortrag stellt die Umstellung einer Continuous Delivery Pipeline auf Docker vor. Hierbei liegt der Schwerpunkt auf den Funktionen von Docker und den Umgang mit diesen.
Lukas Pustina mehr
26.03. 14:00

IDE 2.0 mit Eclipse Code Recommenders: Crowd-sourcing mal anders.

Eclipse Code Recommenders ist eine Erweiterung der Eclipse Java Development Tools, die den Code bereits existierender Anwendungen analysiert, daraus typische Benutzungsmuster ableitet, und dieses Wissen dann zum Beispiel in Form von * Intelligenter Code Completion, * Crowd-sourced und mined API Documentation, * Stacktrace und Code Suchmaschinen * und einigem anderen mehr wieder zurück in die Entwicklungsumgebung bringt. Aber wie weit kann man noch gehen? Geht crowd-sourcing à la Amazon.de auch für die IDE? Dieser Talk zeigt, wie aus über 33 Millionen Code Completion Events, von Tausenden von Entwicklern erzeugt, die vermutlich intelligenteste Entwicklungsumgebung der Welt wird. Willkommen im Java-Wunderland!
Marcel Bruch mehr
26.03. 14:00

ORACLE (City-Partner): HANDS-ON SESSION: Going Mobile - Entwicklung von Geschäftsanwendungen mit ADF Mobile - Teil 1

Nach dem Basiswissen zu Oracle ADF Mobile werden Sie eine mobile Anwendung erstellen, die auf Ihrem Smartphone oder Tablet (Android, iOS) ablauffähig ist. Während des Workshops benutzen Sie Ihren eigenen Laptop zur Entwicklung einer mobilen Anwendung mit Hilfe des Oracle JDeveloper. Anschließend werden Sie die Anwendung auf einem mobilen Endgerät oder in einem Emulator deployen und ausführen. Hardware Voraussetzungen - Windows Laptop oder MAC Book mit WLAN - wenn möglich Smartphone oder Tablet (Android, iOS) mit USB-Verbindung zum Laptop Software Voraussetzungen - Oracle JDeveloper 11.1.2.4 mit ADF Mobile Extension - Android SDK oder Apple xCode Installations-Voraussetzungen für das Hands-On: - für MS Windows: https://wikis.oracle.com/display/jdeveloperandadf/Oracle+ADF+Mobile+Windows+Installation+Guide - für MacOS: https://wikis.oracle.com/display/jdeveloperandadf/Oracle+ADF+Mobile+Mac+Installation+Guide Achtung: Bitte nehmen Sie Ihren eigenen Rechner mit, sowie ein mobiles Endgerät.
N. N., Oracle Deutschland mehr
26.03. 14:00

codecentric (City Partner): The Foreman

Der Vortrag zeigt zunächst den typischen Lebenslauf eines Systems und wie dieser durch "The Foreman" unterstützt und verwaltet wird. Es wird auf die Architektur und einzelne Komponenten des Foreman's sowie weitere Produkte im Umfeld von lifecycle management eingegangen. Des Weiteren wird gezeigt, wie The Foreman mit Puppet und dem Command Line Interface Tool Hammer automatisch installiert und konfiguriert werden kann. Eine abschließende Demo zeigt dass automatische Provisionieren eines Systems mit einem OS und bspw. Tomcat. "The Foreman" kann somit innerhalb einer CD-Pipeline dabei helfen, dass nicht nur Softwareartefakte sondern auch die Infrastruktur automatisch ausgeliefert wird.
Felix Massem, codecentric AG mehr
26.03. 15:00

ORACLE (City-Partner): HANDS-ON SESSION: Going Mobile - Entwicklung von Geschäftsanwendungen mit ADF Mobile - Teil 2

Nach dem Basiswissen zu Oracle ADF Mobile werden Sie eine mobile Anwendung erstellen, die auf Ihrem Smartphone oder Tablet (Android, iOS) ablauffähig ist. Während des Workshops benutzen Sie Ihren eigenen Laptop zur Entwicklung einer mobilen Anwendung mit Hilfe des Oracle JDeveloper. Anschließend werden Sie die Anwendung auf einem mobilen Endgerät oder in einem Emulator deployen und ausführen. Hardware Voraussetzungen - Windows Laptop oder MAC Book mit WLAN - wenn möglich Smartphone oder Tablet (Android, iOS) mit USB-Verbindung zum Laptop Software Voraussetzungen - Oracle JDeveloper 11.1.2.4 mit ADF Mobile Extension - Android SDK oder Apple xCode Installations-Voraussetzungen für das Hands-On: - für MS Windows: https://wikis.oracle.com/display/jdeveloperandadf/Oracle+ADF+Mobile+Windows+Installation+Guide - für MacOS: https://wikis.oracle.com/display/jdeveloperandadf/Oracle+ADF+Mobile+Mac+Installation+Guide Achtung: Bitte nehmen Sie Ihren eigenen Rechner mit, sowie ein mobiles Endgerät.
N. N., Oracle Deutschland mehr
26.03. 16:00

ORACLE (City-Partner): HANDS-ON SESSION: Going Mobile - Entwicklung von Geschäftsanwendungen mit ADF Mobile - Teil 3

Nach dem Basiswissen zu Oracle ADF Mobile werden Sie eine mobile Anwendung erstellen, die auf Ihrem Smartphone oder Tablet (Android, iOS) ablauffähig ist. Während des Workshops benutzen Sie Ihren eigenen Laptop zur Entwicklung einer mobilen Anwendung mit Hilfe des Oracle JDeveloper. Anschließend werden Sie die Anwendung auf einem mobilen Endgerät oder in einem Emulator deployen und ausführen. Hardware Voraussetzungen - Windows Laptop oder MAC Book mit WLAN - wenn möglich Smartphone oder Tablet (Android, iOS) mit USB-Verbindung zum Laptop Software Voraussetzungen - Oracle JDeveloper 11.1.2.4 mit ADF Mobile Extension - Android SDK oder Apple xCode Installations-Voraussetzungen für das Hands-On: - für MS Windows: https://wikis.oracle.com/display/jdeveloperandadf/Oracle+ADF+Mobile+Windows+Installation+Guide - für MacOS: https://wikis.oracle.com/display/jdeveloperandadf/Oracle+ADF+Mobile+Mac+Installation+Guide Achtung: Bitte nehmen Sie Ihren eigenen Rechner mit, sowie ein mobiles Endgerät.
N. N., Oracle Deutschland mehr
26.03. 16:00

codecentric (City Partner): Best Practices und Patterns für Continuous Delivery

In dieser Präsentation zeigen wir welche Tools und Methoden notwendig sind um erfolgreich eine vollständige Continuous Delivery Pipeline zu erstellen. Während des Vortrages werden wir die einzelnen Schritte anhand einer Live Demo zeigen und auf die folgenden Themen eingehen: • Installation und Konfiguration der Build Pipeline • Unit-/Akzeptanz- und Performancetests • Sourcecode Quality Management • Sourcecode- und Datenbank-Versionierung • Server- und Software-Provisionierung • automatisiertes Deployment auf Test/Staging und Produktionsumgebungen Des Weiteren gehen wir auf Best Practices und Anti-Patterns ein, die uns in verschiedenen Projekten begegnet sind. Alle verwendeten Tools in dem Vortrag sind Open Source, dennoch werden wir auch auf kommerzielle Tools (z.B. DeployIt, Puppet Enterprise) eingehen und deren Vorteile und Einsatzgebiete darstellen. Eingesetzte Tools, Methoden und Technologien • Hardware: Amazon EC2 (Api Tools) • Software: Worblehat aus der Professional Scrum Developer Schulung (Spring MVC, Hibernate, Maven) • Build Server: Jenkins • Versionskontrolle: Git (Github) • Testing. jUnit, jBehave, jMeter • Konfigurationsmanagement: Puppet • DB Versionierung: Liquibase • Source Code Quality: Sonar (PMD, Checkstyle, Cobertura, FindBugs)
Marcel Birkner, Bastian Spanneberg, codecentric AG mehr

Thema: Trends


Datum Beginn Titel Autor, Firma Details
25.03. 10:00

Is It a Car? Is It a Computer? No, It’s a Raspberry Pi Java Carputer

Since 2001 all petrol engined cars sold in Europe are required to be fitted with a European On Board Diagnostics (EOBD) interface. Low cost connections to this provide Wi-Fi access to raw car system data. The Raspberry Pi provides a low cost ARM processor based embedded system for multiple uses. This session will look at how Embedded Java and a Raspberry Pi has been used to communicate with the diagnostic and management systems of an Audi S3 and process the data. With the addition of a touch screen we will show how JavaFX has been used to provide an in-car informatics system for less than $200. Adding an accelerometer to the hardware configuration allows us to measure the forces affecting the car. Exciting data like G-forces, lateral loads, power output and acceleration times can all be added to the display. By accessing CAN bus data it is even possible to repurpose things like steering wheel buttons to provide hands-free control of the interface. Videos of the system in action will be shown.
Simon Ritter, Oracle Corporation mehr
25.03. 11:00

Nebenläufigkeit für jeden

Seit jeher bietet die Java-Plattform gute Unterstützung für die nebenläufige Programmierung. Die Bordmittel für Multithreading und Synchronisation haben aber ihre Tücken. Der Refferent stellt daher zusätzliche Konzepte für den vereinfachten Umgang mit Nebenläufigkeit vor: Fork/Join, Map/Reduce, Aktoren, Agenten und Datenflüsse. Der Beispielcode wird mit GPars vorgeführt, Groovys Standardbibliothek für Nebenläufigkeit.
Dierk König, Canoo Engineering AG mehr
25.03. 11:00

IRIAN (City-Partner): Moderne UIs mit server-seitigem Model View ViewModel (MVVM)

In diesem Vortrag erfahren Sie alles über die Vorteile des "Presentation Model“ Design-Patterns (auch bekannt als „MVVM“ oder „Model View ViewModel) für die Entwicklung moderner User-Interfaces. Sie kennen bereits MVC und Sie wissen Bescheid über die Vorteile der Trennung zwischen Model und View? Hier lernen Sie, warum es von Vorteil ist, zusätzlich auch noch ein spezialisiertes „View Model“ einzuführen und dieses strikt vom „Domain Model“ zu trennen und zu unterscheiden. Wir zeigen Ihnen, dass dieses Muster nicht nur für Rich Clients (z.B. JavaFX) sondern auch für server-seitige UI-Fassaden perfekt geeignet ist. Ein umfangreiches und komplexes „Presentation Model“ mitsamt der UI-Logik auf dem Server? Zugehörige leichtgewichtige, einfach zu implementierende Clients in verschiedenen Technologien (HTML5, JavaFX, Silverlight, …)? User-Kollaboration mit Clients auf unterschiedlichen Plattformen? Ja, das alles ist möglich und mit der richtigen Technik einfacher als Sie denken.
Thomas Spiegl, Manfred Geiler, Irian Solutions mehr
25.03. 12:00

codecentric (City Partner): Selbstheilung - jetzt auch für Ihre Daten

Eine häufige Herausforderung im BigData-Umfeld ist das Fehlen von ACID-Transaktionen. Die eingesetzten NoSQL-Produkte skalieren zwar gut auf Commodity-Hardware. Der Preis dafür ist aber, dass man den gesammelten Unwägbarkeiten verteilter Systeme wie Latenzen, partielle Ausfälle, usw. ausgesetzt ist. Das bedeutet im Klartext, dass es über kurz oder lang zu Dateninkonsistenzen kommen wird, die es zu erkennen und beheben gilt. Oft ist das aber gar nicht so einfach, weil man nicht erkennen kann, was denn nun der gewünschte und richtige Zielzustand ist. Genau dieses Problem adressieren Conflict-free Replicated Data Types, kurz CRDTs, ein neuartiges Konzept zur Datenmodellierung, bei dem man jederzeit auf rein technischer Ebene Dateninkonsistenzen auflösen und den korrekten Zielzustand herleiten kann. Lernen Sie in dieser Session CRDTs kennen - von den Konzepten bis zum Code - plus Tipps, Alternativen und Tradeoffs. Nach dieser Session brauchen Sie keine ACID Transaktionen mehr, um inkonsistente Daten zu bändigen ...
Uwe Friedrichsen, codecentric AG mehr
25.03. 12:00

IRIAN (City-Partner): Ein Blick über den Tellerrand: Was steckt hinter Node.js

JavaScript am Server, wie funktioniert das überhaupt? Ist das nicht langsam? Was kann man damit überhaupt machen? Dieser Vortrag vermittelt Ihnen einen Überblick über Node.js. Wir klären, was mit JavaScript am Server gemeint ist und erläutern die technischen Grundlagen von Node.js. Danach veranschaulichen wir das asynchrone Programmiermodell von Node.js, welches sich aus dem JavaScript Event-Model und der Tatsache, das Node.js Single-Threaded ist, ergibt und vergleichen es mit Vert.x. Wie man damit im Endeffekt echte Applikationen bauen kann, zeigt ein abschließender Blick in das Node.js Ökosystem und ein paar einfache Beispiele. Node.js ist in aller Munde, finden Sie heraus was dahinter steckt.
Stefan Schuster, IRIAN Solutions Softwareentwicklungs- und Beratungsgesellschaft mbH mehr
26.03. 09:00

Reaktive Programmierung - ein Programmierparadigma neu entdeckt!

Das reaktive Programmierparadigma, oder auch die Event-getriebene Architektur, hält immer mehr Einzug in aktuelle Software-Entwicklungsprojekte, -Plattformen und Applikationen. Zunehmend mehr verfügbare Embedded- und Echtzeit-Systeme verlangen nach einer anderen Art der Programmierung, um mit ressourcenschonenderen Mitteln eine stabile, skalierbare und belastbare Lösung bereitzustellen. Ebenso verlangen asynchrone Anwendungen, Kommunikationsprotokolle und Benutzerschnittstellen eine effiziente Art, die miteinander agierenden Clients zu aktualisieren und zu synchronisieren, ohne viel unnötigen Overhead zu erzeugen. Nicht während der Programmierung und schon gar nicht zur Laufzeit. Nach und nach kommen immer mehr Frameworks auf den Markt, die sich der reaktiven Programmierung annehmen. Und nicht zuletzt zeigt die kürzliche Gründung des "Reactive Manifesto", wie aktuell dieses Thema ist und wie relevant es für die Zukunft sein wird. Der Vortrag erklärt, was reaktives Programmieren ist und zeigt an beispielhaften Implementierungen in Java und JavaScript, wie damit zeitgemäße asynchrone Anwendungen eventgetrieben entwickelt werden können.
Niko Köbler, Niko Köbler IT-Beratung, Heiko Spindler, Freiberuflicher Software-Architekt mehr
26.03. 10:00

Perceptual Computing und die nächste Welle der Native Interfaces

Native Interfaces haben in den letzten Jahren mit ihrem Einzug in die Welt der Spielkonsolen ihren Siegeszug begonnen. Devices wie die WiiMote, die Kinect oder die PlayStation-Kamera und Spiele wie "Just Dance" zeigen eindrucksvoll die Möglichkeit dieser neuartigen Steuerungsmethode. Aufgrund einer neuen Welle von Native Interface Devices haben die beiden Software Consultants Thomas Endres und Martin Förtsch eine Steuerung für physische Objekte am Beispiel der Parrot AR.Drone entwickelt. Im Rahmen des Vortrags werden verschiedene Kameratechnologien, ihre Anbindung an Java und die Vor- und Nachteile der jeweiligen Technologie vorgestellt. Zu den verwendeten Systemen gehören die LeapMotion, die Intel Perceptual Computing Gesture Cam und die Microsoft Kinect. Der Vortrag beinhaltet darüber hinaus eine Flugdemonstration für die Parrot AR.Drone. Dabei werden unterschiedliche Interface-Metaphern zur freihändigen Kontrolle der Drohne gezeigt und die Auswirkung dieser auf die User Experience bewertet. Anhand zahlreicher weiterer Beispiele stellen die Vortragenden einige der Anwendungsmöglichkeiten für diese neue Form der Bedienung eines Computers vor.
Martin Förtsch, Thomas Endres, parrotsonjava.com mehr
26.03. 12:00

Datenbank DevOps für Entwickler

In dieser Sitzung diskutieren wir DevOps, eine moderne Form der Zusammenarbeit zwischen Entwicklung und Betrieb, durch Ausrichtung von Zielen, Prozessen und Werkzeugen. Mit Unterstützung von agilen Praktiken sind auch Datenbankmigrationen Teil der Auslieferungen. Die Änderungen werden aufgesetzt und geschrieben von Entwicklern, kontinuierlich integriert und auf Zielumgebungen installiert. Continuous deployment und Zero-downtime Releases done right! Ein interaktives Live-Beispiel verdeutlicht was DevOps ist und wie es mit einer Werkzeugkette unterstützt werden kann. Die exemplarische Kette besteht aus MySQL, Flyway, Maven/Gradle, Jenkins und Git.
Michael Hüttermann mehr
26.03. 14:00

Desktop to Internet of Things in 12 Seconds with Java ME Embedded

Using Java in embedded allows you to decouple the software development from the underlying platform. For example, you can code and test on a powerful desktop-class system and then move your application easily to a range of different embedded devices, giving you flexibility for your project and significantly reducing effort and time-to-market compared to traditional embedded software development. In this workshop, we will demonstrate how easy it is with Oracle Java ME Embedded to develop an embedded application on a Windows PC as well as a desktop-class ARM/Linux system, and, within seconds, deploy the same application on a very different and much smaller Internet-of-Things class device.
Terrence Barr, Oracle Deutschland mehr
26.03. 15:00

codecentric (City Partner): 3 Stützpfeiler von Continuous Delivery: Kultur, Prozesse und Tools

Drei Stützpfeiler von erfolgreichem Continuous Delivery: Kultur, Praktiken und Tools Continuous Delivery und DevOps erlauben es Firmen, die Auslieferung von neuen Features bei hoher Systemqualität radikal zu beschleunigen. So ergeben sich grundlegend neue Möglichkeiten der Interaktion zwischen Anbieter und Kunden. Basierend auf der Erfahrung von Continuous Delivery Einführungen bei Groß- wie Kleinbetrieben weltweit, erleuchten wir die Bedeutung von Kultur, Praktiken und Tools als Voraussetzungen einer erfolgreichen Umsetzung. Wir besprechen, wie Entwicklungs- und Betriebsabteilungen es geschafft haben, eine Kultur der kontinuierlichen Lieferung von Verbesserungen und neuen Features organisch aufzubauen und zu erhalten. Wir erläutern konkrete Beispiele von wichtigen Tools und Praktiken sowie essenziellem Gedankengut und schließen mit einer Reihe praktischer Tipps, wie sie in ihrer Organisation mit Continuous Delivery anfangen können.
Andrew Philips, XebiaLabs mehr