In einem Verwaltungsapparat wie einer Fachhochschule werden viele Verfahren über Antragsformulare geregelt. Hierbei sind in den einzelnen Abteilungen (Sekretariate, Sachgebiete, Fachbereiche) Bestände an Formularvordrucken vorhanden. Ausgefüllte Anträge müssen mit Hilfe der öffentlichen oder Hauspost an die entsprechende Stelle weitergeleitet werden, die diese dann bearbeiten und anschließend abheften. Kopien der ausgefüllten Formulare bleiben auch beim Auftraggeber, wo sie in Ablagen gesammelt werden. Beispiele für dieses Formularwesen sind Anträge zur Beschaffung von Material oder Reisekosten, Dienstreisen oder Urlaub, aber auch Einschreibungen, Prüfungsanmeldungen oder eine Exmatrikulation, für die jeweils eigene Vordrucke existieren.
Der Nachteil an diesen Formularen ist, daß sie vorrätig sein müssen, wenn man sie benötigt. Gerade bei häufig verwendeten Vordrucken können hier Engpässe entstehen, wenn sie nicht in ausreichender Zahl ,,auf Lager`` sind. Andere Vorlagen, die über längere Zeiträume nicht benötigt werden, sind in großen Mengen vorhanden, so daß die Vorräte nicht aufgebraucht werden. Für den Fall, daß sich aus bestimmten Gründen die Anforderungen an ein Formular wechseln, so geschieht es häufig, daß Restbestände vernichtet werden müssen, oder aber veraltete Anträge eingereicht werden, die in der Form unter Umständen keine Gültigkeit mehr haben.
Mit Hilfe des Computers lassen sich diese Nachteile kompensieren. Vordrucke, die ursprünglich von einer Druckerei bezogen wurden, können nun auf dem Server eines Firmennetzes als Druckdateien zur Verfügung gestellt werden. Jeder Antrag wird zu dem Zeitpunkt ausgedruckt, zu dem er benötigt wird. Eine Vorratshaltung ist somit nicht mehr erforderlich. Bei einer Änderung des Formularinhalts kann dies zentral geschehen. Beim nächsten Ausdruck wird automatisch die aktuelle Version verwendet. Wird ein Vordruck allerdings häufig verwendet, so kann das ständige Ausdrucken zu einem erheblichen Zeitaufwand führen. Ist darüber hinaus der Drucker nicht verfügbar, so ist die ,,Beschaffung`` des Dokumentes sogar unmöglich. Ein weiterer Nachteil bezüglich des Ausgabemediums ist die Verschiedenheit der heutzutage üblichen Drucksysteme. Vom Nadeldrucker über den Tintenstrahler bis hin zu Laserdruckern sind verschiedene Technologien im Einsatz, die es nahezu unmöglich machen, in jedem Fall das gleiche Ergebnis zu erhalten, will man nicht für jeden Drucker eigene Vorlagen erstellen. Schriftarten, Größenvorgaben und die Anordnung auf dem Papier führen bei den unterschiedlichen Geräten zu stark voneinander abweichenden Ergebnissen. Der Umweg über graphische Ausgaben ist wegen unterschiedlicher Auflösungen ebenfalls nicht immer erfolgreich. Mit Hilfe von plattformunabhängigen Dateisystemen, wie dem PDF-Format sollen diese Probleme jedoch behoben werden können, was aber auch nicht immer zutrifft.
Eine weitere Möglichkeit der Unterstützung des Formularwesens durch den Computer besteht darin, interaktive Anwendungen zu erstellen, mit deren Hilfe Anträge ausgefüllt und automatisch weitergeleitet werden. Der Umweg über Papier entfällt somit, die Bearbeitung erfolgt am Bildschirm und die Weiterleitung erfolgt per Datenfernübertragung oder Internet. Die Unabhängigkeit von einem bestimmten Computersystem kann man dadurch erreichen, daß man die Anwendung auf den Technologien des Internets aufbaut: mit Hilfe des World Wide Web lassen sich interaktive Formulare bearbeiten, die per eMail an die richtige Stelle weitergeleitet oder direkt am Server ausgwertet werden.
Die Beschreibungssprache HTML bietet Elemente zur Darstellung von Eingabefeldern oder Auswahlmöglichkeiten an. Die so entstandenen Informationen werden per POST- oder GET-Befehl direkt an ein CGI-Programm auf dem Server übertragen, das für die Auswertung und Weiterverarbeitung der Daten zuständig ist. Das Ergebnis ist ein Dokument, das, zurück an den Client gesandt, eine Bestätigung oder Antwort enthält.
Somit ist eine Erleichterung des Formularwesens in mehrfacher Hinsicht erreicht: Beschaffen und Lagern von Vordrucken entfällt ebenso, wie der Transport per Post. Somit kann auch eine Beschleunigung von Verfahren erreicht werden. Im folgenden werden nun die Komponenten von elektronischen Formularen und ihren interaktiven Anwendungen näher beschrieben. In Kapitel 5.4 ist ein Beispiel in Form einer Demo-Anwendung beschrieben.
Eine Formularanwendung im Internet läßt sich in vier Schritte aufteilen:
Im folgenden werden diese Phasen näher beschrieben.
Der Ausgangspunkt einer Formularanwendung im Internet oder Intranet ist ein HTML-Dokument, das Elemente enthält, die Benutzereingaben entgegennehmen. Hierbei stehen verschiedene Typen von Eingaben zur Verfügung, die darüber hinaus auch mit den allgemeinen Darstellungsmöglichkeiten (Text und Bild) mischbar sind. Die Information eines jeden Feldes wird über seinen Namen (ähnlich einer Variablen) angesprochen.
Dieser Typus ist die allgemeine Form von Benutzereingaben. In einem Textfeld erscheinen Daten, die per Tastatur eingetippt werden, in gleicher Weise auf dem Bildschirm. Es kann beispielsweise zur Eingabe kurzer Begriffe wie Namen oder Adressen, aber auch numerischer Zeichenketten oder Datumsangaben genutzt werden. Die Eingabe ist bezüglich ihrer Länge beschränkbar und kann durch das Formular vorgegeben sein, sie ist jedoch einzeilig. Eine Überprüfung durch das Formular ist nicht vorgesehen. Für derartige Schutzmechanismen sind eigene Routinen zu definieren (z.B. in der Programmiersprache Javascript der Firma Javasoft), die Client-seitig ablaufen. Eine andere Form der Überprüfung kann vom CGI-Programm vorgenommen werden. Geringfügige Auswertungen können als Routinen einfach in den HTML-Code integriert werden, für die einfache Auslöser definiert sind. Die Darstellungsform ist ein umrandetes Rechteck.
Ein Paßwortfeld ist ein Untertyp des allgemeinen Textfeldes. Der einzige Unterschied ist, daß die Information nicht im Klartext auf dem Bildschirm erscheint, sondern in codierter Form, z.B. als "*". Diese Variante wählt man für die Eingabe von Paßwörtern. Das übrige Verhalten entspricht dem der Textfelder.
Dieser weitere Untertyp dient zur Eingabe von Dateinamen auf lokalen Computersystemen, die an den Server übertragen werden (Upload-Mechnismus von Netscape). Als Erweiterung besitzen sie eine Schaltfläche auf der rechten Seite, die mit ,,Browse...`` beschriftet ist. Beim Anklicken erscheint eine Dialogbox, mit der durch den Dateibaum des Client-Rechners navigiert und eine Datei ausgewählt werden kann.
Dieser Datentyp dient dazu, vorgegebene Informationen wahlweise auszuwählen oder sie wegzulassen. Der Schalter kann einzeln oder in Gruppen auftreten, wobei jedes einzelne Element unabhängig voneinander aktiviert bzw. deaktiviert werden kann. Die Darstellungsform ist ein kleines Quadrat, das im aktiven Zustand je nach verwendetem Browser entweder mit einem "X" oder ganz ausgefüllt ist.
Eine andere Form der Auswahl vorgegebener Daten ist der Auswahlschalter,
der sinnvollerweise in Gruppen auftritt. Die Besonderheit gegenüber
den Optionsschaltern ist, daß in einer Gruppe von Radiobuttons immer nur eine Auswahlmöglichkeit aktiviert sein kann. Wechselt man
die Markierung eines Elementes, so wird das vorher gewählte automatisch
deaktiviert. Die Darstellungsform ist entweder kreis- oder rautenförmig,
im gewählten Zustand ausgefüllt.
Diese Schalter dienen zum Steuern der Aktionen eines Formulars. Es werden zwei unterschiedliche Untertypen angeboten:
In der Regel besitzt ein Formular je einen Submit- und einen Resetschalter. Für unterschiedliche Bearbeitung sind auch weitere Submit-Buttons möglich, wobei dann vom CGI-Programm eine Unterscheidung getroffen wird, welcher Schalter gewählt wurde und welche Aktionen dann einzuleiten sind. Optisch sind Schaltflächen rechteckige Felder, die meist einen 3D-Effekt besitzen.
Ein Textarray ist ein Eingabefeld für mehrzeiligen Text, wobei ein automatischer Zeilenumbruch optional geschaltet wird. Es eignet sich zum Beispiel für die Eingabe von kurzen Nachrichten. Das Array wird als mehrzeiliges Eingabefeld dargestellt. Ist mehr Text enthalten als angezeigt werden kann, so erscheinen auf der rechten bzw. der unteren Kante Laufleisten, mit denen der Text gescrollt werden kann.
Die Gedächtnislosigkeit eines Webservers zwingt den Programmierer bei einer mehrstufigen Auswertung sämtliche benötigten Informationen im Formular mitzuführen, auch wenn sie nicht im HTML-Dokument angezeigt werden. Für diesen Zweck existieren versteckte Datenfelder, die den Parameternamen und seinen Inhalt aufnehmen. Eine weitere Anwendungsmöglichkeit ist der Transport von Informationen, die zur Auswertung eines Formulars benötigt werden, aber nicht vom Benutzer manipuliert werden oder ihm sogar verborgen bleiben sollen (z.B. Verzeichnis- oder Dateinamen). Somit können vom Server Informationen für eine spätere Nutzung ,,gespeichert`` werden.
Diese beiden Typen werden verwendet, um eine große Anzahl von Auswahlmöglichkeiten auf kleinem Raum unterzubringen. Ein Menue verhält sich ähnlich dem Texteingabefeld. Wenn man es mit der Maus anklickt, so "klappt" eine Auswahlliste auf, in der man eine der vorgegebenen Optionen auswählen kann. Die Auswahlliste stellt die Optionen mehrzeilig dar, versehen mit einer Laufleiste am rechten Rand, wenn mehr Einträge als Zeilen vorhanden sind. Mit Hilfe des MULTIPLE-Attributs können auch mehrere Möglichkeiten gleichzeitig selektiert werden.
Die Daten, die der Benutzer in ein Formular eingetragen und per Submit-Schalter abgesendet hat, werden serverseitig bearbeitet. Vom Clientrechner wird das Datenpaket mit den Formulardaten per HTTP an den Server gesendet. Bevor diese Daten nun weiterverarbeitet werden können, müssen sie decodiert werden. Als Entwicklungsoberflächen für derartige CGI-Anwendungen eignen sich alle Programmiersprachen, die Ein- und Ausgaben über die Standardkanäle ( stdin und stdout) sowie deren Manipulation unterstützen. Die Aufgabe besteht nun darin, den übergebenen Datenblock zu analysieren und die Benutzerdaten auszulesen, um sie für die weitere Bearbeitung zur Verfügung zu stellen.
Bei der Methode GET sind die Benutzerdaten in einer Umgebungsvariablen mit dem Namen QUERY_STRING untergebracht, bei POST weden sie im Textkörper des Requests gesendet. Alle Daten sind in beiden Fällen als lange Zeichenkette angeordnet und müssen zunächst in ihre Bestandteile zerlegt werden. Jeder Parameter hat die Form
wobei Schlüssel der Name des Formular-Datenfeldes ist und Wert das eigentliche Datenfeld. Die einzelnen Paare sind schließlich durch das "& "-Zeichen miteinander verbunden.
Da die Datenfelder einfachen Text enthalten, kann es passieren, daß einige enthaltene Zeichen den Browser bei der Interpretation des Datenblocks irritieren. Um solche Fehler zu vermeiden, werden ,,störende`` Zeichen durch ihren Hexadezimalcode ersetzt (z.B. das Leerzeichen durch "#20 ").
Der erste Schritt zur Analyse der Benutzerdaten ist, in Abhängigkeit von der verwendeten Methode (GET, POST), die Position des Parameterstrings festzustellen. Im nächsten Schritt wird der Datenstring in die einzelnen Schlüssel-Wert-Paare aufgeteilt, die dann ihrerseits in die Parameter-Bestandteile zerlegt werden. Schließlich müssen die Hexadezimaldarstellungen in jedem Parameter wieder in die entsprechenden Zeichen zurückverwandelt werden.
Nach diesen Aktionen sind alle Parameter in einer Form zu speichern, auf die man bei der Weiterverarbeitung leicht zugreifen kann.
Je nach Art des CGI-Programms können die Daten nun manipuliert und
Aktionen augeführt werden. Hierbei hat der Server die Möglichkeit,
neben den Formularparametern auch auf Umgebungsvariablen der Datenübertragung
zuzugreifen. Tabelle 4.1 zeigt eine Liste mit den verwendbaren Variablen.
Für die Programmierumgebung Perl, die in den in Kapitel 5.1 besprochenen Anwendung zum Einsatz kam, sind zusätzliche Bibliotheken verfügbar, mit deren Hilfe eine Bearbeitung erleichtert wird. Weitere Bibliotheken und Programm-Module sind ebenfalls erhältlich.
Die Möglichkeiten von CGI-Programmen läßt sich nicht innerhalb weniger Sätze beschreiben. Anwendungsgebiete sind neben der reinen Datenmanipulation die Gateways zu anderen Informationssystemen. Als wichtiger Vertreter sei an dieser Stelle die Anbindung an Datenbanken genannt. Andere Aktionen können im Erzeugen von elektronischen Nachrichten (eMails) oder der Suche in einem physikalischen Datenbestand liegen.
Als Antwort auf das Absenden von elektronischen Formularen wartet der Benutzer auf eine Bestätigung durch den Server, daß seine Daten bearbeitet worden sind. Diese Antwort muß den Regeln des HTTP-Protokolls entsprechen und ist in der Regel ein vom CGI-Programm dynamisch erzeugtes oder statisches HTML-Dokument. Eine andere Möglichkeit besteht darin, auf eine angegebene URL zu verweisen, die der Browser selbständig anfordert und darstellt.
Die Programmiersprache Perl stellt in diesem Zusammenhang mit der Zusatzbibliothek CGI.pm eine sehr komfortable Möglichkeit zur Verfügung, dynamisch HTML-Code zu erzeugen.
Aus der Sicht des CGI-Programms wird die Antwort einfach auf den Bildschirm ausgegeben. Der Webserver sorgt dafür, daß diese Informationen an den Browser weitergeleitet wird. Wichtig ist, daß die Ausgabe das richtige Format besitzt, so wie es im HTTP-Protokoll vorgeschrieben ist.
Die Erstellung von CGI-Programmen, zur Bearbeitung von elektronischen Formularen oder zur Anbindung von externen Informationssystemen, birgt auch Gefahr in sich. Ein leichtfertiger Umgang mit derartigen Anwendungen öffnet Hackern Tür und Tor zum Computersystem, auf dem der Server läuft. Ohne geeignete Sicherheitsmechanismen kann es einem Daten-,,Einbrecher`` leicht gelingen, den gewollten Mechanismus für seine eigenen Zwecke zu mißbrauchen und somit einen großen Schaden anrichten. Für das Konzept von Inernet- oder Intranet-Anwendungen sind Sicherheitsmaßnahmen in jedem Fall mit einzuplanen. Das Beispiel des Intranet-File-Managers in Kapitel 5.3 sei als Beispiel zu verstehen: jede Aktion, die von dieser Anwendung auf die Daten des Webservers ausgeht, ist von zahlreichen Tests umgeben, ob das Vorhaben gestattet ist, oder ob es unterbunden werden muß.
Weitere Absicherungen, wie die Verwendung von Paketfiltern oder Firewalls sind zusätzliche Maßnahmen, die für eine Intranetanwendung erforderlich sind.
In Kapitel 5.4 werden die Komponenten einer Intranet-Anwendung beschrieben, wie sie für die Bearbeitung eines HTML-Formulars benötigt werden. Diese Demonstration besteht aus einem Dokument, in das vom Benutzer Daten für einen Urlaubsantrag eingetragen werden können. Als Antwort wird ein dynamisches Dokument erzeugt, das die Angaben bestätigt, und in dem der Antrag weiter bearbeitet werden kann (Einverständniserklärung, Genehmigung und Verfügung). Alternativ kann auch eine eMail an einen bestimmten Benutzer gesendet werden. Nach einem zweiten Auswertungsschritt kann die Bestätigung ausgedruckt und in gewohnter Weise verwendet werden.