\chapter{Einleitung}

\begin{quotation}\begin{flushright}{\it 
You need to build a system that is futureproof;\\
it's no good just making a modular system.\\
You need to realize that your system is just \\
going to be a module in some bigger system to come,\\
and so you have to be part of something else,\\
and it's a bit of a way of life.\\
}
Tim Berners-Lee, at the WWW7 conference
\end{flushright}\end{quotation}

{\it Am Anfang war TELNET.} Telnet ist ein Netzwerkprotokoll, dass das
Administrieren von Rechnern über ein Netzwerk ermöglicht. Der gesamte
Datenverkehr ist dabei unverschlüsselt und telnet eignet sich somit nicht zur
sicheren Nutzung in unsicheren Netzwerken, wie dem Internet.

{\it Dann kam SSH.} Eine Verbindung mit Secure Shell ist verschlüsselt. SSH-2
gilt heute noch als sicher. Es benötigt jedoch zum Aufbau einer Verbindung eine
Client-Software, die nicht auf jedem Rechner anzutreffen ist und deren
Installation nicht möglich ist. Häufig ist auf Rechnern, die man nicht sein
Eigen nennt, nur eine restriktive Nutzung möglich. Zum einen hat man
nicht immer die Berechtigung eigene Programme auszuführen. Zum anderen bauen
die PCs in Schulen, Universitäten, und Firmen häufig über einen Proxy eine
Verbindung in das Internet auf. Dieser Proxy kann dann aus Sicherheitsgründen
den Download von bestimmten Dateien oder Dateien mit bestimmten Dateiendungen
blockieren. Solch ein begrenzter Zugang beschränkt die Internetkonnektivität
meist auf wenige Ports, wie zum Beispiel 80 (HTTP), 443 (HTTPS), und 21 (FTP),
wodurch man zwar immer noch im Web surfen kann, andere Dienste aber unnutzbar
sind. Für SSH vorgesehen ist Port 22. Eine Verbindung ist nur dann möglich,
wenn man auf dem Server den Port, auf dem der SSH Daemon lauscht, ändert, wozu
man administrative Berechtigungen benötigt.

{\it Diese Probleme löst
\href{http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm}{AjaxTerm}.}  AjaxTerm
besteht aus einem Server und einem auf HTML, CSS, und AJAX aufgebauten Client.
Dieser ist somit in sämtlichen aktuellen graphischen Webbrowsern\footnote{Dazu
zählen beispielsweise Firefox, Opera, Konqueror, Safari, und Internet
Explorer.} lauffähig. Das Installieren eines Clients entfällt.\footnote{Es wird
angenommen, dass bereits ein graphischer Browser mit entsprechenden Fähigkeiten
auf dem Client-Rechner installiert ist.} Damit eine verschlüsselte und somit
sichere Verbindung zustande kommt, muss auf dem als Server fungierenden
Computer ein HTTP Server die Rolle eines Proxys annehmen.

Will man in AjaxTerm parallel mehrere Terminals nutzen, so muss für jedes ein
neues Browser-Fenster oder, sofern der Webbrowser dazu in der Lage ist, ein neuer
Tab geöffnet und erneut eingeloggt werden. Ein mühseliger Prozess, der durch
das Wechseln zwischen Fenstern bzw. Tabs zum Erreichen der Terminals noch einen
unangenehmen Nachgeschmack erhält.

{\it Jetzt ist es Zeit für ajaxWM.} AjaxWM basiert auf Ideen und Code von
AjaxTerm, ist jedoch ein Window Manager und Terminal Emulator in einem. Die
Nutzung ist komfortabler als bei AjaxTerm, da ein einmaliges Einloggen
ausreicht um mehrere Fenster erstellen zu können. Das Aussehen des Clients
lässt sich mit Themes an die eigenen Vorstellungen anpassen. AjaxWM ist, im
Gegensatz zu AjaxTerm, dass nur mit dem latin1-Encoding funktionert,
unicodefähig.

Das ajaxWM-Projekt und sein Subversion-Repository sind zu finden auf
\href{http://sourceforge.net/projects/ajaxwm}{Sourceforge}. Da es noch keine
öffentlichen Releases gibt, muss man die aktuelle Version von ajaxWM per SVN
beziehen.\footnote{{\tt svn co
https://ajaxwm.svn.sourceforge.net/svnroot/ajaxwm/ajaxwm/tags/0.2.0 ajaxwm}}
Zusätzlich benötigt man einen Theme, zur Zeit steht nur \hyperlink{lim}{lim}
zur Verfügung, den man auf die selbe Weise erhält.\footnote{{\tt svn co
https://ajaxwm.svn.sourceforge.net/svnroot/ajaxwm/themes/lim/tags/0.2.0
ajaxwm/src/themes/0.2.0}}

Diese Ausarbeitung zum Thema ajaxWM ist in fünf Teile gegliedert. Das Kapitel
über das Protokoll stammen von mir, Dennis Felsing, und Andreas Waidler, das
über den Server von mir, das über den Client von Andreas Waidler und das über
Themes von Ralf Schaufelberger. Es wird auf die Grundlagen der verwendeten
Sprachen und primär auf die Funktionsweise eingegangen. Den Abschluss stellen
der eigentliche Programmcode auf dem aktuellen Stand und eine Auflistung der
Dateien und ihrer Autoren dar.
\begin{flushright}{\it Dennis Felsing}\end{flushright}

\begin{landscape}
\begin{figure}[p]
\begin{center}
\includegraphics[width=1.2\textwidth]{Kapitel2/screenshot.png}
\end{center}
\caption{ajaxWM in Aktion: Eine Textdatei mit verschiedenen Schriftsystemen im
Texteditor vim, der Prozessmonitor htop, und der Tetrisklon seatris}
\end{figure}
\end{landscape}
