HTML-Dokumentation mit XML und XSLT | | Anforderung | Realisierung | Trennung von Inhalt und Layout | Der Inhalt wird in XML formuliert, nach einem dafür entworfenen Schema. Das Layout wird separat festgelegt. | Ein XSLT-Stylesheet beschreibt die Umsetzung der XML-Dokumente in HTML. Der Browser bereitet das XML-Dokument mit dem Stylesheet auf, oder die vorbereiteten HTML-Dateien werden auf dem Server abgelegt. Diese XML-Datei ist ein Beispiel. Ebenso die Kurz-Dokumentation des Schedulers (ersetzen Sie die Endung .html durch .xml). | | | |
Job-Scheduler | | Anforderung | Realisierung | API | Die Scheduler-API stellt den Jobs Objekte und Methoden für Protokollierung, Job-Start u.v.m. bereit. | Java-Jobs sind über JNI eingebunden; Proxy-Klassen leiten die Aufrufe an C++ weiter. JScript, VBScript und PerlScript (von ActiveState) sind unter Windows als Scripting Engines eingebunden. Für JavaScript wird die Implementierung Mozilla Spidermonkey verwendet. Perl ist unter Unix über das Perl-API eingebunden. Anbindung der Prozesse an den Scheduler über TCP oder Pipes. Die Methodenaufrufe und werden zu einen Byte-Strom serialisiert und über Sockets übertragen. Exceptions ebenso. Proxy-Objekte im Job für transparenten Zugriff auf Objekte des Schedulers. | | | | Bedienung mit einem Browser in Ajax-Technik | Der Scheduler ist über eine HTTP-Adresse aus einem Browser heraus aufrufbar und zeigt seinen inneren Zustand (wartende und laufende Tasks, Aufträge, Fehler etc.). | Ein einfacher HTTP-1.1-Server im Scheduler liefert HTML-Dokumente und führt über POST in XML übergebene Kommandos aus. In einem Browser-Fenster lässt sich die fortlaufende Protokollausgabe des Schedulers beobachten. Die Oberfläche ist nach dem Ajax-Prinzip realisiert: Der Anwender ruft nur einmal die HTML-Seite des Schedulers auf, die sich auf Mausklicks hin über JavaScript und XMLHTTP mit aktuellen Informationen vom Scheduler versorgt. Der Server arbeitet mit asynchronen Socket-Ereignissen in nur einem Thread. | | | | Verzeichnisüberwachung | Wird eine Datei einem Verzeichnis hinzugefügt, dann soll ein Job gestartet werden. | Windows: Die Funktion des Betriebssystem wird genutzt. Unix: Periodische Prüfung der Verzeichnisse auf Veränderung. | | | |
Auflösung offener Posten mit HBCI und MT940 | | Anforderung | Realisierung | Übernahme von Kontoauszügen in eine Datenbank | | Automatische Übernahme der Kontoauszüge (MT940 oder HBCI) verschiedener Banken in eine SQL-Datenbank. Plausibilitätsprüfungen stellen lückenlose Übernahme sicher. | | | | Auflösung offener Posten | Anhand des Verwendungszwecks und des Betrags wird die offene Rechnung zugeordnet. | Reguläre Ausdrücke beschreiben die akzeptierten Zeichenfolgen, Scan-Fehler (0/O, 1/I, 2/Z etc.) werden berücksichtigt. | | | |
SQL-Ergebnismenge seitenweise im Browser zeigen | | Anforderung | Realisierung | Darstellung größerer SQL-Ergebnismengen (select) mit HTML in schneller Ajax-Technik | Schnelle Darstellung einer sich über mehrere Seiten erstreckenden Tabelle. Blättern und spaltenweises Sortieren lokal im Browser (Internet Explorer und Firefox). | Client-Komponente in DHTML und JavaScript. Der JavaScript-Code holt in XML codierte Datensätze blockweise mit XMLHTTP und fügt mit DOM die Daten in die HTML-Seite ein. Die Server-Komponente in Java als Tomcat-Servlet hält eine Kopie der Ergebnismenge in einer Direktzugriffsdatei und liefert auf Anforderung einen Block der Datensätze in XML. | | | | Kopplung mit bestehender Web-Anwendung | Die Komponente ist in eine PHP-Anwendung integriert. | Parameterübergabe über die Datenbank mit einem nicht erratbaren Schlüssel im URL. Die Session-ID bleibt in allen Anforderungen erhalten. | | | |
RTF-Prozessor zum seriellen Erzeugen standardisierter Briefe | | Anforderung | Realisierung | Erzeugung von RTF-Dokumenten aus mit Microsoft Word verfassten Vorlagen | Variablen in der Vorlage werden durch konkrete Werte (z.B. aus einer Datenbank) ersetzt. Im Text eingefügte Anweisungen einer Skriptsprache werden ausgeführt, z.B. für bedingten oder wiederholten Text. | Die RTF-Vorlage wird in eine Baumstruktur parsiert. Variablen und Skriptzeilen werden separiert. Variablen sind mit $() gekennzeichnet, Skriptzeilen mit <% und %> (ähnlich PHP). Generierung eines Skripts mit Variablen und Skriptzeilen aus der Vorlage. Während der Ausführung des Skripts durch eine Scripting Engine wird eine neue Baumstruktur erzeugt, aus der schließlich das fertige RTF-Dokument entsteht. | | | | Mischen von RTF-Dokumenten | Anweisung »include« in der Vorlage, um andere RTF-Dokumente (Textbausteine) einzuziehen. | Wahlweise können nur Zeichen- oder auch Absatzauszeichnungen des Textbausteins übernommen werden. Die internen RTF-Dokumentköpfe werden gemischt, die Verweisnummern (Schriftnummern für \f etc.) werden umcodiert. | | | | Verkettung mehrerer unabhängiger RTF-Dokumente | Mehrere voneinander unabhängige RTF-Dokumente werden zu einem großen zusammengefasst, sodass sie als eine Datei gedruckt werden können. | Die Dokumente werden durch Abschnittswechsel getrennt. Dokumenteigenschaften werden zu Abschnittseigenschaften. | | | |
Konvertierung strukturierten Texts aus Work-Dokumenten zu XML | | Anforderung | Realisierung | | Texte (juristische Kommentare) sind mit Microsoft Word verfasst. Die vorgegebene inhaltliche Struktur wird im Text vor allem durch das Layout und teilweise durch Textbestandteile (z.B. »§«, »Anm.«) dargestellt. | Der Anwender beschreibt die Struktur des Work-Dokuments als formale Grammatik. Grammatikelemente sind Layout-Elemente in der Form von RTF-Codes (z.B. \b für fett), Namen von Formatvorlagen, Textmuster und variablem Text (dem Inhalt). Dazu fügt der Anwender in die Grammatikregeln XML-Elemente ein, die im Falle des Zutreffens der Regel mitsamt dem Inhalt zu generieren sind. Der Konverter nimmt das Word-Dokument als RTF-Dokument entgegen und zergliedert es in seine RTF-Bestandteile. Danach strukturiert er das Dokument nach der Grammatik des Anwenders, wobei die Regeln im Backtracking-Verfahren angewendet werden. Schließlich schreibt er die XML-Elemente aus den Regeln und die Textbestandteile des Dokuments. | | | |
Medizinische Befunde in einfaches Textformat konvertieren | | Anforderung | Realisierung | RTF-Dokumente (Microsoft Word) werden zur Archivierung in ein einfaches Textformat konvertiert | Berücksichtigung von Umbruch, Tabulatoren (links, mittig, rechts), Seitenwechsel etc. Realisierung als Shared object für Solaris | RTF-Parser erkennt Textstruktur und Auszeichnungen. Ausgabe als einfache ISO-8859-1-codierte Datei mit fester Zeichenbreite. | | | |
Replikation von Versichertendaten durch eine Firewall | | Anforderung | Realisierung | | Übernahme ausgewählter Daten innerhalb einer Firewall in eine äußere Datenbank (in der DMZ). | Nur geänderte Datensätze werden übernommen, sie sind dazu in einer eigenen Tabellenspalte gekennzeichnet. Die geänderten Datensätze werden periodisch selektiert und zusammengefasst per ftp oder einer speziellen Software durch die Firewall hindurch übertragen. Auf der Empfangsseite erwartet ein Job, die Dateien und lädt sie mit sqlldr in eine Oracle-Datenbank. Automatische Wiederholung im Fehlerfall. | | | |
Annahme von Bestell-eMails | | Anforderung | Realisierung | Für einen Dokumentenlieferdienst werden automatisch generierte Bestell-eMails entgegengenommen | Java-Jobs zur Annahme maschinenlesbarer Bestell-eMails, Prüfung und Speicherung der Bestellung in einer Datenbank. Vollautomatischer Betrieb. Fehlerhafte Bestellungen werden per eMail zurückgewiesen. | Ein periodisch startender Java-Job liest eMails mit JavaMail, parsiert die Bestelldaten, konvertiert sie in XML und legt die einzelnen Daten und das XML-Dokument in einer SQL-Tabellenstruktur ab. Die Daten werden auf jeder Stufe auf Validität geprüft. | | | |
|