Generierung
Die Erstellung und Auslieferung von Inhalten ist in FirstSpirit durch das Prinzip der "Vorgenerierung" gekennzeichnet. Wo immer es möglich ist, wird der Inhalt nicht erst auf dem Live-System, zum Zeitpunkt der Benutzeranfrage produziert (Live-Rendering), sondern bereits auf dem FirstSpirit-Server (also im weniger zeitkritischen Offline-Betrieb) bei der sogenannten "Generierung".
Standardmäßig wird mit jedem Projekt jeweils ein Auftrag angelegt, mit dem eine Vollgenerierung (Auftrag "generate full") und eine Teilgenerierung (Auftrag "generate partly") durchgeführt werden kann. Diese Aufträge können wie jeder Auftrag über die Projekteigenschaften ("Auftragsverwaltung") gesteuert werden. Auch aus dem JavaClient heraus können diese Aufträge bei entsprechender Konfiguration gestartet werden (Menü "Projekt" / "Projekt generieren" bzw. "Teilprojekt generieren"), wenn entsprechende Rechte dazu vorhanden sind (siehe unten).
Darüber hinaus können in der Auftragsverwaltung auch individuelle Generierungsaufträge eingerichtet werden. So können für eine individuelle, projektspezifische Generierung festgelegte Startpunkten definiert werden (Teilgenerierung) oder auch ein Generierungsauftrag, der nur die freigegebenen Änderungen zum zuletzt veröffentlichten Projektstand berücksichtigt (Deltagenerierung).
Alle für ein Projekt konfigurierten Generierungsmöglichkeiten können im JavaClient über den Menüeintrag "Auftrag ausführen" gestartet werden (sofern der Bearbeiter die notwendigen Rechte dazu besitzt).
Vollgenerierung
Zielsetzung einer Vollgenerierung ist die vollständige Generierung des gesamten Projekts. Abhängig vom Projektumfang kann dieser Vorgang sehr zeitintensiv sein. Für regelmäßige, kleinere Generierungsaktionen wird daher der Einsatz von Teilgenerierungen oder der Einsatz von Deltagenerierungen empfohlen.
Generierte Inhalte: Es werden
- alle freigegebenen Seitenreferenzen aus der Struktur-Verwaltung berücksichtigt, sowie
- alle freigegebenen Medien, die in der Ausgabe dieser Seitenreferenzen referenziert sind.
Medien, die im Projekt nicht referenziert werden, werden bei einer Vollgenerierung nicht berücksichtigt. |
Teilgenerierung
Zielsetzung einer Teilgenerierung ist eine schnelle und zielgerichtete Generierung bestimmter Teilbereiche eines Projektes. Abhängig von der Konfiguration können bspw. nur bestimmte Startknoten, nur bestimmte Medienobjekte und/oder nur geänderte Projektinhalte berücksichtigt werden.
Generierte Inhalte: Es werden:
- alle freigegebenen Seitenreferenzen aus der Struktur-Verwaltung ausgehend von den festgelegten Startpunkten berücksichtigt, sowie
- alle freigegebenen Medien, die in der Ausgabe dieser Seitenreferenzen referenziert sind, sowie
- alle freigegebenen Medien aus der Medien-Verwaltung ausgehend von den festgelegten Startpunkten.
Mediengenerierung
Prinzipiell handelt es sich hier um eine einfache Teilgenerierung, wobei ausschließlich Startpunkte aus der Medien-Verwaltung definiert werden.
Zielsetzung der Mediengenerierung ist es, eine schnellere Veröffentlichung einzelner Teilbereiche zu ermöglichen. Das Auslagern der rechenzeitintensiven Generierung von Medien in separate Teilgenerierungs-Aufträge bietet, insbesondere beim Ausführen mehrerer kleiner Teilgenerierungen, einen hohen Performancegewinn, da für jede Generierung ausschließlich die gewünschten Medien berücksichtigt werden. Diese Option eignet sich aber auch ideal, um beispielsweise Medien in einem Remote-Projekt zu veröffentlichen ("Remote-Medien").
Generierte Inhalte: Es werden alle freigegebenen Medien aus der Medien-Verwaltung ausgehend von den festgelegten Startpunkten berücksichtigt.
Deltagenerierung
Herkömmliche Teilgenerierungen verwenden eine einfache Strategie, um den Generierungsumfang zu reduzieren. Es wird nicht der gesamte (freigegebene) Projektinhalt generiert, sondern nur die Teilbereiche eines Projekts, die aktuell bearbeitet werden. Die Nachteile dieser Generierungsstrategien liegen auf der Hand. Es werden immer alle Inhalte unterhalb der definierten Startknoten generiert, unabhängig davon, ob diese tatsächlich verändert wurden oder nicht. Zudem erfordert die Generierung von Inhalten in n Teilbereichen eines Projektes die Konfiguration und Ausführung von n Generierungsaufträgen.
Die Deltagenerierung verwendet eine effizientere Generierungsstrategie. Dabei werden nicht mehr vollständige Projekte bzw. vollständige Teilbäume eines Projektes generiert, sondern nur noch die freigegebenen Inhalte, die sich seit der letzten Generierung tatsächlich geändert haben. Zielsetzung der Deltagenerierung ist es, die überflüssige und zeitintensive Generierung ungeänderter Inhalte zu vermeiden. Die Änderungen zum zuletzt (erfolgreich) generierten Stand eines Projektes werden über die FirstSpirit Developer-API ermittelt. Dazu muss vor die eigentlichen Generierung (Aktion: „generate“) ein Skript geschaltet (Aktion:„script“) werden.
Developer API documentation:
Eine detaillierte Anleitung zur Konfiguration einer Deltagenerierung und ein Skriptbeispiel zur Ermittlung der Änderungen in einem Projekt sind in der FirstSpirit-Community beschrieben:
Eine Deltagenerierung ist nur für Projekte möglich, die Freigaben verwenden (die Option "Freigabe nutzen" in den Projekteinstellungen muss aktiviert sein). |
Generierungsverzeichnis
Standardmäßig werden generierte Projektinhalte vom FirstSpirit-Server in den Standard-Generierungsverzeichnissen (fs5staging, fs5preview und fs5webedit) oder in projektlokalen Generierungsverzeichnissen abgelegt, z.B.:
für Inhalte (ohne Medien): fs5staging / Projekt-ID / Auftrags-ID / Sprachkanal_Präsentationskanal / Projektstruktur
für Medien: fs5staging / Projekt-ID / Auftrags-ID / media / Sprachkanal / Projektstruktur
- Projekt-ID: wird beim Anlegen eines Projekts automatisch vom System vergeben und kann z. B. in der Projekt-Übersicht der Anwendung zur Server- und Projektkonfiguration nachgeschlagen werden.
- Auftrags-ID: wird beim Anlegen eines Auftrags automatisch vom System vergeben. Die Standard-Aufträge für Voll- oder Teilgenerierung sind dabei in jedem neu angelegten Projekt enthalten. Die Auftrags-ID kann z. B. in der Übersicht der Aufträge in den Projekteigenschaften ("Auftragsverwaltung") oder in einem Auftrag selbst nachgeschlagen werden.
- Sprachkanal_Präsentationskanal: Für jede Projektsprache (siehe "Projekteigenschaften" / "Sprachen") wird ein eigenes Unterverzeichnis angelegt. Als Bezeichnung wird das in den Projekteigenschaften hinterlegte Kürzel verwendet. Liegen mehrere Präsentationskanäle vor (siehe "Projekteigenschaften" / "Vorlagensätze"), wird für jeden Präsentationskanal in jeder Sprache ein eigenes Verzeichnis angelegt. Dabei wird an das Sprachkürzel ein Kürzel für den jeweiligen Präsentationskanal, abgetrennt durch einen Unterstrich, angehängt, z. B. de_1.
Dieses Vorgehen hängt allerdings stark vom ausgewählten URL-Creator ab: Default URLs (de, de_1, en, en_1), Infix URLs (abc.de.html, 1/abc.de.html, abc.en.html, 1/abc.en.html), AdvancedURLs (MeinTitel.html, MeinTitel-1.html, MyTitle.html, MyTitle-1.html). Außerdem wird zwischen sprachunabhängigen und sprachabhängigen Medien unterschieden media/de/abc.jpg, media/en/abc.jpg vs. media/bcd.jpg
Siehe dazu auch Standard-URL-Erzeugung und AdvancedURLs. - Projektstruktur: Unterhalb des Sprach-/Präsentationskanals-Verzeichnisses wird die hierarchische Struktur der Strukturverwaltung nachgebildet: für jeden freigegebenen Ordner der Struktur-Verwaltung ("Menüebene") wird ein Verzeichnis angelegt, darunter die freigegebene(n) Seitenreferenz(en). Unterhalb des "media"-Ordners wird die hierarchische Struktur der Medien-Verwaltung nachgebildet: für jeden freigegebenen Ordner der Medien-Verwaltung wird ein Verzeichnis angelegt, darunter die freigegebenen Medien. Für sprachabhängige Medien wird für jede Sprache ein eigenes Verzeichnis angelegt und die Medien jeweils darin abgelegt.
Beispiel
für Medien: .../fs5staging/11599/11640/media/de/medien_ordner/bild.jpg
für Inhalte: .../fs5staging/11599/11640/de_1/menueebene_1/seite.html
Die Generierungsverzeichnisse können projektspezifisch angepasst werden. Die Strukturen sind damit abhängig von der individuellen Konfiguration im Projekt und können sich von den hier vorgestellten Strukturen unterscheiden. |
Der Zugriff auf diese Generierungsverzeichnisse ist geschützt, das bedeutet beim Aufrufen dieser Inhalte ist eine Benutzerauthentifizierung erforderlich, sofern dies konfiguriert ist. |
Rechte
Um Vollgenerierungen durchführen zu können, werden standardmäßig Server- oder Projekt-Administrator-Rechte benötigt. Ansonsten sind die Menüeinträge "Projekt generieren" und "Teilprojekt generieren" im Menü "Projekt" im JavaClient deaktiviert.
Soll ein Redakteur, der keine Administrationsrechte besitzt, eine Voll- und/oder Teilgenerierung starten dürfen, muss er (oder alternativ eine Gruppe) in den Auftrags-Eigenschaften im Bereich "Interaktive Ausführung" ausgewählt werden.