Die vorliegende Arbeit beschreibt und analysiert die Implementierung eines Dienstes zur dynamischen Dokumentengenerierung in der Programmiersprache Java. Für die Realisierung des Dienstes wird die Extensible Markup Language(XML) und die Extensible Stylesheet Language(XSL) in Verbindung mit dem Formatting Objects Standard genutzt. Die Dokumentengenerierung erfolgt, indem XML-Daten in ein vorher generiertes XSL-Formular integriert werden. Es wird anschließend ein darstellbares Format erzeugt, um das Ergebnis präsentieren zu können. Die Formate können individuell vom Nutzer des Dienstes (meist ein bestehendes Anwendungssystem) eingestellt bzw. konfiguriert werden. Ein weiterer wichtiger Aspekt ist die Erstellung der XSL-Formulare. Daher wird in dieser Arbeit auch ein Formulardesigner vorgestellt, mit dessen Hilfe der Nutzer ohne Programmierkenntnisse individuelle Formulare jeder Art generieren kann. Dabei spielt das Verwaltungsmanagement der Formulare sowie die Verarbeitung dieser durch den Server auch eine wichtige Rolle.
Im zweiten Teil der Arbeit wird eine Demonstrationsanwendung zur Nutzung des Dienstes vorgestellt bzw. implementiert. Diese kann dem Designer der Formulare als Testwerkzeug dienen, um anwendungsindividuell generierte Formulare, die mit Daten gefüllt werden, auf Korrektheit zu prüfen. Mit Hilfe des Acrobat Readers© kann das Ergebnis betrachtet und ausgedruckt werden.
Inhaltsverzeichnis
Abstract
Einleitung
Voraussetzungen
Einsatzort
Projekt „Himalaya“
Ausgangssituation
I Projektbeschreibung
I.1 Allgemeine Ziele des Projekts
I.2 Eigenschaften der Dokumentengenerierung
I.3 Zusätzliche Anforderungen
I.4 Lösungsansatz
I.5 Technische Umgebung
II Server-Komponente zur Dokumentenerzeugung
II.1 Anforderungsanalyse
II.1.1 Use Cases
II.2 Analyse/Design
II.2.1 Fachlicher Überblick des Klassenmodells
II.2.2 Paketstruktur des Klassenmodells
II.2.3 Detailbeschreibung des Klassenmodells
II.2.4 Konfigurations- und Ablagemöglichkeiten
II.3 Implementierung
II.3.1 DocServiceWrapper
II.3.2 WLSInfos
II.3.3 Dispatcher
II.3.4 Form
II.3.5 InternalForm
II.3.6 FormVar
II.3.7 RawData
II.3.8 ValueData
II.3.9 Jobparameter
II.3.10 FormService
II.3.11 FormDescription
II.3.12 Controller
II.3.13 Engine
II.3.14 EngineMetaData
II.3.15 XSLEngine
II.3.16 GenEngine
III Client-Komponente zur Eingabe des Dokumenteninhalts
III.1 Anforderungsanalyse
III.1.1 Use Cases
III.2 Analyse/Design
III.2.1 Erweiterung der Paketstruktur
III.2.2 Überblick des erweiterten Klassenmodells
III.3 Implementierung
III.3.1 GUIDocserviceMain
III.3.2 GUIGenericBuilder
III.3.3 Deployment des Clients
IV Ablauf der Dokumentengenerierung
V Abschließende Bewertung
Zielsetzung und Themen
Die Arbeit befasst sich mit der Entwicklung und Analyse eines Dienstes zur dynamischen Dokumentengenerierung mittels Java, XML und XSL:FO. Ziel ist die Bereitstellung eines performanten, flexiblen Systems, das statische und dynamische Formulare vereinheitlicht und eine benutzerfreundliche Schnittstelle zur Dokumentenkonfiguration sowie einen Demo-Client für Testzwecke umfasst.
- Dynamische Dokumentengenerierung mit XML und XSL:FO
- Implementierung einer serverseitigen Architektur basierend auf dem J2EE-Standard
- Konzeption eines Formulardesigners zur benutzerfreundlichen Formularerstellung
- Entwicklung einer grafischen Client-Komponente zur Testung und Validierung
- Optimierung von Performance und Portabilität gegenüber existierenden C++ Lösungen
Auszug aus dem Buch
II.3.3 Dispatcher
Diese Klasse wird vom Session Bean aufgerufen und implementiert die im „DocServiceWrapper“ delegierten Methoden. Es handelt sich hierbei um die zentrale Instanz für die Aufgabenverteilung des Servers. Diese Klasse ist mit dem Singleton-Pattern realisiert und hat einen privaten Konstruktor, worin einmalige Aufräumarbeiten von temporären Dateien durchgeführt werden.
Das wichtigste an der Klasse sind jedoch die Methoden zur Realisierung der Geschäftsprozesse. Die Methoden sind folgendermaßen implementiert:
byte[] createDocument(Form formular, Jobparameter jobparameter) throws DocumentserviceException {
/** Das übergebene Formular in ein internes Formular konvertieren * (intern wird nur mit InternalForm gearbeitet) */
InternalForm intForm = new InternalForm(formular);
/** Aus dem Formularrepository die Formularbeschreibung zum Formular besorgen **/
intForm = FormService.getFormularFromRepository(intForm, jobparameter);
/** Alle Engines die zur Erzeugung des benötigten Ausgabeformates benutzt werden **/
Engine[] engines = Controller.getConverter(intForm.getFormularBeschreibung().getFormat(), jobparameter.getToFormat() );
/** Exception: Es gibt keine Engines, die das gewünschte Format erzeugen können. **/
if (e.length == 0) throw new DocumentserviceException(”Es wurden keine Engines gefunden.”);
/** Für jede gefundene Engine, die work-Methode aufrufen und somit die Engine starten **/
for (int i=0; i<e.length; i++) { intForm = engines[i].work(intForm, jobparameter); {
/** Einige Engines haben eine Datei als Endergebnis. * Die Daten müssen in den Speicher kopiert werden. */
if (Persistence.equals(intForm.getFormularBeschreibung().getPersistence(), Persistence.FILE) ) {
/** Hilfsklasse zur Erzeugung eines Bytestreams über eine Datei **/
intForm.setOutBuffer( FileManager.getBytestream( intForm.getFormularBeschreibung().getFilename()) ); }
/** Rückgabe des erzeugten Dokumentes im angegebenen Format **/
return intForm.getOutBuffer(); }
Zusammenfassung der Kapitel
Projektbeschreibung: Dieses Kapitel erläutert die Anforderungen und die Zielsetzung des Dokumentengenerierungssystems, einschließlich der notwendigen Rahmenbedingungen und technischen Umgebung.
Server-Komponente zur Dokumentenerzeugung: Hier wird der Kern des Systems detailliert beschrieben, angefangen bei der Anforderungsanalyse und dem Design der Klassen bis hin zur konkreten Implementierung der Geschäftslogik.
Client-Komponente zur Eingabe des Dokumenteninhalts: Dieses Kapitel beschreibt die Entwicklung der grafischen Benutzeroberfläche und des Deployment-Prozesses mittels Java Web Start.
Ablauf der Dokumentengenerierung: Es wird der Prozess von der Erstellung eines Formulars bis zur finalen Generierung und Ausgabe des Dokuments im Acrobat Reader nachvollzogen.
Abschließende Bewertung: Eine kritische Betrachtung der implementierten Lösung im Vergleich zu bestehenden Systemen und ein Ausblick auf potenzielle Erweiterungen.
Schlüsselwörter
Dokumentengenerierung, XML, XSL:FO, Java, J2EE, Applikationsserver, Klassenmodell, Formularrepository, Dynamik, Server-Komponente, Client-Komponente, GUI, Rendering, Informatik, Softwareentwicklung
Häufig gestellte Fragen
Worum geht es in dieser Diplomarbeit grundsätzlich?
Die Arbeit analysiert und implementiert einen Java-basierten Dienst zur dynamischen Generierung von Geschäftsdokumenten unter Verwendung von XML und XSL:Formatting Objects.
Was sind die zentralen Themenfelder der Arbeit?
Die Schwerpunkte liegen auf der serverseitigen Dokumentenerzeugung, der modularen Architektur mittels „Engines“, der XML-basierten Konfiguration von Formularen und der grafischen Eingabemaske für Endnutzer.
Was ist das primäre Ziel der Entwicklung?
Das Hauptziel ist die Vereinheitlichung zweier bestehender Dokumentenverarbeitungssysteme in einer performanten, flexiblen Java-Architektur, die eine einfache Erweiterbarkeit und eine benutzerfreundliche Bedienung ermöglicht.
Welche wissenschaftliche Methode wird verwendet?
Es handelt sich um eine softwaretechnische Arbeit, die von der Anforderungsanalyse (Use-Case-Modellierung) über das objektorientierte Design (UML-Klassendiagramme) bis hin zur Implementierung und praktischen Demonstration reicht.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die detaillierte Spezifikation der Server-Komponente, deren Klassenmodell und Geschäftslogik sowie die Implementierung der grafischen Client-Oberfläche und deren Anbindung an den Server.
Welche Schlüsselwörter charakterisieren die Arbeit?
Wichtige Begriffe sind Dokumentengenerierung, XML, XSL:FO, Java, Applikationsserver und objektorientiertes Design.
Warum wurde für die Server-Komponente eine J2EE-basierte Architektur gewählt?
J2EE bietet die notwendige Skalierbarkeit, Portierbarkeit und eine zentrale Administrationsumgebung, die für den Betrieb eines performanten Dokumentendienstes in einer professionellen Produktionsumgebung essenziell sind.
Wie ermöglicht das System Änderungen an Formularen während der Laufzeit?
Durch die Auslagerung der Formular- und Engine-Metadaten in XML-Repositorys können neue oder geänderte Formulare vom System erkannt und genutzt werden, ohne dass der Server neu gestartet werden muss.
- Quote paper
- Stefan Tantow (Author), 2002, Dynamische Dokumentengenerierung mit XML und XSL:FO, Munich, GRIN Verlag, https://www.grin.com/document/15336