Interview mit Sergey Beryozkin von der ApacheCon Europe 2019

Apache Tika: „Datengesteuerte Analysen sind das Herzstück vieler moderner Anwendungen“

Katharina Degenmann

2016 veröffentlichte Forbes einen Artikel, in dem Tika als eines der Schlüsseltechnologien identifiziert wurde. Was Apache Tika alles kann, was es mit der GraalVm zu tun hat & wo Verbesserungsbedarf besteht, verriet Sergey Beryozkin (Red Hat Middleware R&D) im Interview auf der ApacheCon 2019.

JAXenter: Eine Frage zum Einstieg: Was genau macht Apache Tika oder wofür wird es am besten verwendet?

Sergey Beryozkin: Apache Tika ist eine Bibliothek zum Erkennen und Parsen von Metadaten und Text, aus einer Vielzahl von Dokumentenformaten. Es bietet eine einfache, einheitliche API, die für alle unterstützten Formate funktioniert.

Es ist großartig für das Parsen bekannter Formate wie PDF, kann aber leicht skaliert werden, um so viele Formate wie nötig zu unterstützen, manchmal ohne eine einzige Zeile Code ändern zu müssen.

JAXenter: 2016 veröffentlichte Forbes einen Artikel, in dem Tika als eines der Schlüsseltechnologien identifiziert wurde. Was sind deiner Meinung nach die Gründe dafür?

Sergey Beryozkin: Datengesteuerte Analysen und Transformationen sind das Herzstück vieler moderner Anwendungen. Apache Tika hilft, den Inhalt aus einer Vielzahl von Dokumentenformaten in diese Prozesse einzubringen – so können sich Entwickler weiterhin auf die Qualität der Datenanalyse konzentrieren, anstatt ihre ganze Zeit damit zu verbringen, den formatspezifischen Parsercode zu schreiben 🙂

JAXenter: Wie hat Quarkus dazu beigetragen, Apache Tika darauf vorzubereiten, in einem GraalVM-native Image zu laufen?

Quarkus macht aus diesem Prozess eine Freude für Entwickler

Sergey Beryozkin: Der native GraalVM-Bildgenerator kompiliert den Code vorzeitig unter der closed-world-Annahme. Dann erzeugt er eine native Image Executable, die sowohl die Anwendungsklassen als auch die Klassen aus allen erforderlichen Abhängigkeiten – einschließlich derjenigen von JDK selbst – enthält.

Native Image hat eine Reihe von Einschränkungen. Die Konfiguration ist erforderlich, um einige der Features zu aktivieren, z.B. das Laden der Provider-Klassen mit der Java ServiceLoader-API oder die Verzögerung der Initialisierung der Klassen, die nicht der Closed-World-Annahme entsprechen, bis zur Laufzeit, etc. Daher kann es sehr schwierig sein, direkt mit GraalVM und seinem nativen Bildgenerator zu arbeiten, um eine Bibliothek wie Apache Tika, die in einem nativen Image läuft, mit all seinen erforderlichen Abhängigkeiten auszuführen.

Quarkus macht aus diesem Prozess eine Freude für Entwickler: Es ist einfach, das native Image zum Buildzeitpunkt zu erstellen, indem es die ganze Komplexität vor den Entwicklern verbirgt. Gleichzeitig lässt Quarkus sie den Erweiterungscode schreiben, der die Closed-World-Annahme der Anwendung kennt und sogenannte Build Steps verwendet, um die native Image-Generierung zu erstellen und zu optimieren. Zum Beispiel hat die ‚quarkus-tika‘-Erweiterung von Quarkus eine Klasse namens ‚TikaProcessor‘, die nur wenige Build-Step-Methoden erzeugt, um Apache Tika im nativen Modus laufen zu lassen.

JAXenter: Welche Vorteile hat das?

Sergey Beryozkin: Grundsätzlich gibt es zwei wesentliche Vorteile: eine deutlich kürzere Startzeit und einen geringeren Speicherbedarf.

Native Image Executable startet so schnell, dass ein Mensch es kaum bemerkt. Dies wird durch die vorzeitige Kompilierung und die Tatsache erreicht, dass die native Image-Executable mit der Anwendung beginnen kann, die bereits während der Build-Zeit konfiguriert ist und nur den aufgezeichneten Zustand wiederherstellt – Quarkus macht diese spezielle Optimierung sowohl für den nativen Substrate als auch für den Hotspot VM-Modus einfach.

Der geringere Speicherbedarf wird aus verschiedenen Gründen erreicht. Einer von ihnen hat damit zu tun, dass das Lesen der Konfigurationsdateien, insbesondere im XML-Format, zum Laden vieler Klasseninstanzen führt, die zum Parsen der Konfiguration benötigt werden. Ein weiterer Grund ist, dass Substrate VM nicht zwingend die Art und Weise optimieren muss, wie es die traditionelle Java-VM tut, so dass es nicht notwendig ist, die zusätzlichen Metadaten im Speicher zu halten.

Daher werden die Apache Tika-Anwendungen, die schnell gestartet werden oder in den ressourcenbeschränkten Umgebungen ausgeführt werden müssen, am meisten profitieren, wenn sie als native Image Executable ausgeführt werden.

JAXenter: Gibt es ein Feature, das dir derzeit in Apache Tika fehlt oder das verbessert werden sollte?

Sergey Beryozkin: Die Modularisierung wird dazu beitragen, den Zugriff auf Apache Tika in einigen Implementierungen zu erleichtern. Heute werden alle unterstützten Formate von einem einzigen Modul verwaltet, was eine große Anzahl von Abhängigkeiten mit sich bringt. Bob Paulin, Apache Tika Committer, hat die Modularisierungsarbeiten bereits weitgehend abgeschlossen und wir planen nun, sie abzuschließen.

Eine deutlich kürzere Startzeit und ein geringerer Speicherbedarf sind die wesentlichen Vorteile.

JAXenter: Abgesehen von Apache Tika – welche Tools oder Technologien haben Deiner Meinung nach das Potenzial, die Entwicklungswelt im nächsten Jahr zu verändern?

Sergey Beryozkin: Es gibt viele geniale Projekte, die heute den ASF-Bereich betreten. Aber ich schätze, Projekte, die mit Blockchain-Technologien zutun haben, werden es wert sein, verfolgt zu werden. Auch Apache Milagro und andere Projekte wie Apache Camel, die die übergeordnete Integrationsunterstützung für die verteilten ledges anbieten können, sollte man beobachten.

JAXenter: Vielen Dank für das Interview!

Sergey works for Red Hat Middleware R&D. Prior to joining Red Hat Sergey was a member of the Apache Team at Talend and leading the Apache CXF JAX-RS, OAuth2 and Jose implementations. He is Apache CXF, Tika, Aries and Camel committer and has been with Apache SF for more than 10 years. Sergey is originally from Belarus and based in Dublin, Ireland.
Geschrieben von
Katharina Degenmann
Katharina Degenmann
Katharina ist hauptberuflich hilfsbereite Online- und Print-Redakteurin sowie Bücher- und Filme-Junkie. Nebenbei ist sie Möchtegern-Schriftstellerin, die heimlich hofft, eines Tages ihr Geld als Kaffee-Testerin zu verdienen. Seit Februar 2018 arbeitet sie als Redakteurin bei der Software & Support Media GmbH, davor hat sie Politikwissenschaft und Philosophie studiert.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: