JUG Saxony - Vorträge . Wissensaustausch . Networking

Magic with Dynamo – Flexible Cross-Component Linking for Java with Invokedynamic

Magic with Dynamo – Flexible Cross-Component Linking for Java with Invokedynamic
A/Prof Jens Dietrich (Massey University, New Zealand)

Flyer zur Veranstaltung - Plakat - Slides

Moderne Anwendungen basieren auf wiederverwendbaren Bibliotheken. Diese Bibliotheken werden unabhängig weiterentwickelt, und neue Versionen werden oft installiert ohne die Anwendung neu zu kompilieren. Im Falle von Java ist dieser Prozess besonders anfällig aufgrund des Unterschiedes zwischen Quellcode – und binärer Kompatibilität, und der Instabilität der Programmierschnittstellen vieler häufig benutzter Bibliotheken. Ich werde einen Ansatz vorstellen, wie man dieses Problem elegant umgehen kann.

Dieser Ansatz basiert auf der Idee die invokedynamic (neu in Java 7) Instruktion für Methodenaufrufe zwischen Bibliotheken zu benutzten. Der Dispatch-Mechanismus von invokedynamic wird benutzt, die Typen, die in den Methodenaufrufen benutzt werden, dynamisch anzupassen. Ich stelle den neuen “Dynamo” Java-Compiler vor, der auf dieser Idee basiert.

Dynamo ist als javac Postcompiler implementiert, und ist damit sehr schnell. Ich zeige wie man durch Compilierung mit Dynamo bestimmte Fehler (insbesondere NoSuchMethodError) die oft beim Linken von Java Anwendungen auftreten, verhindern kann. Compilierung mit Dynamo löst auch das bekannte “Hazard of Covariant Return Types and Bridge Methods” Szenario, bei dem das Zusammenspiel von (1) Überschreiben von Methoden mit Spezialisierung des Rückgabe-Typs, (2) “Dynamic Dispatch” und (3) Bibliotheken-Upgrade zu StackOverflow Fehlern führen kann.

Die vorgestellte Arbeit ist aus der Zusammenarbeit des Sprechers mit Kamil Jezek von der Westboehmischen Universität in Pilsen entstanden, und wurde finanziell unterstützt von Oracle Labs Australien.

Unser Referent

Jens Dietrich ist Außerordentlicher Professor für Software Engineering an der Massey Uni in Neuseeland. Jens hat ca 7 Jahre Industrieerfahrung in Deutschland, US, UK und Namibia, und hat an einigen der ersten grösseren OO Industrieprojekte (mit Smalltalk) in Deutschland mitgearbeitet. Er arbeitet seit 1997 mit Java, und seine Forschungsinteressen umfassen komponentenbasierte Entwicklung und schnelle Algorithmen zur statischen Programmanalyse. Jens ist gebürtiger Pirnaer, und hat in Leipzig studiert und promoviert.

Verlosung

Unter allen Teilnehmern verlosen wir dreimal ein Jahresabonnement des Fachmagazins JavaSPEKTRUM, die uns freundlicherweise von der SIGS DATACOM GmbH zur Verfügung gestellt werden.

Veranstaltung

Dies ist eine kostenfreie Community-Veranstaltung.

Zeit

Montag, 01.08.2016 19:00 Uhr
(vor 4 Jahren)
Kalendereintrag

Ort

Staats- und Universitätsbibliothek Dresden (SLUB Dresden)
Vortragssaal
Ebene 1
Zellescher Weg 18
01069 Dresden
Google Maps

Referent

A/Prof Jens Dietrich (Massey University, New Zealand)

Downloads

Flyer zur Veranstaltung

Plakat

Slides

JUG Saxony App

Jetzt noch komfortabler anmelden über unsere JUG Saxony App (als PWA)