previous next up contents index


Subsections


5.1 Programmierumgebung

  

5.1.1 CGI-Programmierung

Das Common Gateway Interface stellt einen sehr einfachen Mechanismus zur Interaktion im World Wide Web dar. Schon mit geringen Programmierkenntnissen ist es möglich, einfache Anwendungen zu erzeugen. Als Teil des Webservers ist es für die Kommunikation mit anderen Anwendungen zuständig. Mit dem Aufruf werden gleichzeitig Benutzerdaten an das Programm übertragen. Nach deren Verarbeitung sorgt der Server für die Weiterleitung der Antwort an den Client.

Der Unterschied zur normalen Anwendungs- oder Programmerstellung liegt in der Verwendung spezieller Eingabemechanismen und einiger strenger Regeln bezüglich der Ausgabe.

CGI-Anwendungen:

Durch das CGI verändert sich das Web-Angebot von einer einfachen Sammlung einiger statischer HTML-Dokumente in ein interaktives Medium, bei dem der Benutzer Anfragen an das System richten oder Anwendungen starten kann. Mit der Hilfe dieser Techologie können unter anderem verscheidene Anwendungsarten realisiert werden.

Formulare:

 

Die häufigste Form der Verwendung des CGI sind Formulare. Spezielle Tags des HTML erlauben die Übertragung von Information vom Benutzer an den Server. Diese graphischen Elemente[*] dienen zum Sammeln der Benutzerdaten, unterstützen aber auch die Interaktion des Benutzers mit dem Server.

Gateways:

 

Viele Informationen, die im Internet publiziert werrden sollen, sind nicht direkt in einem Browser darstellbar. Das CGI bietet eine Lösung für dieses Problem in Form von Gateways. Erweiterungen oder Bibliotheken zu Programmiersprachen liefern die Schnittstelle zu diesen Informationssystemen. Vom Server werden diese aufbereiteten Daten an den Browser weitergegeben. Wichtigstes Beispiel im Zusammenhang mit Intranets für diesen Anwendungstyp sind Datenbank-Schnittstellen oder die Anbindung von Mainframe-Rechnern.

Virtuelle Dokumente:

 

Virtuelle - also dynamisch erzeugte - Dokumente stellen das Herz des CGI dar. Sie werden erst durch Anfrage eines Benutzers nach seinen Anforderungen erzeugt. Hierbei können diese Dokumente verschiedene Datentypen besitzen: HTML-Code, reiner Text, Bilder oder sogar Audiodateien. Beispiele für diesen Anwendungstyp sind Suchmaschinen oder auch der DirLister in Kapitel 5.2, bei denen die Dokumente erst nach Eingabe eines Suchmusters bzw. eines Verzeichnisnamens erzeugt werden.

Funktionsweise des CGI:

 

Zur Verwendung des CGI muß dem Webserver ein spezielles Verzeichnis /cgi-bin/ bekannt sein, indem alle CGI-Programme enthalten sind. Alternativ kann auch ein spezieller Dateityp durch die Erweiterung (z.B. .cgi ) definiert werden, der vom Server als Programm interpretiert wird. Enthält eine URL ein solches Dokument, so versucht der Server automatisch die Datei als Anwenung zu starten.

Der Weg, über den das CGI seine Eingabedaten erhält, ist abhängig von der Wahl des Betriebssystems. Auf Unix-Anlagen werden diese Informationen über die Standard-Eingabe (sdtin ) und aus Umgebungsvariablen bezogen. Für die Ausgabe an den Client stehen zwei Möglichkeiten zur Wahl: zum einen kann ein neues (virtuelles) Dokument erzeugt werden, oder aber es wird auf eine schon bestehende Seite verwiesen. Bei Unix werden die Dokumente direkt auf die Standard-Ausgabe (stdout ) ausgegeben. Bei diesem Vorgang kann man noch unterscheiden, ob die Daten direkt an den Client übertragen werden, oder ob sie vorher noch vom Client interpretiert werden sollen.

Die Ausgabe eines CGI-Programms besteht aus einem vollständigen bzw. einem Teil des HTTP-Headers, mindestens einer Leerzeile und den Rumpfdaten des Dokuments in Form von Text oder Binärdaten, die dann vom Browser analysiert und dargestellt werden.

5.1.2 Wahl der Programmiersprache

Für die Erstellung von CGI-Programmen stehen viele Entwicklungsumgebungen zur Verfügung. Bei der Wahl einer bestimmten Programmiersprache sollten hingegen einige Punkte beachtet werden. Zum einen ist es für die Analyse der Eingabedaten von Vorteil, wenn es Befehle gibt, die eine leichte Manipulation von Zeichenketten ermöglichen. Weiterhin ist es sinnvoll, wenn die Einbindung von Bibliotheken oder externer Utilities unterstützt wird, da so Programmteile, die immer wieder auftreten, öfter verwendet werden können. Schließlich ist es erforderlich, die Systemparameter auszulesen, die in Form von Umgebungsvariablen angeboten werden.

Häufig verwendete Programmiersprachen sind C oder C++. Aufgrund der durch den Compiler erzeugten Binärdateien verbrauchen solche Anwendungen in der Regel sehr wenig Systemressourcen. Das Speichermanagement und die strenge Typüberprüfung eignen sich nicht für die rasche Entwicklung von Anwendungen. Auch muß das Fehlen von Datenbank-Befehlen und die integrierte Verarbeitung von Suchmustern erst durch eigene Bibliotheken kompensiert werden. Eine Alternative in Unix-Umgebungen sind Shell-Skripten, die eine schnelle und einfache Erstellung von Anwendungen ermöglicht. Auch hier müssen für Datenbank-Funktionalität und Suchmuster externe Tools[*] bemüht werden. Im Bereich der plattformspezifischen Anwendungen werden Programmiersprachen, wie Visual Basic oder AppleScript verwendet. Hier ist die Anbindung von Programmen der gleichen Betriebssystem-Umgebung wie Datenbanken leicht möglich. Die Manipulation von Zeichenketten ist jedoch nur über Umwege zu erreichen, eine Integration von Informationen aus anderen Systemen ist nahezu ausgeschlossen.

Für die in dieser Arbeit implementierten Anwendungen kam die Programmiersprache Perl  zur Anwendung. Sie bietet sehr mächtige Features und ist selbst für einen Programmier-Neuling leicht zu erlernen:

Diese Argumente und der freie Vertrieb über das Internet haben erreicht, daß Perl die am weitesten verbreitete Programmiersprache für das Common Gateway Interface geworden ist.

5.1.3 Umgebung und Testmöglichkeiten

Zur Anwendungserstellung kam die Perl-Version 5.0 patchlevel 4 zum Einsatz. Als Ergänzung wurde die die CGI-Bibliothek CGI.pm  in der Version 2.36 verwendet, die verschiedene Objekte und Funktionen zum Erstellen von HTML-Formularen und zum Auswerten deren Inhalte zur Verfügung stellt.

Obwohl Perl einen Debugger zur Verfügung stellt wurden die Skripte bis zur syntaktischen Korrektheit auf Shell-Ebene getestet, da hier Fehlerbeschreibungen sehr einfach ersichtlich sind. Im Anschluß daran erfolgte ein Test und gegebenenfalls die Korrektur des Programmcodes durch Start in einem Web-Browser der Firma Netscape (Navigator oder Communicator). Da Perlskripten in der Regel keinen sehr großen Umfang haben, war eine längere Fehlersuche nicht notwendig.


previous next up contents index


10/6/1997