\section{Visualisierung}

Es gibt verschiedene M"oglichkeiten miteinander in
Beziehung stehende Texte darzustellen. F"ur die Visualisierung von
Programmtexten im Rahmen dieser Studienarbeit wird Hypertext verwendet
(vgl. Kapitel \ref{vTec}) .

In diesem Kapitel werden die Anforderungen an eine ben"otigte
Visualisierungstechnologie ermittelt, sowie die grundlegenden Mechanismen der
ausgew"ahlten Visualisierungsplattform (WWW) erl"autert.

\subsection{Anforderungen und Auswahl}
Folgende Anforderungen werden an die Visualisierungstechnologie gestellt:
\begin{itemize}
\item Die Visualisierungstechnologie soll es erlauben, Programmtexte innerhalb
  eines Netzwerkes verf"ugbar zu machen, d.h. die Programmtexte sollen zentral
  gespeichert werden und von jeder Station des Netzwerkes einsehbar sein.  Sie
  soll eine einfache Navigation innerhalb der Programmtexte bzw. Bibliotheken
  erm"oglichen.

\item Der Aufwand zur Darstellung der Programmtexte und ihrer Bez"uge soll
  gering gehalten werden, d.h. die Visualiserungstechnologie soll die
  Darstellung von Programmtexten und deren Bez"ugen auf m"oglichst hohem
  Niveau unterst"utzen.

\end{itemize}

Verschiedenen Visualisierungstechnologien unterst"utzen die Darstellung von
Hypertext auf unterschiedlichem Niveau. Mit Hilfe der
\emph{StarView}-Bibliothek lie\ss e sich z.B. ein betriebssystemunabh"angiges
Programm schreiben, das Hypertext darstellt und es erlaubt, darin zu
navigieren. Nachteil einer solchen L"osung ist der Programmieraufwand. Au\ss
erdem ist die Portierung auf solche Systeme eingeschr"ankt, f"ur die die
ausgew"ahlte Bibliothek verf"ugbar ist. Auch der Umfang einer ausgew"ahlten
Bibliothek spielt eine Rolle. Die \emph{StarView}-Bibliothek beinhaltet
beispielsweise keine Netzwerkunterst"utzung.

Das \emph{Info}-Programm [FOX89(FSF/GNU)] erlaubt es, Hypertext anzuzeigen,
indem die in Beziehung stehenden Texte in einem speziellen Format gespeichert
werden. Dieses Programm arbeitet jedoch nicht netzwerktransparent. Die
darzustellenden Texte m"ussen vor Aufruf des Programms bereitstehen, sie
k"onnen nicht erst bei Bedarf erzeugt werden. Der Zeitpunkt ihrer Erzeugung
ist also festlegt.

Das WWW (World Wide Web) erlaubt es, Hypertext
zentral zu speichern und in einem Netzwerk zugreifbar zu machen. Ferner kann
der anzuzeigende Text auch erst bei Bedarf erzeugt werden. Dies gestattet es,
den Erzeugungszeitpunkt unabh"angig von der Visualisierungstechnologie zu
w"ahlen. Die an die Visualiseriungstechnologie gestellten Anforderungen werden von den
Mechanismen des WWW erf"ullt. 


\subsection{Darstellung von Hypertext im World Wide Web}
Im WWW sind die meisten Internetdienste, wie z.B. FTP, Gopher und Telnet,
zusammengefa\ss t. Die Einheit, die zur Darstellung von Informationen im WWW
verwendet wird, ist die Seite. Eine Seite ist die grafische Darstellung von
Informationen, bestehend aus Text, Bildern und Verweisen.

Das WWW basiert auf dem Client/ Server Konzept. Der Client "ubernimmt die
Darstellung einer Seite und stellt dem Benutzer M"oglichkeiten zur Navigation
zur Verf"ugung. Die Aufgabe des Servers ist es, eine Menge von gespeicherten
Informationen im Netzwerk verf"ugbar zu machen. Die meisten Clients k"onnen
auf Server unterschiedlichen Typs zugreifen (FTP, Gopher). Abbildung
\ref{http} zeigt die Kommunikation eines Clients mit einem HTTP-Server.

Der Client hat die Auswahl zwischen einer Menge von HTTP-Servern. Die Auswahl
eines Servers erfolgt "uber die zugeh"orige Adresse. Diese Adresse ist Teil
einer URL (siehe Abschnitt \ref{labURLS}).  Je nach Art der Anfrage des
Clients gibt der HTTP-Server die angeforderten Daten entweder direkt, aus der
Menge der ihm zur verf"ugung stehenden Daten, zur"uck oder aktiviert ein
Programm zur Erzeugung der Daten (Gateway).


\begin{figure}[h]
  \includegraphics*{http.eps}
\caption{Verbindung eines HTTP-Clients mit einem HTTP-Server}
\label{http}
\end{figure}

Die meisten Clients sind in der Lage, eine Menge unterschiedlicher Daten
anzuzeigen. Die Seite ist jedoch die Basis der Darstellung, da sie die anderen
Daten integriert.

F"ur die Beschreibung von WWW-Seiten gibt es eine Seitenbeschreibungssprache.
Diese und die von ihr verwendeten Mechanismen werden im weiteren kurz
beschrieben. Au\ss erdem wird darauf eingegangen, wie der HTTP-Server mit den
ihm zur Verf"ugung stehenden Daten umgeht.

\subsection{Seitenbeschreibungssprache (HTML)} \label{kapHTML}
Seiten des WWW werden mit der Seitenbeschreibungssprache HTML (HyperText Markup
Language) beschrieben und k"onnen unter anderem Bilder und Verweise auf andere
Seiten enthalten. HTML an sich beschreibt Flie\ss text mit eingestreuten
Gliederungsanweisungen.

HTML-Seiten sind hierarchisch aufgebaut. Sie besitzen auf oberster Ebene
einen Kopf- (engl. \textit{head}) und einen Rumpfbreich
(engl. \textit{body}). Der Kopf beinhaltet den Titel, w"ahrend im Rumpf die
eigentliche Seite beschrieben wird.

HTML unterst"utzt geschachtelte Kapitel, verschiedene Arten von Listen und
bietet die M"oglichkeit, Grafiken einzubinden. Textteile k"onnen derart
markiert werden, da\ss\ sie kursiv oder fett oder auf andere Weise betont ausgegeben
werden. Es ist m"oglich, Abschnitte vorzuformatieren, so da\ss\ sie bei der
Ausgabe ihre Formatierung beibehalten. Au\ss erdem k"onnen Textstellen als Verweise
markiert werden, bei deren Auswahl die aktuelle Seite durch die referenzierte
ersetzt wird.

Es folgt ein Beispiel f"ur eine mit HTML beschriebene Seite.
\input{htmlex}

Diese Seite stellt einen Auszug einer Liste aller zu diesem Projekt geh"orenden
\emph{Tycoon}-Schnittstellen, -Module und -Bibliotheken dar. Sie hat einen Kopf
und einen Rumpf. Der Kopf beinhaltet den Titel, im Rumpf befindet sich eine
Beschreibung einer Liste von Referenzen.

\subsection{Seitenreferenzen (URLs)}\label{labURLS}
WWW-Seiten k"onnen Verweise, auf andere WWW-Seiten oder andere Daten im
Netzwerk, beinhalten.
Diese Verweise werden als URLs (Uniform Resource Locator) formuliert.
Ein URL ist eine Beschreibung der Position
und des Typs eines Dokumentes oder eines Dienstes im Internet. Durch die URLs
ist m"oglich, viele Internetdienste zusammenzufassen.

URLs haben folgenden Aufbau:
\begin{verbatim}
<Typ des Service>://<Adresse des Servers>[:<Port>]/<WWW-Seite>[?<Parameter>]
\end{verbatim}

Der Typ des Service w"ahlt die Art des Protokolls aus. 
Durch die Adresse wird im Netzwerk ein Computer ausgew"ahlt. 
Durch den Port wird ein Serviceprogramm auf dem adressierten Computer
ausgew"ahlt. Wird kein Port
angegeben, wird der Standardport f"ur das ausgew"ahlte Protokoll verwendet. 
Der optionale Parameter wird nur bei der Protokollart HTTP (siehe Abschnitt
\ref{kapHTTP}) verwendet.


Es folgt ein Beispiel f"ur einen URL:
\begin{verbatim}
http://www.informatik.uni-hamburg.de/entry.html
\end{verbatim}

Im HTML-Beispiel in
Abschnitt \ref{kapHTML} sind weitere URLs zu sehen.

\subsection{Transferprotokoll (HTTP)} \label{kapHTTP}
Das HTTP (HyperText Transfer Protocol) beschreibt die Kommunikation des WWW-Clients
mit dem WWW-Server. HTTP ist textbasiert, d.h. Anfragen und Anfrageergebnisse
werden als lesbarer Text transportiert. F"ur eine Anfrage eines Clients an
einen Server wird jeweils eine neue Verbindung aufgebaut, die nach
"Ubertragung der WWW-Seite wieder abgebaut wird (siehe Abb. \ref{http}), HTTP
ist also in dem Sinne verbindungslos, als da\ss\ eine Verbindung vom Client
zum Server nur w"ahrend der "Ubertragung von Daten besteht. Nach Verbindungsaufbau
"ubertr"agt der Client Informationen "uber sich (Software, Version), den Namen
der angeforderten Seite sowie eventuell einen Parameterstring. Dieser
Paramterstring ist Teil des die Daten referenzierenden URLs und wird als
Klartext angegeben. 
Wird das angeforderte Dokument von einem Gateway (siehe Abschnitt \ref{kapCGI}), d.h. dynamisch, erzeugt,
wird der Parameterstring dem Gateway als Paramter "ubergeben.
Der Client "ubermittelt dem Server auch eine Menge mit Dateiformaten, die er
anzeigen kann.

\begin{table}
\begin{center}
\begin{tabular}{|l|l|}
  \hline Name & Bedeutung \\ \hline SERVER\_SOFTWARE & Name und Version der
  Serversoftware \\ SERVER\_NAME & Name des Servers \\ GATEWAY\_INTERFACE &
  Name und Version der Schnittstelle \\ SERVER\_PROTOCOL & Name und Version
  des Protokolls \\ SERVER\_PORT & Nummer des Ports \\ REQUEST\_METHODE & Art
  der Parameter"ubergabe \\ HTTP\_ACCEPT & Datentypen, die der Client
  verarbeiten kann \\ SCRIPT\_NAME &
  Name des Gateways \\ QUERY\_STRING & Gateway Paramter \\ REMOTE\_HOST & Name
  des Clienthosts \\ REMOTE\_ADDR & Adresse des Clienthosts \\ REMOTE\_USER &
  Name des Benutzers \\ AUTH\_TYPE & Authentifizierungsmethode \\ 
  CONTENT\_TYPE & Art der Parameter \\ CONTENT\_LENGTH & L"ange der Parameter
  \\ \hline
\end{tabular}
\caption{Umgebungsvariablen eines Gateways}
\label{ENVGATEWAY}
\end{center}
\end{table}

\subsection{Servererweiterung (CGI)} \label{kapCGI}
HTTP-Server besitzen zur Erg"anzung ihrer Funktionalit"at eine Schnittstelle
zu externen Programmen, normalerweise das CGI (Common Gateway Interface). Die
Programme, die auf dieser Schnittstelle aufsetzen, werden als Gateways
bezeichnet, da sie meist Verbindungen zu Datenbanken oder anderen Servern
aufbauen.  Mit Hilfe des CGI ist es einem HTTP-Client m"oglich, Parameter an
das Gateway zu "ubergeben. Das CGI spezifiziert weiterhin eine Menge von
Umgebungsvariablen, die vom HTTP-Server an das Gateway "ubergeben werden
(siehe Tabelle \ref{ENVGATEWAY}).  Abbildung
\ref{http} zeigt die Kommunikation zwischen Gateway, HTTP-Client und HTTP-Server.


\begin{figure}[h]
  \centering{\includegraphics*{protCliSerCgi.eps}}
\caption{Kommunikation zwischen Client, Server und Gateway}
\label{http}
\end{figure}


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "quas"
%%% End: 
