30. November 2015 | 2 min lesezeit

JSR 107 – JCache

Mit dem Einstein-Zitat ‚The only reason for time is so that everything doesn’t happen at once‘ verkündete Oracle die Fertigstellung der Java Temporary Caching API aka JCache. Die Arbeit am JSR 107 begann bereits 2001 und hat sich vorsichtig formuliert ein wenig hingezogen – 2002 erschien Java SE 1.4. Dafür steht absofort eine standardisierte Lösung für das In-Memory Caching von Java Objekten bereit.

Noch bevor die Arbeiten an JEE 8 begannen, wurde die Arbeit am JSR 107 fast auf den Tag genau nach 13 Jahren im März 2014 abgeschlossen. Ursprünglich sollte JCache bereits mit Java EE 7 veröffentlicht werden, allerdings konnte die Expert-Group einige kritische Deadlines nicht einhalten, so dass der JSR von der Kandidatenliste gestrichen wurde. Das anhaltend große Interesse – zwei Drittel der Teilnehmer der Community Umfrage sprachen sich für JCache aus – führte dann zur Aufnahme in Java EE 8.

Mit der Ankündigung zum Abschluss der Spezifikation verkündete Oracle, dass JCache nicht erst mit Java EE 8 sondern als Drop-In Jar bereits in Java EE 6 und 7 Containern vollständig genutzt werden kann. Dies ist Dank einer Reihe von Caching Annotationen in Verbindung mit einem DI Container denkbar einfach. Einen guten ersten Eindruck hierzu vermittelt der Artikel ‚JCache, why and how?‚.

Intern arbeitet JCache mit einer Map-ähnlichen API für den Zugriff auf Caches. Darüber hinaus stehen SPIs zum Wegschreiben eines Caches auf die Festplatte sowie eine API zur Registrierung von Event-Listenern bereit. Strategien zum Aufräumen des Caches, Replikation über mehrere Knoten oder Transaktionen behandelt die Spezifikation jedoch nicht.

Da von der Nutzung der JSR 107 Referenzimplementierung mangels Support und Community abgeraten wird, lohnt sich ein Blick auf die standardkonformen Caching Provider. Hier finden sich mit Oracle’s Coherence, Terracotta’s EhcacheHazelcast und Infinispan bekannte Vertreter etablierter Caching Lösungen.

Nach Ansicht des Expert-Group Mitglieds Ben Cotton wird JCache eine vergleichbare Rolle für die Java Caching Community spielen, wie es JDBC seinerzeit für die RDBMS Community getan hat. Für die Zukunft sind bereits die Unterstützung von JTA Transaktionen und die Integration mit Data Grids (vgl. JSR 347) geplant.

Die offizielle Informationen zum JSR 107 finden sich unter https://jcp.org/en/jsr/detail?id=107. Mit knapp unter 150 Seiten lässt sich die Spezifikation auch noch gut lesen.


Keine Kommentare

Kontakt

OPEN KNOWLEDGE GmbH

Standort Oldenburg:
Poststraße 1, 26122 Oldenburg

Standort Essen:
II. Hagen 7, 45127 Essen