summaryrefslogtreecommitdiffstats
path: root/ausarbeitung
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-27 18:21:05 +0100
committerPatrick Hornecker2010-02-27 18:21:05 +0100
commitc8ffc7b23e89571f3fcf588db0221f56a37934c8 (patch)
tree6dcbf6076806bdc1b3aace222478759c1f651c10 /ausarbeitung
parenttex source (diff)
downloadfriendfinder-c8ffc7b23e89571f3fcf588db0221f56a37934c8.tar.gz
friendfinder-c8ffc7b23e89571f3fcf588db0221f56a37934c8.tar.xz
friendfinder-c8ffc7b23e89571f3fcf588db0221f56a37934c8.zip
tex source and bit code
Diffstat (limited to 'ausarbeitung')
-rw-r--r--ausarbeitung/Anhang.aux2
-rw-r--r--ausarbeitung/Anhang.tex339
-rw-r--r--ausarbeitung/Anhang.tex.backup379
-rw-r--r--ausarbeitung/Anhang.tex~339
-rw-r--r--ausarbeitung/Bilder/graph.pngbin7640 -> 7843 bytes
-rw-r--r--ausarbeitung/Einleitung.tex34
-rw-r--r--ausarbeitung/Einleitung.tex~34
-rw-r--r--ausarbeitung/Fazit.aux4
-rw-r--r--ausarbeitung/Fazit.tex27
-rw-r--r--ausarbeitung/Fazit.tex.backup18
-rw-r--r--ausarbeitung/Fazit.tex~27
-rw-r--r--ausarbeitung/Friend_Finder.aux14
-rw-r--r--ausarbeitung/Friend_Finder.tex188
-rw-r--r--ausarbeitung/Friend_Finder.tex.backup197
-rw-r--r--ausarbeitung/Friend_Finder.tex~188
-rw-r--r--ausarbeitung/Grundlagen.tex159
-rw-r--r--ausarbeitung/Grundlagen.tex.backup151
-rw-r--r--ausarbeitung/Grundlagen.tex~160
-rw-r--r--ausarbeitung/Title.aux2
-rw-r--r--ausarbeitung/Title.tex19
-rw-r--r--ausarbeitung/Title.tex~19
-rw-r--r--ausarbeitung/Tutorial.aux2
-rw-r--r--ausarbeitung/Tutorial.tex101
-rw-r--r--ausarbeitung/Tutorial.tex.backup99
-rw-r--r--ausarbeitung/Tutorial.tex~101
-rw-r--r--ausarbeitung/maindoc.log301
-rw-r--r--ausarbeitung/maindoc.out2
-rw-r--r--ausarbeitung/maindoc.pdfbin2000482 -> 1993904 bytes
-rw-r--r--ausarbeitung/maindoc.tex6
-rw-r--r--ausarbeitung/maindoc.tex~7
-rw-r--r--ausarbeitung/maindoc.toc8
31 files changed, 1336 insertions, 1591 deletions
diff --git a/ausarbeitung/Anhang.aux b/ausarbeitung/Anhang.aux
index defc7b4..a0571e0 100644
--- a/ausarbeitung/Anhang.aux
+++ b/ausarbeitung/Anhang.aux
@@ -1,6 +1,6 @@
\relax
\@setckpt{Anhang}{
-\setcounter{page}{32}
+\setcounter{page}{33}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
diff --git a/ausarbeitung/Anhang.tex b/ausarbeitung/Anhang.tex
index c869ad1..ef5bb02 100644
--- a/ausarbeitung/Anhang.tex
+++ b/ausarbeitung/Anhang.tex
@@ -3,16 +3,16 @@
\subsection*{Anhang 1}
-Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
-portieren, sind die folgenden Schritte nötig:
+Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von \textit{Ubuntu} nach \textit{Windows
+Mobile} zu portieren, sind die folgenden Schritte nötig: \newline
Zuerst muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tutorial wird
-der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem heruntergeladen muss dieser in das passende
+der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem Herunterladen muss dieser in das passende
Systemverzeichniss entpackt werden.\newline
-Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert
-werden.
+Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Pakete aus dem \textit{Ubuntu-Repository}
+installiert werden.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
sudo apt-get install build-essential make gcc bison flex subversion
autoconf libtool gettext libfreetype6-dev libpng12-dev zlib1g-dev
libjpeg-dev libtiff-dev libungif4-dev librsvg2-dev xorg-dev
@@ -20,13 +20,11 @@ libltdl3-dev libcurl4-dev cvs subversion git-core doxygen proj
libsqlite3-0 libsqlite3-dev
\end{lstlisting}
-% Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
-% Entwickler herunterladen.\newline
-Nun muss man noch ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
-können. Des weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
-einmalig exportiert werden müssen, damit die zum portieren benötigten \textit{Header-Files}, \textit{Libraries} und
-\textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt. Das
-Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
+Als nächstes muss ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
+können. Des Weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
+einmalig exportiert werden müssen. Dies ist notwendig damit die zum Portieren benötigten \textit{Header-Files}, \textit{Libraries}
+und \textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt.
+Das Anlegen dieser Datei geschieht mit Hilfe des Befehls \lstinline{touch mingw32ce.env}.
%
% \begin{lstlisting}
% touch mingw32ce.env
@@ -34,7 +32,7 @@ Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
%
Nun müssen noch folgende Einträge in der Datei \textit{mingw32ce.env} hinzugefügt werden.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
export CEGCC_PATH=/opt/cegcc
export MINGW32CE_PATH=/opt/mingw32ce
export WINCE_PATH=$HOME/workspace/wince
@@ -60,208 +58,108 @@ export LD_LIBRARY_PATH="$WINCE_PATH/bin"
export PKG_CONFIG_PATH="$WINCE_PATH/lib/pkgconfig"
\end{lstlisting}
-Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} auf ein neues exportiert werden, da die Variablen durch
-die hier gewählte Methode nur in den \textit{Shells} existieren, in denen sie exportiert wurden.\newline
-Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichniss des \textit{cegcc},
-beziehungsweiße des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Zielverzeichniss, der
-kompilierten Dateien, gespeichert werden. Mit \textit{PATH} werden die \textit{Binaries} des \textit{CeGCC's}, in den
-systemweiten \textit{Binary}-Pfad aufgenommen. Des weiteren werden unter \textit{CPPFLAGS} die \textit{include}-Pfade und
-unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH} zeigt auf den
-Ordner in welchem die kompilierten und unter Umständen benötigten, ausführbaren Dateien liegen. \textit{PKG\_CONFIG\_PATH}
-zeigt schliesslich noch auf den Ordner der die Paketinformationen der installierten Dateien beinhaltet. Das exportieren dieser
-Werte geschieht mit dem Aufruf \lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
-%
-%\begin{lstlisting}
-%source <Pfad-zu-der-Datei>/mingw32ce.env
-%\end{lstlisting}
-%
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} exportiert werden. Die Variablen existieren nur in
+den \textit{Shells}, in denen sie exportiert wurden.\newline
+Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichnis des \textit{cegcc},
+beziehungsweise des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Verzeichnis in dem die
+kompilierten Dateien gespeichert werden sollen, eingetragen werden. Mit \textit{PATH} werden die \textit{Binaries} des
+\textit{CeGCC's}, in den systemweiten Pfad der ausführbaren Dateien aufgenommen. Des Weiteren werden unter \textit{CPPFLAGS} die
+\textit{include}-Pfade und unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH}
+zeigt auf den Ordner in welchem ausführbare Dateien liegen, die zum kompilieren benötigt werden.
+\textit{PKG\_CONFIG\_PATH} zeigt schliesslich noch auf den Ordner, der die Paketinformationen der installierten Dateien
+beinhaltet. Das Exportieren dieser Werte geschieht mit dem Aufruf
+\lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} gespeichert werden kann.
-Nach dem Wechseln in diesen besagten Ordner kann mit dem nächsten Schritt fortgefahren werden.
+Nach dem Wechseln in selbigen kann mit dem nächsten Schritt fortgefahren werden.
\subsubsection*{Evil}
-Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
-herunterzuladen. Das Herunterladen wird mit \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}
-ausgeführt.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/evil
-%\end{lstlisting}
-%
-Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den
-\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript mit dem Aufruf
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| starten. \newline
-%
-%\begin{lstlisting}
- %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-%\end{lstlisting}
-%
-Durch das Ausführen des Skriptes mit den obigen Parametern wird der Installationspfad auf den Wert der Variable
-\textit{WINCE\_PATH} gesetzt, als Zielsystem ein \textit{ARM}-Prozessor gewählt und der \textit{mingw32ce}-Kompiler als Kompiler
-festgelegt.\newline
-Nachdem dieses Skript erfolgreich ausgeführt wurde, kann man im nächsten Schritt das Programm durch ausführen von
-\lstinline{make} erstellen und im Anschluss durch \lstinline{make install} installieren. Nach diesem Schritt sollte \textit{Evil}
-erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde, installiert worden sein.
-%
-%\begin{lstlisting}
- %make
-%\end{lstlisting}
-%
-%Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
-%installieren.
-%
-%\begin{lstlisting}
- %make install
-%\end{lstlisting}
-%
+Zuerst muss der Quellcode von \textit{Evil} aus dem \textit{SVN} heruntergeladen werden. Das Herunterladen wird mit
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil} ausgeführt.
+Nachdem alle Dateien erfolgreich heruntergeladen wurden, muss falls nicht schon geschehen, die Datei mit den
+\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies durchgeführt wurde, kann nun das Konfigurationsskript mit dem
+Aufruf \lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| gestartet werden. \newline
+Durch das Ausführen des Skriptes mit den diesen Parametern wird der Installationspfad auf den Wert der Variable
+\textit{WINCE\_PATH} gesetzt und der \textit{mingw32ce}-Kompiler als Kompiler festgelegt.\newline
+Nachdem dieses Skript erfolgreich ausgeführt wurde, kann im nächsten Schritt das Programm durch Ausführen von
+\lstinline{make} erstellt und im Anschluss durch \lstinline{make install} installiert werden.
+Nach diesem Schritt sollte \textit{Evil} erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde,
+installiert worden sein.
\subsubsection*{Eina}
-Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository durch
-\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
-%
-%\begin{lstlisting}
- %svn co http://svn.enlightenment.org/svn/e/trunk/eina
-%\end{lstlisting}
-%
-Danach wird auch hier wieder das ``autogen.sh'' Skript durch
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| Skript aufgerufen. \newline
-%
-%\begin{lstlisting}
- %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-%\end{lstlisting}
-%
+Hier ist es ebenfalls nötig die Dateien aus dem Entwickler-Repository durch
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
+Danach wird das \textit{autogen.sh} Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| aufgerufen. \newline
Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch \textit{--disable-pthread}.
-Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{pthread} deaktiviert, da diese auf dem Zielsystem
+Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{libpthread} deaktiviert, da diese auf dem Zielsystem
nicht unterstützt wird.\newline
-Nachdem das Skript ausgeführt wurde, muss nun auch wieder das Programm mit \lstinline{make} erstellt und im Zielverzeichniss
-mit \lstinline{make install} installiert werden.
-
-%\begin{lstlisting}
- %make ; make install
-%\end{lstlisting}
+Nachdem das Skript ausgeführt wurde, wird das Programm nun mit \lstinline{make} erstellt und im Zielverzeichnis
+mit \lstinline{make install} installiert.
\subsubsection*{Eet}
-Bevor man \textit{Eet} erstellen kann, muss man noch vier \textit{tar-Archive} im Verzeichniss, welches in der
+Bevor man \textit{Eet} erstellen kann, muss man noch vier \textit{tar-Archive} im Verzeichnis, welches in der
Variable \textit{WINCE\_PATH} gespeichert wurde, entpacken. Diese Archive können unter den Links, welche in Anhang 2 zu finden
-sind, heruntergeladen werden. Im Anschluss müssen diese nur noch in das \textit{WINCE\_PATH}-Verzeichniss kopiert und
-entpackt werden. Nun kann der Quellcode für \textit{Eet} durch ausführen von
+sind, heruntergeladen werden. Im Anschluss müssen diese in das \textit{WINCE\_PATH}-Verzeichnis kopiert und
+entpackt werden. Nun kann der Quellcode für \textit{Eet} durch Ausführen von
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet} heruntergeladen werden.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/eet
-%\end{lstlisting}
-Nachdem die \textit{Eet} Dateien vorhanden sind, muss wieder das \textit{autogen.sh}-Skript durch
+Nachdem die Dateien vorhanden sind, muss das \textit{autogen.sh}-Skript durch
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen und ausgeführt werden.
-%\begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-%\end{lstlisting}
-%
-Im Anschluss muss nun auch wieder mit \lstinline{make} kompiliert und mit \lstinline{make install} installiert werden.
-%
-%\begin{lstlisting}
-% make ; make install
-%\end{lstlisting}
+Im Anschluss wird mit \lstinline{make} kompiliert und mit \lstinline{make install} installiert.
\subsubsection*{Embryo}
-Der Erste Schritt ist auch hier das Herunterladen des Programmcodes unter der Verwendung von
+Der Erste Schritt ist das Herunterladen des Programmcodes unter der Verwendung von
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-% \end{lstlisting}
-%
-Nachdem die Dateien heruntergeladen wurden, durch \lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
-\textit{autogen.sh}-Skript aufrufen.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% \end{lstlisting}
-%
-Im Anschluss nun auch wieder kompilieren mit \lstinline{make} und installieren mit \lstinline{make install}.
-%
-%\begin{lstlisting}
-% make ; make install
-%\end{lstlisting}
+Nachdem die Dateien heruntergeladen wurden, muss durch
+\lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
+\textit{autogen.sh}-Skript aufgerufen werden.
+Im Anschluss mit \lstinline{make} kompilieren und mit \lstinline{make install} installieren.
\subsubsection*{Evas}
Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Diese werden in das
-gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt. Nun müssen noch die Dateien, welche die Paketinformationen
+gleiche Verzeichnis, wie die vorhergegangenen Archive, entpackt. Nun müssen noch die Dateien, welche die Paketinformationen
beinhalten, um die heruntergeladen Pakete ergänzt werden:
-\begin{lstlisting}[breakatwhitespace=true]
+\begin{lstlisting}[breakatwhitespace=true,backgroundcolor=\color{grey}]
cp $WINCE_PATH/libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc $WINCE_PATH/lib/freetype2.pc
\end{lstlisting}
-Die Packetinformationen müssen noch bearbeitet werden. Dazu werden die zwei Dateien, \textit{freetype2.pc}, \textit{libpng} und
-\textit{libpng12.pc}, mit einem beliebigen Editor geöffnet und in beiden Dateien der Wert der Variable \textit{prefix} auf
-{WINCE\_PATH} gesetzt. Nachdem dies durchgeführt wurde kann nun der Quellcode von \textit{Evas}
+Die Paketinformationen müssen allerdings noch bearbeitet werden. Dazu werden folgende drei Dateien, \textit{freetype2.pc},
+\textit{libpng.pc} und \textit{libpng12.pc} benötigt. Diese werden daraufolgend mit einem beliebigen Editor geöffnet und allen
+drei Dateien der Wert der Variable \textit{prefix} auf \textit{\$WINCE\_PATH} gesetzt. Nachdem dies durchgeführt wurde kann nun
+der Quellcode von \textit{Evas}
durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/evas
-% \end{lstlisting}
-%
Es muss auch hier, wie bei allen anderen Programmen, das \textit{autogen.sh}-Skript durch
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| aufgerufen werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
-% \end{lstlisting}
-%
Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
-%
-% \begin{lstlisting}
-% make
-% \end{lstlisting}
-%
Sollte hierbei die Datei \textit{ft2build.h} nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden.
-Ursprünglich liegt diese Datei unter \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|.
-%
-% \begin{lstlisting}
-% $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
-% \end{lstlisting}
-%
-Allerdings kann sie in diesem Ordner nicht gefunden werden. Um dies zu umgehen muss \textit{ft2build.h} eine Ordnerebene
-nach oben kopiert werden. Dies geschieht durch den Aufruf von
-\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include|. \newline
-%
-%
-% \begin{lstlisting}
-% cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
-% \end{lstlisting}
-%
+Ursprünglich ist diese Datei unter \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h| zu
+finden.
+Es kann vorkommen das sie in diesem Ordner nicht gefunden wird. Um dies zu beheben muss \textit{ft2build.h} eine Ordnerebene
+nach oben kopiert werden. Dies geschieht durch den Aufruf von
+\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h$WINCE_PATH/freetype-2.3.7-dev/include|
+. \newline
Um einen weiteren Fehler von vorneherein zu umgehen, muss noch der Pfad eines eingebundenen Headers in \textit{ft2build.h}
-abgeändert werden.
+abgeändert werden.
Hierzu öffnet man \textit{ft2build.h} mit einem beliebigen Editor und ändert \lstinline{#include <freetype/config/ftheader.h>} zu
\lstinline{#include <freetype2/freetype/config/ftheader.h>} ab. \newline
-%
-% \begin{lstlisting}
-% % #include <freetype/config/ftheader.h>
-% \end{lstlisting}
-
-% zu
-
-% \begin{lstlisting}
-% #include <freetype2/freetype/config/ftheader.h>
-% \end{lstlisting}
-%
Anschliessend muss nun auch der \textit{freetype}-Ordner um eine Ebene nach oben kopieren werden, da die
\textit{include}-Pfade in den Headern von \textit{freetype2} nicht korrekt sind.\newline
-Falls man nun noch \textit{Evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
-und \textit{ddraw.h} in die Verzichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und
-\textit{/opt/mingw32ce/arm-mingw32ce/include/} kopieren.
+Falls man nun noch \textit{Evas} mit \textit{DirectX-Support} kompilieren möchte, muss das \textit{DirectX-SDK} herunterladen
+und \textit{ddraw.h} in die Verzeichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und
+\textit{/opt/mingw32ce/arm-mingw32ce/include/} kopiert werden.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im \textit{winnt.h}-Header vorgenommen werden. Dieser liegt im
+Um \textit{Ecore} zu erstellen muss zuerst eine Änderung im \textit{winnt.h}-Header vorgenommen werden. Dieser liegt im
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
#define PROCESS_SET_QUOTA 0x0100
#define PROCESS_SET_INFORMATION 0x0200
#define PROCESS_QUERY_INFORMATION 0x0400
@@ -274,95 +172,54 @@ Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im \textit{winnt.h}-H
Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \textit{winnt.h} eingefügt
werden.\newline
-Nachdem dieser Schritt ausgeführt wurde kann \textit{Ecore} erstellt werden. Dazu wird auch hier wieder das
+Nachdem dieser Schritt ausgeführt wurde kann \textit{Ecore} erstellt werden. Dazu wird das
\textit{autogen.sh}-Skript durch den Aufruf von
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| ausgeführt. \newline
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-% \end{lstlisting}
-%
-Nachdem das Skript erfolgreich ausgeführt wurde ,können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen
-Programmen ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| gestartet. \newline
+Nachdem das Skript erfolgreich ausgeführt wurde, können nun die gleichen zwei Schritte wie bei den vorhergegangenen
+Programmen ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann
+mit
\lstinline{make install} installiert werden.
\subsubsection*{Edje}
Auch hier müssen zuerst die Dateien durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}
heruntergeladen werden.
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-% \end{lstlisting}
-%
-Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript durch
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% \end{lstlisting}
-%
-Die letzten beiden Schritte sind auch hier wieder kompilieren und Installation durch \lstinline{make} und
-\lstinline{make install} ausführen.
-
-% \begin{lstlisting}
-% make ; make install
-% \end{lstlisting}
+Nachdem die Dateien heruntergeladen wurden, muss das Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
+Die letzten beiden Schritte sind kompilieren und installieren durch \lstinline{make} und
+\lstinline{make install}.
\subsubsection*{Elementary}
-Zuerst müssen auch hier der Quellcode und benötigte Daten heruntergeladen werden. Dies geschieht durch den Aufruf von
+Zuerst ist es notwendig den Quellcode und die benötigte Daten herunterzuladen. Dies geschieht durch den Aufruf von
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}.
-%
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
-% \end{lstlisting}
-%
-Nun muss auch wieder das \textit{autogen.sh}-Skript mit
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc| gestartet und ausgeführt
-werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% --with-edje-cc=$WINCE_PATH/bin/edje_cc
-% \end{lstlisting}
-%
-Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, muss man im in der Datei
-\textit{Makefile.am} im Ordner \textit{src/bin/} alle Vorkommnisse von \textit{test\_fileselector.c} entfernen und folgende
-Zeilen auskommentiert werden:
-
-\begin{lstlisting}
+Nun muss das \textit{autogen.sh}-Skript mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc|
+gestartet und ausgeführt werden.
+Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, sollte man im in der Datei
+\textit{Makefile.am} im Ordner \textit{\textless Pfad-zu-Elementary\textgreater /src/bin/} alle Vorkommnisse von
+\textit{test\_fileselector.c} entfernen und folgende
+Zeilen auskommentieren:
+\begin{lstlisting}[backgroundcolor=\color{grey}]
bin_PROGRAMS = elementary_test
if BUILD_QUICKLAUNCH
bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
endif
\end{lstlisting}
-
-Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und \lstinline{make install} erstellt und installiert
-werden.
-%
-% \begin{lstlisting}
-% make ; make install
-% \end{lstlisting}
+Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und
+\lstinline{make install} erstellt und installiert werden.
\subsubsection*{Weitere Schritte}
Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in \textit{WINCE\_PATH} angelegt und dessen Zugriffsrechte
-abgeändert werden. Das Anlegen des Skriptes erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden durch
-\lstinline{chmod 774 efl_zip.sh} abgeändert. \newline
-%
-% \begin{lstlisting}
-% touch efl_zip.sh
-% chmod 774 efl_zip.sh
-% \end{lstlisting}
-%
-In dieses Skript wird nun der Code kopiert, welcher unter Anhang 4 zu finden ist.\newline
+abgeändert werden. Das Anlegen des Skripts erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden
+durch \lstinline{chmod 774 efl_zip.sh} abgeändert. In dieses Skript wird nun der Code kopiert, welcher unter Anhang 4 zu finden
+ist.\newline
Bei Ausführung dieses Skripts werden die vorhandenen \textit{DLL's} nocheinmal komprimiert und alles in einen Ordner mit dem Namen
-\textit{efl} kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefast und komprimiert. Möchte
-man nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen \textit{efl} Ordner hinzufügen und erneut
-komprimieren. Nun kann dieses Archiv auf das Mobile Gerät kopiert und entpackt werden.
-
+\textit{efl} kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefasst. Möchte
+man nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen \textit{efl} Ordner hinzufügen und das Skript aus
+Anhang 4 erneut ausführen. Nun kann dieses Archiv auf das mobile Gerät kopiert und entpackt werden.
+ \newpage
\subsection*{Anhang 2}
Archive für \textit{Eet}:
@@ -394,7 +251,7 @@ Archive für \textit{Evas}:
\subsection*{Anhang 4}
efl\_zip.sh:
-\begin{lstlisting}[breakatwhitespace=false]
+\begin{lstlisting}[breakatwhitespace=false,backgroundcolor=\color{grey}]
#!/bin/sh
rm -rf efl/
diff --git a/ausarbeitung/Anhang.tex.backup b/ausarbeitung/Anhang.tex.backup
index fe799b8..992a6e5 100644
--- a/ausarbeitung/Anhang.tex.backup
+++ b/ausarbeitung/Anhang.tex.backup
@@ -3,16 +3,16 @@
\subsection*{Anhang 1}
-Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
-portieren, sind die folgenden Schritte nötig:
+Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von \textit{Ubuntu} nach \textit{Windows
+Mobile} zu portieren, sind die folgenden Schritte nötig: \newline
Zuerst muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tutorial wird
-der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem heruntergeladen muss dieser in das passende
+der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem Herunterladen muss dieser in das passende
Systemverzeichniss entpackt werden.\newline
-Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert
-werden.
+Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Pakete aus dem \textit{Ubuntu-Repository}
+installiert werden.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
sudo apt-get install build-essential make gcc bison flex subversion
autoconf libtool gettext libfreetype6-dev libpng12-dev zlib1g-dev
libjpeg-dev libtiff-dev libungif4-dev librsvg2-dev xorg-dev
@@ -20,13 +20,11 @@ libltdl3-dev libcurl4-dev cvs subversion git-core doxygen proj
libsqlite3-0 libsqlite3-dev
\end{lstlisting}
-% Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
-% Entwickler herunterladen.\newline
-Nun muss man noch ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
-können. Des weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
-einmalig exportiert werden müssen, damit die zum portieren benötigten \textit{Header-Files}, \textit{Libraries} und
-\textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt. Das
-Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
+Als nächstes muss ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
+können. Des Weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
+einmalig exportiert werden müssen. Dies ist notwendig damit die zum Portieren benötigten \textit{Header-Files}, \textit{Libraries}
+und \textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt.
+Das Anlegen dieser Datei geschieht mit Hilfe des Befehls \colorbox{grey}{\lstinline{touch mingw32ce.env}}.
%
% \begin{lstlisting}
% touch mingw32ce.env
@@ -34,7 +32,7 @@ Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
%
Nun müssen noch folgende Einträge in der Datei \textit{mingw32ce.env} hinzugefügt werden.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
export CEGCC_PATH=/opt/cegcc
export MINGW32CE_PATH=/opt/mingw32ce
export WINCE_PATH=$HOME/workspace/wince
@@ -60,207 +58,109 @@ export LD_LIBRARY_PATH="$WINCE_PATH/bin"
export PKG_CONFIG_PATH="$WINCE_PATH/lib/pkgconfig"
\end{lstlisting}
-Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} auf ein neues exportiert werden, da die Variablen durch
-die hier gewählte Methode nur in den \textit{Shells} existieren, in denen sie exportiert wurden.\newline
-Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichniss des \textit{cegcc},
-beziehungsweiße des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Zielverzeichniss, der
-kompilierten Dateien, gespeichert werden. Mit \textit{PATH} werden die \textit{Binaries} des \textit{CeGCC's}, in den
-systemweiten \textit{Binary}-Pfad aufgenommen. Des weiteren werden unter \textit{CPPFLAGS} die \textit{include}-Pfade und
-unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH} zeigt auf den
-Ordner in welchem die kompilierten und unter Umständen benötigten, ausführbaren Dateien liegen. \textit{PKG\_CONFIG\_PATH}
-zeigt schliesslich noch auf den Ordner der die Paketinformationen der installierten Dateien beinhaltet. Das exportieren dieser
-Werte geschieht mit dem Aufruf \lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
-%
-%\begin{lstlisting}
-%source <Pfad-zu-der-Datei>/mingw32ce.env
-%\end{lstlisting}
-%
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} exportiert werden. Die Variablen existieren nur in
+den \textit{Shells}, in denen sie exportiert wurden.\newline
+Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichnis des \textit{cegcc},
+beziehungsweise des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Verzeichnis in dem die
+kompilierten Dateien gespeichert werden sollen, eingetragen werden. Mit \textit{PATH} werden die \textit{Binaries} des
+\textit{CeGCC's}, in den systemweiten Pfad der ausführbaren Dateien aufgenommen. Des Weiteren werden unter \textit{CPPFLAGS} die
+\textit{include}-Pfade und unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH}
+zeigt auf den Ordner in welchem ausführbare Dateien liegen, die zum kompilieren benötigt werden.
+\textit{PKG\_CONFIG\_PATH} zeigt schliesslich noch auf den Ordner, der die Paketinformationen der installierten Dateien
+beinhaltet. Das Exportieren dieser Werte geschieht mit dem Aufruf
+\colorbox{grey}{\lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}}.\newline
Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} gespeichert werden kann.
-Nach dem Wechseln in diesen besagten Ordner kann mit dem nächsten Schritt fortgefahren werden.
+Nach dem Wechseln in selbigen kann mit dem nächsten Schritt fortgefahren werden.
\subsubsection*{Evil}
-Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
-herunterzuladen. Das Herunterladen wird mit \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}
-ausgeführt.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/evil
-%\end{lstlisting}
-%
-Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den
-\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript mit dem Aufruf
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| starten. \newline
-%
-%\begin{lstlisting}
- %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-%\end{lstlisting}
-%
-Durch das Ausführen des Skriptes mit den obigen Parametern wird der Installationspfad auf den Wert der Variable
-\textit{WINCE\_PATH} gesetzt, als Zielsystem ein \textit{ARM}-Prozessor gewählt und der \textit{mingw32ce}-Kompiler als Kompiler
-festgelegt.\newline
-Nachdem dieses Skript erfolgreich ausgeführt wurde, kann man im nächsten Schritt das Programm durch ausführen von
-\lstinline{make} erstellen und im Anschluss durch \lstinline{make install} installieren. Nach diesem Schritt sollte \textit{Evil}
-erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde, installiert worden sein.
-%
-%\begin{lstlisting}
- %make
-%\end{lstlisting}
-%
-%Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
-%installieren.
-%
-%\begin{lstlisting}
- %make install
-%\end{lstlisting}
-%
+Zuerst muss der Quellcode von \textit{Evil} aus dem \textit{SVN} heruntergeladen werden. Das Herunterladen wird mit
+\colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}} ausgeführt.
+Nachdem alle Dateien erfolgreich heruntergeladen wurden, muss falls nicht schon geschehen, die Datei mit den
+\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies durchgeführt wurde, kann nun das Konfigurationsskript mit dem
+Aufruf \colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce|} gestartet werden. \newline
+Durch das Ausführen des Skriptes mit den diesen Parametern wird der Installationspfad auf den Wert der Variable
+\textit{WINCE\_PATH} gesetzt und der \textit{mingw32ce}-Kompiler als Kompiler festgelegt.\newline
+Nachdem dieses Skript erfolgreich ausgeführt wurde, kann im nächsten Schritt das Programm durch Ausführen von
+\colorbox{grey}{\lstinline{make}} erstellt und im Anschluss durch \colorbox{grey}{\lstinline{make install}} installiert werden.
+Nach diesem Schritt sollte \textit{Evil} erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde,
+installiert worden sein.
\subsubsection*{Eina}
-Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository durch
-\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
-%
-%\begin{lstlisting}
- %svn co http://svn.enlightenment.org/svn/e/trunk/eina
-%\end{lstlisting}
-%
-Danach wird auch hier wieder das ``autogen.sh'' Skript durch
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| Skript aufgerufen. \newline
-%
-%\begin{lstlisting}
- %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-%\end{lstlisting}
-%
+Hier ist es ebenfalls nötig die Dateien aus dem Entwickler-Repository durch
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
+Danach wird das \textit{autogen.sh} Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| aufgerufen. \newline
Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch \textit{--disable-pthread}.
-Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{pthread} deaktiviert, da diese auf dem Zielsystem
+Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{libpthread} deaktiviert, da diese auf dem Zielsystem
nicht unterstützt wird.\newline
-Nachdem das Skript durchgelaufen ist, muss man nun auch wieder das Programm mit \lstinline{make} erstellen und im Zielverzeichniss
-mit \lstinline{make install} installieren.
-
-%\begin{lstlisting}
- %make ; make install
-%\end{lstlisting}
+Nachdem das Skript ausgeführt wurde, wird das Programm nun mit \colorbox{grey}{\lstinline{make}} erstellt und im Zielverzeichnis
+mit \colorbox{grey}{\lstinline{make install}} installiert.
\subsubsection*{Eet}
-Bevor man \textit{Eet} erstellen kann, muss man noch vier vorgefertigte \textit{tar-Archive} im Verzeichniss, welches in der
-Variable ``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive kann man unter den Links, welche in Anhang 2 zu finden sind,
-herunterladen. Nach dem Herunterladen müssen diese nur noch in das ``WINCE\_PATH''-Verzeichniss kopiert und entpackt werden. Nun
-kann man den Quellcode für \textit{Eet} durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet}
-herunterladen.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/eet
-%\end{lstlisting}
-Nachdem die Dateien heruntergeladen sind, muss wieder das ``autogen.sh``-Skript durch
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
-%\begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-%\end{lstlisting}
-%
-Im Anschluss muss nun auch wieder kompiliert mit \lstinline{make} und mit \lstinline{make install} installiert werden.
-%
-%\begin{lstlisting}
-% make ; make install
-%\end{lstlisting}
+Bevor man \textit{Eet} erstellen kann, muss man noch vier \textit{tar-Archive} im Verzeichnis, welches in der
+Variable \textit{WINCE\_PATH} gespeichert wurde, entpacken. Diese Archive können unter den Links, welche in Anhang 2 zu finden
+sind, heruntergeladen werden. Im Anschluss müssen diese in das \textit{WINCE\_PATH}-Verzeichnis kopiert und
+entpackt werden. Nun kann der Quellcode für \textit{Eet} durch Ausführen von
+\colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet}} heruntergeladen werden.
+Nachdem die Dateien vorhanden sind, muss das \textit{autogen.sh}-Skript durch
+\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce|} aufgerufen und ausgeführt werden.
+Im Anschluss wird mit \colorbox{grey}{\lstinline{make}} kompiliert und mit \colorbox{grey}{\lstinline{make install}} installiert.
\subsubsection*{Embryo}
-Der Erste Schritt ist auch hier das Herunterladen des Programmcodes unter der Verwendung von
-\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-% \end{lstlisting}
-%
-Nachdem die Dateien heruntergeladen sind auch wieder mit \lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
-Skript aufrufen.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% \end{lstlisting}
-%
-Im Anschluss nun auch wieder kompilieren mit \lstinline{make} und installieren mit \lstinline{make install}.
-%
-%\begin{lstlisting}
-% make ; make install
-%\end{lstlisting}
+Der Erste Schritt ist das Herunterladen des Programmcodes unter der Verwendung von
+\colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}}.
+Nachdem die Dateien heruntergeladen wurden, muss durch
+\colorbox{grey}{\lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce}} das
+\textit{autogen.sh}-Skript aufgerufen werden.
+Im Anschluss mit \colorbox{grey}{\lstinline{make}} kompilieren und mit \colorbox{grey}{\lstinline{make install}} installieren.
\subsubsection*{Evas}
-Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollten diese in das
-gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die
-Paketinformationen beinhalten, um die heruntergeladen Pakete ergänzt werden:
+Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Diese werden in das
+gleiche Verzeichnis, wie die vorhergegangenen Archive, entpackt. Nun müssen noch die Dateien, welche die Paketinformationen
+beinhalten, um die heruntergeladen Pakete ergänzt werden:
-\begin{lstlisting}[breakatwhitespace=true]
+\begin{lstlisting}[breakatwhitespace=true,backgroundcolor=\color{grey}]
cp $WINCE_PATH/libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc $WINCE_PATH/lib/freetype2.pc
\end{lstlisting}
-Nun müssen diese Packetinformationen noch bearbeitet werden. Dazu müssen diese mit einem beliebigen Editor geöffnet werden und in
-beiden Dateien der Wert von ''prefix`` auf ''WINCE\_PATH`` gesetzt werden. Nachdem dies durchgeführt wurde kann nun \textit{Evas}
-durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/evas
-% \end{lstlisting}
-%
-Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen durch
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
-% \end{lstlisting}
-%
+Die Paketinformationen müssen allerdings noch bearbeitet werden. Dazu werden folgende drei Dateien, \textit{freetype2.pc},
+\textit{libpng.pc} und \textit{libpng12.pc} benötigt. Diese werden daraufolgend mit einem beliebigen Editor geöffnet und allen
+drei Dateien der Wert der Variable \textit{prefix} auf \textit{\$WINCE\_PATH} gesetzt. Nachdem dies durchgeführt wurde kann nun
+der Quellcode von \textit{Evas}
+durch ausführen von \colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas}} heruntergeladen werden.
+Es muss auch hier, wie bei allen anderen Programmen, das \textit{autogen.sh}-Skript durch
+\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events|} aufgerufen werden.
Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
-%
-% \begin{lstlisting}
-% make
-% \end{lstlisting}
-%
-Sollte hierbei die Datei ''ft2build.h`` nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden. Ursprünglich
-ist die Datei an folgendem Ort zu finden: \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|.
-%
-% \begin{lstlisting}
-% $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
-% \end{lstlisting}
-%
-Allerdings wird sie im Ordner ''freetype2`` nicht gefunden. Um dies zu umgehen muss ''ft2build.h`` einfach eine Ordnerebene nach
-oben kopiert werden. Dies geschieht durch den Aufruf von
-\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include|. \newline
-%
-%
-% \begin{lstlisting}
-% cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
-% \end{lstlisting}
-%
-Um einen weiteren Fehler von vorneherein zu umgehen, muss man noch den Pfad eines eingebundenen Headers in ''ft2build.h``
-abändern.
-Hierzu öffnet man ''ft2build.h`` mit einem beliebigen Editor und ändert \lstinline{#include <freetype/config/ftheader.h>} zu
-\lstinline{#include <freetype2/freetype/config/ftheader.h>} ab. \newline
-%
-% \begin{lstlisting}
-% % #include <freetype/config/ftheader.h>
-% \end{lstlisting}
-
-% zu
-
-% \begin{lstlisting}
-% #include <freetype2/freetype/config/ftheader.h>
-% \end{lstlisting}
-%
-Anschliessend muss nun auch der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
-\textit{include}-Pfade in den Headern von ''freetype2`` nicht korrekt sind.\newline
-Falls man nun noch \textit{evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
-und ''ddraw.h`` in die Verzichnisse ''/opt/cegcc/arm-cegcc/include/w32api/'' und ''/opt/mingw32ce/arm-mingw32ce/include/''
-kopieren.
+Sollte hierbei die Datei \textit{ft2build.h} nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden.
+Ursprünglich ist diese Datei unter \colorbox{grey}{\lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|} zu
+finden.
+Es kann vorkommen das sie in diesem Ordner nicht gefunden wird. Um dies zu beheben muss \textit{ft2build.h} eine Ordnerebene
+nach oben kopiert werden. Dies geschieht durch den Aufruf von
+\colorbox{grey}{\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h$WINCE_PATH/freetype-2.3.7-dev/include|}
+. \newline
+Um einen weiteren Fehler von vorneherein zu umgehen, muss noch der Pfad eines eingebundenen Headers in \textit{ft2build.h}
+abgeändert werden.
+Hierzu öffnet man \textit{ft2build.h} mit einem beliebigen Editor und ändert \colorbox{grey}{\lstinline{#include
+<freetype/config/ftheader.h>}} zu
+\colorbox{grey}{\lstinline{#include <freetype2/freetype/config/ftheader.h>}} ab. \newline
+Anschliessend muss nun auch der \textit{freetype}-Ordner um eine Ebene nach oben kopieren werden, da die
+\textit{include}-Pfade in den Headern von \textit{freetype2} nicht korrekt sind.\newline
+Falls man nun noch \textit{Evas} mit \textit{DirectX-Support} kompilieren möchte, muss das \textit{DirectX-SDK} herunterladen
+und \textit{ddraw.h} in die Verzeichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und
+\textit{/opt/mingw32ce/arm-mingw32ce/include/} kopiert werden.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
+Um \textit{Ecore} zu erstellen muss zuerst eine Änderung im \textit{winnt.h}-Header vorgenommen werden. Dieser liegt im
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
#define PROCESS_SET_QUOTA 0x0100
#define PROCESS_SET_INFORMATION 0x0200
#define PROCESS_QUERY_INFORMATION 0x0400
@@ -271,94 +171,55 @@ Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header
#define THREAD_TERMINATE 0x0001
\end{lstlisting}
-Der mit ``+'' gekennzeichnete Eintrag ``PROCESS\_SUSPEND\_RESUME'' muss in die Datei ``winnt.h'' eingefügt werden.\newline
-Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{Ecore} kompiliert werden. Dazu wird auch hier wieder das
-``autogen.sh'' Skript ausgeführt durch den Aufruf von
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread|. \newline
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-% \end{lstlisting}
-%
-Nachdem dies erfolgreich ausgeführt wurde können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen Programmen
-ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann mit \lstinline{make install}
-installiert werden.
+Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \textit{winnt.h} eingefügt
+werden.\newline
+Nachdem dieser Schritt ausgeführt wurde kann \textit{Ecore} erstellt werden. Dazu wird das
+\textit{autogen.sh}-Skript durch den Aufruf von
+\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread|} gestartet. \newline
+Nachdem das Skript erfolgreich ausgeführt wurde, können nun die gleichen zwei Schritte wie bei den vorhergegangenen
+Programmen ausgeführt werden. Der Kompilierungsvorgang wird durch \colorbox{grey}{\lstinline{make}} gestartet. Im Anschluss kann
+mit
+\colorbox{grey}{\lstinline{make install}} installiert werden.
\subsubsection*{Edje}
-Auch hier gilt wieder, Dateien herunterladen durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-% \end{lstlisting}
-%
-Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript durch
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% \end{lstlisting}
-%
-Die letzten beiden Schritte sind auch hier wieder kompilieren und Installation durch \lstinline{make} und
-\lstinline{make install} ausführen.
-
-% \begin{lstlisting}
-% make ; make install
-% \end{lstlisting}
+Auch hier müssen zuerst die Dateien durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}
+heruntergeladen werden.
+Nachdem die Dateien heruntergeladen wurden, muss das Skript durch
+\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce|} aufgerufen werden.
+Die letzten beiden Schritte sind kompilieren und installieren durch \colorbox{grey}{\lstinline{make}} und
+\colorbox{grey}{\lstinline{make install}}.
\subsubsection*{Elementary}
-Zuerst müssen auch hier die benötigten Daten heruntergeladen werden. Dies geschieht durch den Aufruf von
-\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}.
-%
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
-% \end{lstlisting}
-%
-Nun muss auch wieder das ``autogen.sh'' Skript mit
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc| gestartet und ausgeführt
-werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% --with-edje-cc=$WINCE_PATH/bin/edje_cc
-% \end{lstlisting}
-%
-Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, muss man im in der Datei
-``Makefile.am'' im Ordner ``src/bin/'' alle Vorkommnisse von ``test\_fileselector.c'' entfernen und folgende Zeilen
-auskommentieren:
-
-\begin{lstlisting}
+Zuerst ist es notwendig den Quellcode und die benötigte Daten herunterzuladen. Dies geschieht durch den Aufruf von
+\colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}}.
+Nun muss das \textit{autogen.sh}-Skript mit
+\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc|}
+gestartet und ausgeführt werden.
+Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, sollte man im in der Datei
+\textit{Makefile.am} im Ordner \textit{\textless Pfad-zu-Elementary\textgreater /src/bin/} alle Vorkommnisse von
+\textit{test\_fileselector.c} entfernen und folgende
+Zeilen auskommentieren:
+\begin{lstlisting}[backgroundcolor=\color{grey}]
bin_PROGRAMS = elementary_test
if BUILD_QUICKLAUNCH
bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
endif
\end{lstlisting}
-
-Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und \lstinline{make install} erstellt und installiert
-werden.
-%
-% \begin{lstlisting}
-% make ; make install
-% \end{lstlisting}
+Nun kann das Programm auf gewohnte Art und Weise mit \colorbox{grey}{\lstinline{make}} und
+\colorbox{grey}{\lstinline{make install}} erstellt und installiert werden.
\subsubsection*{Weitere Schritte}
-Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in WINCE\_PATH angelegt und dessen Zugriffsrechte
-abgeändert werden. Das Anlegen des Skriptes erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden durch
-\lstinline{chmod 774 efl_zip.sh} abgeändert. \newline
-%
-% \begin{lstlisting}
-% touch efl_zip.sh
-% chmod 774 efl_zip.sh
-% \end{lstlisting}
-%
+Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in \textit{WINCE\_PATH} angelegt und dessen Zugriffsrechte
+abgeändert werden. Das Anlegen des Skripts erfolgt durch \colorbox{grey}{\lstinline{touch efl_zip.sh}}. Die Zugriffsrechte werden
+durch \colorbox{grey}{\lstinline{chmod 774 efl_zip.sh}} abgeändert. \newline
In dieses Skript wird nun der Code kopiert, welcher unter Anhang 4 zu finden ist.\newline
Bei Ausführung dieses Skripts werden die vorhandenen \textit{DLL's} nocheinmal komprimiert und alles in einen Ordner mit dem Namen
-``efl'' kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefast und komprimiert. Möchte man
-nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen ``efl'' Ordner hinzufügen und erneut komprimieren. Nun
-kann dieses Archiv auf das Mobile Gerät kopiert und entpackt werden.
+\textit{efl} kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefasst. Möchte
+man nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen \textit{efl} Ordner hinzufügen und das Skript aus
+Anhang 4 erneut ausführen. Nun kann dieses Archiv auf das mobile Gerät kopiert und entpackt werden.
\subsection*{Anhang 2}
@@ -391,7 +252,7 @@ Archive für \textit{Evas}:
\subsection*{Anhang 4}
efl\_zip.sh:
-\begin{lstlisting}[breakatwhitespace=false]
+\begin{lstlisting}[breakatwhitespace=false,backgroundcolor=\color{grey}]
#!/bin/sh
rm -rf efl/
diff --git a/ausarbeitung/Anhang.tex~ b/ausarbeitung/Anhang.tex~
index f1e3477..0d08012 100644
--- a/ausarbeitung/Anhang.tex~
+++ b/ausarbeitung/Anhang.tex~
@@ -3,16 +3,16 @@
\subsection*{Anhang 1}
-Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
-portieren, sind die folgenden Schritte nötig:
+Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von \textit{Ubuntu} nach \textit{Windows
+Mobile} zu portieren, sind die folgenden Schritte nötig: \newline
Zuerst muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tutorial wird
-der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem heruntergeladen muss dieser in das passende
+der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem Herunterladen muss dieser in das passende
Systemverzeichniss entpackt werden.\newline
-Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert
-werden.
+Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Pakete aus dem \textit{Ubuntu-Repository}
+installiert werden.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
sudo apt-get install build-essential make gcc bison flex subversion
autoconf libtool gettext libfreetype6-dev libpng12-dev zlib1g-dev
libjpeg-dev libtiff-dev libungif4-dev librsvg2-dev xorg-dev
@@ -20,13 +20,11 @@ libltdl3-dev libcurl4-dev cvs subversion git-core doxygen proj
libsqlite3-0 libsqlite3-dev
\end{lstlisting}
-% Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
-% Entwickler herunterladen.\newline
-Nun muss man noch ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
-können. Des weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
-einmalig exportiert werden müssen, damit die zum portieren benötigten \textit{Header-Files}, \textit{Libraries} und
-\textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt. Das
-Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
+Als nächstes muss ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
+können. Des Weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
+einmalig exportiert werden müssen. Dies ist notwendig damit die zum Portieren benötigten \textit{Header-Files}, \textit{Libraries}
+und \textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt.
+Das Anlegen dieser Datei geschieht mit Hilfe des Befehls \lstinline{touch mingw32ce.env}.
%
% \begin{lstlisting}
% touch mingw32ce.env
@@ -34,7 +32,7 @@ Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
%
Nun müssen noch folgende Einträge in der Datei \textit{mingw32ce.env} hinzugefügt werden.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
export CEGCC_PATH=/opt/cegcc
export MINGW32CE_PATH=/opt/mingw32ce
export WINCE_PATH=$HOME/workspace/wince
@@ -60,208 +58,108 @@ export LD_LIBRARY_PATH="$WINCE_PATH/bin"
export PKG_CONFIG_PATH="$WINCE_PATH/lib/pkgconfig"
\end{lstlisting}
-Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} auf ein neues exportiert werden, da die Variablen durch
-die hier gewählte Methode nur in den \textit{Shells} existieren, in denen sie exportiert wurden.\newline
-Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichniss des \textit{cegcc},
-beziehungsweiße des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Zielverzeichniss, der
-kompilierten Dateien, gespeichert werden. Mit \textit{PATH} werden die \textit{Binaries} des \textit{CeGCC's}, in den
-systemweiten \textit{Binary}-Pfad aufgenommen. Des weiteren werden unter \textit{CPPFLAGS} die \textit{include}-Pfade und
-unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH} zeigt auf den
-Ordner in welchem die kompilierten und unter Umständen benötigten, ausführbaren Dateien liegen. \textit{PKG\_CONFIG\_PATH}
-zeigt schliesslich noch auf den Ordner der die Paketinformationen der installierten Dateien beinhaltet. Das exportieren dieser
-Werte geschieht mit dem Aufruf \lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
-%
-%\begin{lstlisting}
-%source <Pfad-zu-der-Datei>/mingw32ce.env
-%\end{lstlisting}
-%
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} exportiert werden. Die Variablen existieren nur in
+den \textit{Shells}, in denen sie exportiert wurden.\newline
+Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichnis des \textit{cegcc},
+beziehungsweise des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Verzeichnis in dem die
+kompilierten Dateien gespeichert werden sollen, eingetragen werden. Mit \textit{PATH} werden die \textit{Binaries} des
+\textit{CeGCC's}, in den systemweiten Pfad der ausführbaren Dateien aufgenommen. Des Weiteren werden unter \textit{CPPFLAGS} die
+\textit{include}-Pfade und unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH}
+zeigt auf den Ordner in welchem ausführbare Dateien liegen, die zum kompilieren benötigt werden.
+\textit{PKG\_CONFIG\_PATH} zeigt schliesslich noch auf den Ordner, der die Paketinformationen der installierten Dateien
+beinhaltet. Das Exportieren dieser Werte geschieht mit dem Aufruf
+\lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} gespeichert werden kann.
-Nach dem Wechseln in diesen besagten Ordner kann mit dem nächsten Schritt fortgefahren werden.
+Nach dem Wechseln in selbigen kann mit dem nächsten Schritt fortgefahren werden.
\subsubsection*{Evil}
-Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
-herunterzuladen. Das Herunterladen wird mit \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}
-ausgeführt.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/evil
-%\end{lstlisting}
-%
-Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den
-\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript mit dem Aufruf
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| starten. \newline
-%
-%\begin{lstlisting}
- %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-%\end{lstlisting}
-%
-Durch das Ausführen des Skriptes mit den obigen Parametern wird der Installationspfad auf den Wert der Variable
-\textit{WINCE\_PATH} gesetzt, als Zielsystem ein \textit{ARM}-Prozessor gewählt und der \textit{mingw32ce}-Kompiler als Kompiler
-festgelegt.\newline
-Nachdem dieses Skript erfolgreich ausgeführt wurde, kann man im nächsten Schritt das Programm durch ausführen von
-\lstinline{make} erstellen und im Anschluss durch \lstinline{make install} installieren. Nach diesem Schritt sollte \textit{Evil}
-erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde, installiert worden sein.
-%
-%\begin{lstlisting}
- %make
-%\end{lstlisting}
-%
-%Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
-%installieren.
-%
-%\begin{lstlisting}
- %make install
-%\end{lstlisting}
-%
+Zuerst muss der Quellcode von \textit{Evil} aus dem \textit{SVN} heruntergeladen werden. Das Herunterladen wird mit
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil} ausgeführt.
+Nachdem alle Dateien erfolgreich heruntergeladen wurden, muss falls nicht schon geschehen, die Datei mit den
+\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies durchgeführt wurde, kann nun das Konfigurationsskript mit dem
+Aufruf \lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| gestartet werden. \newline
+Durch das Ausführen des Skriptes mit den diesen Parametern wird der Installationspfad auf den Wert der Variable
+\textit{WINCE\_PATH} gesetzt und der \textit{mingw32ce}-Kompiler als Kompiler festgelegt.\newline
+Nachdem dieses Skript erfolgreich ausgeführt wurde, kann im nächsten Schritt das Programm durch Ausführen von
+\lstinline{make} erstellt und im Anschluss durch \lstinline{make install} installiert werden.
+Nach diesem Schritt sollte \textit{Evil} erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde,
+installiert worden sein.
\subsubsection*{Eina}
-Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository durch
-\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
-%
-%\begin{lstlisting}
- %svn co http://svn.enlightenment.org/svn/e/trunk/eina
-%\end{lstlisting}
-%
-Danach wird auch hier wieder das ``autogen.sh'' Skript durch
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| Skript aufgerufen. \newline
-%
-%\begin{lstlisting}
- %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-%\end{lstlisting}
-%
+Hier ist es ebenfalls nötig die Dateien aus dem Entwickler-Repository durch
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
+Danach wird das \textit{autogen.sh} Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| aufgerufen. \newline
Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch \textit{--disable-pthread}.
-Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{pthread} deaktiviert, da diese auf dem Zielsystem
+Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{libpthread} deaktiviert, da diese auf dem Zielsystem
nicht unterstützt wird.\newline
-Nachdem das Skript ausgeführt wurde, muss nun auch wieder das Programm mit \lstinline{make} erstellt und im Zielverzeichniss
-mit \lstinline{make install} installiert werden.
-
-%\begin{lstlisting}
- %make ; make install
-%\end{lstlisting}
+Nachdem das Skript ausgeführt wurde, wird das Programm nun mit \lstinline{make} erstellt und im Zielverzeichnis
+mit \lstinline{make install} installiert.
\subsubsection*{Eet}
-Bevor man \textit{Eet} erstellen kann, muss man noch vier \textit{tar-Archive} im Verzeichniss, welches in der
-Variable ``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive können unter den Links, welche in Anhang 2 zu finden
-sind, heruntergeladen werden. Im Anschluss müssen diese nur noch in das \textit{WINCE\_PATH}-Verzeichniss kopiert und
-entpackt werden. Nun kann der Quellcode für \textit{Eet} durch ausführen von
+Bevor man \textit{Eet} erstellen kann, muss man noch vier \textit{tar-Archive} im Verzeichnis, welches in der
+Variable \textit{WINCE\_PATH} gespeichert wurde, entpacken. Diese Archive können unter den Links, welche in Anhang 2 zu finden
+sind, heruntergeladen werden. Im Anschluss müssen diese in das \textit{WINCE\_PATH}-Verzeichnis kopiert und
+entpackt werden. Nun kann der Quellcode für \textit{Eet} durch Ausführen von
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet} heruntergeladen werden.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/eet
-%\end{lstlisting}
-Nachdem die \textit{Eet} Dateien vorhanden sind, muss wieder das \textit{autogen.sh}-Skript durch
+Nachdem die Dateien vorhanden sind, muss das \textit{autogen.sh}-Skript durch
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen und ausgeführt werden.
-%\begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-%\end{lstlisting}
-%
-Im Anschluss muss nun auch wieder mit \lstinline{make} kompiliert und mit \lstinline{make install} installiert werden.
-%
-%\begin{lstlisting}
-% make ; make install
-%\end{lstlisting}
+Im Anschluss wird mit \lstinline{make} kompiliert und mit \lstinline{make install} installiert.
\subsubsection*{Embryo}
-Der Erste Schritt ist auch hier das Herunterladen des Programmcodes unter der Verwendung von
+Der Erste Schritt ist das Herunterladen des Programmcodes unter der Verwendung von
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
-%
-%\begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-% \end{lstlisting}
-%
-Nachdem die Dateien heruntergeladen wurden, durch \lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
-\textit{autogen.sh}-Skript aufrufen.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% \end{lstlisting}
-%
-Im Anschluss nun auch wieder kompilieren mit \lstinline{make} und installieren mit \lstinline{make install}.
-%
-%\begin{lstlisting}
-% make ; make install
-%\end{lstlisting}
+Nachdem die Dateien heruntergeladen wurden, muss durch
+\lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
+\textit{autogen.sh}-Skript aufgerufen werden.
+Im Anschluss mit \lstinline{make} kompilieren und mit \lstinline{make install} installieren.
\subsubsection*{Evas}
Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Diese werden in das
-gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt. Nun müssen noch die Dateien, welche die Paketinformationen
+gleiche Verzeichnis, wie die vorhergegangenen Archive, entpackt. Nun müssen noch die Dateien, welche die Paketinformationen
beinhalten, um die heruntergeladen Pakete ergänzt werden:
-\begin{lstlisting}[breakatwhitespace=true]
+\begin{lstlisting}[breakatwhitespace=true,backgroundcolor=\color{grey}]
cp $WINCE_PATH/libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc $WINCE_PATH/lib/freetype2.pc
\end{lstlisting}
-Die Packetinformationen müssen noch bearbeitet werden. Dazu werden die zwei Dateien, \textit{freetype2.pc}, \textit{libpng} und
-\textit{libpng12.pc}, mit einem beliebigen Editor geöffnet und in beiden Dateien der Wert der Variable \textit{prefix} auf
-{WINCE\_PATH} gesetzt. Nachdem dies durchgeführt wurde kann nun der Quellcode von \textit{Evas}
+Die Paketinformationen müssen allerdings noch bearbeitet werden. Dazu werden folgende drei Dateien, \textit{freetype2.pc},
+\textit{libpng.pc} und \textit{libpng12.pc} benötigt. Diese werden daraufolgend mit einem beliebigen Editor geöffnet und allen
+drei Dateien der Wert der Variable \textit{prefix} auf \textit{\$WINCE\_PATH} gesetzt. Nachdem dies durchgeführt wurde kann nun
+der Quellcode von \textit{Evas}
durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/evas
-% \end{lstlisting}
-%
Es muss auch hier, wie bei allen anderen Programmen, das \textit{autogen.sh}-Skript durch
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| aufgerufen werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
-% \end{lstlisting}
-%
Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
-%
-% \begin{lstlisting}
-% make
-% \end{lstlisting}
-%
Sollte hierbei die Datei \textit{ft2build.h} nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden.
-Ursprünglich liegt diese Datei unter \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|.
-%
-% \begin{lstlisting}
-% $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
-% \end{lstlisting}
-%
-Allerdings kann sie in diesem Ordner nicht gefunden werden. Um dies zu umgehen muss \textit{ft2build.h} eine Ordnerebene
-nach oben kopiert werden. Dies geschieht durch den Aufruf von
-\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include|. \newline
-%
-%
-% \begin{lstlisting}
-% cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
-% \end{lstlisting}
-%
+Ursprünglich ist diese Datei unter \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h| zu
+finden.
+Es kann vorkommen das sie in diesem Ordner nicht gefunden wird. Um dies zu beheben muss \textit{ft2build.h} eine Ordnerebene
+nach oben kopiert werden. Dies geschieht durch den Aufruf von
+\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h$WINCE_PATH/freetype-2.3.7-dev/include|
+. \newline
Um einen weiteren Fehler von vorneherein zu umgehen, muss noch der Pfad eines eingebundenen Headers in \textit{ft2build.h}
-abgeändert werden.
+abgeändert werden.
Hierzu öffnet man \textit{ft2build.h} mit einem beliebigen Editor und ändert \lstinline{#include <freetype/config/ftheader.h>} zu
\lstinline{#include <freetype2/freetype/config/ftheader.h>} ab. \newline
-%
-% \begin{lstlisting}
-% % #include <freetype/config/ftheader.h>
-% \end{lstlisting}
-
-% zu
-
-% \begin{lstlisting}
-% #include <freetype2/freetype/config/ftheader.h>
-% \end{lstlisting}
-%
Anschliessend muss nun auch der \textit{freetype}-Ordner um eine Ebene nach oben kopieren werden, da die
\textit{include}-Pfade in den Headern von \textit{freetype2} nicht korrekt sind.\newline
-Falls man nun noch \textit{Evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
-und \textit{ddraw.h} in die Verzichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und
-\textit{/opt/mingw32ce/arm-mingw32ce/include/} kopieren.
+Falls man nun noch \textit{Evas} mit \textit{DirectX-Support} kompilieren möchte, muss das \textit{DirectX-SDK} herunterladen
+und \textit{ddraw.h} in die Verzeichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und
+\textit{/opt/mingw32ce/arm-mingw32ce/include/} kopiert werden.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im \textit{winnt.h}-Header vorgenommen werden. Dieser liegt im
+Um \textit{Ecore} zu erstellen muss zuerst eine Änderung im \textit{winnt.h}-Header vorgenommen werden. Dieser liegt im
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
-\begin{lstlisting}
+\begin{lstlisting}[backgroundcolor=\color{grey}]
#define PROCESS_SET_QUOTA 0x0100
#define PROCESS_SET_INFORMATION 0x0200
#define PROCESS_QUERY_INFORMATION 0x0400
@@ -274,95 +172,54 @@ Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im \textit{winnt.h}-H
Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \textit{winnt.h} eingefügt
werden.\newline
-Nachdem dieser Schritt ausgeführt wurde kann \textit{Ecore} erstellt werden. Dazu wird auch hier wieder das
+Nachdem dieser Schritt ausgeführt wurde kann \textit{Ecore} erstellt werden. Dazu wird das
\textit{autogen.sh}-Skript durch den Aufruf von
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| ausgeführt. \newline
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-% \end{lstlisting}
-%
-Nachdem das Skript erfolgreich ausgeführt wurde ,können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen
-Programmen ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| gestartet. \newline
+Nachdem das Skript erfolgreich ausgeführt wurde, können nun die gleichen zwei Schritte wie bei den vorhergegangenen
+Programmen ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann
+mit
\lstinline{make install} installiert werden.
\subsubsection*{Edje}
Auch hier müssen zuerst die Dateien durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}
heruntergeladen werden.
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-% \end{lstlisting}
-%
-Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript durch
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% \end{lstlisting}
-%
-Die letzten beiden Schritte sind auch hier wieder kompilieren und Installation durch \lstinline{make} und
-\lstinline{make install} ausführen.
-
-% \begin{lstlisting}
-% make ; make install
-% \end{lstlisting}
+Nachdem die Dateien heruntergeladen wurden, muss das Skript durch
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
+Die letzten beiden Schritte sind kompilieren und installieren durch \lstinline{make} und
+\lstinline{make install}.
\subsubsection*{Elementary}
-Zuerst müssen auch hier der Quellcode und benötigte Daten heruntergeladen werden. Dies geschieht durch den Aufruf von
+Zuerst ist es notwendig den Quellcode und die benötigte Daten herunterzuladen. Dies geschieht durch den Aufruf von
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}.
-%
-%
-% \begin{lstlisting}
-% svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
-% \end{lstlisting}
-%
-Nun muss auch wieder das \textit{autogen.sh}-Skript mit
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc| gestartet und ausgeführt
-werden.
-%
-% \begin{lstlisting}
-% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-% --with-edje-cc=$WINCE_PATH/bin/edje_cc
-% \end{lstlisting}
-%
-Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, muss man im in der Datei
-\textit{Makefile.am} im Ordner \textit{src/bin/} alle Vorkommnisse von \textit{test\_fileselector.c} entfernen und folgende
-Zeilen auskommentiert werden:
-
-\begin{lstlisting}
+Nun muss das \textit{autogen.sh}-Skript mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc|
+gestartet und ausgeführt werden.
+Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, sollte man im in der Datei
+\textit{Makefile.am} im Ordner \textit{\textless Pfad-zu-Elementary\textgreater /src/bin/} alle Vorkommnisse von
+\textit{test\_fileselector.c} entfernen und folgende
+Zeilen auskommentieren:
+\begin{lstlisting}[backgroundcolor=\color{grey}]
bin_PROGRAMS = elementary_test
if BUILD_QUICKLAUNCH
bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
endif
\end{lstlisting}
-
-Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und \lstinline{make install} erstellt und installiert
-werden.
-%
-% \begin{lstlisting}
-% make ; make install
-% \end{lstlisting}
+Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und
+\lstinline{make install} erstellt und installiert werden.
\subsubsection*{Weitere Schritte}
Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in \textit{WINCE\_PATH} angelegt und dessen Zugriffsrechte
-abgeändert werden. Das Anlegen des Skriptes erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden durch
-\lstinline{chmod 774 efl_zip.sh} abgeändert. \newline
-%
-% \begin{lstlisting}
-% touch efl_zip.sh
-% chmod 774 efl_zip.sh
-% \end{lstlisting}
-%
+abgeändert werden. Das Anlegen des Skripts erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden
+durch \lstinline{chmod 774 efl_zip.sh} abgeändert. \newline
In dieses Skript wird nun der Code kopiert, welcher unter Anhang 4 zu finden ist.\newline
Bei Ausführung dieses Skripts werden die vorhandenen \textit{DLL's} nocheinmal komprimiert und alles in einen Ordner mit dem Namen
-\textit{efl} kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefast und komprimiert. Möchte
-man nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen \textit{efl} Ordner hinzufügen und erneut
-komprimieren. Nun kann dieses Archiv auf das Mobile Gerät kopiert und entpackt werden.
-
+\textit{efl} kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefasst. Möchte
+man nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen \textit{efl} Ordner hinzufügen und das Skript aus
+Anhang 4 erneut ausführen. Nun kann dieses Archiv auf das mobile Gerät kopiert und entpackt werden.
+ \newpage
\subsection*{Anhang 2}
Archive für \textit{Eet}:
@@ -394,7 +251,7 @@ Archive für \textit{Evas}:
\subsection*{Anhang 4}
efl\_zip.sh:
-\begin{lstlisting}[breakatwhitespace=false]
+\begin{lstlisting}[breakatwhitespace=false,backgroundcolor=\color{grey}]
#!/bin/sh
rm -rf efl/
diff --git a/ausarbeitung/Bilder/graph.png b/ausarbeitung/Bilder/graph.png
index 1f6cd7c..c90b5c0 100644
--- a/ausarbeitung/Bilder/graph.png
+++ b/ausarbeitung/Bilder/graph.png
Binary files differ
diff --git a/ausarbeitung/Einleitung.tex b/ausarbeitung/Einleitung.tex
index f4f80e6..0b6984f 100644
--- a/ausarbeitung/Einleitung.tex
+++ b/ausarbeitung/Einleitung.tex
@@ -1,22 +1,20 @@
\section{Einleitung}
-Durch den fortschreitenden Entwicklung der modernen Technik ist es möglich immer
-leistungsstärkere, mobile Geräte zu bauen. So geht die
-Funktionalität moderner Handys weit über das Telefonieren und Schreiben von SMS hinaus. Aktuellen Modellen, dieser sogennanten
-Smartphones, ist es zum Beispiel möglich sich mit einem \textit{WLAN} zu verbinden, die eigene Position mittels \textit{GPS} zu
-ermitteln oder per \textit{3G}-Standard Daten zu übertragen.\newline
+Durch die fortschreitenden Entwicklung der modernen Technik ist es möglich immer
+leistungsstärkere, mobile Geräte zu bauen. So geht die Funktionalität moderner Handys weit über das Telefonieren und Schreiben von
+SMS hinaus. Aktuellen Modellen, dieser Smartphones, ist es zum Beispiel möglich sich mit einem \textit{WLAN} zu verbinden, die
+eigene Position mittels \textit{GPS} zu ermitteln oder per \textit{3G}-Standard Daten zu übertragen.
Aus dieser Fülle an Funktionen und den verschiedenen angebotenen Smartphones ergibt sich somit eine immense Menge an möglichen
Anwendungsgebieten. \newline
-Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der
-Smartphones, immer weiter. So ist es mit bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder
-den nächsten Supermarkt in der Nähe anzuzeigen. Des weiteren können diese Positionsdaten für soziale Dienste genutzt
-werden, um die Nutzer auch anhand ihrer Position zu vernetzen. Es bieten sich also eine vielzahl an Möglichkeiten an, um
-diese Daten sinnvoll zu nutzen. Allerdings kann die so entstehende Datenflut auch anderweitig genutzt werden. So kann aufgrund der
-Orte, an denen sich der Anwender befindet, gezielt Werbung platzieren werden, oder die Positionsdaten können über die Zeit
-gespeichert und Bewegungsprofile des Benutzers erstellt werden.\newline
-Es ist somit wichtig das die Positionsinformationen, die der Benutzer bereitstellt, als ein Teil seiner Privatsphäre angesehen
-werden. \newline
-Das Ziel dieser Arbeit ist die Implementation einer Anwendung für mobile Geräte, welcher es ermöglicht anderen Benutzern die
-eigene Position zu senden, sowie deren anzuzeigen. Hierbei soll für den Benutzer möglichst viel Transparenz geboten sein, so dass
-er immer in der Lage ist nachzuvollziehen was mit seinen Daten geschieht. Diese allerdings trotzdem durch Verschlüsselung
-soweit geschützt werden, als das der Anwender bestimmen kann für wenn diese einsehbar sind. \ No newline at end of file
+Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der Smartphones, immer weiter. So ist es mit
+bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder den nächsten Supermarkt in der Nähe
+anzuzeigen. Des Weiteren können diese Positionsdaten für soziale Dienste genutzt werden, um die Nutzer auch anhand ihrer Position
+zu vernetzen. Es bieten sich also eine Vielzahl an Möglichkeiten an, um diese Daten sinnvoll zu nutzen. Allerdings kann die so
+entstehende Datenflut auch anderweitig genutzt werden. So kann aufgrund der Orte, an denen sich der Anwender befindet, gezielt
+Werbung platziert werden, oder die Positionsdaten können über die Zeit gespeichert und Bewegungsprofile des Benutzers erstellt
+werden. Es ist somit wichtig das die Positionsinformationen, die der Benutzer bereitstellt, als ein Teil seiner Privatsphäre
+angesehen werden. \newline
+Das Ziel dieser Arbeit ist die Implementation einer Anwendung für mobile Geräte, welche es ermöglicht mit anderen Benutzern die
+Positionen auszutauschen und anzuzeigen. Hierbei soll für den Benutzer Transparenz geboten werden, so dass er immer in der Lage
+ist nachzuvollziehen was mit seinen Daten geschieht. Der Anwender soll durch Verschlüsselung bestimmen können wer befähigt ist
+diese Informationen einzusehen. \ No newline at end of file
diff --git a/ausarbeitung/Einleitung.tex~ b/ausarbeitung/Einleitung.tex~
index 3889cf6..dfec5ce 100644
--- a/ausarbeitung/Einleitung.tex~
+++ b/ausarbeitung/Einleitung.tex~
@@ -1,22 +1,20 @@
\section{Einleitung}
-Durch den fortschreitenden Entwicklung der modernen Technik ist es möglich immer
-leistungsstärkere, mobile Geräte zu bauen. So geht die
-Funktionalität moderner Handys weit über das Telefonieren und Schreiben von SMS hinaus. Aktuellen Modellen, dieser sogennanten
-Smartphones, ist es zum Beispiel möglich sich mit einem \textit{WLAN} zu verbinden, die eigene Position mittels \textit{GPS} zu
-ermitteln oder per \textit{3G}-Standard Daten zu übertragen.\newline
+Durch die fortschreitenden Entwicklung der modernen Technik ist es möglich immer
+leistungsstärkere, mobile Geräte zu bauen. So geht die Funktionalität moderner Handys weit über das Telefonieren und Schreiben von
+SMS hinaus. Aktuellen Modellen, dieser Smartphones, ist es zum Beispiel möglich sich mit einem \textit{WLAN} zu verbinden, die
+eigene Position mittels \textit{GPS} zu ermitteln oder per \textit{3G}-Standard Daten zu übertragen.
Aus dieser Fülle an Funktionen und den verschiedenen angebotenen Smartphones ergibt sich somit eine immense Menge an möglichen
Anwendungsgebieten. \newline
-Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der
-Smartphones, immer weiter. So ist es mit bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder
-den nächsten Supermarkt in der Nähe anzuzeigen. Des weiteren können diese Positionsdaten für soziale Dienste genutzt
-werden, um die Nutzer auch anhand ihrer Position zu vernetzen. Es bieten sich also eine vielzahl an Möglichkeiten an, um
-diese Daten sinnvoll zu nutzen. Allerdings kann die so entstehende Datenflut auch anderweitig genutzt werden. So kann aufgrund der
-Orte, an denen sich der Anwender befindet, gezielt Werbung platzieren werden, oder die Positionsdaten können über die Zeit
-gespeichert und Bewegungsprofile des Benutzers erstellt werden.\newline
-Es ist also wichtig das die Positionsinformationen, die der Benutzer bereitstellt, als ein Teil seiner
-Privatsphäre angesehen werden. \newline
-Das Ziel dieser Arbeit ist die Implementation einer Anwendung für mobile Geräte, welcher es ermöglicht anderen Benutzern die
-eigene Position zu senden, sowie deren anzuzeigen. Hierbei soll für den Benutzer möglichst viel Transparenz geboten sein, so dass
-er immer in der Lage ist nachzuvollziehen was mit seinen Daten geschieht. Diese allerdings trotzdem durch Verschlüsselung
-soweit geschützt werden, als das der Anwender bestimmen kann für wenn diese einsehbar sind. \ No newline at end of file
+Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der Smartphones, immer weiter. So ist es mit
+bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder den nächsten Supermarkt in der Nähe
+anzuzeigen. Des Weiteren können diese Positionsdaten für soziale Dienste genutzt werden, um die Nutzer auch anhand ihrer Position
+zu vernetzen. Es bieten sich also eine Vielzahl an Möglichkeiten an, um diese Daten sinnvoll zu nutzen. Allerdings kann die so
+entstehende Datenflut auch anderweitig genutzt werden. So kann aufgrund der Orte, an denen sich der Anwender befindet, gezielt
+Werbung platziert werden, oder die Positionsdaten können über die Zeit gespeichert und Bewegungsprofile des Benutzers erstellt
+werden. Es ist somit wichtig das die Positionsinformationen, die der Benutzer bereitstellt, als ein Teil seiner Privatsphäre
+angesehen werden. \newline
+Das Ziel dieser Arbeit ist die Implementation einer Anwendung für mobile Geräte, welche es ermöglicht mit anderen Benutzern die
+Positionen auszutauschen und anzuzeigen. Hierbei soll für den Benutzer Transparenz geboten werden, so dass er immer in der Lage
+ist nachzuvollziehen was mit seinen Daten geschieht. Der Anwender soll durch Verschlüsselung bestimmen können wer
+befähigt ist diese Informationen einzusehen. \ No newline at end of file
diff --git a/ausarbeitung/Fazit.aux b/ausarbeitung/Fazit.aux
index 7927ef0..2876f8e 100644
--- a/ausarbeitung/Fazit.aux
+++ b/ausarbeitung/Fazit.aux
@@ -1,7 +1,7 @@
\relax
-\@writefile{toc}{\contentsline {section}{\numberline {5}Fazit}{22}{section.5}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Fazit}{23}{section.5}}
\@setckpt{Fazit}{
-\setcounter{page}{23}
+\setcounter{page}{24}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
diff --git a/ausarbeitung/Fazit.tex b/ausarbeitung/Fazit.tex
index 6f6bd82..0d0a40e 100644
--- a/ausarbeitung/Fazit.tex
+++ b/ausarbeitung/Fazit.tex
@@ -1,12 +1,19 @@
\section{Fazit}
-Im Rahmen dieser Arbeit konnte gezeigt werden, dass es möglich ist einen Dienst zu entwickeln welcher die eigene Position und die
-anderer Teilnehmer anzeigt und dabei eine offene Struktur, in Form des \textit{IRC}-Netzwerkes, nutzt. Dem Anwender ist somit die
-Möglichkeit gegeben die Kontrolle über die Nutzung seiner Daten zu wahren, da er seine versendeten Daten dank der genutzten
-Struktur stets einsehen kann. Des Weiteren kann er, durch Weitergabe der Schlüssel, bestimmen wer Einsicht in seine
-Positionsinformationen erlangen darf. Der Austausch der Schlüssel wurde mit der Methode der 2D-Barcodes so gelößt, dass dieser
-spontan und im mobilen Umfeld stattfinden kann, ohne dabei eine langfristige Vorausplanung zu benötigen. \newline
-Es wurde aufgezeigt, dass die Implementierung eines solchen Dienstes mit bereits vorhandenen Algorithmen und Bibliotheken
-sinvoll umsetzbar ist. In der Analyse des Datenverkehrs wurde aufgezeigt, dass das \textit{IRC}-Netzwerk beim Versenden von Daten
-nur einen geringen Datenoverhead produziert. Des weiteren eignet es sich für die Kommunikation mit mehreren Teilnehmern, da hier
-nur eine Verbindung geöffnet werden muss. \ No newline at end of file
+Im Rahmen dieser Arbeit wurde ein Dienst zum Austauschen von Positionen konzpiert und implementiert. Ein Schwerpunkt lag
+hierbei auf der Nutzung einer offenen, einsehbaren Struktur um die Daten zu versenden. Aufgrund dieser Offenheit ist es notwendig
+die Daten zu verschlüsseln. Ebenfalls wurde es ermöglicht die Parameter, welche für eine Sitzung notwendig sind, spontan zu
+erstellen und auszutauschen.\newline
+Als offene Struktur wurde das bereits vorhandene \textit{IRC}-Protokoll sowie dessen existente Netzwerkstruktur genutzt.
+Zur Verschlüsselung der zu versendenden Daten wurde ein symmetrischer Algorithmus genutzt. Um Schlüssel auszutauschen werden
+aus diesen 2D-Barcodes erstellt, welche von anderen Nutzern fotographiert und wiederrum in einen Schlüssel umgewandelt werden
+können.\newline
+Es wurde gezeigt, dass das \textit{IRC}-Protokoll aufgrund dem geringen \textit{Datenoverhead}, sowie den \textit{Channels} die
+sich als \textit{Broadcast-Medium} nutzen lassen, für das Versenden solcher Daten an viele Benutzer bestens geignet ist. Des
+Weiteren ist die Nutzung von 2D-Barcodes zur Weitergabe der Schlüssel gut geeignet, da diese im mobilen Umfeld einen schnellen,
+unkomplizierten und sicheren Austausch dieser Parameter ermöglichen.\newline
+Im Anschluss an diese Arbeit stellt sich die Frage ob es möglich ist eine noch effizientere Struktur als das
+\textit{IRC}-Protokoll zu entwickeln, welche eine ebenso offene Struktur bietet aber speziell auf den Austausch von
+Positionsinformationen geeignet ist. Ebenfalls stellt sich die Frage ob es möglich ist, eine noch größere Anzahl an
+Betriebssysteme zu unterstützen und das Programm für diese zu portieren. Ein weiterer Punkt ist, ob noch andere
+Möglichkeiten existieren um im mobilen Umfeld Schlüssel unter möglichst einfachen Umständen und ohne Vorarbeit auszutauschen. \ No newline at end of file
diff --git a/ausarbeitung/Fazit.tex.backup b/ausarbeitung/Fazit.tex.backup
index 60602c2..f9edb3d 100644
--- a/ausarbeitung/Fazit.tex.backup
+++ b/ausarbeitung/Fazit.tex.backup
@@ -1,2 +1,20 @@
\section{Fazit}
+Im Rahmen dieser Arbeit wurde ein Dienst zum Austauschen von Positionen konzpiert und implementiert. Ein Schwerpunkt lag
+hierbei auf der Nutzung einer offenen, einsehbaren Struktur um die Daten zu versenden. Aufgrund dieser Offenheit ist es notwendig
+die Daten zu verschlüsseln. Ebenfalls wurde es ermöglicht die Parameter, welche für eine Sitzung notwendig sind, spontan zu
+erstellen und auszutauschen.\newline
+Als offene Struktur wurde das bereits vorhandene \textit{IRC}-Protokoll sowie dessen existente Netzwerkstruktur genutzt.
+Zur Verschlüsselung der zu versendenden Daten wurde ein symmetrischer Algorithmus genutzt. Um Schlüssel auszutauschen werden
+aus diesen 2D-Barcodes erstellt, welche von anderen Nutzern fotographiert und wiederrum in einen Schlüssel umgewandelt werden
+können.\newline
+Es wurde gezeigt, dass das \textit{IRC}-Protokoll aufgrund dem geringen \textit{Datenoverhead}, sowie den \textit{Channels} die
+sich als \textit{Broadcast-Medium} nutzen lassen, für das Versenden solcher Daten an viele Benutzer bestens geignet ist. Des
+Weiteren ist die Nutzung von 2D-Barcodes, zur Weitergabe der Schlüssel, gut geeignet, da diese im mobilen Umfeld einen schnellen,
+unkomplizierten und sicheren Austausch dieser Parameter ermöglichen.\newline
+Im Anschluss dieser Arbeit stellt sich die Frage ob es möglich ist eine noch effizientere Struktur wie das \textit{IRC}-Protokoll
+zu entwickeln, welche eine ebenso offene Struktur bietet aber speziel auf den Austausch von Positionsinformationen geeignet ist.
+Des weiteren stellt sich die Frage ob es Möglich ist, eine noch größere Anzahl an Betriebssysteme zu unterstützen und das
+Programm dafür zu portieren ohne dabei einen Mehraufwand bei der Implementierung zu erhalten. Auch von Interesse ist, ob es noch
+andere Möglichkeiten existieren um im mobilen Umfeld Schlüssel, unter möglichst einfachen Umständen und ohne Vorarbeit,
+auszutauschen. \ No newline at end of file
diff --git a/ausarbeitung/Fazit.tex~ b/ausarbeitung/Fazit.tex~
index 6f6bd82..ab0bbd0 100644
--- a/ausarbeitung/Fazit.tex~
+++ b/ausarbeitung/Fazit.tex~
@@ -1,12 +1,19 @@
\section{Fazit}
-Im Rahmen dieser Arbeit konnte gezeigt werden, dass es möglich ist einen Dienst zu entwickeln welcher die eigene Position und die
-anderer Teilnehmer anzeigt und dabei eine offene Struktur, in Form des \textit{IRC}-Netzwerkes, nutzt. Dem Anwender ist somit die
-Möglichkeit gegeben die Kontrolle über die Nutzung seiner Daten zu wahren, da er seine versendeten Daten dank der genutzten
-Struktur stets einsehen kann. Des Weiteren kann er, durch Weitergabe der Schlüssel, bestimmen wer Einsicht in seine
-Positionsinformationen erlangen darf. Der Austausch der Schlüssel wurde mit der Methode der 2D-Barcodes so gelößt, dass dieser
-spontan und im mobilen Umfeld stattfinden kann, ohne dabei eine langfristige Vorausplanung zu benötigen. \newline
-Es wurde aufgezeigt, dass die Implementierung eines solchen Dienstes mit bereits vorhandenen Algorithmen und Bibliotheken
-sinvoll umsetzbar ist. In der Analyse des Datenverkehrs wurde aufgezeigt, dass das \textit{IRC}-Netzwerk beim Versenden von Daten
-nur einen geringen Datenoverhead produziert. Des weiteren eignet es sich für die Kommunikation mit mehreren Teilnehmern, da hier
-nur eine Verbindung geöffnet werden muss. \ No newline at end of file
+Im Rahmen dieser Arbeit wurde ein Dienst zum Austauschen von Positionen konzpiert und implementiert. Ein Schwerpunkt lag
+hierbei auf der Nutzung einer offenen, einsehbaren Struktur um die Daten zu versenden. Aufgrund dieser Offenheit ist es notwendig
+die Daten zu verschlüsseln. Ebenfalls wurde es ermöglicht die Parameter, welche für eine Sitzung notwendig sind, spontan zu
+erstellen und auszutauschen.\newline
+Als offene Struktur wurde das bereits vorhandene \textit{IRC}-Protokoll sowie dessen existente Netzwerkstruktur genutzt.
+Zur Verschlüsselung der zu versendenden Daten wurde ein symmetrischer Algorithmus genutzt. Um Schlüssel auszutauschen werden
+aus diesen 2D-Barcodes erstellt, welche von anderen Nutzern fotographiert und wiederrum in einen Schlüssel umgewandelt werden
+können.\newline
+Es wurde gezeigt, dass das \textit{IRC}-Protokoll aufgrund dem geringen \textit{Datenoverhead}, sowie den \textit{Channels} die
+sich als \textit{Broadcast-Medium} nutzen lassen, für das Versenden solcher Daten an viele Benutzer bestens geignet ist. Des
+Weiteren ist die Nutzung von 2D-Barcodes zur Weitergabe der Schlüssel gut geeignet, da diese im mobilen Umfeld einen schnellen,
+unkomplizierten und sicheren Austausch dieser Parameter ermöglichen.\newline
+Im Anschluss an diese Arbeit stellt sich die Frage ob es möglich ist eine noch effizientere Struktur als das
+\textit{IRC}-Protokoll zu entwickeln, welche eine ebenso offene Struktur bietet aber speziell auf den Austausch von
+Positionsinformationen geeignet ist. Ebenfalls stellt sich die Frage ob es möglich ist, eine noch größere Anzahl an
+Betriebssysteme zu unterstützen und das Programm für diese zu portieren. Ein weiterer Punkt ist, ob noch andere
+Möglichkeiten existieren um im mobilen Umfeld Schlüssel, unter möglichst einfachen Umständen und ohne Vorarbeit, auszutauschen. \ No newline at end of file
diff --git a/ausarbeitung/Friend_Finder.aux b/ausarbeitung/Friend_Finder.aux
index 5fc1206..3720753 100644
--- a/ausarbeitung/Friend_Finder.aux
+++ b/ausarbeitung/Friend_Finder.aux
@@ -3,7 +3,7 @@
\citation{Base64}
\@writefile{toc}{\contentsline {section}{\numberline {4}Friend Finder}{13}{section.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Verwendete Verfahren und Bibliotheken}{13}{subsection.4.1}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Graphische Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{13}{subsubsection.4.1.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \textit {Friend Finder} Nachrichtenaustausch}}{14}{figure.3}}
\newlabel{ablauf}{{3}{14}{\textit {Friend Finder} Nachrichtenaustausch\relax }{figure.3}{}}
@@ -21,14 +21,14 @@
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Analyse}{18}{subsection.4.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{19}{subsubsection.4.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{19}{subsubsection.4.2.2}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{19}{subsubsection.4.2.3}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{20}{subsubsection.4.2.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}Fazit der Auswertung}{20}{subsubsection.4.2.4}}
-\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Vergleich von $n$-Verbindungen und \textit {Friend Finder}}}{21}{figure.8}}
-\newlabel{graph}{{8}{21}{Vergleich von $n$-Verbindungen und \textit {Friend Finder}\relax }{figure.8}{}}
-\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Versandte Daten \IeC {\"u}ber die Zeit von $n$-Verbindungen und \textit {Friend Finder}}}{21}{figure.9}}
-\newlabel{graph2}{{9}{21}{Versandte Daten über die Zeit von $n$-Verbindungen und \textit {Friend Finder}\relax }{figure.9}{}}
+\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Vergleich des versandten Datenvolumen anhand von unterschiedlichen Teilnehmerzahlen, von $n$-Verbindungen und \textit {Friend Finder} zu einem beliebigen Zeitpunkt $t$.}}{21}{figure.8}}
+\newlabel{graph}{{8}{21}{Vergleich des versandten Datenvolumen anhand von unterschiedlichen Teilnehmerzahlen, von $n$-Verbindungen und \textit {Friend Finder} zu einem beliebigen Zeitpunkt $t$}{figure.8}{}}
+\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Versandte Hintergrunddaten von \textit {Friend Finder} anhand von unterschiedlichen Teilnehmerzahlen, zu einem beliebigen Zeitpunkt $t$.}}{22}{figure.9}}
+\newlabel{graph2}{{9}{22}{Versandte Hintergrunddaten von \textit {Friend Finder} anhand von unterschiedlichen Teilnehmerzahlen, zu einem beliebigen Zeitpunkt $t$}{figure.9}{}}
\@setckpt{Friend_Finder}{
-\setcounter{page}{22}
+\setcounter{page}{23}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
diff --git a/ausarbeitung/Friend_Finder.tex b/ausarbeitung/Friend_Finder.tex
index c5a361c..4c69769 100644
--- a/ausarbeitung/Friend_Finder.tex
+++ b/ausarbeitung/Friend_Finder.tex
@@ -8,7 +8,7 @@ aufgezeigt.
\subsection{Verwendete Verfahren und Bibliotheken}
-\textit{Friend Finder} wurde so konzipiert, dass die graphische Darstellung ohne großen Aufwand von den restlichen
+Der \textit{Friend Finder} wurde so konzipiert, dass die graphische Darstellung ohne großen Aufwand von den restlichen
Teilen der Software abgekoppelt und durch eine andere Art der Darstellung ersetzt werden kann.\newline
Neben dem \textit{Graphical User Interface (GUI)} besteht die Software aus drei unterschiedlichen Modulen. Der \textit{Message
Sender} ist für das Versenden und Empfangen der Textnachrichten zuständig, \textit{Sender} sendet die eigene Position,
@@ -27,7 +27,7 @@ weiter.
\label{ablauf}
\end{figure}
-\subsubsection{Grafisches Benutzeroberfläche}
+\subsubsection{Graphische Benutzeroberfläche}
Um die Modularität zu wahren wird der gesammte Programmcode der Benutzeroberfläche in einer Datei zusammengefast. In dieser Datei
sind alle Funktionen enthalten um die Oberflächenelement zu platzieren. Um die gewünschte Funktionalität der einzelnen Elemente zu
@@ -38,22 +38,22 @@ http://www.openstreetmap.de/ [Online; letzter Aufruf 13.02.2010]} genutzt.
\subsubsection{Versenden der Nachrichten}
Der \textit{Message Sender} kümmert sich um das Versenden von Nachrichten. Um das Versenden und Empfangen der Daten zu
-implementieren wurde \textit{libircclient}\footnote{libircclien http://libircclient.sourceforge.net/ [Online; letzter Aufruf
+implementieren wurde \textit{libircclient}\footnote{libircclient http://libircclient.sourceforge.net/ [Online; letzter Aufruf
25.01.2010]} genutzt. Im ersten
-Schritt baut dieser eine Verbindung zum \textit{IRC-Server} auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
+Schritt baut dieser eine Verbindung zum \textit{IRC}-Server auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
muss eine \textit{IRC-Session} initialisiert werden. Diese \textit{Session} beinhaltet Informationen wie zum Beispiel
den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Nachdem diese \textit{Session} gestartet wurde,
können nun Nachrichten versandt werden. Textnachrichten müssen vor dem Versenden in Blöcke aufgeteilt werden, da das genutze
Verschlüsselungsverfahren \textit{Blowfish} \citep{blowfish} maximal 64 Bit lange Zeichenkette verschlüsselt. Das verwendete
Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL http://www.openssl.org/ [Online; letzter Aufruf 25.01.2010]}
-Bibliothek. Diese Implementierung wurde wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen
+Bibliothek. Diese Implementierung wurde aufgrund der schnellen Verschlüsselungsrate sowie einfachen
Implementierungsmöglichkeiten gewählt. Da das \textit{IRC}-Protokoll nicht alle Zeichen darstellen kann oder bestimmte Zeichen als
-Präfixe vor einem Kommando nutzt werden, alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64} Darstellung
-umgewandelt.\newline
+Präfixe vor einem Kommando genutzt werden, werden alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64}
+Darstellung umgewandelt.\newline
Wird nun von einer anderen Instanz des \textit{Message Senders} eine Nachricht empfangen, so setzt er die Teilstücke zusammen.
Dies geschieht solange, bis ein vom Nachrichtentext getrennt gesendetes Terminierungszeichen empfangen wird. Wurde dieses Zeichen
empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht. \newline
-In Abbildung \ref{chat} ist das die graphische Darstellung eines Nachrichtenaustausches abgebildet.
+In Abbildung \ref{chat} ist die graphische Darstellung eines Nachrichtenaustausches abgebildet.
\begin{figure}[!ht]
\centering
@@ -70,16 +70,18 @@ wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade ge
Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden, dass maximal eine Zeichenkette der
Länge 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Suffix angehängt.
-Da sich diese vier Suffixe unterscheiden, können die Positionsfragmente später eindeutig zugeordnet werden. Beispielsweise hat
-eine \textit{Latitude}-Koordinate den Wert $47.996578$. Dieser Koordinate wird nun in $47.99$ und $6578$ aufgeteilt. Nach dem
-Anhängen der Suffixe werden $47.99a$ und $6578b$ versendet und können anhand der Suffix ``a'' und ``b'' als erster, bzw zweiter
-Teil der \textit{Longtitude}-Koordinate identifiziert und zugeordnet werden. Somit werden für das Versenden von einer
-Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
+Durch diese Suffixe, können die Positionsfragmente später eindeutig zugeordnet werden. Somit werden für das
+Versenden von einer Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der \textit{Empfänger} eine
-Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so
-versendet dieser wieder ein \textit{Latitude/Longtitude} Paar. Abbildung \ref{protocol} zeigt, das Versenden von Positionsdaten
-des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser schickt im Anschluss auf gleichem Weg
-\textit{Acknowledgements} an den \textit{Sender}.
+Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so versendet
+dieser wieder ein \textit{Latitude/Longtitude} Paar. Sollten diese \textit{Acknowledgements} ausbleiben, so wartet der Sender eine
+längere Zeit und versendet die Daten erneut. Somit werden Daten in längeren Abständen vesandt, wenn kein \textit{Empfänger} aktiv
+sein sollte. Tritt nun wieder ein \textit{Empfänger} dem \textit{Channel} bei und sendet \textit{Acknowledgements}, so erhöht der
+Sender daraufhin wieder die Senderate. Diese Vorgehensweise tritt auch in Kraft, falls eine Bestätigung, aufgrund von
+Übertragungsfehlern nur unvollständig ankommt. Sollte die Verbindung zum \textit{IRC}-Server
+unterbrochen werden, so versucht sich der \textit{Sender} in regelmäßigen Zeitabständen neu zu verbinden. Abbildung \ref{protocol}
+zeigt, das Versenden von Positionsdaten des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser
+schickt im Anschluss auf gleichem Weg \textit{Acknowledgements} an den \textit{Sender}.
\begin{figure}[!ht]
\centering
@@ -92,11 +94,18 @@ des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}
Auch beim \textit{Empfänger} muss im ersten Schritt eine \textit{IRC-Session} initialisiert werden. Da mehrere
Benutzer Positionsdaten senden können legt der \textit{Empfänger} für jeden \textit{Sender} einen Datensatz an. Wird nun ein
-Fragment der Positionsdaten empfangen, so kann der dies anhanden des Buchstabensuffix zuordnen. Sind alle Fragmente einer
-Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein \textit{Acknowledgement}
-gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
-kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Abbildung \ref{position} zeigt die Darstellung
-einer Position eines anderen Benutzers.
+Fragment der Positionsdaten empfangen, so kann der \textit{Empfänger }dies anhanden des Buchstabensuffix zuordnen. Sind alle
+Fragmente einer Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein
+\textit{Acknowledgement} gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des
+\textit{Senders} der Nachricht. Somit kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Sollte
+der \textit{Sender} das Senden von Nachrichten einstellen, so wartet der \textit{Empfänger} bis ein neuer \textit{Sender}
+verfügbar ist. Sollte der Fall eintreten, dass die Positionsfragmente nicht in der vorgesehenen Reihenfolge ankommen, so stellt
+dies für den \textit{Empfänger} kein Problem dar. Auffgrund des Suffixes, wird das Fragment gespeichert und zu einem Längen- oder
+Breitengrad vervollständigt, sobald der fehlende Teil vorhanden ist. Sollte ein Fragment nicht ankommen, so werden alle alten,
+bis dahin vorhandenen Fragmente verworfen. Dies geschieht, sobald der \textit{Empfänger} registriert, dass ein Positionsfragment
+der gleichen Art schon vorhanden ist. Sollte ein Positionsfragment unvollständig ankommen, so wird es verworfen. Wird die
+Verbindung zum Server unterbrochen, so versucht der \textit{Empfänger} sich neu zu verbinden. Abbildung \ref{position} zeigt die
+Darstellung einer Position eines anderen Benutzers.
\begin{figure}[!ht]
\centering
@@ -109,13 +118,17 @@ einer Position eines anderen Benutzers.
Um einen 2D-Barcode zu erstellen wird eine Zeichenkette benötigt. Aus dieser werden durch die Nutzung von \textit{qrencode}
\footnote{libqrencode http://megaui.net/fukuchi/works/qrencode/index.en.html\newline[Online; letzter Aufruf 11.02.2010]}
-Bilddaten
-generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng http://www.libpng.org/ [Online; letzter
-Aufruf 11.02.2010]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und
-ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
-Wenn nun Schlüssel ausgetauscht werden so kann nun ein anderer Nutzer den ausgegebenen Barcode mit der Kamera seines
-Mobiltelefones fotographieren. Im Anschluss kann aus dem auf dem Foto abgebildeten 2D-Barcode, mit Hilfe von \textit{qrencode},
-wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
+Bilddaten generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng http://www.libpng.org/ [Online;
+letzter Aufruf 11.02.210]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI}
+geladen und ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder}
+ausgegeben wird. \newline
+Möchten Benutzer Schlüssel austauschen, so kann ein Barcode aus einer Zeichenkette erstellt werden. Die
+zugrunde liegende Zeichenkette kann zum Beispiel ein zuvor erstellter und auf dem Medium gespeicherter 1024 Bit Schlüssel, eine in
+\textit{Friend Finder} eingegebene Zeichenkette oder ein Schlüssel der mit der für eine Sitzung erstellt wurde,
+sein. Aus dieser kann nun ein Barcode erstellt werden und andere Teilnehmer können diesen ihrerseits fotographieren, in die
+ursprüngliche Zeichenkette umwandeln und als Schlüssel nutzen. Der Vorteil der durch die Wahl dieser Methode ensteht, ist dass
+Schlüssel ausgetauscht werden können, wenn Nutzer sich durch Zufall treffen oder den Dienst spontan nutzen wollen, ohne dabei
+schon im Vorraus Schlüssel erstellen zu müssen.
\begin{figure}[!ht]
\centering
@@ -129,22 +142,22 @@ wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
\subsection{Analyse}
-Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
-versendet werden. Unter Datenoverhead werden Hintergrunddaten gesehen, welche versendet werden um die Verbindung aufrecht zu
-erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen, aber nichts mit den eigentlichen Daten zu tun haben.
-\newline
-Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
-auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein Interessanter Punkt stellt die Frage dar, wie sich
+Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig \textit{Datenoverhead} produziert und
+versendet werden. Unter \textit{Datenoverhead} versteht man Hintergrunddaten, welche versendet werden um die Verbindung
+aufrecht zu erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen. Diese Daten besitzen allerdings keinen
+Informationsgehalt für den Anwender.\newline
+Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Der Hauptaugenmerk wird hierbei
+auf die Paketgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein interessanter Punkt stellt die Frage dar, wie sich
das versendete Datenaufkommen im Vergleich zu einer Lösung verhält, welche die Daten an jeden Teilnehmer einzeln verschickt.
-Hier ist besonders von Interesse, ob der Datenoverhead den Vorteil eines \textit{Broadcast}-Mediums wie ein \textit{IRC}-Channel
-revidiert oder nicht. \newline
+Hier ist besonders von Interesse, ob der \textit{Datenoverhead} den Vorteil eines \textit{Broadcast}-Mediums wie ein
+\textit{IRC}-Channel revidiert oder nicht. \newline
Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote {Wireshark http://www.wireshark.org/
-[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll
-verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD http://www.ircd-hybrid.org/
-[Online; letzter Aufruf 27.01.2010]} genutzt. Der Server lief auf dem gleichen Computer wie der Client. Der Client hat sich in
-diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
+[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt, wird zum Versenden der Nachrichten das
+\textit{IRC}-Protokoll verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD
+http://www.ircd-hybrid.org/ [Online; letzter Aufruf 27.01.2010]} genutzt, welche auf dem gleichen Computer wie der
+Client lief. Der Client hat sich in diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
-bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
+bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden und
Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird der Datenverkehr beim Versenden und Empfangen von Positionen
genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe des Datenfeldes, exklusive der Header.
@@ -152,68 +165,81 @@ genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe de
Der Allgemeine Hintergrundverkehr bei \textit{Friend Finder} besteht zum Einen aus \textit{Keep-Alive} Nachrichten, sowie der
Anfrage des Clients nach aktiven Nutzern in den \textit{Channels} in denen er selbst aktiv ist. Die \textit{Keep-Alive}
-Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer
-solchen Nachricht beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat die Größe von 44
+Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer solchen Nachricht von Client zu
+Server beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat eine Größe von 44
Byte. \newline
-Die Anfragen nach den anderen Benutzern in einem \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
-von Client zu Server gesandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
+Anfragen nach den anderen Benutzern innerhalb eines \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
+von Client zu Server versandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
aktiven Benutzer innerhalb eines Channels ab. Für zwei Benutzer ergibt sich ein Datenvolumen von 193 Byte, wobei diese
-Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
+Größe auch abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
\subsubsection{Versenden und Empfangen von Nachrichten}
-Um das Versenden von Nachrichten zu evaluieren wurde ``Hello World`` als Testnachricht benutzt. Der \textit{Blockcipher} von
-\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Das resultierende Paket hat
-eine Größe von 99 Byte.\newline
-Die versendete Textnachricht hat im unverschlüsselten Format die Größe von elf Byte. Nach der Verschlüsselung werden beim Senden
+Um das Versenden von Textnachrichten zu evaluieren wurde "`Hello World"' als Testnachricht benutzt. Der in \textit{Friend
+Finder} genutzte \textit{Blockcipher} teilt den Satz "`Hello World"' in zwei Teile auf: "`Hello "' und "`World"'. Das
+resultierende Paket hat eine Größe von 99 Byte.\newline
+Die versendete Textnachricht plus Terminierungszeichen hat im unverschlüsselten Format die Größe von 24 Byte. Nach der
+Verschlüsselung werden beim Senden
noch Informationen bezüglich \textit{Channel} und der Empfänger der Nachricht in das zu versendende \textit{IRC}-Paket
-geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor neun vergrößert.\newline
+geschrieben. Nach der verschlüsselung, \textit{Base64}-Kodierung sowie hinzufügen von Zusatzinformationen hat die Größe der
+Nachricht circa um den Faktor vier zugenommen.\newline
Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen einer unverschlüsselten Nachricht repräsentiert, so
-ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
+ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 4)$.
\subsubsection{Versenden und Empfangen von Positionen}
-Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
-Messung wurden vier Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die
-Größe des Datenfeldes im Mittel um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein
-\textit{Latitude}/\textit{Longtitude}-Paar zu
-senden sind, beträgt 21 Zeichen. Jedes Zeichen ist 1 Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
-Durch die Verschlüsselung, \textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den
-Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht
-darstellt, ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes
-empfangene Positions-Fragment ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes
-beträgt zwischen 147 und 153
-Byte. In einem solchen Paket werden vier Acknowledgments zusammengefasst.\newline
+Positionsdaten werden beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
+Messung wurden vier verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei beträgt die
+Größe des Datenfeldes im Mittel 140 Byte. Die Gesamtgröße der unverschlüsselten Nachrichten um ein
+\textit{Latitude}/\textit{Longtitude}-Paar zu versenden beträgt 32 Byte. Durch die Verschlüsselung,
+\textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den Faktor vier. Wenn $h$ die
+Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht darstellt, ergibt sich die Größe der
+versendeten Nachricht circa durch $h + (t \cdot 4)$. Hinzu kommt, dass für jedes empfangene Positions-Fragment ein
+\textit{Acknowledgement} gesendet wird. Die Größe eines \textit{Acknowledgment}-Paketes beträgt zwischen 110 und 120 Byte. In
+einem solchen Paket werden vier \textit{Acknowledgments} zusammengefasst.\newline
Daraus kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
-$((h + (t \cdot 20)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines Acknowledgement-Paketes ist und $n$ die Anzahl der
+$((h + (t \cdot 4)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines \textit{Acknowledgements} ist und $n$ die Anzahl der
versandten Pakete repräsentiert.
\subsubsection{Fazit der Auswertung}
-Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden Datenoverhead.
-Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden können.
-Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine aktive
-Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe Datenoverhead, nicht mehr ins Gewicht. Würde man
-diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen geöffnet werden und
-die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
-In der folgenden Graphik \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
+Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden
+\textit{Datenoverhead}. Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt
+werden können. Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine
+aktive Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe \textit{Datenoverhead}, nicht mehr ins
+Gewicht. Würde man diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen
+geöffnet werden und die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
+In der folgenden Abbildung \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
Finder} implementierte Methode, zu einem beliebigen Zeitpunkt $t$ verglichen. Es wird angenommen das die versandten Positionsdaten
-eine Größe von 430 Byte, und ein \textit{Acknowledgement} 150 Byte haben. Des weiteren wird angenommen dass alle Nutzer die Daten
-empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus ergibt
-sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$, welche als Grundlage für die Abbildung \ref{graph} dient. Die Abbildung
-\ref{graph2} zeigt dass Datenaufkommen der zwei verschiedenen Methoden innerhalb eines Zeitraums von 25 Sekunden, gegeben dass die
-Positionsdaten alle drei Sekunden versandt werden.
+eine Größe von 140 Byte und vier \textit{Acknowledgements} von 120 Byte haben. Des Weiteren wird angenommen dass alle Nutzer die
+Daten empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus
+ergibt sich die Formel $(n \cdot 140) + (n \cdot 120)$, welche als Grundlage für die Abbildung \ref{graph} dient.\newline
+In Abbildung \ref{graph2} ist der Hintergrund Traffic von \textit{Friend Finder}, zu einem beliebigen Zeitpunkt $t$, abgetragen.
+Die Größe wird anhand der aktiven Teilnehmer ausgegeben. Es wird angenommen, das eine Nachricht, mit Benutzerinformationen eines
+\textit{Channels}, für $n$ Benutzer die Größe von $70 + (60 \cdot n)$ hat. Die Größe von 70 Byte stellt hierbei den Server plus
+den \textit{Channel}-Namen dar. Zudem wird angenommen das in diesem Fall die Information zu jedem Benutzer eine Größe von 60 Byte
+hat. Eine \textit{Keep-Alive} Nachricht hat die Größe von 136 Byte, da diese Nachrichten in dem Zeitraum in dem einmal die
+Benutzerinformationen ausgetauscht werden, zweimal versandt werden. Dieses Datenvolumen setzt sich aus der Nachricht von Client zu
+Server, sowie der Antwortnachricht des Servers an den Client, zusammen. Die Gesamtgröße der \textit{Keep-Alive} Nachrichten für
+$n$ Teilnehmer wird durch $136 \cdot n$ errechnet. Die eingezeichnete Summe repräsentiert die Formel $(136 \cdot n) + (70 +(60
+\cdot n)$, also die Summe aus \textit{Keep-Alive} Nachrichten sowie versendeten Benutzerinformationen.\newline
+Es fällt also auf, dass beim \textit{IRC}-Protokoll trotz Hintergrunddaten, bei steigender Teilnehmerzahl weniger Datenvolumen
+benötigt wird. Würde eine Lösung mit $n$ Verbindungen gewählt werden, so muss noch bedacht werden dass auf die versendeten Daten
+ Hintergrunddaten, multipliziert mit der Anzahl der Teilnehmer, addiert werden müssten. Im gegensatz hierzu müssen diese
+Werte beim nur \textit{IRC}-Protokoll nur einmalig addiert werden.
\begin{figure}[!ht]
\centering
- \includegraphics[width=10cm]{Bilder/graph}
- \caption{Vergleich von $n$-Verbindungen und \textit{Friend Finder}}
+ \includegraphics[width=12cm]{Bilder/graph}
+ \caption{Vergleich des versandten Datenvolumen anhand von unterschiedlichen Teilnehmerzahlen, von $n$-Verbindungen und
+\textit{Friend Finder} zu einem beliebigen Zeitpunkt $t$.}
\label{graph}
\end{figure}
\begin{figure}[!ht]
\centering
- \includegraphics[width=10cm]{Bilder/graph2}
- \caption{Versandte Daten über die Zeit von $n$-Verbindungen und \textit{Friend Finder}}
+ \includegraphics[width=12cm]{Bilder/graph2}
+ \caption{Versandte Hintergrunddaten von \textit{Friend Finder} anhand von unterschiedlichen Teilnehmerzahlen, zu einem beliebigen
+Zeitpunkt $t$.}
\label{graph2}
\end{figure} \ No newline at end of file
diff --git a/ausarbeitung/Friend_Finder.tex.backup b/ausarbeitung/Friend_Finder.tex.backup
index cfccdc4..4be0d8c 100644
--- a/ausarbeitung/Friend_Finder.tex.backup
+++ b/ausarbeitung/Friend_Finder.tex.backup
@@ -8,7 +8,7 @@ aufgezeigt.
\subsection{Verwendete Verfahren und Bibliotheken}
-\textit{Friend Finder} wurde so konzipiert, dass die graphische Darstellung ohne großen Aufwand von den restlichen
+Der \textit{Friend Finder} wurde so konzipiert, dass die graphische Darstellung ohne großen Aufwand von den restlichen
Teilen der Software abgekoppelt und durch eine andere Art der Darstellung ersetzt werden kann.\newline
Neben dem \textit{Graphical User Interface (GUI)} besteht die Software aus drei unterschiedlichen Modulen. Der \textit{Message
Sender} ist für das Versenden und Empfangen der Textnachrichten zuständig, \textit{Sender} sendet die eigene Position,
@@ -27,33 +27,33 @@ weiter.
\label{ablauf}
\end{figure}
-\subsubsection{Grafisches Benutzeroberfläche}
+\subsubsection{Graphische Benutzeroberfläche}
Um die Modularität zu wahren wird der gesammte Programmcode der Benutzeroberfläche in einer Datei zusammengefast. In dieser Datei
sind alle Funktionen enthalten um die Oberflächenelement zu platzieren. Um die gewünschte Funktionalität der einzelnen Elemente zu
realisieren wurden auch die Aufrufe der benötigten Funktionen aus anderen Modulen in dieser Datei implementiert. \newline
Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap}\footnote{OpenStreetMap
-\url{http://www.openstreetmap.de/} [Online; letzter Aufruf 13.02.2010]} genutzt.
+http://www.openstreetmap.de/ [Online; letzter Aufruf 13.02.2010]} genutzt.
\subsubsection{Versenden der Nachrichten}
Der \textit{Message Sender} kümmert sich um das Versenden von Nachrichten. Um das Versenden und Empfangen der Daten zu
-implementieren wurde \textit{libircclient}\footnote{libircclien \url{http://libircclient.sourceforge.net/} [Online; letzter Aufruf
+implementieren wurde \textit{libircclient}\footnote{libircclient http://libircclient.sourceforge.net/ [Online; letzter Aufruf
25.01.2010]} genutzt. Im ersten
-Schritt baut dieser eine Verbindung zum \textit{IRC-Server} auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
+Schritt baut dieser eine Verbindung zum \textit{IRC}-Server auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
muss eine \textit{IRC-Session} initialisiert werden. Diese \textit{Session} beinhaltet Informationen wie zum Beispiel
den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Nachdem diese \textit{Session} gestartet wurde,
können nun Nachrichten versandt werden. Textnachrichten müssen vor dem Versenden in Blöcke aufgeteilt werden, da das genutze
Verschlüsselungsverfahren \textit{Blowfish} \citep{blowfish} maximal 64 Bit lange Zeichenkette verschlüsselt. Das verwendete
-Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL \url{http://www.openssl.org/} [Online; letzter Aufruf 25.01.2010]}
-Bibliothek. Diese Implementierung wurde wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen
+Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL http://www.openssl.org/ [Online; letzter Aufruf 25.01.2010]}
+Bibliothek. Diese Implementierung wurde aufgrund der schnellen Verschlüsselungsrate sowie einfachen
Implementierungsmöglichkeiten gewählt. Da das \textit{IRC}-Protokoll nicht alle Zeichen darstellen kann oder bestimmte Zeichen als
-Präfixe vor einem Kommando nutzt werden, alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64} Darstellung
-umgewandelt.\newline
+Präfixe vor einem Kommando genutzt werden, werden alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64}
+Darstellung umgewandelt.\newline
Wird nun von einer anderen Instanz des \textit{Message Senders} eine Nachricht empfangen, so setzt er die Teilstücke zusammen.
Dies geschieht solange, bis ein vom Nachrichtentext getrennt gesendetes Terminierungszeichen empfangen wird. Wurde dieses Zeichen
empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht. \newline
-In Abbildung \ref{chat} ist das die graphische Darstellung eines Nachrichtenaustausches abgebildet.
+In Abbildung \ref{chat} ist die graphische Darstellung eines Nachrichtenaustausches abgebildet.
\begin{figure}[!ht]
\centering
@@ -70,16 +70,18 @@ wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade ge
Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden, dass maximal eine Zeichenkette der
Länge 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Suffix angehängt.
-Da sich diese vier Suffixe unterscheiden, können die Positionsfragmente später eindeutig zugeordnet werden. Beispielsweise hat
-eine \textit{Latitude}-Koordinate den Wert $47.996578$. Dieser Koordinate wird nun in $47.99$ und $6578$ aufgeteilt. Nach dem
-Anhängen der Suffixe werden $47.99a$ und $6578b$ versendet und können anhand der Suffix ``a'' und ``b'' als erster, bzw zweiter
-Teil der \textit{Longtitude}-Koordinate identifiziert und zugeordnet werden. Somit werden für das Versenden von einer
-Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
+Durch diese Suffixe, können die Positionsfragmente später eindeutig zugeordnet werden. Somit werden für das
+Versenden von einer Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der \textit{Empfänger} eine
-Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so
-versendet dieser wieder ein \textit{Latitude/Longtitude} Paar. Abbildung \ref{protocol} zeigt, das Versenden von Positionsdaten
-des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser schickt im Anschluss auf gleichem Weg
-\textit{Acknowledgements} an den \textit{Sender}.
+Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so versendet
+dieser wieder ein \textit{Latitude/Longtitude} Paar. Sollten diese \textit{Acknowledgements} ausbleiben, so wartet der Sender eine
+längere Zeit und versendet die Daten erneut. Somit werden Daten in längeren Abständen vesandt, wenn kein \textit{Empfänger} aktiv
+sein sollte. Tritt nun wieder ein \textit{Empfänger} dem \textit{Channel} bei und sendet \textit{Acknowledgements}, so erhöht der
+Sender daraufhin wieder die Senderate. Diese Vorgehensweise tritt auch in Kraft, falls eine Bestätigung, aufgrund von
+Übertragungsfehlern nur unvollständig ankommt. Sollte die Verbindung zum \textit{IRC}-Server
+unterbrochen werden, so versucht sich der \textit{Sender} in regelmäßigen Zeitabständen neu zu verbinden. Abbildung \ref{protocol}
+zeigt, das Versenden von Positionsdaten des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser
+schickt im Anschluss auf gleichem Weg \textit{Acknowledgements} an den \textit{Sender}.
\begin{figure}[!ht]
\centering
@@ -92,11 +94,18 @@ des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}
Auch beim \textit{Empfänger} muss im ersten Schritt eine \textit{IRC-Session} initialisiert werden. Da mehrere
Benutzer Positionsdaten senden können legt der \textit{Empfänger} für jeden \textit{Sender} einen Datensatz an. Wird nun ein
-Fragment der Positionsdaten empfangen, so kann der dies anhanden des Buchstabensuffix zuordnen. Sind alle Fragmente einer
-Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein \textit{Acknowledgement}
-gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
-kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Abbildung \ref{position} zeigt die Darstellung
-einer Position eines anderen Benutzers.
+Fragment der Positionsdaten empfangen, so kann der \textit{Empfänger }dies anhanden des Buchstabensuffix zuordnen. Sind alle
+Fragmente einer Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein
+\textit{Acknowledgement} gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des
+\textit{Senders} der Nachricht. Somit kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Sollte
+der \textit{Sender} das Senden von Nachrichten einstellen, so wartet der \textit{Empfänger} bis ein neuer \textit{Sender}
+verfügbar ist. Sollte der Fall eintreten, dass die Positionsfragmente nicht in der vorgesehenen Reihenfolge ankommen, so stellt
+dies für den \textit{Empfänger} kein Problem dar. Auffgrund des Suffixes, wird das Fragment gespeichert und zu einem Längen- oder
+Breitengrad vervollständigt, sobald der fehlende Teil vorhanden ist. Sollte ein Fragment nicht ankommen, so werden alle alten,
+bis dahin vorhandenen Fragmente verworfen. Dies geschieht, sobald der \textit{Empfänger} registriert, dass ein Positionsfragment
+der gleichen Art schon vorhanden ist. Sollte ein Positionsfragment unvollständig ankommen, so wird es verworfen. Wird die
+Verbindung zum Server unterbrochen, so versucht der \textit{Empfänger} sich neu zu verbinden. Abbildung \ref{position} zeigt die
+Darstellung einer Position eines anderen Benutzers.
\begin{figure}[!ht]
\centering
@@ -108,14 +117,18 @@ einer Position eines anderen Benutzers.
\subsubsection{Erzeugen eines 2D-Barcodes}
Um einen 2D-Barcode zu erstellen wird eine Zeichenkette benötigt. Aus dieser werden durch die Nutzung von \textit{qrencode}
-\footnote{libqrencode \url{http://megaui.net/fukuchi/works/qrencode/index.en.html}\newline[Online; letzter Aufruf 11.02.2010]}
-Bilddaten
-generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng \url{http://www.libpng.org/} [Online; letzter
-Aufruf 11.02.2010]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und
-ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
-Wenn nun Schlüssel ausgetauscht werden so kann nun ein anderer Nutzer den ausgegebenen Barcode mit der Kamera seines
-Mobiltelefones fotographieren. Im Anschluss kann aus dem auf dem Foto abgebildeten 2D-Barcode, mit Hilfe von \textit{qrencode},
-wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
+\footnote{libqrencode http://megaui.net/fukuchi/works/qrencode/index.en.html\newline[Online; letzter Aufruf 11.02.2010]}
+Bilddaten generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng http://www.libpng.org/ [Online;
+letzter Aufruf 11.02.210]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI}
+geladen und ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder}
+ausgegeben wird. \newline
+Möchten Benutzer Schlüssel austauschen, so kann ein Barcode aus einer Zeichenkette erstellt werden. Die
+zugrunde liegende Zeichenkette kann zum Beispiel ein zuvor erstellter und auf dem Medium gespeicherter 1024 Bit Schlüssel, eine in
+\textit{Friend Finder} eingegebene Zeichenkette oder ein Schlüssel der mit der für eine Sitzung erstellt wurde,
+sein. Aus dieser kann nun ein Barcode erstellt werden und andere Teilnehmer können diesen ihrerseits fotographieren, in die
+ursprüngliche Zeichenkette umwandeln und als Schlüssel nutzen. Der Vorteil der durch die Wahl dieser Methode ensteht, ist dass
+Schlüssel ausgetauscht werden können, wenn Nutzer sich durch Zufall treffen oder den Dienst spontan nutzen wollen, ohne dabei
+schon im Vorraus Schlüssel erstellen zu müssen.
\begin{figure}[!ht]
\centering
@@ -129,22 +142,22 @@ wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
\subsection{Analyse}
-Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
-versendet werden. Unter Datenoverhead werden Hintergrunddaten gesehen, welche versendet werden um die Verbindung aufrecht zu
-erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen, aber nichts mit den eigentlichen Daten zu tun haben.
-\newline
-Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
-auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein Interessanter Punkt stellt die Frage dar, wie sich
+Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig \textit{Datenoverhead} produziert und
+versendet werden. Unter \textit{Datenoverhead} versteht man Hintergrunddaten, welche versendet werden um die Verbindung
+aufrecht zu erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen. Diese Daten besitzen allerdings keinen
+Informationsgehalt für den Anwender.\newline
+Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Der Hauptaugenmerk wird hierbei
+auf die Paketgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein interessanter Punkt stellt die Frage dar, wie sich
das versendete Datenaufkommen im Vergleich zu einer Lösung verhält, welche die Daten an jeden Teilnehmer einzeln verschickt.
-Hier ist besonders von Interesse, ob der Datenoverhead den Vorteil eines \textit{Broadcast}-Mediums wie ein \textit{IRC}-Channel
-revidiert oder nicht. \newline
-Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote {Wireshark \url{http://www.wireshark.org/}
-[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll
-verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD \url{http://www.ircd-hybrid.org/}
-[Online; letzter Aufruf 27.01.2010]} genutzt. Der Server lief auf dem gleichen Computer wie der Client. Der Client hat sich in
-diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
+Hier ist besonders von Interesse, ob der \textit{Datenoverhead} den Vorteil eines \textit{Broadcast}-Mediums wie ein
+\textit{IRC}-Channel revidiert oder nicht. \newline
+Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote {Wireshark http://www.wireshark.org/
+[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt, wird zum Versenden der Nachrichten das
+\textit{IRC}-Protokoll verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD
+http://www.ircd-hybrid.org/ [Online; letzter Aufruf 27.01.2010]} genutzt, welche auf dem gleichen Computer wie der
+Client lief. Der Client hat sich in diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
-bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
+bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden und
Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird der Datenverkehr beim Versenden und Empfangen von Positionen
genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe des Datenfeldes, exklusive der Header.
@@ -152,59 +165,79 @@ genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe de
Der Allgemeine Hintergrundverkehr bei \textit{Friend Finder} besteht zum Einen aus \textit{Keep-Alive} Nachrichten, sowie der
Anfrage des Clients nach aktiven Nutzern in den \textit{Channels} in denen er selbst aktiv ist. Die \textit{Keep-Alive}
-Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer
-solchen Nachricht beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat die Größe von 44
+Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer solchen Nachricht von Client zu
+Server beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat eine Größe von 44
Byte. \newline
-Die Anfragen nach den anderen Benutzern in einem \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
-von Client zu Server gesandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
+Anfragen nach den anderen Benutzern innerhalb eines \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
+von Client zu Server versandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
aktiven Benutzer innerhalb eines Channels ab. Für zwei Benutzer ergibt sich ein Datenvolumen von 193 Byte, wobei diese
-Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
+Größe auch abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
\subsubsection{Versenden und Empfangen von Nachrichten}
-Um das Versenden von Nachrichten zu evaluieren wurde ``Hello World`` als Testnachricht benutzt. Der \textit{Blockcipher} von
-\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Das resultierende Paket hat
-eine Größe von 99 Byte.\newline
-Die versendete Textnachricht hat im unverschlüsselten Format die Größe von elf Byte. Nach der Verschlüsselung werden beim Senden
+Um das Versenden von Textnachrichten zu evaluieren wurde "`Hello World"' als Testnachricht benutzt. Der in \textit{Friend
+Finder} genutzte \textit{Blockcipher} teilt den Satz "`Hello World"' in zwei Teile auf: "`Hello "' und "`World"'. Das
+resultierende Paket hat eine Größe von 99 Byte.\newline
+Die versendete Textnachricht plus Terminierungszeichen hat im unverschlüsselten Format die Größe von 24 Byte. Nach der
+Verschlüsselung werden beim Senden
noch Informationen bezüglich \textit{Channel} und der Empfänger der Nachricht in das zu versendende \textit{IRC}-Paket
-geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor neun vergrößert.\newline
+geschrieben. Nach der verschlüsselung, \textit{Base64}-Kodierung sowie hinzufügen von Zusatzinformationen hat die Größe der
+Nachricht circa um den Faktor vier zugenommen.\newline
Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen einer unverschlüsselten Nachricht repräsentiert, so
-ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
+ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 4)$.
\subsubsection{Versenden und Empfangen von Positionen}
-Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
-Messung wurden vier Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die
-Größe des Datenfeldes im Mittel um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein
-\textit{Latitude}/\textit{Longtitude}-Paar zu
-senden sind, beträgt 21 Zeichen. Jedes Zeichen ist 1 Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
-Durch die Verschlüsselung, \textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den
-Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht
-darstellt, ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes
-empfangene Positions-Fragment ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes
-beträgt zwischen 147 und 153
-Byte. In einem solchen Paket werden vier Acknowledgments zusammengefasst.\newline
+Positionsdaten werden beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
+Messung wurden vier verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei beträgt die
+Größe des Datenfeldes im Mittel 140 Byte. Die Gesamtgröße der unverschlüsselten Nachrichten um ein
+\textit{Latitude}/\textit{Longtitude}-Paar zu versenden beträgt 32 Byte. Durch die Verschlüsselung,
+\textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den Faktor vier. Wenn $h$ die
+Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht darstellt, ergibt sich die Größe der
+versendeten Nachricht circa durch $h + (t \cdot 4)$. Hinzu kommt, dass für jedes empfangene Positions-Fragment ein
+\textit{Acknowledgement} gesendet wird. Die Größe eines \textit{Acknowledgment}-Paketes beträgt zwischen 110 und 120 Byte. In
+einem solchen Paket werden vier \textit{Acknowledgments} zusammengefasst.\newline
Daraus kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
-$((h + (t \cdot 20)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines Acknowledgement-Paketes ist und $n$ die Anzahl der
+$((h + (t \cdot 4)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines \textit{Acknowledgements} ist und $n$ die Anzahl der
versandten Pakete repräsentiert.
\subsubsection{Fazit der Auswertung}
-Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden Datenoverhead.
-Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden können.
-Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine aktive
-Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe Datenoverhead, nicht mehr ins Gewicht. Würde man
-diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen geöffnet werden und
-die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
-In der folgenden Graphik \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
-Finder} implementierte Methode verglichen. Es wird angenommen das die versandten Positionsdaten eine Größe von 430 Byte, und ein
-\textit{Acknowledgement} 150 Byte haben. Des weiteren wird angenommen dass alle Nutzer die Daten
-empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus ergibt
-sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$, welche als Grundlage für die Abbildung \ref{graph} dient.
+Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden
+\textit{Datenoverhead}. Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt
+werden können. Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine
+aktive Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe \textit{Datenoverhead}, nicht mehr ins
+Gewicht. Würde man diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen
+geöffnet werden und die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
+In der folgenden Abbildung \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
+Finder} implementierte Methode, zu einem beliebigen Zeitpunkt $t$ verglichen. Es wird angenommen das die versandten Positionsdaten
+eine Größe von 140 Byte und vier \textit{Acknowledgements} von 120 Byte haben. Des Weiteren wird angenommen dass alle Nutzer die
+Daten empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus
+ergibt sich die Formel $(n \cdot 140) + (n \cdot 120)$, welche als Grundlage für die Abbildung \ref{graph} dient.\newline
+In Abbildung \ref{graph2} ist der Hintergrund Traffic von \textit{Friend Finder}, zu einem beliebigen Zeitpunkt $t$, abgetragen.
+Die Größe wird anhand der aktiven Teilnehmer ausgegeben. Es wird angenommen, das eine Nachricht, mit Benutzerinformationen eines
+\textit{Channels}, für $n$ Benutzer die Größe von $70 + (60 \cdot n)$ hat. Die Größe von 70 Byte stellt hierbei den Server plus
+den \textit{Channel}-Namen dar. Zudem wird angenommen das in diesem Fall die Information zu jedem Benutzer eine Größe von 60 Byte
+hat. Eine \textit{Keep-Alive} Nachricht hat die Größe von 136 Byte. Dieses Datenvolumen setzt sich aus der Nachricht von Client
+zu Server, sowie der Antwortnachricht des Servers an den Client, zusammen. Die Gesamtgröße der \textit{Keep-Alive} Nachrichten für
+$n$ Teilnehmer wird durch $136 \cdot n$ errechnet. Die eingezeichnete Summe repräsentiert die Formel $(136 \cdot n) + (70 +(60
+\cdot n)$, also die Summe aus \textit{Keep-Alive} Nachrichten sowie versendeten Benutzerinformationen.\newline
+Es fällt also auf, dass das \textit{IRC}-Protokoll, trotz Hintergrunddaten, bei steigender Teilnehmerzahl weniger Datenvolumen
+benötigt wird. Würde eine Lösung mit $n$ Verbindungen gewählt werden, so muss noch bedacht werden dass auf die versendeten Daten
+nocheinmal Hintergrunddaten multipliziert mit der Anzahl der Teilnehmer addiert werden müssten.
\begin{figure}[!ht]
\centering
- \includegraphics[width=10cm]{Bilder/graph}
- \caption{Vergleich von $n$-Verbindungen und \textit{Friend Finder}}
+ \includegraphics[width=12cm]{Bilder/graph}
+ \caption{Vergleich des versandten Datenvolumen anhand von unterschiedlichen Teilnehmerzahlen, von $n$-Verbindungen und
+\textit{Friend Finder} zu einem beliebigen Zeitpunkt $t$.}
\label{graph}
\end{figure}
+
+\begin{figure}[!ht]
+\centering
+ \includegraphics[width=12cm]{Bilder/graph2}
+ \caption{Versandte Hintergrunddaten von \textit{Friend Finder} anhand von unterschiedlichen Teilnehmerzahlen, zu einem beliebigen
+Zeitpunkt $t$.}
+ \label{graph2}
+\end{figure} \ No newline at end of file
diff --git a/ausarbeitung/Friend_Finder.tex~ b/ausarbeitung/Friend_Finder.tex~
index c5a361c..e9722a9 100644
--- a/ausarbeitung/Friend_Finder.tex~
+++ b/ausarbeitung/Friend_Finder.tex~
@@ -8,7 +8,7 @@ aufgezeigt.
\subsection{Verwendete Verfahren und Bibliotheken}
-\textit{Friend Finder} wurde so konzipiert, dass die graphische Darstellung ohne großen Aufwand von den restlichen
+Der \textit{Friend Finder} wurde so konzipiert, dass die graphische Darstellung ohne großen Aufwand von den restlichen
Teilen der Software abgekoppelt und durch eine andere Art der Darstellung ersetzt werden kann.\newline
Neben dem \textit{Graphical User Interface (GUI)} besteht die Software aus drei unterschiedlichen Modulen. Der \textit{Message
Sender} ist für das Versenden und Empfangen der Textnachrichten zuständig, \textit{Sender} sendet die eigene Position,
@@ -27,7 +27,7 @@ weiter.
\label{ablauf}
\end{figure}
-\subsubsection{Grafisches Benutzeroberfläche}
+\subsubsection{Graphische Benutzeroberfläche}
Um die Modularität zu wahren wird der gesammte Programmcode der Benutzeroberfläche in einer Datei zusammengefast. In dieser Datei
sind alle Funktionen enthalten um die Oberflächenelement zu platzieren. Um die gewünschte Funktionalität der einzelnen Elemente zu
@@ -38,22 +38,22 @@ http://www.openstreetmap.de/ [Online; letzter Aufruf 13.02.2010]} genutzt.
\subsubsection{Versenden der Nachrichten}
Der \textit{Message Sender} kümmert sich um das Versenden von Nachrichten. Um das Versenden und Empfangen der Daten zu
-implementieren wurde \textit{libircclient}\footnote{libircclien http://libircclient.sourceforge.net/ [Online; letzter Aufruf
+implementieren wurde \textit{libircclient}\footnote{libircclient http://libircclient.sourceforge.net/ [Online; letzter Aufruf
25.01.2010]} genutzt. Im ersten
-Schritt baut dieser eine Verbindung zum \textit{IRC-Server} auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
+Schritt baut dieser eine Verbindung zum \textit{IRC}-Server auf. Um eine Verbindung mit einem \textit{IRC-Server} zu etablieren,
muss eine \textit{IRC-Session} initialisiert werden. Diese \textit{Session} beinhaltet Informationen wie zum Beispiel
den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Nachdem diese \textit{Session} gestartet wurde,
können nun Nachrichten versandt werden. Textnachrichten müssen vor dem Versenden in Blöcke aufgeteilt werden, da das genutze
Verschlüsselungsverfahren \textit{Blowfish} \citep{blowfish} maximal 64 Bit lange Zeichenkette verschlüsselt. Das verwendete
Verfahren stammt aus der \textit{OpenSSL}\footnote{OpenSSL http://www.openssl.org/ [Online; letzter Aufruf 25.01.2010]}
-Bibliothek. Diese Implementierung wurde wurde Aufgrund der schnellen Verschlüsselungsrate sowie einfachen
+Bibliothek. Diese Implementierung wurde aufgrund der schnellen Verschlüsselungsrate sowie einfachen
Implementierungsmöglichkeiten gewählt. Da das \textit{IRC}-Protokoll nicht alle Zeichen darstellen kann oder bestimmte Zeichen als
-Präfixe vor einem Kommando nutzt werden, alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64} Darstellung
-umgewandelt.\newline
+Präfixe vor einem Kommando genutzt werden, werden alle versendeten Daten des Programmes in die \textit{Base64}\citep{Base64}
+Darstellung umgewandelt.\newline
Wird nun von einer anderen Instanz des \textit{Message Senders} eine Nachricht empfangen, so setzt er die Teilstücke zusammen.
Dies geschieht solange, bis ein vom Nachrichtentext getrennt gesendetes Terminierungszeichen empfangen wird. Wurde dieses Zeichen
empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht. \newline
-In Abbildung \ref{chat} ist das die graphische Darstellung eines Nachrichtenaustausches abgebildet.
+In Abbildung \ref{chat} ist die graphische Darstellung eines Nachrichtenaustausches abgebildet.
\begin{figure}[!ht]
\centering
@@ -70,16 +70,18 @@ wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade ge
Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden, dass maximal eine Zeichenkette der
Länge 64 Bit verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt
zu versenden. An jedes Ende, dieser insgesamt vier Fragmente, wird ein zusätzlicher, jeweils unterschiedlicher Suffix angehängt.
-Da sich diese vier Suffixe unterscheiden, können die Positionsfragmente später eindeutig zugeordnet werden. Beispielsweise hat
-eine \textit{Latitude}-Koordinate den Wert $47.996578$. Dieser Koordinate wird nun in $47.99$ und $6578$ aufgeteilt. Nach dem
-Anhängen der Suffixe werden $47.99a$ und $6578b$ versendet und können anhand der Suffix ``a'' und ``b'' als erster, bzw zweiter
-Teil der \textit{Longtitude}-Koordinate identifiziert und zugeordnet werden. Somit werden für das Versenden von einer
-Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
+Durch diese Suffixe, können die Positionsfragmente später eindeutig zugeordnet werden. Somit werden für das
+Versenden von einer Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der \textit{Empfänger} eine
-Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so
-versendet dieser wieder ein \textit{Latitude/Longtitude} Paar. Abbildung \ref{protocol} zeigt, das Versenden von Positionsdaten
-des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser schickt im Anschluss auf gleichem Weg
-\textit{Acknowledgements} an den \textit{Sender}.
+Bestätigung für jedes Fragment an den \textit{IRC-Channel} sendet. Kommt diese Bestätigung beim \textit{Sender} an, so versendet
+dieser wieder ein \textit{Latitude/Longtitude} Paar. Sollten diese \textit{Acknowledgements} ausbleiben, so wartet der Sender eine
+längere Zeit und versendet die Daten erneut. Somit werden Daten in längeren Abständen vesandt, wenn kein \textit{Empfänger} aktiv
+sein sollte. Tritt nun wieder ein \textit{Empfänger} dem \textit{Channel} bei und sendet \textit{Acknowledgements}, so erhöht der
+Sender daraufhin wieder die Senderate. Diese Vorgehensweise tritt auch in Kraft, falls eine Bestätigung, aufgrund von
+Übertragungsfehlern nur unvollständig ankommt. Sollte die Verbindung zum \textit{IRC}-Server
+unterbrochen werden, so versucht sich der \textit{Sender} in regelmäßigen Zeitabständen neu zu verbinden. Abbildung \ref{protocol}
+zeigt, das Versenden von Positionsdaten des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}. Dieser
+schickt im Anschluss auf gleichem Weg \textit{Acknowledgements} an den \textit{Sender}.
\begin{figure}[!ht]
\centering
@@ -92,11 +94,18 @@ des \textit{Senders} über einen \textit{IRC-Channel} an den \textit{Empfänger}
Auch beim \textit{Empfänger} muss im ersten Schritt eine \textit{IRC-Session} initialisiert werden. Da mehrere
Benutzer Positionsdaten senden können legt der \textit{Empfänger} für jeden \textit{Sender} einen Datensatz an. Wird nun ein
-Fragment der Positionsdaten empfangen, so kann der dies anhanden des Buchstabensuffix zuordnen. Sind alle Fragmente einer
-Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein \textit{Acknowledgement}
-gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des \textit{Senders} der Nachricht. Somit
-kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Abbildung \ref{position} zeigt die Darstellung
-einer Position eines anderen Benutzers.
+Fragment der Positionsdaten empfangen, so kann der \textit{Empfänger }dies anhanden des Buchstabensuffix zuordnen. Sind alle
+Fragmente einer Position empfangen worden, so werden die benötigten Daten zur Visuallisierung weitergereicht und ein
+\textit{Acknowledgement} gesendet. Dieses \textit{Acknowledgement} beinhaltet, in verschlüsselter Form, den Namen des
+\textit{Senders} der Nachricht. Somit kann der \textit{Sender} die für ihn bestimmten \textit{Acknowledgements} zuordnen. Sollte
+der \textit{Sender} das Senden von Nachrichten einstellen, so wartet der \textit{Empfänger} bis ein neuer \textit{Sender}
+verfügbar ist. Sollte der Fall eintreten, dass die Positionsfragmente nicht in der vorgesehenen Reihenfolge ankommen, so stellt
+dies für den \textit{Empfänger} kein Problem dar. Auffgrund des Suffixes, wird das Fragment gespeichert und zu einem Längen- oder
+Breitengrad vervollständigt, sobald der fehlende Teil vorhanden ist. Sollte ein Fragment nicht ankommen, so werden alle alten,
+bis dahin vorhandenen Fragmente verworfen. Dies geschieht, sobald der \textit{Empfänger} registriert, dass ein Positionsfragment
+der gleichen Art schon vorhanden ist. Sollte ein Positionsfragment unvollständig ankommen, so wird es verworfen. Wird die
+Verbindung zum Server unterbrochen, so versucht der \textit{Empfänger} sich neu zu verbinden. Abbildung \ref{position} zeigt die
+Darstellung einer Position eines anderen Benutzers.
\begin{figure}[!ht]
\centering
@@ -109,13 +118,17 @@ einer Position eines anderen Benutzers.
Um einen 2D-Barcode zu erstellen wird eine Zeichenkette benötigt. Aus dieser werden durch die Nutzung von \textit{qrencode}
\footnote{libqrencode http://megaui.net/fukuchi/works/qrencode/index.en.html\newline[Online; letzter Aufruf 11.02.2010]}
-Bilddaten
-generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng http://www.libpng.org/ [Online; letzter
-Aufruf 11.02.2010]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI} geladen und
-ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
-Wenn nun Schlüssel ausgetauscht werden so kann nun ein anderer Nutzer den ausgegebenen Barcode mit der Kamera seines
-Mobiltelefones fotographieren. Im Anschluss kann aus dem auf dem Foto abgebildeten 2D-Barcode, mit Hilfe von \textit{qrencode},
-wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
+Bilddaten generiert. Diese werden im nächsten Schritt durch \textit{libpng}\footnote{libpng http://www.libpng.org/ [Online;
+letzter Aufruf 11.02.210]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI}
+geladen und ausgegeben. Die Abbildung \ref{barcode} zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder}
+ausgegeben wird. \newline
+Möchten Benutzer Schlüssel austauschen, so kann ein Barcode aus einer Zeichenkette erstellt werden. Die
+zugrunde liegende Zeichenkette kann zum Beispiel ein zuvor erstellter und auf dem Medium gespeicherter 1024 Bit Schlüssel, eine in
+\textit{Friend Finder} eingegebene Zeichenkette oder ein Schlüssel der mit der für eine Sitzung erstellt wurde,
+sein. Aus dieser kann nun ein Barcode erstellt werden und andere Teilnehmer können diesen ihrerseits fotographieren, in die
+ursprüngliche Zeichenkette umwandeln und als Schlüssel nutzen. Der Vorteil der durch die Wahl dieser Methode ensteht, ist dass
+Schlüssel ausgetauscht werden können, wenn Nutzer sich durch Zufall treffen oder den Dienst spontan nutzen wollen, ohne dabei
+schon im Vorraus Schlüssel erstellen zu müssen.
\begin{figure}[!ht]
\centering
@@ -129,22 +142,22 @@ wieder eine Zeichenkette erstellt und als Schlüssel genutzt werden.
\subsection{Analyse}
-Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig Datenoverhead produziert und
-versendet werden. Unter Datenoverhead werden Hintergrunddaten gesehen, welche versendet werden um die Verbindung aufrecht zu
-erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen, aber nichts mit den eigentlichen Daten zu tun haben.
-\newline
-Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
-auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein Interessanter Punkt stellt die Frage dar, wie sich
+Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig \textit{Datenoverhead} produziert und
+versendet werden. Unter \textit{Datenoverhead} versteht man Hintergrunddaten, welche versendet werden um die Verbindung
+aufrecht zu erhalten oder um die Anzahl der verfügbaren Teilnehmer zu überprüfen. Diese Daten besitzen allerdings keinen
+Informationsgehalt für den Anwender.\newline
+Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Der Hauptaugenmerk wird hierbei
+auf die Paketgröße, sowie die Menge der versendeten Datenpakete geworfen. Ein interessanter Punkt stellt die Frage dar, wie sich
das versendete Datenaufkommen im Vergleich zu einer Lösung verhält, welche die Daten an jeden Teilnehmer einzeln verschickt.
-Hier ist besonders von Interesse, ob der Datenoverhead den Vorteil eines \textit{Broadcast}-Mediums wie ein \textit{IRC}-Channel
-revidiert oder nicht. \newline
+Hier ist besonders von Interesse, ob der \textit{Datenoverhead} den Vorteil eines \textit{Broadcast}-Mediums wie ein
+\textit{IRC}-Channel revidiert oder nicht. \newline
Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote {Wireshark http://www.wireshark.org/
-[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC}-Protokoll
-verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD http://www.ircd-hybrid.org/
-[Online; letzter Aufruf 27.01.2010]} genutzt. Der Server lief auf dem gleichen Computer wie der Client. Der Client hat sich in
-diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
+[Online; letzter Aufruf 27.01.2010]} untersucht. Wie bereits erwähnt, wird zum Versenden der Nachrichten das
+\textit{IRC}-Protokoll verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid}\footnote{IRCD
+http://www.ircd-hybrid.org/ [Online; letzter Aufruf 27.01.2010]} genutzt, welche auf dem gleichen Computer wie der
+Client lief. Der Client hat sich in diesem Szenario über das \textit{localhost} Interface mit dem Server verbunden. \newline
Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
-bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
+bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden und
Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird der Datenverkehr beim Versenden und Empfangen von Positionen
genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe des Datenfeldes, exklusive der Header.
@@ -152,68 +165,81 @@ genauer betrachtet. Alle folgenden Größen beziehen sich nur auf die Größe de
Der Allgemeine Hintergrundverkehr bei \textit{Friend Finder} besteht zum Einen aus \textit{Keep-Alive} Nachrichten, sowie der
Anfrage des Clients nach aktiven Nutzern in den \textit{Channels} in denen er selbst aktiv ist. Die \textit{Keep-Alive}
-Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer
-solchen Nachricht beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat die Größe von 44
+Nachrichten werden alle 30 Sekunden zwischen Server und Client ausgetauscht. Die Größe einer solchen Nachricht von Client zu
+Server beträgt 24 Byte. Das Antwortpaket, welches vom Server an den Client gesendet wird, hat eine Größe von 44
Byte. \newline
-Die Anfragen nach den anderen Benutzern in einem \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
-von Client zu Server gesandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
+Anfragen nach den anderen Benutzern innerhalb eines \textit{Channel} werden alle 60 Sekunden versandt. Die Größe der Pakete welche
+von Client zu Server versandt werden, betragen hierbei 10 Bytes. Die Größe der Antwort des Servers hängt von der Anzahl der
aktiven Benutzer innerhalb eines Channels ab. Für zwei Benutzer ergibt sich ein Datenvolumen von 193 Byte, wobei diese
-Größe auch Abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
+Größe auch abhängig von der Länge der Benutzernamen sowie des Namens des \textit{Channels} und Servers ist.
\subsubsection{Versenden und Empfangen von Nachrichten}
-Um das Versenden von Nachrichten zu evaluieren wurde ``Hello World`` als Testnachricht benutzt. Der \textit{Blockcipher} von
-\textit{Friend Finder} teilt den Satz ''Hello World`` in zwei Teile auf: ''Hello `` und ''World``. Das resultierende Paket hat
-eine Größe von 99 Byte.\newline
-Die versendete Textnachricht hat im unverschlüsselten Format die Größe von elf Byte. Nach der Verschlüsselung werden beim Senden
+Um das Versenden von Textnachrichten zu evaluieren wurde "`Hello World"' als Testnachricht benutzt. Der in \textit{Friend
+Finder} genutzte \textit{Blockcipher} teilt den Satz "`Hello World"' in zwei Teile auf: "`Hello "' und "`World"'. Das
+resultierende Paket hat eine Größe von 99 Byte.\newline
+Die versendete Textnachricht plus Terminierungszeichen hat im unverschlüsselten Format die Größe von 24 Byte. Nach der
+Verschlüsselung werden beim Senden
noch Informationen bezüglich \textit{Channel} und der Empfänger der Nachricht in das zu versendende \textit{IRC}-Paket
-geschrieben. Nach der \textit{Base64}-Kodierung hat sich die Größe der Nachricht circa um den Faktor neun vergrößert.\newline
+geschrieben. Nach der verschlüsselung, \textit{Base64}-Kodierung sowie hinzufügen von Zusatzinformationen hat die Größe der
+Nachricht circa um den Faktor vier zugenommen.\newline
Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen einer unverschlüsselten Nachricht repräsentiert, so
-ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 9)$.
+ergibt sich die ungefähre Größe der zu versendenden Nachricht aus: $h + (t \cdot 4)$.
\subsubsection{Versenden und Empfangen von Positionen}
-Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
-Messung wurden vier Verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei betrug sich die
-Größe des Datenfeldes im Mittel um die 430 Byte. Die Anzahl der unverschlüsselten Zeichen, die für ein
-\textit{Latitude}/\textit{Longtitude}-Paar zu
-senden sind, beträgt 21 Zeichen. Jedes Zeichen ist 1 Byte groß, womit sich in der Summe eine Größe von 21 Byte ergibt.
-Durch die Verschlüsselung, \textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den
-Faktor zwanzig. Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht
-darstellt, ergibt sich die Größe der versendeten Nachricht circa durch $h + (t \cdot 20)$. Hinzu kommt noch, das für jedes
-empfangene Positions-Fragment ein \textit{Acknowledgement} gesendet wird. Die Größe der eines \textit{Acknowledgment} Paketes
-beträgt zwischen 147 und 153
-Byte. In einem solchen Paket werden vier Acknowledgments zusammengefasst.\newline
+Positionsdaten werden beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Bei der
+Messung wurden vier verschiedene Pakete, mit jeweils unterschiedlichen versandten Positionen untersucht. Dabei beträgt die
+Größe des Datenfeldes im Mittel 140 Byte. Die Gesamtgröße der unverschlüsselten Nachrichten um ein
+\textit{Latitude}/\textit{Longtitude}-Paar zu versenden beträgt 32 Byte. Durch die Verschlüsselung,
+\textit{Base64}-Kodierung sowie Zusatzinformationen vergrößert sich das Datenvolumen also um circa den Faktor vier. Wenn $h$ die
+Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht darstellt, ergibt sich die Größe der
+versendeten Nachricht circa durch $h + (t \cdot 4)$. Hinzu kommt, dass für jedes empfangene Positions-Fragment ein
+\textit{Acknowledgement} gesendet wird. Die Größe eines \textit{Acknowledgment}-Paketes beträgt zwischen 110 und 120 Byte. In
+einem solchen Paket werden vier \textit{Acknowledgments} zusammengefasst.\newline
Daraus kann Folgende Formel für den Datenverkehr pro versendeter Position, bei $n$ Teilnehmern hergeleitet werden:
-$((h + (t \cdot 20)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines Acknowledgement-Paketes ist und $n$ die Anzahl der
+$((h + (t \cdot 4)) + (4 \cdot a))\cdot n$, wobei $a$ die Größe eines \textit{Acknowledgements} ist und $n$ die Anzahl der
versandten Pakete repräsentiert.
\subsubsection{Fazit der Auswertung}
-Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden Datenoverhead.
-Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt werden können.
-Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine aktive
-Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe Datenoverhead, nicht mehr ins Gewicht. Würde man
-diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen geöffnet werden und
-die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
-In der folgenden Graphik \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
+Die Hintergrunddaten welche vom \textit{IRC}-Protokoll versandt werden ergeben einen geringen, in Kauf zu nehmenden
+\textit{Datenoverhead}. Der große Vorteil von \textit{IRC} ist, dass die \textit{Channels} als \textit{Broadcast}-Medium genutzt
+werden können. Diese Tatsache macht es möglich, Daten $n$ Teilnehmer zugänglich zu machen und dabei diese nur einmal, über eine
+aktive Verbindung, zu senden. Berücksichtigt man dies, so fällt, der ohnehin geringe \textit{Datenoverhead}, nicht mehr ins
+Gewicht. Würde man diese Daten über $n$ getrennte Verbindungen an die Teilnehmer versenden, so müssten ebensoviele Verbindungen
+geöffnet werden und die Daten anstelle von einmal, $n$ Mal versandt werden.\newline
+In der folgenden Abbildung \ref{graph} wird das Versenden der Daten über $n$ getrennte Verbindungen, sowie die in \textit{Friend
Finder} implementierte Methode, zu einem beliebigen Zeitpunkt $t$ verglichen. Es wird angenommen das die versandten Positionsdaten
-eine Größe von 430 Byte, und ein \textit{Acknowledgement} 150 Byte haben. Des weiteren wird angenommen dass alle Nutzer die Daten
-empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus ergibt
-sich die Formel $(n \cdot 430) + (n \cdot 4 \cdot 150)$, welche als Grundlage für die Abbildung \ref{graph} dient. Die Abbildung
-\ref{graph2} zeigt dass Datenaufkommen der zwei verschiedenen Methoden innerhalb eines Zeitraums von 25 Sekunden, gegeben dass die
-Positionsdaten alle drei Sekunden versandt werden.
+eine Größe von 140 Byte und vier \textit{Acknowledgements} von 120 Byte haben. Des Weiteren wird angenommen dass alle Nutzer die
+Daten empfangen auch Positionsdaten senden und somit auch $4 \cdot n$ \textit{Acknowledgements} versandt werden müssen. Daraus
+ergibt sich die Formel $(n \cdot 140) + (n \cdot 120)$, welche als Grundlage für die Abbildung \ref{graph} dient.\newline
+In Abbildung \ref{graph2} ist der Hintergrund Traffic von \textit{Friend Finder}, zu einem beliebigen Zeitpunkt $t$, abgetragen.
+Die Größe wird anhand der aktiven Teilnehmer ausgegeben. Es wird angenommen, das eine Nachricht, mit Benutzerinformationen eines
+\textit{Channels}, für $n$ Benutzer die Größe von $70 + (60 \cdot n)$ hat. Die Größe von 70 Byte stellt hierbei den Server plus
+den \textit{Channel}-Namen dar. Zudem wird angenommen das in diesem Fall die Information zu jedem Benutzer eine Größe von 60 Byte
+hat. Eine \textit{Keep-Alive} Nachricht hat die Größe von 136 Byte, da diese Nachrichten in dem Zeitraum in dem einmal die
+Benutzerinformationen ausgetauscht werden, zweimal versandt werden. Dieses Datenvolumen setzt sich aus der Nachricht von Client zu
+Server, sowie der Antwortnachricht des Servers an den Client, zusammen. Die Gesamtgröße der \textit{Keep-Alive} Nachrichten für
+$n$ Teilnehmer wird durch $136 \cdot n$ errechnet. Die eingezeichnete Summe repräsentiert die Formel $(136 \cdot n) + (70 +(60
+\cdot n)$, also die Summe aus \textit{Keep-Alive} Nachrichten sowie versendeten Benutzerinformationen.\newline
+Es fällt also auf, dass beim \textit{IRC}-Protokoll trotz Hintergrunddaten, bei steigender Teilnehmerzahl weniger Datenvolumen
+benötigt wird. Würde eine Lösung mit $n$ Verbindungen gewählt werden, so muss noch bedacht werden dass auf die versendeten Daten
+ Hintergrunddaten, multipliziert mit der Anzahl der Teilnehmer, addiert werden müssten, wohingegen diese Werte beim nur
+\textit{IRC}-Protokoll einmalig addiert werden.
\begin{figure}[!ht]
\centering
- \includegraphics[width=10cm]{Bilder/graph}
- \caption{Vergleich von $n$-Verbindungen und \textit{Friend Finder}}
+ \includegraphics[width=12cm]{Bilder/graph}
+ \caption{Vergleich des versandten Datenvolumen anhand von unterschiedlichen Teilnehmerzahlen, von $n$-Verbindungen und
+\textit{Friend Finder} zu einem beliebigen Zeitpunkt $t$.}
\label{graph}
\end{figure}
\begin{figure}[!ht]
\centering
- \includegraphics[width=10cm]{Bilder/graph2}
- \caption{Versandte Daten über die Zeit von $n$-Verbindungen und \textit{Friend Finder}}
+ \includegraphics[width=12cm]{Bilder/graph2}
+ \caption{Versandte Hintergrunddaten von \textit{Friend Finder} anhand von unterschiedlichen Teilnehmerzahlen, zu einem beliebigen
+Zeitpunkt $t$.}
\label{graph2}
\end{figure} \ No newline at end of file
diff --git a/ausarbeitung/Grundlagen.tex b/ausarbeitung/Grundlagen.tex
index 9871792..fbb7172 100644
--- a/ausarbeitung/Grundlagen.tex
+++ b/ausarbeitung/Grundlagen.tex
@@ -1,40 +1,40 @@
\section{Grundlagen}
-\textit{Location privacy} wird von Duckham und Kulik durch \begin{quote}... a special type of information
+\textit{Location privacy} wird von Duckham und Kulik (2006) durch \begin{quote}``... a special type of information
privacy which concerns the claim of individuals to determine for themselves when, how, and to what extent location
-information about them is communicated to others. \citep{privacy}\end{quote} definiert. Ein Anwender sollte also in der Lage
-sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über sie verbreitet werden, selbst festzulegen. Es stellt sich die
-Frage, wie der Benutzer in der Lage ist dieser drei Punkte zu kontrollieren. Dabei soll er den
-Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weiße er die Daten versendet und wieviele andere Benutzer oder
+information about them is communicated to others. \citep{privacy}''\end{quote} definiert. Ein Anwender sollte in der Lage
+sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über ihn verbreitet werden, selbst festzulegen. Es stellt sich die
+Frage, wie es dem Benutzer ermöglicht wird diese drei Punkte zu kontrollieren. Dabei soll er den
+Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weise er die Daten versendet und wieviele andere Benutzer oder
Institutionen darauf Zugriff haben.
Im ersten Teil wird die aktuelle Entwicklung von \textit{location privacy} Software auf mobilen
-Geräten aufgezeigt. Des weiteren werden die Anforderungen, die an ein Programm dieser Art gestellt werden, analysiert und mögliche
-Ziele einer solchen Software beschrieben.
+Geräten aufgezeigt. Anhand der Definiton von \textit{location privacy} werden ebenfalls Anforderungen, die an ein Programm
+dieser Art gestellt werden analysiert und mögliche Ziele einer solchen Software beschrieben.
\subsection{Aktuelle Entwicklungen}
-Da so gut wie alle aktuellen Smartphones mit dem \textit{Global Positioning System (GPS)} ausgestattet sind, so gibt es für die
-verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten. So
-gibt es Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
+Nahezu alle aktuellen Smartphones sind mit dem \textit{Global Positioning System (GPS)} ausgestattet. Aufgrund dessen, gibt es für
+die verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten.
+So gibt es Software um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
\citep{geocaching} zu betreiben.\newline
-Zum Beispiel bietet \textit{Google} den Dienst
+Zum Beispiel bietet \textit{Google} den Dienst
\textit{Google Latitude}\footnote{Google Latitude http://www.google.com/intl/en\_us/latitude/intro.html\newline[Online;
-letzter Aufruf 11.02.2010]} an. Bei diesem Programm
-ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf einer Karte anzeigen zu lassen. Es besteht hierbei
-die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzellen} zu bestimmen.\newline
+letzter Aufruf 11.02.2010]} an. Bei diesem Programm ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf
+einer Karte anzeigen zu lassen. Es besteht hierbei die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten
+der \textit{GSM-Funkzellen} zu bestimmen.\newline
Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und Kulik,
-so stellt man fest dass der Anwender hier nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
-Nutzen Anwender das Programm, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
-Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die dass er
-befreundete Teilnehmer auf seinem Display und diese ihn auf ihrem Display sehen. Er hat also keinerlei Kontrolle darüber, was mit
-den Daten nach dem Absenden passiert, da diese an den Anbieter gesendet werden, wo sie dann durch ein interenes, ihm
-unbekanntes System an die anderen Nutzern weitergereicht werden. Somit ergibt sich eine Informationsasymmetrie, da der
-Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders besitzt wohingegen der Anwender nicht im genauen weiß
-wie mit seinen Daten verfahren wird. Der Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden
-möchte, da er keinen Einblick in diesen Teil der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
+so stellt man fest dass der Anwender nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
+Nutzen Anwender die Software, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
+Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht der Benutzer in diesen Vorgang hat, ist die Ausgabe von
+Positionsdaten anderer. Er hat also keinerlei Kontrolle darüber, was mit den Daten nach dem Absenden passiert, da diese an den
+Anbieter gesendet werden, wo sie dann durch ein ihm unbekanntes System an die anderen Nutzern weitergereicht werden.
+Somit ergibt sich eine Informationsasymmetrie, da der Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders
+besitzt, wohingegen der Benutzer nicht im genauen weiß wie mit seinen Daten verfahren wird. Der Benutzer kann also weder
+festlegen, wie noch in welchem Umfang er die Daten versenden möchte, da er keinen Einblick in diesen Teil der Strukturen der
+Institution, die den Dienst zur Verfügung stellt, hat.\newline
An genau diesem Punkt schließt die Arbeit \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} an. Hier werden die
-Daten über ein offenes und frei zugängliches System versendet. Da, dass zum Versenden genutzte, System offen zugänglich ist,
-müssen diese Daten zusätzlich verschlüsselt werden, da ansonsten jederman Zugang zu ihnen hätte. \newline
+Daten über ein offenes und frei zugängliches System versendet. Da dass zum Versenden genutzte System offen zugänglich ist,
+wird eine zusätzliche Verschlüsselung dieser Daten benötigt, ansonsten hätte jederman Zugang zu ihnen. \newline
Zum Verschleiern der Position nutzen Kido u.a. \citep{dummy} Datensätze die falsche Positionsangaben beinhalten. Diese werden
an einen Dienst gesandt, welcher auf all diese Datensätze antwortet, egal ob diese die richtigen oder die falschen Daten
beinhalten. Nur der Client weiß, welche der empfangenen Daten auf der eigentlichen Position basieren. Mit dieser Lösung ist es
@@ -52,22 +52,21 @@ Anwender Einsicht in die Verwendung und Verbreitung ihrer Daten erhalten.
\subsection{Vorraussetzungen}
-Im Rahmen der Datenübertragung sind alle modernen Geräte in der Lage, Daten sowohl über den \textit{3G}-Standard
-sowie per \textit{WLAN} zu übertragen. \newline
-Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so müssen neben der Hardware, auch andere Rahmenbedingungen
-gegeben sein. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile erstellen kann, sollten der Zugang
-zu diesen nur dann erlaubt sein wenn der Benutzer der sie versendet damit einverstanden ist. Die Daten müssen also soweit
-abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
-dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren kann.\newline
-Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden können. Er muss also in der Lage sein
-die dafür benötigten Parameter zu sofort zu erstellen und weiterzugeben. Somit kann er den Zeitpunkt, zu welchem er seine Daten
-versenden möchte, frei wählen.\newline
-Ist dies gegeben, werden die Daten im nächsten Schritt versendet. Auch hier muss ein Weg gefunden werden mit dem der
-Nutzer möglichst viel Kontrolle über seine Datensätze inne hat. Um diese Kontrolle zu wahren, müssen die Informationen mit
-einer möglichst transparenten und doch verlässlichen Methode verschickt werden.
-Zum Weiteren Schutz der verschlüsselten Daten darf man zum Übertragen der Informationen nicht nur auf einen zentralen Knoten
-angewiesen sein, sondern nutzt im optimalen Fall ein ganzes Netzwerk von solchen Knotenpunkten. Bei diesem Netzwerk sind
-allerdings alle Knotenpunkt einsehbar, damit der Nutzer zu jedem Zeitpunkt weiß, was mit seinen Daten geschieht. Ist dies
+Im Rahmen der Datenübertragung sind alle modernen Geräte in der Lage, sowohl über den \textit{3G}-Standard
+sowie per \textit{WLAN} Daten zu übertragen. \newline
+Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so sind neben der Hardware, auch andere
+gegebene Rahmenbedingungen erforderlich. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile
+erstellen kann, sollte der Zugang zu diesen nur dann erlaubt sein wenn der Benutzer, der sie versendet, damit einverstanden ist.
+Somit ist gegeben, dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren
+kann.\newline
+Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt versenden können. Es ist also notwendig, dass er in der Lage
+ist die dafür benötigten Parameter sofort zu erstellen und weiterzugeben, um diesen Zeitpunkt frei wählen zu können.\newline
+Ist dies gegeben, werden die Daten im nächsten Schritt versendet. Auch hier ist erforderlich, dass der Anwender möglichst
+viel Kontrolle über seine Datensätze hat. Zur Wahrung diese Kontrolle ist es notwendig, dass die Informationen mit einer
+möglichst transparenten und doch verlässlichen Methode verschickt werden.
+Zum Weiteren Schutz der verschlüsselten Daten darf zur Übertragung der Informationen nicht ein zentralen Knoten
+genutzt werden, sondern im optimalen Fall ein ganzes Netzwerk von solchen Knotenpunkten. Bei diesem Netzwerk sind
+allerdings alle Knotenpunkte einsehbar, damit der Nutzer zu jedem Zeitpunkt weiß, was mit seinen Daten geschieht. Ist dies
gegeben so ist der Nutzer in der Lage zu kontrollieren wie seine Daten versandt werden.
\subsection{Ziele}
@@ -76,59 +75,65 @@ Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebene
Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel hat, ohne dabei die Benutzerfreundlichkeit
einzuschränken. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
Benutzer ohne Fachkenntnis alle Funktionen der Anwendung nutzen kann, ohne dass die obigen Punkte ausser Kraft treten. \newline
-Zum Versenden der Daten muss eine offene Struktur genutzt werden, in welche jeder Einsicht hat und welche frei genutzt werden
-kann. Es ist also bei der Auswahl zu vermeiden, dass diese Struktur Restriktionen wie einen Benutzeraccount mit sich bringt. Diese
-Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
+Die Nutzung einer offenen Struktur zum Versenden der Daten ist von immenser Wichtigkeit, damit jeder Nutzer in diese Einsicht
+hat und sie frei genutzt werden kann. Es ist also bei der Auswahl zu vermeiden, dass diese Struktur Restriktionen wie einen
+Benutzeraccount mit sich bringt. Ebenfalls sollte diese über ein Protokoll verfügen das verlässlich, stabil und auch für
langsame Netzwerke optimiert ist. Eine reibungslose Kommunikation kann somit garantiert werden. \newline
Kommunikation zwischen verschiedenen Teilnehmern kann durch den Austausch von Chatnachrichten ermöglicht werden. Die
Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann hierdurch weiter gesteigert werden.\newline
-Durch die Nutzung einer, für alle, offene Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
-Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, muss ein Verfahren genutzt werden welches den Austausch von zwei
-Schlüsseln auf einfache Weise ermöglicht. Da diese Software für mobile Geräte ausgelegt ist, ist der spontane Austausch der
-benötigten Schlüssel im Interesse des Benutzers, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus
-planen möchte und kann. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von unbefugten Personen
-abgefangen werden.
-\newline
+Durch die Nutzung einer für alle offenen Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
+Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, ist die Nutzung eines Verfahrens notwendig, mit welchem
+der Austausch von Schlüsseln auf einfache Weise möglich ist. Da diese Software für mobile Geräte ausgelegt ist, ist der
+spontane Austausch der benötigten Schlüssel im Interesse des Benutzers, da der Anwender die Nutzung eines solchen Dienstes nicht
+immer im Vorraus planen möchte und kann. Wollen Benutzer zum Beispiel eine ihnen fremde Stadt erkunden und dabei diesen Dienst
+verwenden, so kann mit dieser Lösung ohne Vorarbeit eine Sitzung erstellt und die Paramater dafür untereinander
+ausgetauscht werden, ohne das eine Planung im Vorraus benötigt wird. Im gleichen Zug ist zu garantieren, dass die Schlüssel
+während des Austauschs nicht von unbefugten Personen abgefangen werden können.\newline
Ist ein solches Verfahren gegeben, so kann ein Algorithmus genutzt werden der sowohl sicher ist, als auch mit möglichst geringem
Aufwand die Daten ver- und entschlüsselt. \newline
-Da Positionsdaten versendet werden, müssen diese visualisiert werden. Somit muss die Applikation in der Lage sein die Standorte
-anderer Nutzer auf einer Karte anzuzeigen. Es wird also ein Format benötigt, welches auf dem mobilen Gerät darstellbar und einfach
-auf den neusten Stand zu bringen ist.\newline
+Da Positionsdaten versendet werden, ist eine Visualisierung von Nöten. Somit ist die Fähigkeit andere Teilnehmer auf einer Karte
+anzuzeigen eine Funktion, welche als Teil dieser Anwendung gilt. Es wird also ein Format benötigt, welches auf
+dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu bringen ist.\newline
Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur begrenzt interessant, da sie mit zunehmender
Entfernung immer schwerer zu erreichen sind. Deshalb werden nur Teilnehmer innerhalb eines bestimmten Radius angezeigt.\newline
Ein weiterer Punkt ist die Plattformunabhängigkeit. Diese steht zwar nicht in Verbindung mit der Privatsphäre der Benutzer,
allerdings sollte ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
-der Implementierung verringert, da die mehrfache Ausführung dieser somit vermieden wird. Zum Anderen werden möglichst viele
+der Implementierung verringert, da die mehrfache Ausführung dieser vermieden wird. Zum Anderen werden möglichst viele
Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
-Die Struktur der Software muss möglichst modular gehalten werden, damit es auch zu einem späteren Zeitpunkt leicht fällt
-Programmteile auszutauschen oder zu erweitern. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur Verschlüsselung oder
-ein anderes Protokoll zum Versenden der Daten, zusätzlich zu implementieren.
+Ebenfalls von Bedeutung ist die Modularität einer Anwendung. Ist diese gegeben so fällt das Austauschen oder Erweitern von
+Programmteilen auch zu einem späteren Zeitpunkt leicht. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur
+Verschlüsselung oder ein anderes Protokoll zum Versenden der Daten zusätzlich zu implementieren.
\subsection{Verfahren}
-Anhand der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
-gewählt werden. Da man mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren kann, können mehrere Schlüssel
-anfallen. Somit soll der Aufwand, für den Anwender, um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst
-gering gehalten werden. Um den Schlüsselaustausch einfach zu gestalten wird eine symmetrische Verschlüsselung genutzt.\newline
-Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein ohne das dafür
-Vorbereitungen getroffen werden müssen. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
+Anhand der Anforderungen ist man nun in der Lage geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für
+Verschlüsselung zu wählen. Da mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren werden kann, können
+mehrere Schlüssel anfallen. Somit soll der Aufwand für den Anwender um diese Schlüssel zu speichern, zu löschen oder neu
+zuzuordnen möglichst gering gehalten werden. Um den Schlüsselaustausch einfach zu gestalten wird eine symmetrische Verschlüsselung
+genutzt.\newline
+Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein, ohne das dafür
+Vorbereitungen notwendig sind. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
Verbindung ohne Vorarbeit aufgebaut werden kann. Allerdings stellt \textit{Bluetooth} ein unsicheres Medium dar
\citep{bluetooth}, da der \textit{Bluetooth-Sitzungs-PIN} per \textit{Daten-Phishing} wiederhergestellt werden kann. Eine andere
Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes\footnote{QR Code
http://www.denso-wave.com/qrcode/qrstandard-e.html [Online; letzter Aufruf 11.02.2010]} aus einer Zeichenkette.
-Dieser kann fotographieren und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
-unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes optimal zum Schlüsselaustausch geeignet, da der Schlüssel auf
-diesem Wege nicht abgefangen werden kann.\newline
-Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser Struktur austauschen kann, fiel die Wahl zum
-versenden der Daten auf das \textit{IRC}-Protokoll. Des weiteren spricht für diese Entscheidung, dass das
-\textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt. Auch die Stabilität
-und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind führt der Ausfall eines
-Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden verschiedene \textit{Channels}
-bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von \textit{IRC} ist, wenn Daten an
-mehrere Benutzer gesendet werden sollen, diese nur einmal an einen \textit{Channel} versandt werden müssen und jeder Benutzer in
-diesem \textit{Channel} diese Daten empfangen kann. Des weiteren steht es jedem Benutzer frei, eigene \textit{Channels} zu
-öffnen.\newline
+Dieser kann fotographiert und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
+unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes optimal zum spontanen Schlüsselaustausch geeignet, da der
+Schlüssel auf Daten diesem Wege nicht abgefangen werden kann.\newline
+Wurden die Schlüssel erfolgreich zwischen den Benutzern ausgetauscht, so sind diese in der Lage das Versenden der Informationen
+über eine geeignete Struktur zu beginnen. Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser
+Struktur austauschen kann, fiel die Wahl zum Versenden der Daten auf das \textit{IRC}-Protokoll. Des Weiteren spricht für diese
+Entscheidung, dass das \textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt.
+Auch die Stabilität und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind
+führt der Ausfall eines Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden
+verschiedene \textit{Channels} bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von diesem
+Protokolls ist, wenn Daten an mehrere Benutzer gesendet werden sollen ist es nur notwendig diese einmal an einen
+\textit{Channel} zu versenden. Jeder Benutzer in diesem \textit{Channel} kann diese Daten daraufhin empfangen. Zusätzlich steht
+es jedem Benutzer frei, eigene \textit{Channels} zu öffnen. Somit kann für eine Sitzung, innerhalb derer Daten ausgetauscht
+werden, ein \textit{Channel} eröffnet und nach Beendigung des Austausches wieder geschlossen werden. Somit ergibt sich hier die
+Möglichkeit dynamisch \textit{Channels} zu diesem Zweck zu nutzen.\newline
In der beschriebenen Software werden die Positionsdaten als Zeichenfolge an einen dieser \textit{Channels} gesendet und können
dort von beliebig vielen anderen Instanzen der Software ausgelesen werden. Diese verarbeiten die Daten im Anschluss, so dass diese
-dann als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße equivalent. \ No newline at end of file
+als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße
+äquivalent. \ No newline at end of file
diff --git a/ausarbeitung/Grundlagen.tex.backup b/ausarbeitung/Grundlagen.tex.backup
index d9d3c36..3d827be 100644
--- a/ausarbeitung/Grundlagen.tex.backup
+++ b/ausarbeitung/Grundlagen.tex.backup
@@ -3,39 +3,38 @@
\textit{Location privacy} wird von Duckham und Kulik durch \begin{quote}... a special type of information
privacy which concerns the claim of individuals to determine for themselves when, how, and to what extent location
information about them is communicated to others. \citep{privacy}\end{quote} definiert. Ein Anwender sollte also in der Lage
-sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über sie verbreitet werden, selbst festzulegen. Es stellt sich die
-Frage, wie der Benutzer in der Lage ist dieser drei Punkte zu kontrollieren. Dabei soll er den
-Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weiße er die Daten versendet und wieviele andere Benutzer oder
+sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über ihn verbreitet werden, selbst festzulegen. Es stellt sich die
+Frage, wie es dem Benutzer ermöglicht wird diese drei Punkte zu kontrollieren. Dabei soll er den
+Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weise er die Daten versendet und wieviele andere Benutzer oder
Institutionen darauf Zugriff haben.
Im ersten Teil wird die aktuelle Entwicklung von \textit{location privacy} Software auf mobilen
-Geräten aufgezeigt. Des weiteren werden die Anforderungen, die an ein Programm dieser Art gestellt werden, analysiert und mögliche
+Geräten aufgezeigt. Ebenfalls werden die Anforderungen, die an ein Programm dieser Art gestellt werden analysiert und mögliche
Ziele einer solchen Software beschrieben.
\subsection{Aktuelle Entwicklungen}
-Da so gut wie alle aktuellen Smartphones mit dem \textit{Global Positioning System (GPS)} ausgestattet sind, so gibt es für die
-verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten. So
-gibt es Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
+Nahezu alle aktuellen Smartphones sind mit dem \textit{Global Positioning System (GPS)} ausgestattet. Aufgrund dessen, gibt es für
+die verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten.
+So gibt es Software um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
\citep{geocaching} zu betreiben.\newline
-Zum Beispiel bietet \textit{Google} den Dienst
-\textit{Google Latitude}\footnote{Google Latitude \url{http://www.google.com/intl/en_us/latitude/intro.html}\newline[Online;
-letzter
-Aufruf 11.02.2010]} an. Bei diesem Programm
-ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf einer Karte anzeigen zu lassen. Es besteht hierbei
-die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzellen} zu bestimmen.\newline
+Zum Beispiel bietet \textit{Google} den Dienst
+\textit{Google Latitude}\footnote{Google Latitude http://www.google.com/intl/en\_us/latitude/intro.html\newline[Online;
+letzter Aufruf 11.02.2010]} an. Bei diesem Programm ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf
+einer Karte anzeigen zu lassen. Es besteht hierbei die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten
+der \textit{GSM-Funkzellen} zu bestimmen.\newline
Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und Kulik,
-so stellt man fest dass der Anwender hier nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
-Nutzen Anwender das Programm, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
-Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die dass er
-befreundete Teilnehmer auf seinem Display und diese ihn auf ihrem Display sehen. Er hat also keinerlei Kontrolle darüber, was mit
-den Daten nach dem Absenden passiert, da diese an den Anbieter gesendet werden, wo sie dann durch ein interenes, ihm
-unbekanntes System an die anderen Nutzern weitergereicht werden. Somit ergibt sich eine Informationsasymmetrie, da der
-Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders besitzt. Der Anwender weiß nicht im genauen wie mit
-seinen Daten verfahren wird. Der Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden möchte, da
-er keinen Einblick in diesen Teil der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
+so stellt man fest dass der Anwender nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
+Nutzen Anwender die Software, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
+Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht der Benutzer in diesen Vorgang hat, ist die Ausgabe von
+Positionsdaten anderer. Er hat also keinerlei Kontrolle darüber, was mit den Daten nach dem Absenden passiert, da diese an den
+Anbieter gesendet werden, wo sie dann durch ein ihm unbekanntes System an die anderen Nutzern weitergereicht werden.
+Somit ergibt sich eine Informationsasymmetrie, da der Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders
+besitzt, wohingegen der Benutzer nicht im genauen weiß wie mit seinen Daten verfahren wird. Der Benutzer kann also weder
+festlegen, wie noch in welchem Umfang er die Daten versenden möchte, da er keinen Einblick in diesen Teil der Strukturen der
+Institution, die den Dienst zur Verfügung stellt, hat.\newline
An genau diesem Punkt schließt die Arbeit \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} an. Hier werden die
-Daten über ein offenes und frei zugängliches System versendet. Da, dass zum Versenden genutzte, System offen zugänglich ist,
-müssen diese Daten zusätzlich verschlüsselt werden, da ansonsten jederman Zugang zu ihnen hätte. \newline
+Daten über ein offenes und frei zugängliches System versendet. Da dass zum Versenden genutzte System offen zugänglich ist,
+wird eine zusätzliche Verschlüsselung dieser Daten benötigt, ansonsten hätte jederman Zugang zu ihnen. \newline
Zum Verschleiern der Position nutzen Kido u.a. \citep{dummy} Datensätze die falsche Positionsangaben beinhalten. Diese werden
an einen Dienst gesandt, welcher auf all diese Datensätze antwortet, egal ob diese die richtigen oder die falschen Daten
beinhalten. Nur der Client weiß, welche der empfangenen Daten auf der eigentlichen Position basieren. Mit dieser Lösung ist es
@@ -55,20 +54,20 @@ Anwender Einsicht in die Verwendung und Verbreitung ihrer Daten erhalten.
Im Rahmen der Datenübertragung sind alle modernen Geräte in der Lage, Daten sowohl über den \textit{3G}-Standard
sowie per \textit{WLAN} zu übertragen. \newline
-Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so müssen neben der Hardware, auch andere Rahmenbedingungen
-gegeben sein. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile erstellen kann, sollten der Zugang
-zu diesen nur dann erlaubt sein wenn der Benutzer der sie versendet damit einverstanden ist. Die Daten müssen also soweit
-abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
-dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren kann.\newline
-Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden können. Er muss also in der Lage sein
-die dafür benötigten Parameter zu sofort zu erstellen und weiterzugeben. Somit kann er den Zeitpunkt, zu welchem er seine Daten
-versenden möchte, frei wählen.\newline
-Ist dies gegeben, werden die Daten im nächsten Schritt versendet. Auch hier muss ein Weg gefunden werden mit dem der
-Nutzer möglichst viel Kontrolle über seine Datensätze inne hat. Um diese Kontrolle zu wahren, müssen die Informationen mit
-einer möglichst transparenten und doch verlässlichen Methode verschickt werden.
-Zum Weiteren Schutz der verschlüsselten Daten darf man zum Übertragen der Informationen nicht nur auf einen zentralen Knoten
-angewiesen sein, sondern nutzt im optimalen Fall ein ganzes Netzwerk von solchen Knotenpunkten. Bei diesem Netzwerk sind
-allerdings alle Knotenpunkt einsehbar, damit der Nutzer zu jedem Zeitpunkt weiß, was mit seinen Daten geschieht. Ist dies
+Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so sind neben der Hardware, auch andere
+gegebene Rahmenbedingungen erforderlich. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile
+erstellen kann, sollte der Zugang zu diesen nur dann erlaubt sein wenn der Benutzer, der sie versendet, damit einverstanden ist.
+Die Darstellung der ausgetauschten Informationen ist also soweit unkenntlich zu machen, als dass nur eine vom Nutzer bestimmte
+Gruppe diese auslesen kann. Somit ist gegeben, dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren
+kann.\newline
+Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt versenden können. Es ist also notwendig, dass er in der Lage
+ist die dafür benötigten Parameter sofort zu erstellen und weiterzugeben, um diesen Zeitpunkt frei wählen zu können.\newline
+Ist dies gegeben, werden die Daten im nächsten Schritt versendet. Auch hier ist erforderlich, dass der Anwender möglichst
+viel Kontrolle über seine Datensätze hat. Zur Wahrung diese Kontrolle ist es notwendig, dass die Informationen mit einer
+möglichst transparenten und doch verlässlichen Methode verschickt werden.
+Zum Weiteren Schutz der verschlüsselten Daten darf zur Übertragung der Informationen nicht ein zentralen Knoten
+genutzt werden, sondern im optimalen Fall ein ganzes Netzwerk von solchen Knotenpunkten. Bei diesem Netzwerk sind
+allerdings alle Knotenpunkte einsehbar, damit der Nutzer zu jedem Zeitpunkt weiß, was mit seinen Daten geschieht. Ist dies
gegeben so ist der Nutzer in der Lage zu kontrollieren wie seine Daten versandt werden.
\subsection{Ziele}
@@ -77,60 +76,64 @@ Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebene
Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel hat, ohne dabei die Benutzerfreundlichkeit
einzuschränken. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
Benutzer ohne Fachkenntnis alle Funktionen der Anwendung nutzen kann, ohne dass die obigen Punkte ausser Kraft treten. \newline
-Zum Versenden der Daten muss eine offene Struktur genutzt werden, in welche jeder Einsicht hat und welche frei genutzt werden
-kann. Es muss gewährleistet sein das jeder Teilnehmer dieser sofort beitreten kann, ohne das für ihn Restriktionen, wie zum
-Beispiel ein Benutzeraccount, gelten. Diese Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
+Die Nutzung einer offenen Struktur zum Versenden der Daten ist von immenser Wichtigkeit, damit jeder Nutzer in diese Einsicht
+hat und sie frei genutzt werden kann. Es ist also bei der Auswahl zu vermeiden, dass diese Struktur Restriktionen wie einen
+Benutzeraccount mit sich bringt. Ebenfalls sollte diese über ein Protokoll verfügen das verlässlich, stabil und auch für
langsame Netzwerke optimiert ist. Eine reibungslose Kommunikation kann somit garantiert werden. \newline
-Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen muss es möglich sein Chatnachrichten auszutauschen. Die
+Kommunikation zwischen verschiedenen Teilnehmern kann durch den Austausch von Chatnachrichten ermöglicht werden. Die
Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann hierdurch weiter gesteigert werden.\newline
-Durch die Nutzung einer, für alle, offene Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
-Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, muss ein Verfahren genutzt werden welches den Austausch von zwei
-Schlüsseln auf einfache Weise ermöglicht. Da diese Software für mobile Geräte ausgelegt ist, müssen die benötigten Schlüssel
-spontan ausgetauscht werden können, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus planen möchte und
-kann. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von unbefugten Personen abgefangen werden.
-\newline
+Durch die Nutzung einer für alle offenen Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
+Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, ist die Nutzung eines Verfahrens notwendig, mit welchem
+der Austausch von Schlüsseln auf einfache Weise möglich ist. Da diese Software für mobile Geräte ausgelegt ist, ist der
+spontane Austausch der benötigten Schlüssel im Interesse des Benutzers, da der Anwender die Nutzung eines solchen Dienstes nicht
+immer im Vorraus planen möchte und kann. Wollen Benutzer zum Beispiel eine ihnen fremde Stadt erkunden und dabei diesen Dienst
+verwenden, so kann mit dieser Lösung ohne Vorarbeit eine Sitzung erstellt und die Paramater dafür untereinander
+ausgetauscht werden, ohne das eine Planung im Vorraus benötigt wird. Im gleichen Zug ist zu garantieren dass die Schlüssel während
+des Austauschs nicht von unbefugten Personen abgefangen werden können.\newline
Ist ein solches Verfahren gegeben, so kann ein Algorithmus genutzt werden der sowohl sicher ist, als auch mit möglichst geringem
Aufwand die Daten ver- und entschlüsselt. \newline
-Da Positionsdaten versendet werden, müssen diese visualisiert werden. Somit muss die Applikation in der Lage sein die Standorte
-anderer Nutzer anzuzeigen. Da aus Gründen der Nutzbarkeit die Positionen der Teilnehmer auf einer Karte dargestellt werden sollen,
-muss ein Format für die Karte genutzt werden, welches auf dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu
-bringen ist.\newline
+Da Positionsdaten versendet werden, ist eine Visualisierung von Nöten. Somit ist die Fähigkeit andere Teilnehmer auf einer Karte
+anzuzeigen eine Funktion, welche als Teil dieser Anwendung gilt. Es wird also ein Format benötigt, welches auf
+dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu bringen ist.\newline
Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur begrenzt interessant, da sie mit zunehmender
Entfernung immer schwerer zu erreichen sind. Deshalb werden nur Teilnehmer innerhalb eines bestimmten Radius angezeigt.\newline
Ein weiterer Punkt ist die Plattformunabhängigkeit. Diese steht zwar nicht in Verbindung mit der Privatsphäre der Benutzer,
allerdings sollte ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
-der Implementierung verringert, da die Software nicht mehrmals implementiert werden muss. Zum Anderen werden möglichst viele
+der Implementierung verringert, da die mehrfache Ausführung dieser vermieden wird. Zum Anderen werden möglichst viele
Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
-Die Struktur der Software muss möglichst modular gehalten werden, damit es auch zu einem späteren Zeitpunkt leicht fällt
-Programmteile auszutauschen oder zu erweitern. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur Verschlüsselung oder
-ein anderes Protokoll zum Versenden der Daten, zusätzlich zu implementieren.
+Ebenfalls von Bedeutung ist die Modularität einer Anwendung. Ist diese gegeben so fällt das Austauschen oder Erweitern von
+Programmteilen auch zu einem späteren Zeitpunkt leicht. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur
+Verschlüsselung oder ein anderes Protokoll zum Versenden der Daten zusätzlich zu implementieren.
\subsection{Verfahren}
-Anhand der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
-gewählt werden. Da man mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren kann, können mehrere Schlüssel
-anfallen. Somit soll der Aufwand, für den Anwender, um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst
-gering gehalten werden. Symmetrische Verfahren nicht so berrechnungsintensiv wie asymmetrische \citep{symm}, was einen
-wichtigen Punkt auf mobilen Geräten darstellt. Aufgrund dieser Tatsache wird eine symmetrische Verschlüsselung genutzt.\newline
-Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein ohne das dafür
-Vorbereitungen getroffen werden müssen. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
+Anhand der Anforderungen ist man nun in der Lage geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für
+Verschlüsselung zu wählen. Da mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren werden kann, können
+mehrere Schlüssel anfallen. Somit soll der Aufwand für den Anwender um diese Schlüssel zu speichern, zu löschen oder neu
+zuzuordnen möglichst gering gehalten werden. Um den Schlüsselaustausch einfach zu gestalten wird eine symmetrische Verschlüsselung
+genutzt.\newline
+Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein, ohne das dafür
+Vorbereitungen notwendig sind. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
Verbindung ohne Vorarbeit aufgebaut werden kann. Allerdings stellt \textit{Bluetooth} ein unsicheres Medium dar
\citep{bluetooth}, da der \textit{Bluetooth-Sitzungs-PIN} per \textit{Daten-Phishing} wiederhergestellt werden kann. Eine andere
Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes\footnote{QR Code
-\url{http://www.denso-wave.com/qrcode/qrstandard-e.html} [Online; letzter Aufruf 11.02.2010]} aus einer Zeichenkette.
-Dieser kann fotographieren und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
+http://www.denso-wave.com/qrcode/qrstandard-e.html [Online; letzter Aufruf 11.02.2010]} aus einer Zeichenkette.
+Dieser kann fotographiert und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes optimal zum Schlüsselaustausch geeignet, da der Schlüssel auf
diesem Wege nicht abgefangen werden kann.\newline
-Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser Struktur austauschen kann, fiel die Wahl zum
-versenden der Daten auf das \textit{IRC}-Protokoll. Des weiteren spricht für diese Entscheidung, dass das
-\textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt. Auch die Stabilität
-und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind führt der Ausfall eines
-Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden verschiedene \textit{Channels}
-bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von \textit{IRC} ist, wenn Daten an
-mehrere Benutzer gesendet werden sollen, diese nur einmal an einen \textit{Channel} versandt werden müssen und jeder Benutzer in
-diesem \textit{Channel} diese Daten empfangen kann. Des weiteren steht es jedem Benutzer frei, eigene \textit{Channels} zu
-öffnen.\newline
+Wurden die Schlüssel erfolgreich zwischen den Benutzern ausgetauscht, so sind diese in der Lage das Versenden der Informationen
+über eine geeignete Struktur zu beginnen. Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser
+Struktur austauschen kann, fiel die Wahl zum Versenden der Daten auf das \textit{IRC}-Protokoll. Des Weiteren spricht für diese
+Entscheidung, dass das \textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt.
+Auch die Stabilität und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind
+führt der Ausfall eines Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden
+verschiedene \textit{Channels} bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von dieses
+Protokolls ist, wenn Daten an mehrere Benutzer gesendet werden sollen ist es nur notwendig diese einmal an einen
+\textit{Channel} zu versenden. Jeder Benutzer in diesem \textit{Channel} kann diese Daten daraufhin empfangen. Zusätzlich steht
+es jedem Benutzer frei, eigene \textit{Channels} zu öffnen. Somit kann für eine Sitzung, innerhalb derer Daten ausgetauscht
+werden, ein \textit{Channel} eröffnet und nach Beendigung des Austausches wieder geschlossen werden. Somit ergibt sich hier die
+Möglichkeit dynamisch \textit{Channels} zu diesem Zweck zu nutzen.\newline
In der beschriebenen Software werden die Positionsdaten als Zeichenfolge an einen dieser \textit{Channels} gesendet und können
dort von beliebig vielen anderen Instanzen der Software ausgelesen werden. Diese verarbeiten die Daten im Anschluss, so dass diese
dann als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße equivalent. \ No newline at end of file
diff --git a/ausarbeitung/Grundlagen.tex~ b/ausarbeitung/Grundlagen.tex~
index fc0c1f9..42471e4 100644
--- a/ausarbeitung/Grundlagen.tex~
+++ b/ausarbeitung/Grundlagen.tex~
@@ -1,40 +1,41 @@
\section{Grundlagen}
-\textit{Location privacy} wird von Duckham und Kulik durch \begin{quote}... a special type of information
+\textit{Location privacy} wird von Duckham und Kulik (2006) durch \begin{quote}``... a special type of information
privacy which concerns the claim of individuals to determine for themselves when, how, and to what extent location
-information about them is communicated to others. \citep{privacy}\end{quote} definiert. Ein Anwender sollte also in der Lage
-sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über sie verbreitet werden, selbst festzulegen. Es stellt sich die
-Frage, wie der Benutzer in der Lage ist dieser drei Punkte zu kontrollieren. Dabei soll er den
-Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weiße er die Daten versendet und wieviele andere Benutzer oder
+information about them is communicated to others. \citep{privacy}''\end{quote} definiert. Ein Anwender sollte in der Lage
+sein den Zeitpunkt, wie und in welchem Umfang Positionsdaten über ihn verbreitet werden, selbst festzulegen. Es stellt sich die
+Frage, wie es dem Benutzer ermöglicht wird diese drei Punkte zu kontrollieren. Dabei soll er den
+Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weise er die Daten versendet und wieviele andere Benutzer oder
Institutionen darauf Zugriff haben.
Im ersten Teil wird die aktuelle Entwicklung von \textit{location privacy} Software auf mobilen
-Geräten aufgezeigt. Des weiteren werden die Anforderungen, die an ein Programm dieser Art gestellt werden, analysiert und mögliche
+Geräten aufgezeigt. Anhand der Definiton von \textit{location privacy} werden ebenfalls Anforderungen, die an ein Programm
+dieser Art gestellt werden analysiert und mögliche
Ziele einer solchen Software beschrieben.
\subsection{Aktuelle Entwicklungen}
-Da so gut wie alle aktuellen Smartphones mit dem \textit{Global Positioning System (GPS)} ausgestattet sind, so gibt es für die
-verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten. So
-gibt es Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
+Nahezu alle aktuellen Smartphones sind mit dem \textit{Global Positioning System (GPS)} ausgestattet. Aufgrund dessen, gibt es für
+die verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten.
+So gibt es Software um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
\citep{geocaching} zu betreiben.\newline
-Zum Beispiel bietet \textit{Google} den Dienst
+Zum Beispiel bietet \textit{Google} den Dienst
\textit{Google Latitude}\footnote{Google Latitude http://www.google.com/intl/en\_us/latitude/intro.html\newline[Online;
-letzter Aufruf 11.02.2010]} an. Bei diesem Programm
-ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf einer Karte anzeigen zu lassen. Es besteht hierbei
-die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzellen} zu bestimmen.\newline
+letzter Aufruf 11.02.2010]} an. Bei diesem Programm ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf
+einer Karte anzeigen zu lassen. Es besteht hierbei die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten
+der \textit{GSM-Funkzellen} zu bestimmen.\newline
Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und Kulik,
-so stellt man fest dass der Anwender hier nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
-Nutzen Anwender das Programm, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
-Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die dass er
-befreundete Teilnehmer auf seinem Display und diese ihn auf ihrem Display sehen. Er hat also keinerlei Kontrolle darüber, was mit
-den Daten nach dem Absenden passiert, da diese an den Anbieter gesendet werden, wo sie dann durch ein interenes, ihm
-unbekanntes System an die anderen Nutzern weitergereicht werden. Somit ergibt sich eine Informationsasymmetrie, da der
-Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders besitzt wohingegen der Anwender nicht im genauen weiß
-wie mit seinen Daten verfahren wird. Der Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden
-möchte, da er keinen Einblick in diesen Teil der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
+so stellt man fest dass der Anwender nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
+Nutzen Anwender die Software, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
+Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht der Benutzer in diesen Vorgang hat, ist die Ausgabe von
+Positionsdaten anderer. Er hat also keinerlei Kontrolle darüber, was mit den Daten nach dem Absenden passiert, da diese an den
+Anbieter gesendet werden, wo sie dann durch ein ihm unbekanntes System an die anderen Nutzern weitergereicht werden.
+Somit ergibt sich eine Informationsasymmetrie, da der Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders
+besitzt, wohingegen der Benutzer nicht im genauen weiß wie mit seinen Daten verfahren wird. Der Benutzer kann also weder
+festlegen, wie noch in welchem Umfang er die Daten versenden möchte, da er keinen Einblick in diesen Teil der Strukturen der
+Institution, die den Dienst zur Verfügung stellt, hat.\newline
An genau diesem Punkt schließt die Arbeit \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} an. Hier werden die
-Daten über ein offenes und frei zugängliches System versendet. Da, dass zum Versenden genutzte, System offen zugänglich ist,
-müssen diese Daten zusätzlich verschlüsselt werden, da ansonsten jederman Zugang zu ihnen hätte. \newline
+Daten über ein offenes und frei zugängliches System versendet. Da dass zum Versenden genutzte System offen zugänglich ist,
+wird eine zusätzliche Verschlüsselung dieser Daten benötigt, ansonsten hätte jederman Zugang zu ihnen. \newline
Zum Verschleiern der Position nutzen Kido u.a. \citep{dummy} Datensätze die falsche Positionsangaben beinhalten. Diese werden
an einen Dienst gesandt, welcher auf all diese Datensätze antwortet, egal ob diese die richtigen oder die falschen Daten
beinhalten. Nur der Client weiß, welche der empfangenen Daten auf der eigentlichen Position basieren. Mit dieser Lösung ist es
@@ -52,22 +53,21 @@ Anwender Einsicht in die Verwendung und Verbreitung ihrer Daten erhalten.
\subsection{Vorraussetzungen}
-Im Rahmen der Datenübertragung sind alle modernen Geräte in der Lage, Daten sowohl über den \textit{3G}-Standard
-sowie per \textit{WLAN} zu übertragen. \newline
-Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so müssen neben der Hardware, auch andere Rahmenbedingungen
-gegeben sein. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile erstellen kann, sollten der Zugang
-zu diesen nur dann erlaubt sein wenn der Benutzer der sie versendet damit einverstanden ist. Die Daten müssen also soweit
-abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben,
-dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren kann.\newline
-Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden können. Er muss also in der Lage sein
-die dafür benötigten Parameter zu sofort zu erstellen und weiterzugeben. Somit kann er den Zeitpunkt, zu welchem er seine Daten
-versenden möchte, frei wählen.\newline
-Ist dies gegeben, werden die Daten im nächsten Schritt versendet. Auch hier muss ein Weg gefunden werden mit dem der
-Nutzer möglichst viel Kontrolle über seine Datensätze inne hat. Um diese Kontrolle zu wahren, müssen die Informationen mit
-einer möglichst transparenten und doch verlässlichen Methode verschickt werden.
-Zum Weiteren Schutz der verschlüsselten Daten darf man zum Übertragen der Informationen nicht nur auf einen zentralen Knoten
-angewiesen sein, sondern nutzt im optimalen Fall ein ganzes Netzwerk von solchen Knotenpunkten. Bei diesem Netzwerk sind
-allerdings alle Knotenpunkt einsehbar, damit der Nutzer zu jedem Zeitpunkt weiß, was mit seinen Daten geschieht. Ist dies
+Im Rahmen der Datenübertragung sind alle modernen Geräte in der Lage, sowohl über den \textit{3G}-Standard
+sowie per \textit{WLAN} Daten zu übertragen. \newline
+Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so sind neben der Hardware, auch andere
+gegebene Rahmenbedingungen erforderlich. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile
+erstellen kann, sollte der Zugang zu diesen nur dann erlaubt sein wenn der Benutzer, der sie versendet, damit einverstanden ist.
+Somit ist gegeben, dass der Nutzer über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren
+kann.\newline
+Der Anwender muss Daten zu jedem von ihm gewünschten Zeitpunkt versenden können. Es ist also notwendig, dass er in der Lage
+ist die dafür benötigten Parameter sofort zu erstellen und weiterzugeben, um diesen Zeitpunkt frei wählen zu können.\newline
+Ist dies gegeben, werden die Daten im nächsten Schritt versendet. Auch hier ist erforderlich, dass der Anwender möglichst
+viel Kontrolle über seine Datensätze hat. Zur Wahrung diese Kontrolle ist es notwendig, dass die Informationen mit einer
+möglichst transparenten und doch verlässlichen Methode verschickt werden.
+Zum Weiteren Schutz der verschlüsselten Daten darf zur Übertragung der Informationen nicht ein zentralen Knoten
+genutzt werden, sondern im optimalen Fall ein ganzes Netzwerk von solchen Knotenpunkten. Bei diesem Netzwerk sind
+allerdings alle Knotenpunkte einsehbar, damit der Nutzer zu jedem Zeitpunkt weiß, was mit seinen Daten geschieht. Ist dies
gegeben so ist der Nutzer in der Lage zu kontrollieren wie seine Daten versandt werden.
\subsection{Ziele}
@@ -76,59 +76,65 @@ Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebene
Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel hat, ohne dabei die Benutzerfreundlichkeit
einzuschränken. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
Benutzer ohne Fachkenntnis alle Funktionen der Anwendung nutzen kann, ohne dass die obigen Punkte ausser Kraft treten. \newline
-Zum Versenden der Daten muss eine offene Struktur genutzt werden, in welche jeder Einsicht hat und welche frei genutzt werden
-kann. Es ist also bei der Auswahl zu vermeiden, dass diese Struktur Restriktionen wie einen Benutzeraccount mit sich bringt. Diese
-Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
+Die Nutzung einer offenen Struktur zum Versenden der Daten ist von immenser Wichtigkeit, damit jeder Nutzer in diese Einsicht
+hat und sie frei genutzt werden kann. Es ist also bei der Auswahl zu vermeiden, dass diese Struktur Restriktionen wie einen
+Benutzeraccount mit sich bringt. Ebenfalls sollte diese über ein Protokoll verfügen das verlässlich, stabil und auch für
langsame Netzwerke optimiert ist. Eine reibungslose Kommunikation kann somit garantiert werden. \newline
Kommunikation zwischen verschiedenen Teilnehmern kann durch den Austausch von Chatnachrichten ermöglicht werden. Die
Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann hierdurch weiter gesteigert werden.\newline
-Durch die Nutzung einer, für alle, offene Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
-Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, muss ein Verfahren genutzt werden welches den Austausch von zwei
-Schlüsseln auf einfache Weise ermöglicht. Da diese Software für mobile Geräte ausgelegt ist, ist der spontane Austausch der
-benötigten Schlüssel im Interesse des Benutzers, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus
-planen möchte und kann. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von unbefugten Personen
-abgefangen werden.
-\newline
+Durch die Nutzung einer für alle offenen Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
+Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, ist die Nutzung eines Verfahrens notwendig, mit welchem
+der Austausch von Schlüsseln auf einfache Weise möglich ist. Da diese Software für mobile Geräte ausgelegt ist, ist der
+spontane Austausch der benötigten Schlüssel im Interesse des Benutzers, da der Anwender die Nutzung eines solchen Dienstes nicht
+immer im Vorraus planen möchte und kann. Wollen Benutzer zum Beispiel eine ihnen fremde Stadt erkunden und dabei diesen Dienst
+verwenden, so kann mit dieser Lösung ohne Vorarbeit eine Sitzung erstellt und die Paramater dafür untereinander
+ausgetauscht werden, ohne das eine Planung im Vorraus benötigt wird. Im gleichen Zug ist zu garantieren, dass die Schlüssel
+während des Austauschs nicht von unbefugten Personen abgefangen werden können.\newline
Ist ein solches Verfahren gegeben, so kann ein Algorithmus genutzt werden der sowohl sicher ist, als auch mit möglichst geringem
Aufwand die Daten ver- und entschlüsselt. \newline
-Da Positionsdaten versendet werden, müssen diese visualisiert werden. Somit muss die Applikation in der Lage sein die Standorte
-anderer Nutzer auf einer Karte anzuzeigen. Es wird also ein Format benötigt, welches auf dem mobilen Gerät darstellbar und einfach
-auf den neusten Stand zu bringen ist.\newline
+Da Positionsdaten versendet werden, ist eine Visualisierung von Nöten. Somit ist die Fähigkeit andere Teilnehmer auf einer Karte
+anzuzeigen eine Funktion, welche als Teil dieser Anwendung gilt. Es wird also ein Format benötigt, welches auf
+dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu bringen ist.\newline
Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur begrenzt interessant, da sie mit zunehmender
Entfernung immer schwerer zu erreichen sind. Deshalb werden nur Teilnehmer innerhalb eines bestimmten Radius angezeigt.\newline
Ein weiterer Punkt ist die Plattformunabhängigkeit. Diese steht zwar nicht in Verbindung mit der Privatsphäre der Benutzer,
allerdings sollte ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
-der Implementierung verringert, da die mehrfache Ausführung dieser somit vermieden wird. Zum Anderen werden möglichst viele
+der Implementierung verringert, da die mehrfache Ausführung dieser vermieden wird. Zum Anderen werden möglichst viele
Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
-Die Struktur der Software muss möglichst modular gehalten werden, damit es auch zu einem späteren Zeitpunkt leicht fällt
-Programmteile auszutauschen oder zu erweitern. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur Verschlüsselung oder
-ein anderes Protokoll zum Versenden der Daten, zusätzlich zu implementieren.
+Ebenfalls von Bedeutung ist die Modularität einer Anwendung. Ist diese gegeben so fällt das Austauschen oder Erweitern von
+Programmteilen auch zu einem späteren Zeitpunkt leicht. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur
+Verschlüsselung oder ein anderes Protokoll zum Versenden der Daten zusätzlich zu implementieren.
\subsection{Verfahren}
-Anhand der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
-gewählt werden. Da man mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren kann, können mehrere Schlüssel
-anfallen. Somit soll der Aufwand, für den Anwender, um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst
-gering gehalten werden. Um den Schlüsselaustausch einfach zu gestalten wird eine symmetrische Verschlüsselung genutzt.\newline
-Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein ohne das dafür
-Vorbereitungen getroffen werden müssen. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
+Anhand der Anforderungen ist man nun in der Lage geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für
+Verschlüsselung zu wählen. Da mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren werden kann, können
+mehrere Schlüssel anfallen. Somit soll der Aufwand für den Anwender um diese Schlüssel zu speichern, zu löschen oder neu
+zuzuordnen möglichst gering gehalten werden. Um den Schlüsselaustausch einfach zu gestalten wird eine symmetrische Verschlüsselung
+genutzt.\newline
+Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein, ohne das dafür
+Vorbereitungen notwendig sind. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
Verbindung ohne Vorarbeit aufgebaut werden kann. Allerdings stellt \textit{Bluetooth} ein unsicheres Medium dar
\citep{bluetooth}, da der \textit{Bluetooth-Sitzungs-PIN} per \textit{Daten-Phishing} wiederhergestellt werden kann. Eine andere
Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes\footnote{QR Code
-\url{http://www.denso-wave.com/qrcode/qrstandard-e.html} [Online; letzter Aufruf 11.02.2010]} aus einer Zeichenkette.
-Dieser kann fotographieren und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
-unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes optimal zum Schlüsselaustausch geeignet, da der Schlüssel auf
-diesem Wege nicht abgefangen werden kann.\newline
-Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser Struktur austauschen kann, fiel die Wahl zum
-versenden der Daten auf das \textit{IRC}-Protokoll. Des weiteren spricht für diese Entscheidung, dass das
-\textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt. Auch die Stabilität
-und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind führt der Ausfall eines
-Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden verschiedene \textit{Channels}
-bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von \textit{IRC} ist, wenn Daten an
-mehrere Benutzer gesendet werden sollen, diese nur einmal an einen \textit{Channel} versandt werden müssen und jeder Benutzer in
-diesem \textit{Channel} diese Daten empfangen kann. Des weiteren steht es jedem Benutzer frei, eigene \textit{Channels} zu
-öffnen.\newline
+http://www.denso-wave.com/qrcode/qrstandard-e.html [Online; letzter Aufruf 11.02.2010]} aus einer Zeichenkette.
+Dieser kann fotographiert und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
+unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes optimal zum spontanen Schlüsselaustausch geeignet, da der
+Schlüssel auf Daten diesem Wege nicht abgefangen werden kann.\newline
+Wurden die Schlüssel erfolgreich zwischen den Benutzern ausgetauscht, so sind diese in der Lage das Versenden der Informationen
+über eine geeignete Struktur zu beginnen. Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser
+Struktur austauschen kann, fiel die Wahl zum Versenden der Daten auf das \textit{IRC}-Protokoll. Des Weiteren spricht für diese
+Entscheidung, dass das \textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt.
+Auch die Stabilität und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind
+führt der Ausfall eines Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden
+verschiedene \textit{Channels} bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von diesem
+Protokolls ist, wenn Daten an mehrere Benutzer gesendet werden sollen ist es nur notwendig diese einmal an einen
+\textit{Channel} zu versenden. Jeder Benutzer in diesem \textit{Channel} kann diese Daten daraufhin empfangen. Zusätzlich steht
+es jedem Benutzer frei, eigene \textit{Channels} zu öffnen. Somit kann für eine Sitzung, innerhalb derer Daten ausgetauscht
+werden, ein \textit{Channel} eröffnet und nach Beendigung des Austausches wieder geschlossen werden. Somit ergibt sich hier die
+Möglichkeit dynamisch \textit{Channels} zu diesem Zweck zu nutzen.\newline
In der beschriebenen Software werden die Positionsdaten als Zeichenfolge an einen dieser \textit{Channels} gesendet und können
dort von beliebig vielen anderen Instanzen der Software ausgelesen werden. Diese verarbeiten die Daten im Anschluss, so dass diese
-dann als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße equivalent. \ No newline at end of file
+als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße
+äquivalent. \ No newline at end of file
diff --git a/ausarbeitung/Title.aux b/ausarbeitung/Title.aux
index d8d1b2d..afc792c 100644
--- a/ausarbeitung/Title.aux
+++ b/ausarbeitung/Title.aux
@@ -1,6 +1,6 @@
\relax
\@setckpt{Title}{
-\setcounter{page}{2}
+\setcounter{page}{3}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
diff --git a/ausarbeitung/Title.tex b/ausarbeitung/Title.tex
index 68221e9..3645827 100644
--- a/ausarbeitung/Title.tex
+++ b/ausarbeitung/Title.tex
@@ -5,27 +5,34 @@
\vspace{1.3cm}
{\large B A C H E L O R A R B E I T}
-\vspace{1.3cm}
+\vspace{1.0cm}
{\Huge Mobiler Friend Finder }
-\vspace{1.7cm}
+\vspace{1.4cm}
{\Huge Patrick Hornecker}
-\vspace{0.3cm}
+\vspace{0.4cm}
%Matr.-Nr. 1605796
%\vspace{1.5cm}
+{\large Lehrstuhl für Kommunikationssysteme}
+
+\large Prof. Dr. Gerhard Schneider
+\vspace{0.4cm}
+
betreut durch
\vspace{0.2cm}
{\large Klaus Rechert}
-an der
-
-{\large Technischen Fakult\"{a}t}\\
+{\large Technische Fakult\"{a}t}\\
{\large der Albert-Ludwigs-Universit\"{a}t Freiburg}
+
\end{center}
\end{titlepage}
+\newpage
+\mbox{} \thispagestyle{empty}
+
diff --git a/ausarbeitung/Title.tex~ b/ausarbeitung/Title.tex~
index 2692e0b..0e66287 100644
--- a/ausarbeitung/Title.tex~
+++ b/ausarbeitung/Title.tex~
@@ -5,10 +5,10 @@
\vspace{1.3cm}
{\large B A C H E L O R A R B E I T}
-\vspace{1.3cm}
+\vspace{1.0cm}
-{\Huge Mobiler, persönlicher Assistent}
-\vspace{1.7cm}
+{\Huge Mobiler Friend Finder }
+\vspace{1.4cm}
{\Huge Patrick Hornecker}
\vspace{0.3cm}
@@ -16,16 +16,23 @@
%Matr.-Nr. 1605796
%\vspace{1.5cm}
+{\large Lehrstuhl für Kommunikationssysteme}
+
+\large Prof. Dr. Gerhard Schneider
+\vspace{0.4cm}
+
betreut durch
\vspace{0.2cm}
{\large Klaus Rechert}
-an der
-
-{\large Technischen Fakult\"{a}t}\\
+{\large Technische Fakult\"{a}t}\\
{\large der Albert-Ludwigs-Universit\"{a}t Freiburg}
+
\end{center}
\end{titlepage}
+\newpage
+\mbox{} \thispagestyle{empty}
+
diff --git a/ausarbeitung/Tutorial.aux b/ausarbeitung/Tutorial.aux
index 49952c4..74fa42e 100644
--- a/ausarbeitung/Tutorial.aux
+++ b/ausarbeitung/Tutorial.aux
@@ -4,7 +4,7 @@
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Windows Mobile}{9}{subsubsection.3.1.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.2}Android}{9}{subsubsection.3.1.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.3}WebOS}{9}{subsubsection.3.1.3}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{10}{subsubsection.3.1.4}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{9}{subsubsection.3.1.4}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.5}Symbian OS}{10}{subsubsection.3.1.5}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.6}Zielplattform}{10}{subsubsection.3.1.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Softwaregrundlagen}{10}{subsection.3.2}}
diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index 52dd368..53e4b30 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -4,10 +4,10 @@ Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum Einen stel
benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum Anderen ob Schnittstellen vorhanden sind um das
Programm für das System zu entwickeln. \newline
Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist nicht allzu groß. Die meisten
-aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht.Auch erweiterte Features
-wie \textit{GPS} oder Lagesensoren sind in den meisten, aktuellen Geräten vorhanden oder werden in der nächsten Generation, des
+aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht. Auch erweiterte Features
+wie \textit{GPS} oder Lagesensoren sind in den meisten aktuellen Geräten vorhanden oder werden in der nächsten Generation, des
jeweiligen Herstellers, vorhanden sein.\newline
-Da die gegebenen Hardwareunterschiede minimal sind, wird eine Plattform aufgrund des Betriebssystemes ausgewählt. Bei
+Da die gegebenen Hardwareunterschiede minimal sind, findet die Auswahl aufgrund des Betriebssystemes statt. Bei
geeigneter Wahl ist es möglich die Software auf mehrere Betriebssysteme für Smartphones zu portieren und somit eine mehrfache
Implementation zu vermeiden. Es wäre somit auch möglich viele Nutzer zu erreichen und die Kommunikation zwischen einem Besitzer
eines \textit{iPhones} sowie dem Besitzer eines \textit{Palm Pre's} sicherzustellen.\newline
@@ -24,37 +24,34 @@ weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendu
entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden, ohne das
die genutzten Bibliotheken ausgetauscht werden müssen.\newline
Zusätzlich stellt sich auch die Frage der zu nutzenden Programmiersprache. Diese sollte von einer möglichst großen Mengen an
-Betriebsystemen unterstützt werden. Man müsste das, wenn man das Programm für ein neues Gerät portieren möchte, das Progamm somit
-nicht immer komplett neu implementieren.
+Betriebsystemen unterstützt werden. Somit ist es nicht nötig das Programm neu zu implementieren, falls es für eine neue
+Plattform portiert werden soll.
\subsection{Betriebsysteme für mobile Geräte}
-Durch die Wahl eines Betriebsystemes wird schon indirekt eine Vorauswahl an Nutzbaren Bibliotheken und Programmiersprachen
+Durch die Wahl eines Betriebsystemes wird schon indirekt eine Vorauswahl an nutzbaren Bibliotheken und Programmiersprachen
getroffen. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
eingegangen.
\subsubsection{Windows Mobile}
Das von Microsoft entwickelte \textit{Windows Mobile}\footnote{Windows Mobile
-http://www.microsoft.com/windowsmobile/de-de/default.mspx\newline[Online; letzter Aufruf 25.01.2010]} in der aktuellen
-Version 6.5
-verfügbar.
-Das gesamte Betriebssystem basiert
-auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. Es existiert
-ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC http://cegcc.sourceforge.net/ [Online; letzter Aufruf
-24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme für diese Plattform kompiliert und portiert werden
-können.
+http://www.microsoft.com/windowsmobile/de-de/default.mspx\newline[Online; letzter Aufruf 25.01.2010]} ist aktuell in der Version
+6.5 verfügbar. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den
+Desktop-Varianten der Windows-Familie erkennen. Es existiert ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC
+http://cegcc.sourceforge.net/ [Online; letzter Aufruf 24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme
+für diese Plattform übersetzt und portiert werden können.
\subsubsection{Android}
Das von \textit{Google} entwickelte \textit{Android}\footnote{Android http://www.android.com/ [Online; letzter Aufruf
25.01.2010]} setzt auf einen \textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und
-Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in
-welcher \textit{Android} läuft.\newline
+Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle
+\textit{Java}-Maschine auf, in welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
-\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der nutzbaren Sprachen im Moment eben auf diese eine beschränkt. Des
-weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder
-\textit{C++} zu schreiben.
+\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der Sprachen bei Nutzung des \textit{SDKs} im Moment auf diese
+eine beschränkt. Des weiteren bietet \textit{Google} ein \textit{NDK} an, mit dessen Hilfe es auch möglich ist Programme in
+\textit{C} oder \textit{C++} zu schreiben.
\subsubsection{WebOS}
@@ -64,60 +61,58 @@ momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
und dem \textit{Palm Pixi}.\newline
Unter der Benutzeroberfläche von \textit{WebOS} arbeitet ein \textit{Linux-Kernel} in der Version 2.6. Somit ist es möglich, wenn
man Zugriff auf das zugrundeliegende System hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
-Für dieses Betriebssystem existiert ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres, welches im
-März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
+Für dieses Betriebssystem existiert ein \textit{SDK} fürDieses \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres
+\textit{SDK}, welches im März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
\subsubsection{iPhone OS}
-Bei \textit{iPhoneOS}\footnote{iPhoneOS http://www.apple.com/de/iphone/ [Online; letzter Aufruf 03.02.2010]} handelt es sich
-um eine abgeänderte und angepasste Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines
-\textit{BSD}-\footnote{BSD
+Bei dem Betriebssystem \textit{iPhoneOS}\footnote{iPhoneOS http://www.apple.com/de/iphone/ [Online; letzter Aufruf 03.02.2010]}
+handelt es sich um eine abgeänderte und angepasste Version von \textit{MacOS}. Somit bassiert auch der Kernel von
+\textit{iPhoneOS} sowohl auf teilen eines \textit{BSD}-\footnote{BSD
https://www.bsdwiki.de/ [Online; letzter Aufruf 24.02.2010]} sowie \textit{Mach}-Kernels\footnote{Mach
http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html\newline[Online; letzter Aufruf 24.02.2010]}. Dieses
-Betriebssystem
-wurde eigens für das
-iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
-unterstützt. Der größte Kritikpunkt an diesem System ist das Fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht
-möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
-häufig weitere Dienste im Hintergrund aktiv sein sollten.
+Betriebssystem wurde eigens für das \textit{iPhone} entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches
+allerdings nur die Sprache \textit{Objective-C} unterstützt. Der größte Kritikpunkt an diesem System ist das Fehlen von
+\textit{Multitasking}-Unterstützung. Somit ist es nicht möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location
+awareness} Anwendungen stark einschränkt, da hier häufig weitere Dienste im Hintergrund aktiv sein sollten.
\subsubsection{Symbian OS}
\textit{SymbianOS}\footnote{SymbianOS http://www.symbian.org/ [Online; letzter Aufruf 03.02.2010]} ist eine Betriebssystem
welches vorzugsweise auf Geräten der Firma \textit{Nokia} zum Einsatz kommt. Es existiert ein \textit{SDK}, was neben
\textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel \textit{Python} oder \textit{Java} unterstützt. Mit dem
-\textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es ermöglicht Programme direkt zu portieren. Des weitern
+\textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es ermöglicht Programme direkt zu portieren. Des Weiteren
besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
\subsubsection{Zielplattform}
\textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
-geplanten Dienst wichtig, da bei diesem Prozesse im Hintergund notwendig sind und dies auf einem solchen System nicht
+geplanten Dienst wichtig, da bei Diesem Prozesse im Hintergund notwendig sind und dies somit auf einem solchen System nicht
realisierbar wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nur die
mit dem \textit{NDK} verfügbaren Bibliotheken zum momentanen Zeitpunkt stabil verfügbar sind. Dies schränkt die
Entwicklung stark ein und ist für das zu entwickelnde Programm nicht geeignet.\newline
Unter Nutzung des \textit{CeGCC's} wird das Programm für \textit{Windows Mobile} portiert werden.
-Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
-kompilieren und im Anschluss auszuführen.
+Aufgrund der Implementierung in \textit{C} ist es auch möglich den Quellcode für \textit{WebOS} und \textit{SymbianOS} zu
+übersetzen und im Anschluss auszuführen.
\subsection{Softwaregrundlagen}
Anhand der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
-jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
+jeweiligen Plattformen zu übersetzen, sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde, nach
-\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
+\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, basierend auf dem
\textit{GCC}. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
ausführbaren Dateien erstellt werden.\newline
-Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Zum einen bietet der \textit{wince-mingw32ce} eine
-Menge an Tools mit welchen man native \textit{Windows Mobile} Applikationen erstellen kann. Hierzu wird eine
+Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Der \textit{arm-wince-mingw32ce} bietet eine
+Menge an \textit{Tools} mit welchen man native \textit{Windows Mobile} Applikationen erstellen kann. Hierzu wird eine
Portierung der \textit{GNU}\footnote{GNU http://www.gnu.org/ [Online; letzter Aufruf 03.02.2010]} Enwicklungswergzeuge aus
-dem \textit{MinGW} \footnote{MinGW http://mingw.org/ [Online; letzter Aufruf 03.02.2010]} Projekt genutzt. Diese
-kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu machen. Die andere Möglichkeit stellt die
-Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX} kompatibler Programmcoder nach \textit{Windows Mobile} portiert
-werden. %verfeinern
+dem \textit{MinGW}\footnote{MinGW http://mingw.org/ [Online; letzter Aufruf 03.02.2010]} Projekt genutzt. Diese \textit{Tools}
+übersetzen und verlinken Quellcode, um selbigen unter \textit{Windows Mobile} ausführbar zu machen. Die andere
+Möglichkeit stellt die Nutzung des \textit{arm-cegcc} dar, mit welchem \textit{POSIX} kompatibler Quellcode nach
+\textit{Windows Mobile} portiert werden kann. %verfeinern
%# arm-mingw32ce : toolset to build native Windows CE applications
%# arm-cegcc : toolset to port unix source to Windows CE
@@ -136,10 +131,11 @@ werden. %verfeinern
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
ansprechend darzustellen und eine einfache Bedienbarkeit zu garantieren. Dieses Frontend sollte auch in \textit{C} oder
\textit{C++} geschrieben sein, um auch hier die Portierbarkeit für die gewünschten Plattformen zu erhalten. Genutzt wird das
-freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray http://www.enlightenment.org/ [Online; letzter
-Aufruf 20.01.2010]} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie Windows, Linux, BSD und MacOS. Es
+freie, seit 1997 existierende, \textit{Enlightenment}\footnote{Elementray http://www.enlightenment.org/ [Online; letzter
+Aufruf 20.01.2010]} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie \textit{Windows, Linux, BSD} und
+\textit{MacOS}. Es
beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}. \textit{Elementary} bietet ein umfangreiches Paket an
-grafischen Elementen die genutzt und frei angeordnet werden können.
+graphischen Elementen die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
@@ -149,8 +145,8 @@ grafischen Elementen die genutzt und frei angeordnet werden können.
\end{figure}
\textit{Elementary} setzt auf die \textit{Enlightenment Foundation Libraries (EFL)} auf. Diese Bibliotheken werden zum Teil von
-Enlightenment benötigt, andere können für optionale Features installiert werden. Für die Darstellung auf mobilen Geräten sind die
-Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary} nötig.
+Enlightenment benötigt, andere können für optionale Funktionalitäten installiert werden. Für die Darstellung auf mobilen Geräten
+sind die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} nötig.
\begin{figure}[h]
\centering
@@ -161,10 +157,9 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
Bei \textit{Ecore} handelt es sich um eine Bibliothek, welche das Serialisieren von mehreren Programmteilen ermöglicht und
für den Betrieb auf mobilen Geräten optimiert wurde. \textit{Edje} ist eine grafische Design und Layout Bibliothek,
-welche mit einer internen \textit{state machine} und einem Zustandsgraphen speichert was wo, in welcher Farbe und wie sichtbar
-ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
-Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und Tools
-bereit.\newline
-
-Im Anhang 1 sind genaue Anweisungen zu finden mit deren Hilfe es möglich ist \textit{Elementary} nach \textit{Windows Mobile} zu
+welche mit einer internen \textit{state machine} und einem Zustandsgraphen speichert welche Elemente an welchem Ort, in welcher
+Farbe und wie sichtbar sind. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich
+um Effekte wie Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und
+\textit{Tools} bereit.\newline
+Im Anhang 1 sind genaue Anweisungen zu finden mit deren Hilfe es möglich ist \textit{Elementary} für \textit{Windows Mobile} zu
portieren. \ No newline at end of file
diff --git a/ausarbeitung/Tutorial.tex.backup b/ausarbeitung/Tutorial.tex.backup
index c42c019..91c0526 100644
--- a/ausarbeitung/Tutorial.tex.backup
+++ b/ausarbeitung/Tutorial.tex.backup
@@ -4,10 +4,10 @@ Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum Einen stel
benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum Anderen ob Schnittstellen vorhanden sind um das
Programm für das System zu entwickeln. \newline
Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist nicht allzu groß. Die meisten
-aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht.Auch erweiterte Features
-wie \textit{GPS} oder Lagesensoren sind in den meisten, aktuellen Geräten vorhanden oder werden in der nächsten Generation, des
+aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht. Auch erweiterte Features
+wie \textit{GPS} oder Lagesensoren sind in den meisten aktuellen Geräten vorhanden oder werden in der nächsten Generation, des
jeweiligen Herstellers, vorhanden sein.\newline
-Da die gegebenen Hardwareunterschiede minimal sind, wird eine Plattform aufgrund des Betriebssystemes ausgewählt. Bei
+Da die gegebenen Hardwareunterschiede minimal sind, findet die Auswahl aufgrund des Betriebssystemes statt. Bei
geeigneter Wahl ist es möglich die Software auf mehrere Betriebssysteme für Smartphones zu portieren und somit eine mehrfache
Implementation zu vermeiden. Es wäre somit auch möglich viele Nutzer zu erreichen und die Kommunikation zwischen einem Besitzer
eines \textit{iPhones} sowie dem Besitzer eines \textit{Palm Pre's} sicherzustellen.\newline
@@ -16,7 +16,7 @@ Systemen ausführbar sind. Es wird also ein \textit{Layer} benötigt, mit welche
genutzen werden können. Dabei sollte das zugrundeliegende System unabhängig von diesem \textit{Layer} sein. Es soll also damit vom
zugrundeliegenden
Betriebssystem abstrahiert werden. Ein entsprechender \textit{Layer} stellt der \textit{Portable Operating System Interface for
-Unix Layer (POSIX Layer)}\footnote{POSIX \url{http://standards.ieee.org/regauth/posix/} [Online; letzter Aufruf 16.02.2010]} dar.
+Unix Layer (POSIX Layer)}\footnote{POSIX http://standards.ieee.org/regauth/posix/ [Online; letzter Aufruf 16.02.2010]} dar.
Mit diesem \textit{Layer} stehen
eine große Menge an aktuellen Bibliotheken aus der \textit{Open-Source} Gemeinde zur Verfügung. Diese haben den Vorteil, dass sie
aktiv
@@ -24,8 +24,8 @@ weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendu
entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden, ohne das
die genutzten Bibliotheken ausgetauscht werden müssen.\newline
Zusätzlich stellt sich auch die Frage der zu nutzenden Programmiersprache. Diese sollte von einer möglichst großen Mengen an
-Betriebsystemen unterstützt werden. Man müsste das, wenn man das Programm für ein neues Gerät portieren möchte, das Progamm somit
-nicht immer komplett neu implementieren.
+Betriebsystemen unterstützt werden. Somit ist es nicht nötig das Programm neu zu implementieren, falls es für eine neue
+Plattform portiert werden soll.
\subsection{Betriebsysteme für mobile Geräte}
@@ -36,43 +36,43 @@ eingegangen.
\subsubsection{Windows Mobile}
Das von Microsoft entwickelte \textit{Windows Mobile}\footnote{Windows Mobile
-\url{http://www.microsoft.com/windowsmobile/de-de/default.mspx} [Online; letzter Aufruf 25.01.2010]} in der aktuellen Version 6.5
-verfügbar.
-Das gesamte Betriebssystem basiert
-auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. Es existiert
-ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC \url{http://cegcc.sourceforge.net/} [Online; letzter Aufruf
-24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme für diese Plattform kompiliert und portiert werden
-können.
+http://www.microsoft.com/windowsmobile/de-de/default.mspx\newline[Online; letzter Aufruf 25.01.2010]} ist aktuell in der Version
+6.5 verfügbar. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den
+Desktop-Varianten der Windows-Familie erkennen. Es existiert ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC
+http://cegcc.sourceforge.net/ [Online; letzter Aufruf 24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme
+für diese Plattform übersetzt und portiert werden können.
\subsubsection{Android}
-Das von \textit{Google} entwickelte \textit{Android}\footnote{Android \url{http://www.android.com/} [Online; letzter Aufruf
+Das von \textit{Google} entwickelte \textit{Android}\footnote{Android http://www.android.com/ [Online; letzter Aufruf
25.01.2010]} setzt auf einen \textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und
Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in
welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
-\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der nutzbaren Sprachen im Moment eben auf diese eine beschränkt. Des
-weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder
-\textit{C++} zu schreiben.
+\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der Sprachen bei Nutzung des \textit{SDKs} im Moment auf diese
+eine beschränkt. Des weiteren bietet \textit{Google} ein \textit{NDK} an, mit dessen Hilfe es auch möglich ist Programme in
+\textit{C} oder \textit{C++} zu schreiben.
\subsubsection{WebOS}
-\textit{WebOS}\footnote{WebOS \url{http://palmwebos.org/} [Online; letzter Aufruf 25.01.2010]} wurde von \textit{Palm} als
-Nachfolger von \textit{PalmOS}\footnote{PalmOS \url{http://www.palm.com/} [Online; letzter Aufruf 25.01.2010]} entwickelt und ist
+\textit{WebOS}\footnote{WebOS http://palmwebos.org/ [Online; letzter Aufruf 25.01.2010]} wurde von \textit{Palm} als
+Nachfolger von \textit{PalmOS}\footnote{PalmOS http://www.palm.com/ [Online; letzter Aufruf 25.01.2010]} entwickelt und ist
momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
und dem \textit{Palm Pixi}.\newline
Unter der Benutzeroberfläche von \textit{WebOS} arbeitet ein \textit{Linux-Kernel} in der Version 2.6. Somit ist es möglich, wenn
man Zugriff auf das zugrundeliegende System hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
-Für dieses Betriebssystem existiert ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres, welches im
-März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
+Für dieses Betriebssystem existiert ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres
+\textit{SDK}, welches im März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
\subsubsection{iPhone OS}
-Bei \textit{iPhoneOS}\footnote{iPhoneOS \url{http://www.apple.com/de/iphone/} [Online; letzter Aufruf 03.02.2010]} handelt es sich
-um eine abgeänderte und angepasste
-Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines \textit{BSD}- \footnote{BSD
-\url{https://www.bsdwiki.de/}} sowie \textit{Mach}-Kernels\footnote{Mach
-\url{http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html}}. Dieses Betriebssystem wurde eigens für das
+Bei \textit{iPhoneOS}\footnote{iPhoneOS http://www.apple.com/de/iphone/ [Online; letzter Aufruf 03.02.2010]} handelt es sich
+um eine abgeänderte und angepasste Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines
+\textit{BSD}-\footnote{BSD
+https://www.bsdwiki.de/ [Online; letzter Aufruf 24.02.2010]} sowie \textit{Mach}-Kernels\footnote{Mach
+http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html\newline[Online; letzter Aufruf 24.02.2010]}. Dieses
+Betriebssystem
+wurde eigens für das
iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
unterstützt. Der größte Kritikpunkt an diesem System ist das Fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht
möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
@@ -80,39 +80,41 @@ häufig weitere Dienste im Hintergrund aktiv sein sollten.
\subsubsection{Symbian OS}
-\textit{SymbianOS} \footnote{SymbianOS \url{http://www.symbian.org/}} ist eine Betriebssystem welches vorzugsweise auf Geräten der
-Firma \textit{Nokia} zum
-Einsatz kommt. Es existiert ein \textit{SDK}, was neben \textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel
-\textit{Python} oder \textit{Java} unterstützt. Mit dem \textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es
-ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
+\textit{SymbianOS}\footnote{SymbianOS http://www.symbian.org/ [Online; letzter Aufruf 03.02.2010]} ist eine Betriebssystem
+welches vorzugsweise auf Geräten der Firma \textit{Nokia} zum Einsatz kommt. Es existiert ein \textit{SDK}, was neben
+\textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel \textit{Python} oder \textit{Java} unterstützt. Mit dem
+\textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es ermöglicht Programme direkt zu portieren. Des Weitern
+besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
\subsubsection{Zielplattform}
\textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
-geplanten Dienst wichtig, da bei diesem Prozesse im Hintergund notwendig sind und dies auf einem solchen System nicht
+geplanten Dienst wichtig, da bei Diesem Prozesse im Hintergund notwendig sind und dies somit auf einem solchen System nicht
realisierbar wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nur die
mit dem \textit{NDK} verfügbaren Bibliotheken zum momentanen Zeitpunkt stabil verfügbar sind. Dies schränkt die
Entwicklung stark ein und ist für das zu entwickelnde Programm nicht geeignet.\newline
-Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
-kompilieren.
+Unter Nutzung des \textit{CeGCC's} wird das Programm für \textit{Windows Mobile} portiert werden.
+Aufgrund der Implementierung in \textit{C} ist es auch möglich den Quellcode für \textit{WebOS} und \textit{SymbianOS} zu
+übersetzen und im Anschluss auszuführen.
\subsection{Softwaregrundlagen}
Anhand der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
-jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
+jeweiligen Plattformen zu übersetzen, sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde, nach
-\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
+\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, basierend auf dem
\textit{GCC}. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
ausführbaren Dateien erstellt werden.\newline
-Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Zum einen bietet der \textit{wince-mingw32ce} eine
+Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Zum Einen bietet der \textit{wince-mingw32ce} eine
Menge an Tools mit welchen man native \textit{Windows Mobile} Applikationen erstellen kann. Hierzu wird eine
-Portierung der \textit{GNU} \footnote{GNU \url{http://www.gnu.org/}} Enwicklungswergzeuge aus dem \textit{MinGW} \footnote{MinGW
-http://mingw.org/} Projekt genutzt. Diese kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu
-machen. Die andere Möglichkeit stellt die Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX}
-kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfeinern
+Portierung der \textit{GNU}\footnote{GNU http://www.gnu.org/ [Online; letzter Aufruf 03.02.2010]} Enwicklungswergzeuge aus
+dem \textit{MinGW}\footnote{MinGW http://mingw.org/ [Online; letzter Aufruf 03.02.2010]} Projekt genutzt. Diese Tools
+übersetzen und verlinken Quellcode, um diesen unter \textit{Windows Mobile} ausführbar zu machen. Die andere Möglichkeit stellt
+die Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX} kompatibler Programmcoder nach \textit{Windows Mobile}
+portiert werden. %verfeinern
%# arm-mingw32ce : toolset to build native Windows CE applications
%# arm-cegcc : toolset to port unix source to Windows CE
@@ -131,25 +133,27 @@ kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfein
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
ansprechend darzustellen und eine einfache Bedienbarkeit zu garantieren. Dieses Frontend sollte auch in \textit{C} oder
\textit{C++} geschrieben sein, um auch hier die Portierbarkeit für die gewünschten Plattformen zu erhalten. Genutzt wird das
-freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray \url{http://www.enlightenment.org/}} Projekt. Dieses
-Softwarepaket unterstützt alle gängigen Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen
-\textit{Window-Manager} names \textit{Elementary}. \textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die
-genutzt und frei angeordnet werden können.
+freie, seit 1997 existierende, \textit{Enlightenment}\footnote{Elementray http://www.enlightenment.org/ [Online; letzter
+Aufruf 20.01.2010]} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie Windows, Linux, BSD und MacOS. Es
+beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}. \textit{Elementary} bietet ein umfangreiches Paket an
+graphischen Elementen die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
\includegraphics[width=2.2cm]{Bilder/elm-app-01_2} \includegraphics[width=2.7cm]{Bilder/elm-app-02_2}
\caption{Beispiele verschiedener \textit{Elementary} Icons}
+ \label{efl}
\end{figure}
\textit{Elementary} setzt auf die \textit{Enlightenment Foundation Libraries (EFL)} auf. Diese Bibliotheken werden zum Teil von
Enlightenment benötigt, andere können für optionale Features installiert werden. Für die Darstellung auf mobilen Geräten sind die
-Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary} nötig.
+Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} nötig.
\begin{figure}[h]
\centering
\includegraphics[width=2.7cm]{Bilder/efl}
\caption{Aufbau von \textit{Enlightenment}}
+ \label{enl}
\end{figure}
Bei \textit{Ecore} handelt es sich um eine Bibliothek, welche das Serialisieren von mehreren Programmteilen ermöglicht und
@@ -158,6 +162,5 @@ welche mit einer internen \textit{state machine} und einem Zustandsgraphen speic
ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und Tools
bereit.\newline
-
-Im Anhang 1 sind genaue Anweisungen zu finden mit deren Hilfe es möglich ist \textit{Elementary} nach \textit{Windows Mobile} zu
+Im Anhang 1 sind genaue Anweisungen zu finden mit deren Hilfe es möglich ist \textit{Elementary} für \textit{Windows Mobile} zu
portieren. \ No newline at end of file
diff --git a/ausarbeitung/Tutorial.tex~ b/ausarbeitung/Tutorial.tex~
index 52dd368..53e4b30 100644
--- a/ausarbeitung/Tutorial.tex~
+++ b/ausarbeitung/Tutorial.tex~
@@ -4,10 +4,10 @@ Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum Einen stel
benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum Anderen ob Schnittstellen vorhanden sind um das
Programm für das System zu entwickeln. \newline
Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist nicht allzu groß. Die meisten
-aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht.Auch erweiterte Features
-wie \textit{GPS} oder Lagesensoren sind in den meisten, aktuellen Geräten vorhanden oder werden in der nächsten Generation, des
+aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht. Auch erweiterte Features
+wie \textit{GPS} oder Lagesensoren sind in den meisten aktuellen Geräten vorhanden oder werden in der nächsten Generation, des
jeweiligen Herstellers, vorhanden sein.\newline
-Da die gegebenen Hardwareunterschiede minimal sind, wird eine Plattform aufgrund des Betriebssystemes ausgewählt. Bei
+Da die gegebenen Hardwareunterschiede minimal sind, findet die Auswahl aufgrund des Betriebssystemes statt. Bei
geeigneter Wahl ist es möglich die Software auf mehrere Betriebssysteme für Smartphones zu portieren und somit eine mehrfache
Implementation zu vermeiden. Es wäre somit auch möglich viele Nutzer zu erreichen und die Kommunikation zwischen einem Besitzer
eines \textit{iPhones} sowie dem Besitzer eines \textit{Palm Pre's} sicherzustellen.\newline
@@ -24,37 +24,34 @@ weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendu
entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden, ohne das
die genutzten Bibliotheken ausgetauscht werden müssen.\newline
Zusätzlich stellt sich auch die Frage der zu nutzenden Programmiersprache. Diese sollte von einer möglichst großen Mengen an
-Betriebsystemen unterstützt werden. Man müsste das, wenn man das Programm für ein neues Gerät portieren möchte, das Progamm somit
-nicht immer komplett neu implementieren.
+Betriebsystemen unterstützt werden. Somit ist es nicht nötig das Programm neu zu implementieren, falls es für eine neue
+Plattform portiert werden soll.
\subsection{Betriebsysteme für mobile Geräte}
-Durch die Wahl eines Betriebsystemes wird schon indirekt eine Vorauswahl an Nutzbaren Bibliotheken und Programmiersprachen
+Durch die Wahl eines Betriebsystemes wird schon indirekt eine Vorauswahl an nutzbaren Bibliotheken und Programmiersprachen
getroffen. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
eingegangen.
\subsubsection{Windows Mobile}
Das von Microsoft entwickelte \textit{Windows Mobile}\footnote{Windows Mobile
-http://www.microsoft.com/windowsmobile/de-de/default.mspx\newline[Online; letzter Aufruf 25.01.2010]} in der aktuellen
-Version 6.5
-verfügbar.
-Das gesamte Betriebssystem basiert
-auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. Es existiert
-ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC http://cegcc.sourceforge.net/ [Online; letzter Aufruf
-24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme für diese Plattform kompiliert und portiert werden
-können.
+http://www.microsoft.com/windowsmobile/de-de/default.mspx\newline[Online; letzter Aufruf 25.01.2010]} ist aktuell in der Version
+6.5 verfügbar. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den
+Desktop-Varianten der Windows-Familie erkennen. Es existiert ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC
+http://cegcc.sourceforge.net/ [Online; letzter Aufruf 24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme
+für diese Plattform übersetzt und portiert werden können.
\subsubsection{Android}
Das von \textit{Google} entwickelte \textit{Android}\footnote{Android http://www.android.com/ [Online; letzter Aufruf
25.01.2010]} setzt auf einen \textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und
-Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in
-welcher \textit{Android} läuft.\newline
+Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle
+\textit{Java}-Maschine auf, in welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
-\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der nutzbaren Sprachen im Moment eben auf diese eine beschränkt. Des
-weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder
-\textit{C++} zu schreiben.
+\textit{Java}-Bibliotheken zurück, womit sich die Anzahl der Sprachen bei Nutzung des \textit{SDKs} im Moment auf diese
+eine beschränkt. Des weiteren bietet \textit{Google} ein \textit{NDK} an, mit dessen Hilfe es auch möglich ist Programme in
+\textit{C} oder \textit{C++} zu schreiben.
\subsubsection{WebOS}
@@ -64,60 +61,58 @@ momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
und dem \textit{Palm Pixi}.\newline
Unter der Benutzeroberfläche von \textit{WebOS} arbeitet ein \textit{Linux-Kernel} in der Version 2.6. Somit ist es möglich, wenn
man Zugriff auf das zugrundeliegende System hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
-Für dieses Betriebssystem existiert ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres, welches im
-März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
+Für dieses Betriebssystem existiert ein \textit{SDK} fürDieses \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres
+\textit{SDK}, welches im März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
\subsubsection{iPhone OS}
-Bei \textit{iPhoneOS}\footnote{iPhoneOS http://www.apple.com/de/iphone/ [Online; letzter Aufruf 03.02.2010]} handelt es sich
-um eine abgeänderte und angepasste Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines
-\textit{BSD}-\footnote{BSD
+Bei dem Betriebssystem \textit{iPhoneOS}\footnote{iPhoneOS http://www.apple.com/de/iphone/ [Online; letzter Aufruf 03.02.2010]}
+handelt es sich um eine abgeänderte und angepasste Version von \textit{MacOS}. Somit bassiert auch der Kernel von
+\textit{iPhoneOS} sowohl auf teilen eines \textit{BSD}-\footnote{BSD
https://www.bsdwiki.de/ [Online; letzter Aufruf 24.02.2010]} sowie \textit{Mach}-Kernels\footnote{Mach
http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html\newline[Online; letzter Aufruf 24.02.2010]}. Dieses
-Betriebssystem
-wurde eigens für das
-iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
-unterstützt. Der größte Kritikpunkt an diesem System ist das Fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht
-möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
-häufig weitere Dienste im Hintergrund aktiv sein sollten.
+Betriebssystem wurde eigens für das \textit{iPhone} entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches
+allerdings nur die Sprache \textit{Objective-C} unterstützt. Der größte Kritikpunkt an diesem System ist das Fehlen von
+\textit{Multitasking}-Unterstützung. Somit ist es nicht möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location
+awareness} Anwendungen stark einschränkt, da hier häufig weitere Dienste im Hintergrund aktiv sein sollten.
\subsubsection{Symbian OS}
\textit{SymbianOS}\footnote{SymbianOS http://www.symbian.org/ [Online; letzter Aufruf 03.02.2010]} ist eine Betriebssystem
welches vorzugsweise auf Geräten der Firma \textit{Nokia} zum Einsatz kommt. Es existiert ein \textit{SDK}, was neben
\textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel \textit{Python} oder \textit{Java} unterstützt. Mit dem
-\textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es ermöglicht Programme direkt zu portieren. Des weitern
+\textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es ermöglicht Programme direkt zu portieren. Des Weiteren
besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
\subsubsection{Zielplattform}
\textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
-geplanten Dienst wichtig, da bei diesem Prozesse im Hintergund notwendig sind und dies auf einem solchen System nicht
+geplanten Dienst wichtig, da bei Diesem Prozesse im Hintergund notwendig sind und dies somit auf einem solchen System nicht
realisierbar wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nur die
mit dem \textit{NDK} verfügbaren Bibliotheken zum momentanen Zeitpunkt stabil verfügbar sind. Dies schränkt die
Entwicklung stark ein und ist für das zu entwickelnde Programm nicht geeignet.\newline
Unter Nutzung des \textit{CeGCC's} wird das Programm für \textit{Windows Mobile} portiert werden.
-Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
-kompilieren und im Anschluss auszuführen.
+Aufgrund der Implementierung in \textit{C} ist es auch möglich den Quellcode für \textit{WebOS} und \textit{SymbianOS} zu
+übersetzen und im Anschluss auszuführen.
\subsection{Softwaregrundlagen}
Anhand der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
-jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
+jeweiligen Plattformen zu übersetzen, sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde, nach
-\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
+\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, basierend auf dem
\textit{GCC}. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
ausführbaren Dateien erstellt werden.\newline
-Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Zum einen bietet der \textit{wince-mingw32ce} eine
-Menge an Tools mit welchen man native \textit{Windows Mobile} Applikationen erstellen kann. Hierzu wird eine
+Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Der \textit{arm-wince-mingw32ce} bietet eine
+Menge an \textit{Tools} mit welchen man native \textit{Windows Mobile} Applikationen erstellen kann. Hierzu wird eine
Portierung der \textit{GNU}\footnote{GNU http://www.gnu.org/ [Online; letzter Aufruf 03.02.2010]} Enwicklungswergzeuge aus
-dem \textit{MinGW} \footnote{MinGW http://mingw.org/ [Online; letzter Aufruf 03.02.2010]} Projekt genutzt. Diese
-kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu machen. Die andere Möglichkeit stellt die
-Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX} kompatibler Programmcoder nach \textit{Windows Mobile} portiert
-werden. %verfeinern
+dem \textit{MinGW}\footnote{MinGW http://mingw.org/ [Online; letzter Aufruf 03.02.2010]} Projekt genutzt. Diese \textit{Tools}
+übersetzen und verlinken Quellcode, um selbigen unter \textit{Windows Mobile} ausführbar zu machen. Die andere
+Möglichkeit stellt die Nutzung des \textit{arm-cegcc} dar, mit welchem \textit{POSIX} kompatibler Quellcode nach
+\textit{Windows Mobile} portiert werden kann. %verfeinern
%# arm-mingw32ce : toolset to build native Windows CE applications
%# arm-cegcc : toolset to port unix source to Windows CE
@@ -136,10 +131,11 @@ werden. %verfeinern
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
ansprechend darzustellen und eine einfache Bedienbarkeit zu garantieren. Dieses Frontend sollte auch in \textit{C} oder
\textit{C++} geschrieben sein, um auch hier die Portierbarkeit für die gewünschten Plattformen zu erhalten. Genutzt wird das
-freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray http://www.enlightenment.org/ [Online; letzter
-Aufruf 20.01.2010]} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie Windows, Linux, BSD und MacOS. Es
+freie, seit 1997 existierende, \textit{Enlightenment}\footnote{Elementray http://www.enlightenment.org/ [Online; letzter
+Aufruf 20.01.2010]} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie \textit{Windows, Linux, BSD} und
+\textit{MacOS}. Es
beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}. \textit{Elementary} bietet ein umfangreiches Paket an
-grafischen Elementen die genutzt und frei angeordnet werden können.
+graphischen Elementen die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
@@ -149,8 +145,8 @@ grafischen Elementen die genutzt und frei angeordnet werden können.
\end{figure}
\textit{Elementary} setzt auf die \textit{Enlightenment Foundation Libraries (EFL)} auf. Diese Bibliotheken werden zum Teil von
-Enlightenment benötigt, andere können für optionale Features installiert werden. Für die Darstellung auf mobilen Geräten sind die
-Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary} nötig.
+Enlightenment benötigt, andere können für optionale Funktionalitäten installiert werden. Für die Darstellung auf mobilen Geräten
+sind die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} nötig.
\begin{figure}[h]
\centering
@@ -161,10 +157,9 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
Bei \textit{Ecore} handelt es sich um eine Bibliothek, welche das Serialisieren von mehreren Programmteilen ermöglicht und
für den Betrieb auf mobilen Geräten optimiert wurde. \textit{Edje} ist eine grafische Design und Layout Bibliothek,
-welche mit einer internen \textit{state machine} und einem Zustandsgraphen speichert was wo, in welcher Farbe und wie sichtbar
-ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
-Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und Tools
-bereit.\newline
-
-Im Anhang 1 sind genaue Anweisungen zu finden mit deren Hilfe es möglich ist \textit{Elementary} nach \textit{Windows Mobile} zu
+welche mit einer internen \textit{state machine} und einem Zustandsgraphen speichert welche Elemente an welchem Ort, in welcher
+Farbe und wie sichtbar sind. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich
+um Effekte wie Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und
+\textit{Tools} bereit.\newline
+Im Anhang 1 sind genaue Anweisungen zu finden mit deren Hilfe es möglich ist \textit{Elementary} für \textit{Windows Mobile} zu
portieren. \ No newline at end of file
diff --git a/ausarbeitung/maindoc.log b/ausarbeitung/maindoc.log
index a9be6e9..e468cfc 100644
--- a/ausarbeitung/maindoc.log
+++ b/ausarbeitung/maindoc.log
@@ -1,7 +1,7 @@
-This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 26 FEB 2010 12:01
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 27 FEB 2010 18:19
entering extended mode
%&-line parsing enabled.
-**maindoc
+**maindoc.tex
(./maindoc.tex
LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, noh
@@ -478,21 +478,21 @@ Package: subfigure 2002/03/15 v2.1.5 subfigure package
(./Tutorial.aux) (./Friend_Finder.aux) (./Fazit.aux) (./Anhang.aux))
\openout1 = `maindoc.aux'.
-LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 112.
-LaTeX Font Info: ... okay on input line 112.
-LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 112.
-LaTeX Font Info: ... okay on input line 112.
-LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 112.
-LaTeX Font Info: ... okay on input line 112.
-LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 112.
-LaTeX Font Info: ... okay on input line 112.
-LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 112.
-LaTeX Font Info: ... okay on input line 112.
-LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 112.
-LaTeX Font Info: ... okay on input line 112.
-LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 112.
-LaTeX Font Info: ... okay on input line 112.
-LaTeX Font Info: Try loading font information for OT1+ptm on input line 112.
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 114.
+LaTeX Font Info: ... okay on input line 114.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 114.
+LaTeX Font Info: ... okay on input line 114.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 114.
+LaTeX Font Info: ... okay on input line 114.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 114.
+LaTeX Font Info: ... okay on input line 114.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 114.
+LaTeX Font Info: ... okay on input line 114.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 114.
+LaTeX Font Info: ... okay on input line 114.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 114.
+LaTeX Font Info: ... okay on input line 114.
+LaTeX Font Info: Try loading font information for OT1+ptm on input line 114.
(/usr/share/texmf-texlive/tex/latex/psnfss/ot1ptm.fd
@@ -514,7 +514,7 @@ File: ucsencs.def 2003/11/29 Fixes to fontencodings LGR, T3
\MPnumerator=\count137
\everyMPtoPDFconversion=\toks34
)
-Package hyperref Info: Link coloring ON on input line 112.
+Package hyperref Info: Link coloring ON on input line 114.
(/usr/share/texmf-texlive/tex/latex/hyperref/nameref.sty
Package: nameref 2006/12/27 v2.28 Cross-referencing by name of section
@@ -523,8 +523,8 @@ Package: refcount 2006/02/20 v3.0 Data extraction from references (HO)
)
\c@section@level=\count138
)
-LaTeX Info: Redefining \ref on input line 112.
-LaTeX Info: Redefining \pageref on input line 112.
+LaTeX Info: Redefining \ref on input line 114.
+LaTeX Info: Redefining \pageref on input line 114.
(./maindoc.out)
(./maindoc.out)
\@outlinefile=\write3
@@ -536,14 +536,17 @@ LaTeX Info: Redefining \pageref on input line 112.
<Bilder/siegel.png, id=127, 568.2831pt x 568.2831pt>
File: Bilder/siegel.png Graphic file (type png)
<use Bilder/siegel.png>
-[1
+(/usr/share/texmf-texlive/tex/latex/ucs/data/uni-0.def
+File: uni-0.def 2004/10/17 UCS: Unicode data U+0000..U+00FF
+) [1
-{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./Bilder/siegel.png>])
-(./maindoc.toc
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./Bilder/siegel.png>]) [2]
+ (./maindoc.toc
LaTeX Font Info: Try loading font information for OT1+ztmcm on input line 4.
- (/usr/share/texmf-texlive/tex/latex/psnfss/ot1ztmcm.fd
+
+(/usr/share/texmf-texlive/tex/latex/psnfss/ot1ztmcm.fd
File: ot1ztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OT1/ztmcm.
)
LaTeX Font Info: Try loading font information for OML+ztmcm on input line 4.
@@ -584,14 +587,11 @@ LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available
]
\openout2 = `Erklaerung.aux'.
- (./Erklaerung.tex
-(/usr/share/texmf-texlive/tex/latex/ucs/data/uni-0.def
-File: uni-0.def 2004/10/17 UCS: Unicode data U+0000..U+00FF
-))pdfTeX warning (ext4): destination with the same identifier (name{page.1}) ha
-s been already used, duplicate ignored
+ (./Erklaerung.tex)pdfTeX warning (ext4): destination with the same identifier
+(name{page.1}) has been already used, duplicate ignored
<to be read again>
\relax
-l.123 \include{Erklaerung}
+l.125 \include{Erklaerung}
[1
@@ -599,18 +599,17 @@ l.123 \include{Erklaerung}
\openout2 = `Einleitung.aux'.
(./Einleitung.tex)
-Overfull \hbox (28.31004pt too wide) in paragraph at lines 3--124
-\OT1/ptm/m/n/12 Durch den fortschre-i-t-en-den En-twick-lung der mod-er-nen Tec
+Overfull \hbox (25.64592pt too wide) in paragraph at lines 3--126
+\OT1/ptm/m/n/12 Durch die fortschre-i-t-en-den En-twick-lung der mod-er-nen Tec
h-nik ist es m[]oglich im-mer leis-tungsst[]arkere,
[]
-
-Overfull \hbox (0.99141pt too wide) in paragraph at lines 3--124
-\OT1/ptm/m/n/12 Strecke zu spe-ich-ern oder den n[]achsten Su-per-markt in der
-N[]ahe anzuzeigen. Des weit-eren k[]onnen
- []
-
-[2
+pdfTeX warning (ext4): destination with the same identifier (name{page.2}) has
+been already used, duplicate ignored
+<to be read again>
+ \relax
+l.126 \include{Einleitung}
+ [2
]
@@ -634,13 +633,13 @@ ro-gramm ist es m[]oglich
] [4]
-Overfull \hbox (5.40251pt too wide) in paragraph at lines 75--107
-\OT1/ptm/m/n/12 fahren genutzt wer-den welch-es den Aus-tausch von zwei Schl[]u
-sseln auf ein-fache Weise erm[]oglicht.
+Overfull \hbox (3.41554pt too wide) in paragraph at lines 74--107
+\OT1/ptm/m/n/12 wer-den. Da bei Ver-schl[]usselungen der Aus-tausch von Schl[]u
+sseln vo-raus-set-zt wird, ist die Nutzung
[]
[5])
-Overfull \hbox (7.5748pt too wide) in paragraph at lines 110--125
+Overfull \hbox (7.5748pt too wide) in paragraph at lines 110--127
\OT1/ptm/m/n/12 Da der Schl[]usselaustausch spon-tan durchf[]uhrbar sein soll,
muss dieser zu je-dem Zeit-punkt m[]oglich
[]
@@ -655,7 +654,7 @@ m/m/n/12 kom-pat-i-bles Sys-tem, portiert wer-den, ohne das die genutzten
[]
-Overfull \hbox (16.81418pt too wide) in paragraph at lines 38--47
+Overfull \hbox (16.81418pt too wide) in paragraph at lines 38--44
\OT1/ptm/m/n/12 Desktop-Varianten der Windows-Familie erken-nen. Es ex-istiert
ein \OT1/ptm/m/it/12 Cross-Compiler \OT1/ptm/m/n/12 names \OT1/ptm/m/it/12 CeGC
C[]\OT1/ptm/m/n/12 ,
@@ -665,28 +664,31 @@ C[]\OT1/ptm/m/n/12 ,
] [9]
-Overfull \hbox (0.91805pt too wide) in paragraph at lines 94--102
+Overfull \hbox (0.91805pt too wide) in paragraph at lines 89--97
\OT1/ptm/m/it/12 iPhoneOS \OT1/ptm/m/n/12 wurde auf-grund sein-er man-gel-nden
\OT1/ptm/m/it/12 Mul-ti-task-ing\OT1/ptm/m/n/12 -Unterst[]utzung aus-geschlosse
n. Diese
[]
-[10] <Bilder/elm-app-01_2.png, id=232, 133.35536pt x 185.83714pt>
+
+Overfull \hbox (7.9022pt too wide) in paragraph at lines 105--116
+\OT1/ptm/m/n/12 Der \OT1/ptm/m/it/12 CeGCC \OT1/ptm/m/n/12 kann in zwei un-ter-
+schiedlichen Ver-sio-nen genutzt wer-den. Der \OT1/ptm/m/it/12 arm-wince-mingw3
+2ce
+ []
+
+[10] <Bilder/elm-app-01_2.png, id=236, 133.35536pt x 185.83714pt>
File: Bilder/elm-app-01_2.png Graphic file (type png)
<use Bilder/elm-app-01_2.png>
-<Bilder/elm-app-02_2.png, id=233, 206.48572pt x 405.22821pt>
+<Bilder/elm-app-02_2.png, id=237, 206.48572pt x 405.22821pt>
File: Bilder/elm-app-02_2.png Graphic file (type png)
<use Bilder/elm-app-02_2.png> [11 <./Bilder/elm-app-01_2.png> <./Bilder/elm-app
--02_2.png>] <Bilder/efl.png, id=242, 48.18pt x 72.27pt>
+-02_2.png>] <Bilder/efl.png, id=245, 48.18pt x 72.27pt>
File: Bilder/efl.png Graphic file (type png)
- <use Bilder/efl.png>
-Underfull \hbox (badness 10000) in paragraph at lines 162--168
-
- []
-
-) [12 <./Bilder/efl.png>]
+ <use Bilder/efl.png>)
+[12 <./Bilder/efl.png>]
\openout2 = `Friend_Finder.aux'.
(./Friend_Finder.tex
@@ -695,7 +697,7 @@ Overfull \hbox (12.09158pt too wide) in paragraph at lines 11--22
ist f[]ur das Versenden und Emp-fan-gen der Textnachricht-en zust[]andig,
[]
-<Bilder/ablauf.png, id=250, 546.54187pt x 597.73312pt>
+<Bilder/ablauf.png, id=253, 546.54187pt x 597.73312pt>
File: Bilder/ablauf.png Graphic file (type png)
<use Bilder/ablauf.png>
Overfull \hbox (12.08994pt too wide) in paragraph at lines 32--37
@@ -703,213 +705,242 @@ Overfull \hbox (12.08994pt too wide) in paragraph at lines 32--37
en en-thal-ten um die Ober-fl[]achenelement
[]
+
+Overfull \hbox (9.97385pt too wide) in paragraph at lines 40--57
+\OT1/ptm/m/it/12 OpenSSL[] \OT1/ptm/m/n/12 Bib-lio-thek. Diese Im-ple-men-tieru
+ng wurde auf-grund der schnellen Ver-schl[]usselungsrate
+ []
+
[13
-] <Bilder/chat.png, id=259, 338.76563pt x 450.18187pt>
+] <Bilder/chat.png, id=262, 338.76563pt x 450.18187pt>
File: Bilder/chat.png Graphic file (type png)
<use Bilder/chat.png>
-Overfull \hbox (4.14699pt too wide) in paragraph at lines 67--83
+Overfull \hbox (4.14699pt too wide) in paragraph at lines 67--85
\OT1/ptm/m/n/12 Der \OT1/ptm/m/it/12 Sender \OT1/ptm/m/n/12 ist zust[]andig f[]
ur das Versenden der Po-si-tions-dat-en. Auch hi-er muss vor dem Versenden
[]
-Overfull \hbox (2.15637pt too wide) in paragraph at lines 67--83
+Overfull \hbox (2.15637pt too wide) in paragraph at lines 67--85
\OT1/ptm/m/n/12 und ge-tren-nt zu versenden. An jedes Ende, dieser in-s-ge-samt
vi-er Frag-mente, wird ein zus[]atzlicher,
[]
+
+Overfull \hbox (2.03496pt too wide) in paragraph at lines 67--85
+\OT1/ptm/m/n/12 dieser wieder ein \OT1/ptm/m/it/12 Lat-i-tude/-Longti-tude \OT1
+/ptm/m/n/12 Paar. Soll-ten diese \OT1/ptm/m/it/12 Ac-knowl-edge-ments \OT1/ptm/
+m/n/12 aus-bleiben, so wartet
+ []
+
+
+Overfull \hbox (8.12788pt too wide) in paragraph at lines 67--85
+\OT1/ptm/m/n/12 Diese Vorge-hensweise tritt auch in Kraft, falls eine Best[]ati
+gung, auf-grund von []Ubertragungsfehlern
+ []
+
[14 <./Bilder/ablauf.png>] [15 <./Bilder/chat.png>]
-<Bilder/protocol.png, id=275, 536.0025pt x 605.26125pt>
+<Bilder/protocol.png, id=277, 536.0025pt x 605.26125pt>
File: Bilder/protocol.png Graphic file (type png)
-<use Bilder/protocol.png>
-<Bilder/position.png, id=277, 338.76563pt x 447.92343pt>
+<use Bilder/protocol.png> [16 <./Bilder/protocol.png>]
+<Bilder/position.png, id=286, 338.76563pt x 447.92343pt>
File: Bilder/position.png Graphic file (type png)
-<use Bilder/position.png> [16 <./Bilder/protocol.png>]
-<Bilder/barcode.png, id=286, 337.26pt x 450.9347pt>
+<use Bilder/position.png> [17 <./Bilder/position.png>]
+<Bilder/barcode.png, id=294, 337.26pt x 450.9347pt>
File: Bilder/barcode.png Graphic file (type png)
<use Bilder/barcode.png>
-Overfull \hbox (2.70879pt too wide) in paragraph at lines 132--150
-\OT1/ptm/m/n/12 und versendet wer-den. Unter Daten-over-head wer-den Hin-ter-gr
-und-dat-en gese-hen, welche versendet
- []
-
-[17 <./Bilder/position.png>] [18 <./Bilder/barcode.png>]
-Overfull \hbox (15.05054pt too wide) in paragraph at lines 153--162
+[18 <./Bilder/barcode.png>]
+Overfull \hbox (15.05054pt too wide) in paragraph at lines 166--175
\OT1/ptm/m/n/12 Der All-ge-meine Hin-ter-grund-verkehr bei \OT1/ptm/m/it/12 Fri
end Find-er \OT1/ptm/m/n/12 beste-ht zum Einen aus \OT1/ptm/m/it/12 Keep-Alive
\OT1/ptm/m/n/12 Nachricht-
[]
-Overfull \hbox (0.66324pt too wide) in paragraph at lines 165--173
-\OT1/ptm/m/n/12 Ver-schl[]usselung wer-den beim Senden noch In-for-ma-tio-nen b
-ez[]uglich \OT1/ptm/m/it/12 Chan-nel \OT1/ptm/m/n/12 und der Empf[]anger
+Overfull \hbox (3.96782pt too wide) in paragraph at lines 178--188
+\OT1/ptm/m/n/12 Gr[]o^^Ye von 24 Byte. Nach der Ver-schl[]usselung wer-den beim
+ Senden noch In-for-ma-tio-nen bez[]uglich
[]
-Overfull \hbox (15.74675pt too wide) in paragraph at lines 176--190
-\OT1/ptm/m/n/12 Wie schon erw[]ahnt, wer-den die Po-si-tions-dat-en beim Sender
- aufgeteilt und mit vi-er un-ter-schiedlichen
+Overfull \hbox (3.56804pt too wide) in paragraph at lines 178--188
+\OT1/ptm/m/n/12 der ver-schl[]usselung, \OT1/ptm/m/it/12 Base64\OT1/ptm/m/n/12
+-Kodierung sowie hinzuf[]ugen von Zusatz-in-for-ma-tio-nen hat die Gr[]o^^Ye
[]
-
-Overfull \hbox (8.2153pt too wide) in paragraph at lines 176--190
-\OT1/ptm/m/n/12 Mit-tel um die 430 Byte. Die An-zahl der un-ver-schl[]usselten
-Ze-ichen, die f[]ur ein \OT1/ptm/m/it/12 Lat-i-tude\OT1/ptm/m/n/12 /\OT1/ptm/m/
-it/12 Longtitude\OT1/ptm/m/n/12 -
- []
-
-[19] <Bilder/graph.png, id=307, 642.4pt x 481.8pt>
+[19] [20] <Bilder/graph.png, id=314, 642.4pt x 481.8pt>
File: Bilder/graph.png Graphic file (type png)
<use Bilder/graph.png>
-<Bilder/graph2.png, id=308, 642.4pt x 481.8pt>
+Underfull \hbox (badness 1348) in paragraph at lines 235--235
+[][]\OT1/ptm/m/n/12 Vergleich des ver-sandten Daten-vol-u-men an-hand von un-te
+r-schiedlichen Teil-
+ []
+
+<Bilder/graph2.png, id=315, 642.4pt x 481.8pt>
File: Bilder/graph2.png Graphic file (type png)
<use Bilder/graph2.png>)
-[20] [21 <./Bilder/graph.png (PNG copy)> <./Bilder/graph2.png (PNG copy)>]
+[21 <./Bilder/graph.png (PNG copy)>] [22 <./Bilder/graph2.png (PNG copy)>]
\openout2 = `Fazit.aux'.
-(./Fazit.tex) [22
+(./Fazit.tex) [23
]
\openout2 = `Anhang.aux'.
- (./Anhang.tex [23
+ (./Anhang.tex [24
]
-Overfull \hbox (7.59068pt too wide) in paragraph at lines 63--80
-\OT1/ptm/m/n/12 unter Umst[]anden ben[]otigten, ausf[]uhrbaren Dateien liegen.
-\OT1/ptm/m/it/12 PKG[]CONFIG[]PATH \OT1/ptm/m/n/12 zeigt schliesslich
+Overfull \hbox (18.2465pt too wide) in paragraph at lines 77--88
+\OT1/ptm/m/n/12 wird mit [][][][][][][][][][][][][][][][][][][][][][][][][][][]
+[][][][][][][][][][][][][] aus-gef[]uhrt. Nach-dem alle Dateien
[]
-Overfull \hbox (1.0949pt too wide) in paragraph at lines 120--139
-\OT1/ptm/m/n/12 ``au-to-gen.sh'' Skript durch [][][][][][][][][][][][][][][][][
-][][][][][][][][][][][][][][][][][][][][]
+Overfull \hbox (2.28328pt too wide) in paragraph at lines 91--100
+\OT1/ptm/m/n/12 Nachdem das Skript aus-gef[]uhrt wurde, wird das Pro-gramm nun
+mit [][][][] er-stellt und im Zielverze-
[]
-[24]
-Overfull \hbox (3.86734pt too wide) in paragraph at lines 146--166
-\OT1/ptm/m/n/12 durch [][][][][][][][][][][][][][][][][][][][][][][][][][][][][
-][][][][][] aufgerufen und aus-gef[]uhrt wer-
+[25]
+Overfull \hbox (20.83896pt too wide) in paragraph at lines 132--156
+[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] \OT1
+/ptm/m/n/12 aufgerufen wer-den. Als n[]achster
[]
-Overfull \hbox (9.95499pt too wide) in paragraph at lines 169--188
-[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][
-]\OT1/ptm/m/n/12 . Nach-dem die Dateien herun-terge-laden
+Overfull \hbox (6.52469pt too wide) in paragraph at lines 132--156
+[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[]
-Underfull \hbox (badness 10000) in paragraph at lines 200--246
+Overfull \hbox (75.70978pt too wide) in paragraph at lines 132--156
+\OT1/ptm/m/n/12 herun-ter-laden und \OT1/ptm/m/it/12 ddraw.h \OT1/ptm/m/n/12 in
+ die Verze-ich-nisse \OT1/ptm/m/it/12 /opt/cegcc/arm-cegcc/include/w32api/ \OT1
+/ptm/m/n/12 und \OT1/ptm/m/it/12 /opt/mingw32ce/arm-
+ []
+[26]
+Overfull \hbox (7.50291pt too wide) in paragraph at lines 185--191
+\OT1/ptm/m/n/12 muss das Skript durch [][][][][][][][][][][][][][][][][][][][][
+][][][][][][][][][][][][][] aufgerufen wer-
[]
-[25] [26]
-Overfull \hbox (10.0347pt too wide) in paragraph at lines 291--307
-\OT1/ptm/m/n/12 muss auch hi-er wieder das Skript durch [][][][][][][][][][][][
-][][][][][][][][][][][][][][][][][][][]
+[27]
+LaTeX Font Info: Try loading font information for OML+ptm on input line 200.
+
+ (/usr/share/texmf-texlive/tex/latex/psnfss/omlptm.fd
+File: omlptm.fd
+)
+LaTeX Font Info: Font shape `OML/ptm/m/it' in size <12> not available
+(Font) Font shape `OML/cmm/m/it' tried instead on input line 200.
+
+Overfull \hbox (10.65788pt too wide) in paragraph at lines 194--203
+\OT1/ptm/m/n/12 durch den Aufruf von [][][][][][][][][][][][][][][][][][][][][]
+[][][][][][][][][][][][][][][][][][][][][][][][][][][]. Nun
[]
-Overfull \hbox (13.30293pt too wide) in paragraph at lines 314--334
-\OT1/ptm/m/n/12 Zuerst m[]ussen auch hi-er der Quell-code und ben[]otigte Dat-e
-n herun-terge-laden wer-den. Dies geschieht
+Overfull \hbox (19.86713pt too wide) in paragraph at lines 194--203
+[][][][][][][][][][][][][][][][][][][][][][][][][] \OT1/ptm/m/n/12 ges-tartet u
+nd aus-gef[]uhrt wer-den. Um zwei Fehlern vorzubeu-
[]
-Overfull \hbox (10.65788pt too wide) in paragraph at lines 314--334
-\OT1/ptm/m/n/12 durch den Aufruf von [][][][][][][][][][][][][][][][][][][][][]
-[][][][][][][][][][][][][][][][][][][][][][][][][][][]. Nun
+Overfull \hbox (3.74751pt too wide) in paragraph at lines 194--203
+\OT1/ptm/m/it/12 Make-file.am \OT1/ptm/m/n/12 im Ord-ner \OML/cmm/m/it/12 <\OT1
+/ptm/m/it/12 Pfad-zu-Elementary\OML/cmm/m/it/12 >\OT1/ptm/m/it/12 /src/bin/ \OT
+1/ptm/m/n/12 alle Vorkomm-nisse von \OT1/ptm/m/it/12 test[]fileselector.c
[]
-[27]
-LaTeX Font Info: Try loading font information for OMS+ptm on input line 370.
+[28]
+LaTeX Font Info: Try loading font information for OMS+ptm on input line 227.
(/usr/share/texmf-texlive/tex/latex/psnfss/omsptm.fd
File: omsptm.fd
)
LaTeX Font Info: Font shape `OMS/ptm/m/n' in size <12> not available
-(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 370.
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 227.
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 370--372
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 227--229
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / zlib-[]1 . 2 .
[]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 372--374
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 229--231
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / zlib-[]1 . 2 .
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 374--376
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 231--233
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libjpeg-[]6b /
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 376--378
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 233--235
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libjpeg-[]6b /
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 384--386
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 241--243
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / freetype-[]2 .
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 386--388
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 243--245
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / freetype-[]2 .
[]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 388--390
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 245--247
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libpng-[]1 .
[]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 390--392
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 247--249
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libpng-[]1 .
[]
-[28] [29] [30]) [31] (./maindoc.bbl) [32
+[29] [30] [31]) [32] (./maindoc.bbl) [33
] (./maindoc.aux (./Title.aux)
(./Erklaerung.aux) (./Einleitung.aux) (./Grundlagen.aux) (./Tutorial.aux)
(./Friend_Finder.aux) (./Fazit.aux) (./Anhang.aux)) )
Here is how much of TeX's memory you used:
- 9174 strings out of 95086
- 124523 string characters out of 1183254
- 304928 words of memory out of 1500000
- 11839 multiletter control sequences out of 10000+50000
- 37618 words of font info for 93 fonts, out of 1200000 for 2000
+ 9203 strings out of 95086
+ 124940 string characters out of 1183254
+ 305128 words of memory out of 1500000
+ 11861 multiletter control sequences out of 10000+50000
+ 39618 words of font info for 96 fonts, out of 1200000 for 2000
28 hyphenation exceptions out of 8191
- 35i,12n,46p,303b,1883s stack positions out of 5000i,500n,6000p,200000b,5000s
+ 35i,12n,46p,319b,1885s stack positions out of 5000i,500n,6000p,200000b,5000s
{/usr/share/texmf-texlive/
fonts/enc/dvips/base/8r.enc}</usr/share/texmf-texlive/fonts/type1/bluesky/cm/cm
-mi10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr10.pfb></usr/share
+mi12.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr10.pfb></usr/share
/texmf-texlive/fonts/type1/bluesky/cm/cmssbx10.pfb></usr/share/texmf-texlive/fo
nts/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/c
m/cmtt10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmtt12.pfb></usr/
share/texmf-texlive/fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/
-fonts/type1/urw/times/utmri8a.pfb>
-Output written on maindoc.pdf (34 pages, 2000482 bytes).
+fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/time
+s/utmri8a.pfb>
+Output written on maindoc.pdf (36 pages, 1993904 bytes).
PDF statistics:
- 631 PDF objects out of 1000 (max. 8388607)
- 251 named destinations out of 1000 (max. 131072)
+ 642 PDF objects out of 1000 (max. 8388607)
+ 252 named destinations out of 1000 (max. 131072)
312 words of extra memory for PDF output out of 10000 (max. 10000000)
diff --git a/ausarbeitung/maindoc.out b/ausarbeitung/maindoc.out
index 5a3580f..a82109c 100644
--- a/ausarbeitung/maindoc.out
+++ b/ausarbeitung/maindoc.out
@@ -17,7 +17,7 @@
\BOOKMARK [3][-]{subsubsection.3.2.2}{Enlightenment}{subsection.3.2}
\BOOKMARK [1][-]{section.4}{Friend Finder}{}
\BOOKMARK [2][-]{subsection.4.1}{Verwendete Verfahren und Bibliotheken}{section.4}
-\BOOKMARK [3][-]{subsubsection.4.1.1}{Grafisches Benutzeroberfl\344che}{subsection.4.1}
+\BOOKMARK [3][-]{subsubsection.4.1.1}{Graphische Benutzeroberfl\344che}{subsection.4.1}
\BOOKMARK [3][-]{subsubsection.4.1.2}{Versenden der Nachrichten}{subsection.4.1}
\BOOKMARK [3][-]{subsubsection.4.1.3}{Versenden der eigenen Position}{subsection.4.1}
\BOOKMARK [3][-]{subsubsection.4.1.4}{Empfangen von Positionen}{subsection.4.1}
diff --git a/ausarbeitung/maindoc.pdf b/ausarbeitung/maindoc.pdf
index bba079d..60b1826 100644
--- a/ausarbeitung/maindoc.pdf
+++ b/ausarbeitung/maindoc.pdf
Binary files differ
diff --git a/ausarbeitung/maindoc.tex b/ausarbeitung/maindoc.tex
index bc32200..e0059fb 100644
--- a/ausarbeitung/maindoc.tex
+++ b/ausarbeitung/maindoc.tex
@@ -62,9 +62,11 @@
]{hyperref}
% programm codestringstyle=\ttfamily,
+\definecolor{grey}{rgb}{0.85,0.85,0.85}
+
\usepackage{listings}
-\lstset{basicstyle=\ttfamily\footnotesize\mdseries, backgroundcolor=\color{white}, numbers=none, numberstyle=\tiny,
-stepnumber=1, numbersep=5pt, breaklines=true} %breakatwhitespace=true}
+\lstset{basicstyle=\ttfamily\footnotesize\mdseries, backgroundcolor=\color{white}, numbers=none,
+numberstyle=\tiny, stepnumber=1, numbersep=5pt, breaklines=true} %breakatwhitespace=true}
%(nummeriert auch \paragraph)
%\setcounter{secnumdepth}{4}
diff --git a/ausarbeitung/maindoc.tex~ b/ausarbeitung/maindoc.tex~
index bc32200..ebb3428 100644
--- a/ausarbeitung/maindoc.tex~
+++ b/ausarbeitung/maindoc.tex~
@@ -62,9 +62,11 @@
]{hyperref}
% programm codestringstyle=\ttfamily,
+\definecolor{grey}{rgb}{0.85,0.85,0.85}
+
\usepackage{listings}
-\lstset{basicstyle=\ttfamily\footnotesize\mdseries, backgroundcolor=\color{white}, numbers=none, numberstyle=\tiny,
-stepnumber=1, numbersep=5pt, breaklines=true} %breakatwhitespace=true}
+\lstset{basicstyle=\ttfamily\footnotesize\mdseries, backgroundcolor=\color{white}, numbers=none,
+numberstyle=\tiny, stepnumber=1, numbersep=5pt, breaklines=true} %breakatwhitespace=true}
%(nummeriert auch \paragraph)
%\setcounter{secnumdepth}{4}
@@ -117,6 +119,7 @@ stepnumber=1, numbersep=5pt, breaklines=true} %breakatwhitespace=true}
%\include{titel}
\include{Title}
\pagenumbering{roman}
+\include{Blank}
\tableofcontents
\clearpage
\pagenumbering{arabic}
diff --git a/ausarbeitung/maindoc.toc b/ausarbeitung/maindoc.toc
index 4afeee9..ea3f903 100644
--- a/ausarbeitung/maindoc.toc
+++ b/ausarbeitung/maindoc.toc
@@ -10,7 +10,7 @@
\contentsline {subsubsection}{\numberline {3.1.1}Windows Mobile}{9}{subsubsection.3.1.1}
\contentsline {subsubsection}{\numberline {3.1.2}Android}{9}{subsubsection.3.1.2}
\contentsline {subsubsection}{\numberline {3.1.3}WebOS}{9}{subsubsection.3.1.3}
-\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{10}{subsubsection.3.1.4}
+\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{9}{subsubsection.3.1.4}
\contentsline {subsubsection}{\numberline {3.1.5}Symbian OS}{10}{subsubsection.3.1.5}
\contentsline {subsubsection}{\numberline {3.1.6}Zielplattform}{10}{subsubsection.3.1.6}
\contentsline {subsection}{\numberline {3.2}Softwaregrundlagen}{10}{subsection.3.2}
@@ -18,7 +18,7 @@
\contentsline {subsubsection}{\numberline {3.2.2}Enlightenment}{11}{subsubsection.3.2.2}
\contentsline {section}{\numberline {4}Friend Finder}{13}{section.4}
\contentsline {subsection}{\numberline {4.1}Verwendete Verfahren und Bibliotheken}{13}{subsection.4.1}
-\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}
+\contentsline {subsubsection}{\numberline {4.1.1}Graphische Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}
\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{13}{subsubsection.4.1.2}
\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{15}{subsubsection.4.1.3}
\contentsline {subsubsection}{\numberline {4.1.4}Empfangen von Positionen}{16}{subsubsection.4.1.4}
@@ -26,6 +26,6 @@
\contentsline {subsection}{\numberline {4.2}Analyse}{18}{subsection.4.2}
\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{19}{subsubsection.4.2.1}
\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{19}{subsubsection.4.2.2}
-\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{19}{subsubsection.4.2.3}
+\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{20}{subsubsection.4.2.3}
\contentsline {subsubsection}{\numberline {4.2.4}Fazit der Auswertung}{20}{subsubsection.4.2.4}
-\contentsline {section}{\numberline {5}Fazit}{22}{section.5}
+\contentsline {section}{\numberline {5}Fazit}{23}{section.5}