Suche
Interview mit Spring-Data-Projektleiter Oliver Gierke

Spring Data: „Ein großes Thema ist Java 8“

Redaktion JAXenter
Spring Data

Oliver Gierke, Leiter des Spring-Data-Projekts bei Pivotal, beantwortet unsere Fragen zum bevorstehenden Spring-Data-Releasetrain „Fowler“ und Neuigkeiten im Spring-Universum allgemein. Auf der JAX 2015 wird er mehrere Sessions rund um Spring-Themen halten.

JAXenter: Für den nächsten Spring Data Releasetrain „Fowler“ ist im Dezember ein erster Meilenstein erschienen. Warum habt ihr euch für Martin Fowler als Namenspatron entschieden?

Oliver Gierke: Wir hatten uns ja in Bezug auf Namensgebung der Release Trains für herausragende Persönlichkeiten im Bereich Software und Informatik generell entschieden. Nach Arora, Babbage, Codd, Dijkstra und Evans bedurfte es für den sechsten Release Train eigentlich keiner großen Diskussion, um uns auf Martin zu einigen. Dafür wird er zu sehr geschätzt.

JAX 2015Die JAX (20.-24. April 2015) bildet mit der W-JAX Europas führende Konferenz-Serie für Enterprise-Technologien, agile Methoden und Software-Architekturen. Gemeinsam mit den begleitenden Business Technology Days und der BigDataCon verleiht sie IT-Professionals führender Unternehmen aller Branchen die entscheidenden Impulse für digitale Wertschöpfung und Innovation – zwei Mal im Jahr. Wer sich bis 19. März anmeldet, spart über 200 Euro. Mehr Informationen unter http://jax.de.

Kannst du ein paar Highlights aus dem Release Train nennen?

Es gibt eine ganze Reihe verschiedener Themen, die sich dann in unterschiedlichen Spring-Data-Modulen wiederfinden. Ein großes Thema ist erweiterter Support für Java 8: Für JPA und MongoDB gibt es bessere Unterstützung für JSR-310 Typen und deren Backport nach Java 7, die jetzt sehr einfach im Domänenmodell persistiert werden können.

Für diese Module bringen wir darüber hinaus Unterstützung für Java 8 Streams als Rückgabetypen in Repositorymethoden. Das ist besonders für JPA interessant, da diese eigentlich List-basiert ist, was das Lesen von größeren Datenmengen speicherintensiv macht und oft zu Problemen führt. Wir nutzen dann transparent die APIs der entsprechenden Persistenzprovider und können diese Limitierung dann umgehen.

Das MongoDB-Modul kommt nun mit Kompatibilität für die 3.0-Generation der Datenbank, das Spring-Data-Cassandra-Modul liefert nun ebenso – wie alle anderen schon bisher – eine CDI Extension für unser Repositorymodell. Spring Data REST verbessert die Metadaten, die wir für die HTTP-Ressourcen veröffentlichen.

Wie sieht die Roadmap/der Releaseplan für Fowler aus? Auf eurer Website steht noch nichts Konkretes.

Zu dem Zeitpunkt, zu dem das Interview zu lesen ist, sollte bereits RC1 verfügbar sein. Die wichtigsten API-Änderungen sollten damit stabilisiert sein, was jedoch hauptsächlich ein Synchronisationspunkt für die Projekte untereinander ist. Es sind danach eigentlich keine weiteren Release Candidates geplant. Das finale Release sollte dann gegen Ende März fertig sein.

Wie schwierig ist es eigentlich, die ganzen beteiligen Module zu koordinieren?

Das ist eine gute Frage. Schwierig trifft es vielleicht nicht ganz, aber die Koordination nimmt mittlerweile einen recht umfangreichen Teil meiner Arbeitszeit ein. API-Erweiterungen und -Änderungen koordinieren und kommunizieren, wackeligen Builds nachsteigen, Code-Reviews, Featureideen sammeln. Aber zum Glück verteilt sich die Arbeit mittlerweile auf mehrere Schultern.

Werden sich Spring Data in nächster Zeit weitere Unterprojekte anschließen?

Das muss man auf unterschiedlichen Ebenen betrachten. Wir werden immer wieder von aufstrebenden Datenbankanbietern kontaktiert, die Teil des Spring-Data-Ökosystems werden möchten, da ein Spring-Data-Modul immer ein gutes Argument in Firmen ist, die auf den Spring-Stack setzen. Dadurch wächst die Zahl der Communityprojekte relativ stetig. Ob und wann die jedoch näher an uns heranrücken und in den Releasetrain aufgenommen werden, hängt hauptsächlich davon ab, wie viel Zeit die jeweiligen Entwickler investieren können und wollen. Üblicherweise werden die Comunityprojekte ja neben einem normalen Vollzeitjob betrieben.

Die Breite des Dachprojekts ist allerdings eigentlich nur ein sekundärer Aspekt. Uns als Kernteam ist es eher wichtig, die Hauptprojekte in konstanter Geschwindigkeit voranzubringen. Hier und da gibt es auch Überlegungen, in einzelne Communityprojekte, die sich bereits dem Releasetrain angeschlossen haben, unsererseits mehr Ressourcen zu investieren. Aber da gibt es noch keine absehbaren Entscheidungen.

Das Unterprojekt Spring Data REST wird im Fowler-Release Train in Version 2.3 erscheinen und ist Gegenstand einer deiner JAX-Sessions. Welche Ziele verfolgt das Projekt?

Spring Data REST ist ein etwas spezielles Modul, da es eben keinen Datenzugriff auf eine bestimmte Datenbanktechnologie implementiert, sondern auf die anderen Module aufsetzt und eine Reihe von Patterns aus dem Bereich REST WebServices implementiert. Im Zentrum stehen zwar Spring Data Repositories und das Domänenmodell; jedoch ist einer der Kernaspekte des Projektes nicht einfach Daten per HTTP zu exportieren, sondern eben wichtige Kernaspekte von REST – wie z. B. Hypermedia – zu nutzen, um so Ressourcen und Repräsentationen zu erzeugen, die dem REST-Ideal möglichst nahekommen.

Der Vortrag stellt das Projekt vor, dessen Grundprinzipien, die Standards, die wir nutzen bzw. unterstützen, und zeigt dann anhand eines umfangreichen Beispiels, wie das ganze in Aktion aussieht.

In deinem JAX-Workshop möchtest du zeigen, inwieweit für die Entwicklung eines Java-Enterprise-Webservice geeignete Spring-Technologien bereitstehen. Ist mit dem Spring-Ökosystem alles lückenlos abgedeckt?

Alles ist vielleicht etwas zu weit gegriffen. Spring ist ja eigentlich auch bekannt dafür das Rad eben nicht neu zu erfinden, sondern an entsprechenden Stellen existierende, bewährte Technologien zu integrieren. Grundsätzlich ist es aber durchaus richtig, dass wir den Anspruch haben, Java-Entwickler so umfänglich wie möglich bei der Entwicklung von Applikationen zu unterstützen und ihnen technische Komplexität abzunehmen. Aktuell ist das ganz gut an Projekten wie Spring Boot und Spring Cloud zu sehen.

Was ist aktuell ein aus deiner Sicht besonders spannendes Projekt im Spring-Ökosystem und weshalb?

Ganz klar: Spring Cloud. Auch wenn der Name vielleicht etwas die Irre führt, da die Problemstellungen, die wir hier lösen, nicht zwangsläufig nur in Cloud-basierten Systemen auftreten. Der Trend zu kleineren Systemen erzeugt neue Problemstellungen mit denen Entwickler konfrontiert werden: Kommunikation zwischen den Systemen, Ausfallsicherheit gegenüber abhängigen Systemen, Monitoring der Systemlandschaft.

Wir beobachten da in Zusammenarbeit mit Netflix die Projektlandschaft, was Leute tun, um diese Probleme zu lösen, schauen, welche Ansätze erfolgreich sind und stellen sie dann in Form von Open-Source-Projekten der Allgemeinheit zur Verfügung. Ein spannender Ansatz am Puls der Zeit, finde ich.

Oliver Gierke ist Leiter des Spring-Data-Projekts bei Pivotal, früher besser bekannt als SpringSource. Seit über acht Jahren widmet er sich dem Entwickeln von Java-Enterprise-Applikationen, Open-Source-Projekten und ist Mitglied der JPA Expert Group. Seine Arbeitsschwerpunkte liegen im Bereich Softwarearchitektur, Spring, REST und Persistenztechnologien. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen sowie Autor von Fachartikeln und des ersten Spring-Data-Buchs.
Geschrieben von
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: