Aktuelle Nachrichten & Meldungen

Neuigkeiten von der Insel: Geecon Prag 2015

Gepostet am Nov 13, 2015

Am 22. und 23. Oktober fand zum 2. Mal die Geecon in Prag statt, auf der ich viele interessante Vorträge besuchen und selber zum Thema Performance Tuning mit Hibernate und JPA 2.1 sprechen durfte. Wie im vorherigen Jahr fand die Konferenz in einem Kino statt. Die Vorführräume boten mit der großen Leinwand und dem installierten Audiosystem sehr gute technische Rahmenbedingungen. Alle Vorträge wurden auf Video aufgezeichnet und sollen online zur Verfügung gestellt werden. Nachfolgend habe ich meine persönlichen Favoriten und meinen eigenen Vortrag kurz zusammengefasst.

Simon Brown hat einen sehr interessanten Vortrag zu modularen Monolithen gehalten. Über Monolithen und Microservices wird seit einiger Zeit häufig diskutiert. Der Zwischenweg, die modularen Monolithen, werden dabei allerdings häufig ignoriert. Aus meiner Sicht zu Unrecht, da sie eine weit verbreitete und für viele Anwendungen gute Architekturlösung darstellen. Wie Simon Brown in seinem Vortrag vorgestellt hat, besteht ein modularer Monolith aus mehreren, wohl definierten Komponenten. Diese werden in einem monolithischen Deployment zu einer Anwendung zusammengefügt und können dabei einige Vorteile beider Architekturansätze kombinieren. Zum einen sind die einzelnen Komponenten leichter test- und anpassbar als ein unstrukturierter Monolith. Zum anderen entfällt durch das monolithische Deployment die Komplexität einer verteilten Microservice-Architektur.

Aufgrund der modularen Struktur kann ein modularer Monolith auch als Zwischenschritt auf den Weg zu einer Microservice-Architektur genutzt werden. Hierbei sollte man allerdings genau prüfen, ob die erwarteten Vorteile einer Microservice-Architektur die zusätzliche Komplexität der verteilten Komponenten rechtfertigen.

Ein weiterer sehr interessanter Vortrag war 50 minutes to develp a full Java EE application with JBoss Forge von Antonio Goncalves. Er hat mit wenigen Folien und vielen Beispielen gezeigt, wie man mit geringem Aufwand einen Prototypen einer Java-EE-Anwendung erstellen kann. JBoss Forge wird dabei zur Generierung des Build-Prozesses, verschiedener Konfigurationsdateien sowie des Java-Quellcodes verwendet. Dabei wertet JBoss Forge die vorhandenen Konfigurations- und Quellcodedateien aus und erzeugt keine zusätzlichen Dateien wie es bei anderen Tools häufig der Fall ist. Somit kann das Projekt unabhängig verändert und anschließend mit JBoss Forge weiter bearbeitet werden. Ein weiterer Vorteil liegt in der Plug-in-Architektur und der großen Anzahl von Plug-ins, durch die verschiedene Spezifikationen und deren Implementierungen unterstützt werden.

Aus eigener Erfahrung kann ich bestätigen, dass sich mit Hilfe von JBoss Forge innerhalb kurzer Zeit eine vollständige Persistenzschicht, Basisimplementierungen benötigter CRUD-Dienste und eine umfangreiche REST API generieren lassen.

In meinem eigenen Vortrag zum Thema Performance Tuning mit Hibernate und JPA 2.1 (Folien) am Freitagmorgen, habe ich häufige Ursachen von Performanceproblemen und dazu passende Lösungsmöglichkeiten aufgezeigt.

Der dabei erste und häufig wichtigste Schritt ist das frühzeitige Erkennen von Performanceproblemen. Im Idealfall gelingt dies noch während der Entwicklung und nicht erst, wenn ein Kunde sich beim Support beschwert. Eine gute Möglichkeit dazu bieten die Hibernate Statistiken, die unter anderem die Anzahl der ausgeführten Abfragen und deren Dauer sowie Information über die Verwendung der Caches innerhalb einer Hibernate Session liefern. Auf Basis dieser Informationen können auch schon auf kleineren Entwicklerdatenbanken viele Probleme frühzeitig erkannt werden.

Anschließend habe ich verschiedene Möglichkeiten zum Beheben der entdeckten Performanceprobleme aufgezeigt. Neben der Optimierung von Abfragen und der gegebenenfalls notwendigen Verwendung nativer SQL-Statements sind hier vor allem die abfragespezifische Definition der Fetching-Strategie mit Hilfe von Entity Graphen und der Einsatz verschiedener Caches zu nennen. Einen detaillierteren Überblick über die genannten und einigen weiteren Möglichkeiten zur Performanceoptimierung bietet dieser Artikel.

Neben den hier zusammengefassten, gab es noch einige weitere spannende Vorträge, die die Konferenz sehr interessant und für das nächste Jahr empfehlenswert gemacht haben. Ich werde auf jeden Fall wieder einen Vortrag einreichen und mich über eine erneute Teilnahme freuen.

weitere News

passend zum Thema