Webbasierte Satzvorschau mit TUSTEP

Ein Praxisbericht aus unterschiedlichen Editionsprojekten mit TEI- und MEI-Daten


05.10. 2021 / 27. ITUG-Jahrestagung

Kai Weber / pagina GmbH / @fruehlingstag / sermo-de-arboribus / kai-weber

[Leertaste für nächste Folie] [PDF-Download]

Ausgangslage: Projekte mit lokaler Installation

  • Teamarbeit an Editionen oder Werken
  • Dienstleister arbeitet parallel an TUSTEP-basierter Satzvorschau
  • hoher Administrationsaufwand für lokale Installationen:
    • unterschiedliche Betriebssysteme bzw. OS-Versionen
    • unterschiedliche TUSTEP-Versionen installiert
    • bei Aktualisierung der Preview-Skripte Verteilung an alle Beteiligte nötig
    • Aufwand wächst linear mit Zahl der Teammitglieder

Vor- und Nachteile Serverlösungen

Vorteile

  • Einrichtung und Administration kann zentral an einer Stelle vorgenommen werden
  • Fixaufwand für Aktualisierungen unabhängig von Teamgröße

Nachteil

  • Bei sehr hoher Auslastung können sich lange Wartezeiten ergeben und eine Skalierung von Ressourcen nötig werden (Load Balancing o.ä.)

Integration in Arbeitsumgebung

  • Wahl einer guten TUSTEP-Preview-Lösung für ein konkretes Editions-Team hängt neben der Teamgröße auch ab von:
    • Welche Arbeitsumgebung wird verwendet? (TUSTEP-Editor, XML-Editor, XML-Datenbank, ...?)
    • Welche Möglichkeiten bietet die verwendete Arbeitsumgebung für die Integration von Drittsoftware?
    • Über welches Know-How verfügt das Team, das die Preview-Lösung aufsetzt und wartet?

Vorstellung zweier konkreter Serverlösungen

1. Webserver mit „Warteschlange“

2. eXist-Datenbank mit Cache-Funktionalität für Grafiken

Architektur „Webserver mit Warteschlange“

<oXygen/>-Integration

  • Nutzung des <oXygen/>-Konzepts „externes Tool einbinden“
  • Aus Anwender:innen-Sicht: Einfacher Button-Klick zum Auslösen des Previews, Ergebnis als URL
  • Aus Admin-Sicht: Versand des aktuellen Dokuments mit cURL an den Server

Server-Aufgaben

  • Entgegennehmen von Preview-Aufträgen: Jeder Auftrag in SQL-Datenbank gespeichert
  • Sequentielle Abarbeitung der noch nicht verarbeiteten Aufträge; aufräumen, wenn nötig
  • Bereitstellen von Auftragslisten, erstellten PDFs, Logdateien

Server-API

  • /api/run: Nimmt einen Preview-Auftrag entgegen und speichert ihn in der DB
  • /api/jobs: Liefert eine Liste aller in der Datenbank gespeicherten Jobs zurück (JSON-Format)
  • /api/jobs/{id}/pdf: Liefert die PDF-Datei zu einem Auftrag zurück
  • /api/jobs/{id}/log/{logtyp}: Liefert die TUSTEP-Logdatei oder weitere Debug-Ausgaben zu einem Auftrag

Server: Scheduler

  • Server prüft in konfigurierbarem Turnus (z. B. alle 5 sec.), ob noch unbearbeitete Aufträge vorliegen; wenn ja, wird die nächste Quelldatei an das TUSTEP-Skript übergeben
  • Server prüft, ob Aufträge älter als konfigurierbares Datum vorliegen (z. B. älter als 2 Monate); wenn ja, werden diese aus der DB und vom Dateisystem gelöscht.

Server: Umfang

  • Die Serverfunktionalität, die auf dem node.js-Server express aufsetzt, ist sehr schlank programmiert: Es genügen 427 Zeilen Programmcode.
  • Ein zusätzliches Frontent für die Bequemlichkeit: 268 Zeilen Programmcode (HTML + JavaScript / Vue.js, kein eigenes CSS)
  • Skripte für Continuous Integration (automatisches Installieren der nötigen Komponenten auf einem Server): ca. 300 Zeilen

Demo: Österreichisches Wörterbuch

Schritt 1: XML-Datei aus <oXygen/> heraus an Server schicken

Demo: Österreichisches Wörterbuch

Schritt 2: Auftragsliste auf Website aufrufen

Demo: Österreichisches Wörterbuch

Schritt 3: PDF-Datei abrufen

Demo: Österreichisches Wörterbuch

Schritt 4: Bei Bedarf TUSTEP-Logdatei aufrufen

Demo: Religiöse Kurzerzählungen...

Schritt 1: XML-Datei aus <oXygen/> heraus an Server schicken

Demo: Religiöse Kurzerzählungen...

Schritt 2: Passwort eingeben

Demo: Religiöse Kurzerzählungen...

Schritt 3: PDF-URL aus Resultatfenster in die Zwischenablage kopieren

Demo: Religiöse Kurzerzählungen...

Schritt 4: PDF-URL in Browser-Adresszeile kopieren, Passwort eingeben

Demo: Religiöse Kurzerzählungen...

Schritt 5: PDF ansehen

Demo: Religiöse Kurzerzählungen...

Schritt 6: Auftrag (manuell) löschen

Architektur „eXist-Datenbank mit Grafik-Cache“

Datenhaltung

  • Die Datenhaltung (XML-Dateien und Binärdaten wie z. B. Grafiken) erfolgt über eine eXist-Datenbank
  • Der Datenbankserver stellt eine HTML-Übersicht aller Dokumente bereit.

TUSTEP-Previews

  • TUSTEP-Preview für Einzeldokumente durch Klick auf PDF-Link.
  • TUSTEP-Preview für beliebige Dokumentlisten: Haken in Checkboxen, dann Klick auf PDF-Vorschau:

Interaktion eXist / TUSTEP

  • eXist-Datenbank (DB) läuft auf einem Linux-Server
  • Datenaggregationen und -transformationen können in der DB mit XQuery- oder XSLT-Skripten besorgt werden.
  • aus der DB heraus lassen sich Shellskripte anstoßen, welche benötigte Dateien an die richtige Stelle kopieren, TUSTEP starten und später .ps-Dateien nach PDF konvertieren

Motivation zum Cachen von Grafiken

  • Problem bei Dokumenten mit vielen Grafiken: Konvertierung .tiff -> .eps -> .grf dauert lange
  • große Wartezeiten für Anwender:innen der Website
  • Annahme: Einmal in der Datenbank hinterlegte Grafiken werden eher selten geändert
  • Verbesserungsidee: TIFF-Grafiken vorab nach GRF konvertieren und zwischenspeichern (Cache)
  • Beim Previewauftrag prüfen, ob die Grafik im Cache noch aktuell ist; nur nicht aktuelle Grafiken neu konvertieren, sonst gecachte Version verwenden

Aktualisierung Grafik-Cache

  • einmal pro Stunde prüfen, ob in der Quell-DB neue oder geänderte Grafiken vorliegen
  • neue Grafiken herunterladen, in einer Cache-DB speichern und dabei eine feste Nummer zuordnen
  • neue / geänderte Grafiken via .eps nach .grf konvertieren und unter Dateinamen mit fester Nummer im Dateisystem speichern

Verwendung gecachter Grafiken zum Preview-Zeitpunkt

  • XML-Dokumente enthalten Referenzen auf ursprüngliche TIFF-Dateien
  • vor der Übergabe der XML-Dokumente an TUSTEP werden die Original-Dateinamen über die Grafik-Cache-Metadaten in (nummerische) GRF-Dateinamen übersetzt
  • in der Regel sind aktuelle GRF-Varianten der Grafiken bereits vorhanden, so dass der Preview-Satz via TUSTEP direkt gestartet werden kann und nicht mehr auf Konvertierungen warten muss

Demo: Bach-Werkverzeichnis

Dateiauswahl, Klick auf „Vorschau“

Demo: Bach-Werkverzeichnis

Anzeige PDF-Datei im Browser

Ende

Vielen Dank für Ihre Aufmerksamkeit!

Noch Fragen?