summaryrefslogtreecommitdiffstats
path: root/ausarbeitung
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-28 21:51:54 +0100
committerPatrick Hornecker2010-02-28 21:51:54 +0100
commitefedaf1d3195e759d16b1b6a5ddb2983d8212cd3 (patch)
treecf5e28e6fe9170899b2ac10d51c81b43587fcca7 /ausarbeitung
parenttex source and bit code (diff)
downloadfriendfinder-efedaf1d3195e759d16b1b6a5ddb2983d8212cd3.tar.gz
friendfinder-efedaf1d3195e759d16b1b6a5ddb2983d8212cd3.tar.xz
friendfinder-efedaf1d3195e759d16b1b6a5ddb2983d8212cd3.zip
done :)
Diffstat (limited to 'ausarbeitung')
-rw-r--r--ausarbeitung/Anhang.tex65
-rw-r--r--ausarbeitung/Anhang.tex~69
-rw-r--r--ausarbeitung/Einleitung.tex18
-rw-r--r--ausarbeitung/Einleitung.tex~20
-rw-r--r--ausarbeitung/Fazit.tex18
-rw-r--r--ausarbeitung/Fazit.tex~18
-rw-r--r--ausarbeitung/Friend_Finder.aux8
-rw-r--r--ausarbeitung/Friend_Finder.tex118
-rw-r--r--ausarbeitung/Friend_Finder.tex~118
-rw-r--r--ausarbeitung/Grundlagen.tex113
-rw-r--r--ausarbeitung/Grundlagen.tex~113
-rw-r--r--ausarbeitung/Tutorial.tex89
-rw-r--r--ausarbeitung/Tutorial.tex.backup71
-rw-r--r--ausarbeitung/Tutorial.tex~89
-rw-r--r--ausarbeitung/maindoc.log208
-rw-r--r--ausarbeitung/maindoc.pdfbin1993904 -> 1995249 bytes
16 files changed, 508 insertions, 627 deletions
diff --git a/ausarbeitung/Anhang.tex b/ausarbeitung/Anhang.tex
index ef5bb02..a3e6ab7 100644
--- a/ausarbeitung/Anhang.tex
+++ b/ausarbeitung/Anhang.tex
@@ -6,7 +6,8 @@
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
+Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tu\-to\-ri\-al
+wird
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 Pakete aus dem \textit{Ubuntu-Repository}
@@ -22,8 +23,9 @@ libsqlite3-0 libsqlite3-dev
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.
+einmalig exportiert werden müssen. Dies ist notwendig, damit die zum Portieren benötigten \textit{Header}-Dateien,
+Bibliotheken und ausführbare Dateien 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}
@@ -58,28 +60,28 @@ 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} exportiert werden. Die Variablen existieren nur in
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} exportiert werden. Die Var\-iablen 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
+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 Paketinformat\-io\-nen 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.
+Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} ge\-spei\-chert werden kann.
Nach dem Wechseln in selbigen kann mit dem nächsten Schritt fortgefahren werden.
\subsubsection*{Evil}
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
+Nachdem alle Da\-tei\-en 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
+Aufruf \lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| ge\-star\-tet werden. \newline
+Durch das Ausführen des Skriptes mit 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.
@@ -95,7 +97,7 @@ Danach wird das \textit{autogen.sh} Skript durch
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{libpthread} deaktiviert, da diese auf dem Zielsystem
nicht unterstützt wird.\newline
-Nachdem das Skript ausgeführt wurde, wird das Programm nun mit \lstinline{make} erstellt und im Zielverzeichnis
+Nachdem das Skript ausgeführt wurde, wird das Programm nun mit \lstinline{make} erstellt und im Ziel\-ver\-zeich\-nis
mit \lstinline{make install} installiert.
\subsubsection*{Eet}
@@ -115,7 +117,7 @@ Der Erste Schritt ist das Herunterladen des Programmcodes unter der Verwendung v
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
Nachdem die Dateien heruntergeladen wurden, muss durch
\lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
-\textit{autogen.sh}-Skript aufgerufen werden.
+\textit{autogen.sh} Skript aufgerufen werden.
Im Anschluss mit \lstinline{make} kompilieren und mit \lstinline{make install} installieren.
\subsubsection*{Evas}
@@ -133,30 +135,32 @@ Die Paketinformationen müssen allerdings noch bearbeitet werden. Dazu werden fo
\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.
-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.
-Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
+durch Ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
+Nun wird
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| ausgeführt.
+Im näch\-sten Schritt muss das Programm mit \lstinline{make} kompiliert werden.
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 \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h| zu
+Ur\-sprüng\-lich 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|
+Es kann allerdings 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 mit dem Aufrufen von
+\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|
+\lstinline|$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}
+Um einen weiteren Fehler von vorneherein zu umgehen, muss noch der Pfad eines eingebund\-enen Headers in \textit{ft2build.h}
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
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.
+und \textit{ddraw.h} in die Verzeichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und \newline
+\mbox{\textit{/opt/mingw32ce/arm-mingw32ce/include/}} kopiert werden.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zuerst 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}[backgroundcolor=\color{grey}]
@@ -170,7 +174,7 @@ Um \textit{Ecore} zu erstellen muss zuerst eine Änderung im \textit{winnt.h}-He
#define THREAD_TERMINATE 0x0001
\end{lstlisting}
-Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \textit{winnt.h} eingefügt
+Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \mbox{\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
@@ -184,21 +188,22 @@ mit
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
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
+Nachdem die Dateien heruntergeladen wurden, muss das Skript mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen.
Die letzten beiden Schritte sind kompilieren und installieren durch \lstinline{make} und
\lstinline{make install}.
\subsubsection*{Elementary}
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}.
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}. \newline
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
+Um zwei Fehlern vor\-zu\-beu\-gen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, sollte man 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
+\textit{test\_file\-se\-lec\-tor.c} entfernen und folgende
Zeilen auskommentieren:
\begin{lstlisting}[backgroundcolor=\color{grey}]
bin_PROGRAMS = elementary_test
diff --git a/ausarbeitung/Anhang.tex~ b/ausarbeitung/Anhang.tex~
index 0d08012..c37c0ea 100644
--- a/ausarbeitung/Anhang.tex~
+++ b/ausarbeitung/Anhang.tex~
@@ -6,7 +6,8 @@
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
+Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tu\-to\-ri\-al
+wird
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 Pakete aus dem \textit{Ubuntu-Repository}
@@ -22,8 +23,9 @@ libsqlite3-0 libsqlite3-dev
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.
+einmalig exportiert werden müssen. Dies ist notwendig, damit die zum Portieren benötigten \textit{Header}-Dateien,
+Bibliotheken und ausführbare Dateien 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}
@@ -58,28 +60,28 @@ 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} exportiert werden. Die Variablen existieren nur in
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} exportiert werden. Die Var\-iablen 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
+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 Paketinformat\-io\-nen 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.
+Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} ge\-spei\-chert werden kann.
Nach dem Wechseln in selbigen kann mit dem nächsten Schritt fortgefahren werden.
\subsubsection*{Evil}
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
+Nachdem alle Da\-tei\-en 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
+Aufruf \lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| ge\-star\-tet werden. \newline
+Durch das Ausführen des Skriptes mit 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.
@@ -95,7 +97,7 @@ Danach wird das \textit{autogen.sh} Skript durch
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{libpthread} deaktiviert, da diese auf dem Zielsystem
nicht unterstützt wird.\newline
-Nachdem das Skript ausgeführt wurde, wird das Programm nun mit \lstinline{make} erstellt und im Zielverzeichnis
+Nachdem das Skript ausgeführt wurde, wird das Programm nun mit \lstinline{make} erstellt und im Ziel\-ver\-zeich\-nis
mit \lstinline{make install} installiert.
\subsubsection*{Eet}
@@ -115,7 +117,7 @@ Der Erste Schritt ist das Herunterladen des Programmcodes unter der Verwendung v
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
Nachdem die Dateien heruntergeladen wurden, muss durch
\lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
-\textit{autogen.sh}-Skript aufgerufen werden.
+\textit{autogen.sh} Skript aufgerufen werden.
Im Anschluss mit \lstinline{make} kompilieren und mit \lstinline{make install} installieren.
\subsubsection*{Evas}
@@ -133,30 +135,32 @@ Die Paketinformationen müssen allerdings noch bearbeitet werden. Dazu werden fo
\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.
-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.
-Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
+durch Ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
+Nun wird
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| ausgeführt.
+Im näch\-sten Schritt muss das Programm mit \lstinline{make} kompiliert werden.
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 \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h| zu
+Ur\-sprüng\-lich 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|
+Es kann allerdings 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 mit dem Aufruf von
+\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|
+\lstinline|$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}
+Um einen weiteren Fehler von vorneherein zu umgehen, muss noch der Pfad eines eingebund\-enen Headers in \textit{ft2build.h}
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
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.
+und \textit{ddraw.h} in die Verzeichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und \newline
+\mbox{\textit{/opt/mingw32ce/arm-mingw32ce/include/}} kopiert werden.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zuerst 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}[backgroundcolor=\color{grey}]
@@ -170,7 +174,7 @@ Um \textit{Ecore} zu erstellen muss zuerst eine Änderung im \textit{winnt.h}-He
#define THREAD_TERMINATE 0x0001
\end{lstlisting}
-Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \textit{winnt.h} eingefügt
+Der mit \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \mbox{\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
@@ -184,21 +188,22 @@ mit
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
-\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
+Nachdem die Dateien heruntergeladen wurden, muss das Skript mit
+\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen.
Die letzten beiden Schritte sind kompilieren und installieren durch \lstinline{make} und
\lstinline{make install}.
\subsubsection*{Elementary}
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}.
+\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}. \newline
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
+Um zwei Fehlern vor\-zu\-beu\-gen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, sollte man 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
+\textit{test\_file\-se\-lec\-tor.c} entfernen und folgende
Zeilen auskommentieren:
\begin{lstlisting}[backgroundcolor=\color{grey}]
bin_PROGRAMS = elementary_test
@@ -213,8 +218,8 @@ Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und
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 \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
+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} 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
diff --git a/ausarbeitung/Einleitung.tex b/ausarbeitung/Einleitung.tex
index 0b6984f..e475439 100644
--- a/ausarbeitung/Einleitung.tex
+++ b/ausarbeitung/Einleitung.tex
@@ -1,20 +1,22 @@
\section{Einleitung}
-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
+Durch die fortschreitende Entwicklung der modernen Technik ist es möglich, immer
+leistungs\-stärkere, mobile Geräte zu bauen. So geht die Funktionalität moderner Handys weit über das Telefonieren und Schreiben
+von
+SMS hinaus. Aktuelle Modelle 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
+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
+bestimmten Programmen möglich, zum Beispiel 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
+zu vernetzen. Es bieten sich also eine Vielzahl an Möglichkeiten, 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
+Werbung platziert 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
+ist, nach\-zu\-voll\-ziehen 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 dfec5ce..31fd1cd 100644
--- a/ausarbeitung/Einleitung.tex~
+++ b/ausarbeitung/Einleitung.tex~
@@ -1,20 +1,22 @@
\section{Einleitung}
-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
+Durch die fortschreitende Entwicklung der modernen Technik ist es möglich, immer
+leistungs\-stä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
+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
+bestimmten Programmen möglich, zum Beispiel 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
+zu vernetzen. Es bieten sich also eine Vielzahl an Möglichkeiten, 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
+Werbung platziert 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
+ist, nach\-zu\-voll\-ziehen 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.tex b/ausarbeitung/Fazit.tex
index 0d0a40e..f01211e 100644
--- a/ausarbeitung/Fazit.tex
+++ b/ausarbeitung/Fazit.tex
@@ -1,19 +1,19 @@
\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
+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
+Als offene Struktur wurde das bereits vorhandene \textit{IRC}-Protokoll, sowie dessen existente Netz\-werk\-struk\-tur 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
+Es wurde gezeigt, dass das \textit{IRC}-Protokoll aufgrund des 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
+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 für 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 die Frage, 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~ b/ausarbeitung/Fazit.tex~
index ab0bbd0..ea1397d 100644
--- a/ausarbeitung/Fazit.tex~
+++ b/ausarbeitung/Fazit.tex~
@@ -1,19 +1,19 @@
\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
+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
+Als offene Struktur wurde das bereits vorhandene \textit{IRC}-Protokoll, sowie dessen existente Netz\-werk\-struk\-tur 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
+Es wurde gezeigt, dass das \textit{IRC}-Protokoll aufgrund des 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
+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 für 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 die Frage, 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 3720753..6ae6858 100644
--- a/ausarbeitung/Friend_Finder.aux
+++ b/ausarbeitung/Friend_Finder.aux
@@ -23,10 +23,10 @@
\@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}{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 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}{}}
+\@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}{23}
\setcounter{equation}{0}
diff --git a/ausarbeitung/Friend_Finder.tex b/ausarbeitung/Friend_Finder.tex
index 4c69769..5423194 100644
--- a/ausarbeitung/Friend_Finder.tex
+++ b/ausarbeitung/Friend_Finder.tex
@@ -11,7 +11,7 @@ aufgezeigt.
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,
+Sender} ist für das Versenden und Empfangen der Textnachrichten zu\-stän\-dig, \textit{Sender} sendet die eigene Position,
\textit{Receiver} empfängt die Positionen der anderen Nutzer und sendet Acknowledgements an die teilnehmenden \textit{Sender}.
Alle drei Teile geben ihre empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{Enlightenment} ausgibt.
Abbildung \ref{ablauf} zeigt den Kommunikationsaustausch von \textit{Friend Finder}. In dieser Graphik sind die Module zweier
@@ -29,9 +29,9 @@ weiter.
\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
+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ächen\-ele\-men\-te zu platzieren. Um die gewünschte Funktionalität der einzelnen
+Elemente zu realisieren, wurden 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
http://www.openstreetmap.de/ [Online; letzter Aufruf 13.02.2010]} genutzt.
@@ -41,18 +41,21 @@ Der \textit{Message Sender} kümmert sich um das Versenden von Nachrichten. Um d
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,
-muss eine \textit{IRC-Session} initialisiert werden. Diese \textit{Session} beinhaltet Informationen wie zum Beispiel
+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
+können Nachrichten versandt werden. Textnachrichten müssen vor dem Versenden in Blöcke aufgeteilt werden, da das genutzte
+Verschlüsselungsverfahren \textit{Blowfish} \citep{blowfish} maximal 64 Bit lange Zeichenketten 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 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
+Bibliothek. Diese Implementierung wurde aufgrund der schnellen Verschlüs\-se\-lungs\-ra\-te sowie einfachen
+Implementierungsmöglichkeiten gewählt. Da das \textit{IRC}-Protokoll nicht alle Zei\-chen darstellen kann oder bestimmte Zeichen
+als
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
+Wird nun von einer anderen Instanz des \textit{Message Senders} eine Nachricht empfangen, so \mbox{setzt} er die Teilstücke
+zusammen.
+Dies geschieht solange, bis ein vom Nachrichtentext getrennt ges\-en\-de\-tes Terminierungszeichen empfangen wird. Wurde dieses
+Zeichen
+empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht.
In Abbildung \ref{chat} ist die graphische Darstellung eines Nachrichtenaustausches abgebildet.
\begin{figure}[!ht]
@@ -64,23 +67,23 @@ In Abbildung \ref{chat} ist die graphische Darstellung eines Nachrichtenaustausc
\subsubsection{Versenden der eigenen Position}
-Der \textit{Sender} ist zuständig für das Versenden der Positionsdaten. Auch hier muss vor dem Versenden von Daten eine
+Der \textit{Sender} ist zuständig für das Versenden der Positionsdaten. Auch hier muss vor dem Ver\-sen\-den von Daten eine
\textit{IRC-Session} initialisiert werden. Der Ablauf beim Senden der Positionen erfolgt in einer vorgegebenen Reihenfolge. Zuerst
wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
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.
+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.
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. 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
+längere Zeit und versendet die Daten erneut. Somit werden Daten in längeren Abständen versandt, 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
+Sender daraufhin wieder die Senderate. Diese Vorgehensweise tritt auch in Kraft, falls eine Bestätigung aufgrund von
+Übertragungsfeh\-lern 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
+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]
@@ -93,14 +96,14 @@ schickt im Anschluss auf gleichem Weg \textit{Acknowledgements} an den \textit{S
\subsubsection{Empfangen von Positionen}
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 \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
+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 \textit{Empfänger} dies anhanden des Buchstabensuffix zuordnen. Wurden alle
+Fragmente einer Position empfangen, so werden die benötigten Daten zur Visualisierung 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
+dies für den \textit{Empfänger} kein Problem dar. Aufgrund 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
@@ -118,17 +121,17 @@ Darstellung 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.210]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI}
+Bilddaten generiert. Diese werden im nächsten Schritt durch \mbox{\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,
+\textit{Friend Finder} eingegebene Zeichenkette oder ein Schlüssel speziell 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
+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.
+schon im Voraus Schlüssel erstellen zu müssen.
\begin{figure}[!ht]
\centering
@@ -146,7 +149,7 @@ Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig \tex
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
+Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Das 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 \textit{Datenoverhead} den Vorteil eines \textit{Broadcast}-Mediums wie ein
@@ -157,19 +160,19 @@ Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote
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 und
+bei Verbindungsaufbau, sowie bei Beenden der Verbindung ent\-steht. 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.
\subsubsection{Allgemeiner Datenverkehr}
-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}
+Der allgemeine Hintergrundverkehr bei \textit{Friend Finder} besteht zum Einen aus \textit{Keep-Alive} Nach\-richt\-en 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 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
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
+von Client zu Server versandt werden, betragen hierbei zehn 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.
@@ -180,8 +183,8 @@ Finder} genutzte \textit{Blockcipher} teilt den Satz "`Hello World"' in zwei Tei
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 verschlüsselung, \textit{Base64}-Kodierung sowie hinzufügen von Zusatzinformationen hat die Größe der
+noch Informationen bezüg\-lich \textit{Channel} und der Empfänger der Nachricht in das zu versendende \textit{IRC}-Paket
+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 4)$.
@@ -194,44 +197,45 @@ Größe des Datenfeldes im Mittel 140 Byte. Die Gesamtgröße der unverschlüsse
\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:
+versendeten Nachricht circa durch $h + (t \cdot 4)$. Hinzu kommt, dass für jedes em\-pfang\-ene Positions-Fragment ein
+\textit{Acknowledgement} gesendet wird. Die Größe eines \textit{Acknowledgement}-Paketes beträgt zwischen 110 und 120 Byte. In
+einem solchen Paket werden vier \textit{Acknowledgements} zusammengefasst.\newline
+Daraus kann folgende Formel für den Datenverkehr pro versendeter Position bei $n$ Teilnehmern hergeleitet werden:
$((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
+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
+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
+Finder} implementierte Methode, zu einem beliebigen Zeitpunkt $t$ verglichen. Es wird angenommen, dass 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
+Die Größe wird anhand der aktiven Teilnehmer ausgegeben. Es wird angenommen, dass 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
+den \textit{Channel}-Namen dar. Zudem wird angenommen, dass 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
+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 re\-prä\-sen\-tiert 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.
+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 \textit{IRC}-Protokoll nur einmalig addiert werden.
\begin{figure}[!ht]
\centering
\includegraphics[width=12cm]{Bilder/graph}
- \caption{Vergleich des versandten Datenvolumen anhand von unterschiedlichen Teilnehmerzahlen, von $n$-Verbindungen und
+ \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}
@@ -239,7 +243,7 @@ Werte beim nur \textit{IRC}-Protokoll nur einmalig addiert werden.
\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$.}
+ \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 e9722a9..5423194 100644
--- a/ausarbeitung/Friend_Finder.tex~
+++ b/ausarbeitung/Friend_Finder.tex~
@@ -11,7 +11,7 @@ aufgezeigt.
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,
+Sender} ist für das Versenden und Empfangen der Textnachrichten zu\-stän\-dig, \textit{Sender} sendet die eigene Position,
\textit{Receiver} empfängt die Positionen der anderen Nutzer und sendet Acknowledgements an die teilnehmenden \textit{Sender}.
Alle drei Teile geben ihre empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{Enlightenment} ausgibt.
Abbildung \ref{ablauf} zeigt den Kommunikationsaustausch von \textit{Friend Finder}. In dieser Graphik sind die Module zweier
@@ -29,9 +29,9 @@ weiter.
\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
+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ächen\-ele\-men\-te zu platzieren. Um die gewünschte Funktionalität der einzelnen
+Elemente zu realisieren, wurden 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
http://www.openstreetmap.de/ [Online; letzter Aufruf 13.02.2010]} genutzt.
@@ -41,18 +41,21 @@ Der \textit{Message Sender} kümmert sich um das Versenden von Nachrichten. Um d
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,
-muss eine \textit{IRC-Session} initialisiert werden. Diese \textit{Session} beinhaltet Informationen wie zum Beispiel
+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
+können Nachrichten versandt werden. Textnachrichten müssen vor dem Versenden in Blöcke aufgeteilt werden, da das genutzte
+Verschlüsselungsverfahren \textit{Blowfish} \citep{blowfish} maximal 64 Bit lange Zeichenketten 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 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
+Bibliothek. Diese Implementierung wurde aufgrund der schnellen Verschlüs\-se\-lungs\-ra\-te sowie einfachen
+Implementierungsmöglichkeiten gewählt. Da das \textit{IRC}-Protokoll nicht alle Zei\-chen darstellen kann oder bestimmte Zeichen
+als
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
+Wird nun von einer anderen Instanz des \textit{Message Senders} eine Nachricht empfangen, so \mbox{setzt} er die Teilstücke
+zusammen.
+Dies geschieht solange, bis ein vom Nachrichtentext getrennt ges\-en\-de\-tes Terminierungszeichen empfangen wird. Wurde dieses
+Zeichen
+empfangen, so gilt die Textnachricht als wiederhergestellt und wird an die Benutzeroberfläche weitergereicht.
In Abbildung \ref{chat} ist die graphische Darstellung eines Nachrichtenaustausches abgebildet.
\begin{figure}[!ht]
@@ -64,23 +67,23 @@ In Abbildung \ref{chat} ist die graphische Darstellung eines Nachrichtenaustausc
\subsubsection{Versenden der eigenen Position}
-Der \textit{Sender} ist zuständig für das Versenden der Positionsdaten. Auch hier muss vor dem Versenden von Daten eine
+Der \textit{Sender} ist zuständig für das Versenden der Positionsdaten. Auch hier muss vor dem Ver\-sen\-den von Daten eine
\textit{IRC-Session} initialisiert werden. Der Ablauf beim Senden der Positionen erfolgt in einer vorgegebenen Reihenfolge. Zuerst
wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
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.
+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.
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. 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
+längere Zeit und versendet die Daten erneut. Somit werden Daten in längeren Abständen versandt, 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
+Sender daraufhin wieder die Senderate. Diese Vorgehensweise tritt auch in Kraft, falls eine Bestätigung aufgrund von
+Übertragungsfeh\-lern 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
+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]
@@ -93,14 +96,14 @@ schickt im Anschluss auf gleichem Weg \textit{Acknowledgements} an den \textit{S
\subsubsection{Empfangen von Positionen}
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 \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
+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 \textit{Empfänger} dies anhanden des Buchstabensuffix zuordnen. Wurden alle
+Fragmente einer Position empfangen, so werden die benötigten Daten zur Visualisierung 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
+dies für den \textit{Empfänger} kein Problem dar. Aufgrund 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
@@ -118,17 +121,17 @@ Darstellung 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.210]} gerendert und auf das Speichermedium geschrieben. Dieses Bild wird dann durch die \textit{GUI}
+Bilddaten generiert. Diese werden im nächsten Schritt durch \mbox{\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,
+\textit{Friend Finder} eingegebene Zeichenkette oder ein Schlüssel speziell 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
+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.
+schon im Voraus Schlüssel erstellen zu müssen.
\begin{figure}[!ht]
\centering
@@ -146,7 +149,7 @@ Beim Versenden der Daten durch \textit{Friend Finder} soll möglichst wenig \tex
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
+Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Das 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 \textit{Datenoverhead} den Vorteil eines \textit{Broadcast}-Mediums wie ein
@@ -157,19 +160,19 @@ Der \textit{Traffic} wurde mit Hilfe des Programmes \textit{Wireshark}\footnote
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 und
+bei Verbindungsaufbau, sowie bei Beenden der Verbindung ent\-steht. 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.
\subsubsection{Allgemeiner Datenverkehr}
-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}
+Der allgemeine Hintergrundverkehr bei \textit{Friend Finder} besteht zum Einen aus \textit{Keep-Alive} Nach\-richt\-en 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 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
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
+von Client zu Server versandt werden, betragen hierbei zehn 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.
@@ -180,8 +183,8 @@ Finder} genutzte \textit{Blockcipher} teilt den Satz "`Hello World"' in zwei Tei
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 verschlüsselung, \textit{Base64}-Kodierung sowie hinzufügen von Zusatzinformationen hat die Größe der
+noch Informationen bezüg\-lich \textit{Channel} und der Empfänger der Nachricht in das zu versendende \textit{IRC}-Paket
+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 4)$.
@@ -194,44 +197,45 @@ Größe des Datenfeldes im Mittel 140 Byte. Die Gesamtgröße der unverschlüsse
\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:
+versendeten Nachricht circa durch $h + (t \cdot 4)$. Hinzu kommt, dass für jedes em\-pfang\-ene Positions-Fragment ein
+\textit{Acknowledgement} gesendet wird. Die Größe eines \textit{Acknowledgement}-Paketes beträgt zwischen 110 und 120 Byte. In
+einem solchen Paket werden vier \textit{Acknowledgements} zusammengefasst.\newline
+Daraus kann folgende Formel für den Datenverkehr pro versendeter Position bei $n$ Teilnehmern hergeleitet werden:
$((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
+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
+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
+Finder} implementierte Methode, zu einem beliebigen Zeitpunkt $t$ verglichen. Es wird angenommen, dass 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
+Die Größe wird anhand der aktiven Teilnehmer ausgegeben. Es wird angenommen, dass 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
+den \textit{Channel}-Namen dar. Zudem wird angenommen, dass 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
+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 re\-prä\-sen\-tiert 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.
+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 \textit{IRC}-Protokoll nur einmalig addiert werden.
\begin{figure}[!ht]
\centering
\includegraphics[width=12cm]{Bilder/graph}
- \caption{Vergleich des versandten Datenvolumen anhand von unterschiedlichen Teilnehmerzahlen, von $n$-Verbindungen und
+ \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}
@@ -239,7 +243,7 @@ benötigt wird. Würde eine Lösung mit $n$ Verbindungen gewählt werden, so mus
\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$.}
+ \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 fbb7172..75e98e4 100644
--- a/ausarbeitung/Grundlagen.tex
+++ b/ausarbeitung/Grundlagen.tex
@@ -3,51 +3,51 @@
\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 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
+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önnen, 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
+Im ersten Teil wird die aktuelle Ent\-wicklung von \textit{location privacy} Software auf mobilen
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}
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}
+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 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
+letzter Aufruf 11.02.2010]} an. Bei diesem Programm ist es möglich die Position von Freunden, die diesen Dienst 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 nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
+Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und \mbox{Kulik},
+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.
+Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die Ausgabe von
+Positionsdaten anderer. Er hat 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 Nutzer 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
+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,
-wird eine zusätzliche Verschlüsselung dieser Daten benötigt, ansonsten hätte jederman Zugang zu ihnen. \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 das zum Versenden genutzte System offen zugänglich ist,
+wird eine zusätzliche Verschlüsselung dieser Daten benötigt, ansonsten hätte jedermann 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
+an einen Dienst gesandt, welcher auf all diese Datensätze antwortet, egal ob diese richtige oder falsche Daten
+beinhalten. Nur der Client weiß, welche der em\-pfangenen Daten auf der eigentlichen Position basieren. Mit dieser Lösung ist es
zwar möglich Positionsdaten zu verschleiern, allerdings wird hiermit nicht das Problem gelöst, dass der Nutzer keine Kontrolle
darüber hat, wie seine Daten versendet und genutzt werden.\newline
-Einen anderer Ansatz verfolgen Gruteser und Grundwald \citep{kprivacy}. Sie versuchen mit Hilfe von \textit{k-anonymity}
+Einen anderen Ansatz verfolgen Gruteser und Grundwald \citep{kprivacy}. Sie versuchen mit Hilfe von \mbox{\textit{k-anonymity}}
\citep{kanonymity} die Position zu verschleiern. Man versteht unter \textit{k-anonymity}, dass in
einer Menge von $k$ Personen ein Teilnehmer nicht von den anderen $k-1$ Teilnehmern unterschieden werden kann. Gruteser und
Grundwald haben hierfür einen \textit{quadtree} \citep{quadtree} genutzt um bestimmte Bereiche zu erstellen. Diese Bereiche haben
nur eine Vorraussetzung, sie müssen $k$ Personen enthalten. Somit kann nicht festgestellt werden, welche Person
eines Bereiches die Daten versandt hat. Allerdings kann dieses Vorgehen nicht für eine Anwendung mit der Funktionalität eines
-Dienstes, der gezielt Positionen einzelner andere Benutzer anzeigt, genutzt werden. Der Grund dafür ist, dass es mit diesem
-Ansatz nicht möglich ist Positionsdaten von einzelnen Personen zu versenden. Zusätzlich ist auch hier nicht gegeben, dass die
+\mbox{Dienstes}, der gezielt Positionen einzelner andere Benutzer anzeigt, genutzt werden. Der Grund dafür ist, dass es mit diesem
+Ansatz nicht möglich ist Positionsdaten, von einzelnen Personen zu versenden. Zusätzlich ist auch hier nicht gegeben, dass die
Anwender Einsicht in die Verwendung und Verbreitung ihrer Daten erhalten.
\subsection{Vorraussetzungen}
@@ -56,84 +56,85 @@ Im Rahmen der Datenübertragung sind alle modernen Geräte in der Lage, sowohl Ã
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.
+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, 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
+viel Kontrolle über seine Datensätze hat. Zur Wahrung dieser 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
+Zum weiteren Schutz der verschlüsselten Daten darf zur Übertragung der Informationen nicht ein zentraler 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.
+aller\-dings 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}
-Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebenen Eigenschaften die Sicherheit der
-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
+Zusammenfassend kann gesagt werden, dass eine Software mit den beschriebenen Eigenschaften die Sicherheit der
+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, so dass ein
+Benutzer ohne Fachkenn\-tnise alle Funktionen der Anwendung nutzen kann, ohne dass die obigen Punkte ausser Kraft treten. \newline
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
+hat und sie frei genutzt werden kann. Es ist 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 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
+Verschlüsselungen der Austausch von Schlüsseln vorausgesetzt wird, ist die Nutz\-ung 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
+immer im Vorraus planen kann und möchte. 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. Eine Planung im Voraus wird somit nicht benötigt. 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
+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, 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
+Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur be\-grenzt interessant, da sie mit
+zunehmender
+Entfernung immer schwerer erreichbar 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 vermieden wird. Zum Anderen werden möglichst viele
-Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
+Benutzer erreicht und es kann eine Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
-Ebenfalls von Bedeutung ist die Modularität einer Anwendung. Ist diese gegeben so fällt das Austauschen oder Erweitern von
+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.
+Verschlüsselung, oder ein anderes Protokoll zum Versenden der Daten zusätzlich zu implementieren.
\subsection{Verfahren}
-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
+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 kommuniziert 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
+zuzuordnen, möglichst gering gehalten werden. Um den Schlüs\-sel\-aus\-tausch 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ög\-lich sein, ohne dass 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
+\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 fotographiert und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
+Dieser kann fotographiert und wieder in eine Zeichenkette umgewandelt 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
+über eine geeignete Struktur zu beginnen. Aufgrund der Möglichkeit, dass 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
+verschiedene \textit{Channels} bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil 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
+werden, ein \textit{Channel} eröffnet und nach Beendigung des Austausches wieder geschlossen werden. Es 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
-als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße
-äquivalent. \ 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~ b/ausarbeitung/Grundlagen.tex~
index 42471e4..ab7423c 100644
--- a/ausarbeitung/Grundlagen.tex~
+++ b/ausarbeitung/Grundlagen.tex~
@@ -3,52 +3,51 @@
\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 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
+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önnen, 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
+Im ersten Teil wird die aktuelle Ent\-wicklung von \textit{location privacy} Software auf mobilen
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.
+dieser Art gestellt werden analysiert und mögliche Ziele einer solchen Software beschrieben.
\subsection{Aktuelle Entwicklungen}
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}
+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 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
+letzter Aufruf 11.02.2010]} an. Bei diesem Programm ist es möglich die Position von Freunden, die diesen Dienst 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 nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
+Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und \mbox{Kulik},
+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.
+Rechte über die Daten ab diesem Zeitpunkt. Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die Ausgabe von
+Positionsdaten anderer. Er hat 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 Nutzer 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
+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,
-wird eine zusätzliche Verschlüsselung dieser Daten benötigt, ansonsten hätte jederman Zugang zu ihnen. \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 das zum Versenden genutzte System offen zugänglich ist,
+wird eine zusätzliche Verschlüsselung dieser Daten benötigt, ansonsten hätte jedermann 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
+an einen Dienst gesandt, welcher auf all diese Datensätze antwortet, egal ob diese richtige oder falsche Daten
+beinhalten. Nur der Client weiß, welche der em\-pfangenen Daten auf der eigentlichen Position basieren. Mit dieser Lösung ist es
zwar möglich Positionsdaten zu verschleiern, allerdings wird hiermit nicht das Problem gelöst, dass der Nutzer keine Kontrolle
darüber hat, wie seine Daten versendet und genutzt werden.\newline
-Einen anderer Ansatz verfolgen Gruteser und Grundwald \citep{kprivacy}. Sie versuchen mit Hilfe von \textit{k-anonymity}
+Einen anderen Ansatz verfolgen Gruteser und Grundwald \citep{kprivacy}. Sie versuchen mit Hilfe von \mbox{\textit{k-anonymity}}
\citep{kanonymity} die Position zu verschleiern. Man versteht unter \textit{k-anonymity}, dass in
einer Menge von $k$ Personen ein Teilnehmer nicht von den anderen $k-1$ Teilnehmern unterschieden werden kann. Gruteser und
Grundwald haben hierfür einen \textit{quadtree} \citep{quadtree} genutzt um bestimmte Bereiche zu erstellen. Diese Bereiche haben
nur eine Vorraussetzung, sie müssen $k$ Personen enthalten. Somit kann nicht festgestellt werden, welche Person
eines Bereiches die Daten versandt hat. Allerdings kann dieses Vorgehen nicht für eine Anwendung mit der Funktionalität eines
-Dienstes, der gezielt Positionen einzelner andere Benutzer anzeigt, genutzt werden. Der Grund dafür ist, dass es mit diesem
-Ansatz nicht möglich ist Positionsdaten von einzelnen Personen zu versenden. Zusätzlich ist auch hier nicht gegeben, dass die
+\mbox{Dienstes}, der gezielt Positionen einzelner andere Benutzer anzeigt, genutzt werden. Der Grund dafür ist, dass es mit diesem
+Ansatz nicht möglich ist Positionsdaten, von einzelnen Personen zu versenden. Zusätzlich ist auch hier nicht gegeben, dass die
Anwender Einsicht in die Verwendung und Verbreitung ihrer Daten erhalten.
\subsection{Vorraussetzungen}
@@ -57,82 +56,84 @@ Im Rahmen der Datenübertragung sind alle modernen Geräte in der Lage, sowohl Ã
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.
+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, 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
+viel Kontrolle über seine Datensätze hat. Zur Wahrung dieser 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
+Zum weiteren Schutz der verschlüsselten Daten darf zur Übertragung der Informationen nicht ein zentraler 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.
+aller\-dings 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}
-Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebenen Eigenschaften die Sicherheit der
-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
+Zusammenfassend kann gesagt werden, dass eine Software mit den beschriebenen Eigenschaften die Sicherheit der
+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, so dass ein
+Benutzer ohne Fachkenn\-tnise alle Funktionen der Anwendung nutzen kann, ohne dass die obigen Punkte ausser Kraft treten. \newline
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
+hat und sie frei genutzt werden kann. Es ist 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 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
+Verschlüsselungen der Austausch von Schlüsseln vorausgesetzt wird, ist die Nutz\-ung 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
+immer im Vorraus planen kann und möchte. 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. Eine Planung im Voraus wird somit nicht benötigt. 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
+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, 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
+Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur be\-grenzt interessant, da sie mit
+zunehmender
+Entfernung immer schwerer erreichbar 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 vermieden wird. Zum Anderen werden möglichst viele
-Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
+Benutzer erreicht und es kann eine Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
-Ebenfalls von Bedeutung ist die Modularität einer Anwendung. Ist diese gegeben so fällt das Austauschen oder Erweitern von
+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.
+Verschlüsselung, oder ein anderes Protokoll zum Versenden der Daten zusätzlich zu implementieren.
\subsection{Verfahren}
-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
+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 kommuniziert 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
+zuzuordnen, möglichst gering gehalten werden. Um den Schlüs\-sel\-aus\-tausch 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ög\-lich sein, ohne dass 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
+\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 fotographiert und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
+Dieser kann fotographiert und wieder in eine Zeichenkette umgewandelt 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
+über eine geeignete Struktur zu beginnen. Aufgrund der Möglichkeit, dass 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
+verschiedene \textit{Channels} bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil 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
+werden, ein \textit{Channel} eröffnet und nach Beendigung des Austausches wieder geschlossen werden. Es 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
diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index 53e4b30..da9011c 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -1,19 +1,20 @@
\section{Technische Grundlagen}
Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum Einen stellt sich die Frage, ob die Handymodelle die
-benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum Anderen ob Schnittstellen vorhanden sind um das
+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
-jeweiligen Herstellers, vorhanden sein.\newline
-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
-Ein weiterer Punkt der zu einer Entscheidung beiträgt ist die Frage ob andere Programme und Bibliotheken auf den jeweiligen
+wie \textit{GPS} oder Lage\-sensoren 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, findet die Auswahl aufgrund des Betriebs\-systemes statt. Bei
+geeigneter Wahl ist es möglich, die Software auf mehrere Betriebs\-systeme 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
+Ein weiterer Punkt der zu einer Entscheidung beiträgt, ist die Frage, ob andere Programme und Bibliotheken auf den jeweiligen
Systemen ausführbar sind. Es wird also ein \textit{Layer} benötigt, mit welchem immer die gleichen Programmbibliotheken
-genutzen werden können. Dabei sollte das zugrundeliegende System unabhängig von diesem \textit{Layer} sein. Es soll also damit vom
+genutzen werden können. Dabei sollte das zu\-grun\-de\-lie\-gen\-de 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 http://standards.ieee.org/regauth/posix/ [Online; letzter Aufruf 16.02.2010]} dar.
@@ -21,9 +22,9 @@ 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
weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
-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
+entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System portiert werden, ohne dass
+die ge\-nutz\-ten 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 Menge an
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.
@@ -38,9 +39,9 @@ eingegangen.
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]} 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.
+Desktop-Varianten der Windows-Familie erkennen. Es existiert ein \textit{Cross-Compiler} mit dem
+Namen \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}
@@ -48,37 +49,36 @@ Das von \textit{Google} entwickelte \textit{Android}\footnote{Android http://www
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
\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
+Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift aller\-dings nur auf
\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
+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 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
+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ü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.
+Für dieses Betriebssystem existiert ein \textit{SDK} welches \textit{HTML5}, \textit{CSS} und \textit{Java} unterstütz. 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 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
+handelt es sich um eine abgeänderte und angepasste Version von \textit{MacOS}. Somit basiert 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 \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.
+\textit{Multitasking}-Unterstützung. Somit ist es nicht möglich zwei Anwendungen parallel auszuführen, was gerade die
+geplante Anwendung stark einschränkt, da hier 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
+\textit{SymbianOS}\footnote{SymbianOS http://www.symbian.org/ [Online; letzter Aufruf 03.02.2010]} ist ein 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 Weiteren
@@ -87,18 +87,18 @@ 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 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
+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 sind nur die
+mit dem \textit{NDK} verfügbaren Bibliotheken zum momentanen Zeitpunkt stabil. Dies schränkt die Entwicklung stark ein und ist für
+das geplante somit 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 den Quellcode für \textit{WebOS} und \textit{SymbianOS} zu
+Aufgrund der Implementierung in \textit{C} ist es 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 übersetzen, sowie die graphischen Elemente auf den Plattformen darzustellen.
+Anhand der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden, das Programm sowohl für die
+jeweiligen Plattformen zu übersetzen sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
@@ -106,12 +106,12 @@ Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \texti
\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. 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 \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
+Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Die erste Version, der \textit{arm-wince-mingw32ce},
+bietet eine Menge an \textit{Tools}, mit welchen native \textit{Windows Mobile} Ap\-plikationen erstellt werden können. Hierzu
+wird eine Portierung der \textit{GNU}\footnote{GNU http://www.gnu.org/ [Online; letzter Aufruf 03.02.2010]}
+Enwicklungswerk\-zeu\-ge aus 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 Version 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
@@ -134,8 +134,9 @@ ansprechend darzustellen und eine einfache Bedienbarkeit zu garantieren. Dieses
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
-graphischen Elementen die genutzt und frei angeordnet werden können.
+beinhaltet einen eigenen \textit{Window-Manager} names \mbox{\textit{Elementary}}. \mbox{\textit{Elementary}} bietet ein
+umfangreiches Paket an
+graphischen Elementen, die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
@@ -157,9 +158,9 @@ sind die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{
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 welche Elemente an welchem Ort, in welcher
+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
+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
+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 91c0526..ab7315f 100644
--- a/ausarbeitung/Tutorial.tex.backup
+++ b/ausarbeitung/Tutorial.tex.backup
@@ -1,17 +1,17 @@
\section{Technische Grundlagen}
Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum Einen stellt sich die Frage, ob die Handymodelle die
-benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum Anderen ob Schnittstellen vorhanden sind um das
+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
-jeweiligen Herstellers, vorhanden sein.\newline
+wie \textit{GPS} oder Lage\-sensoren 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, 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
-Ein weiterer Punkt der zu einer Entscheidung beiträgt ist die Frage ob andere Programme und Bibliotheken auf den jeweiligen
+geeigneter Wahl ist es möglich, die Software auf mehrere Betriebs\-systeme 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
+Ein weiterer Punkt der zu einer Entscheidung beiträgt, ist die Frage, ob andere Programme und Bibliotheken auf den jeweiligen
Systemen ausführbar sind. Es wird also ein \textit{Layer} benötigt, mit welchem immer die gleichen Programmbibliotheken
genutzen werden können. Dabei sollte das zugrundeliegende System unabhängig von diesem \textit{Layer} sein. Es soll also damit vom
zugrundeliegenden
@@ -21,15 +21,15 @@ 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
weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
-entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden, ohne das
+entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden, ohne dass
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
+Zusätzlich stellt sich auch die Frage der zu nutzenden Programmiersprache. Diese sollte von einer möglichst großen Menge an
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.
@@ -46,8 +46,8 @@ für diese Plattform übersetzt und portiert werden können.
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 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
@@ -61,29 +61,27 @@ 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
+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}
@@ -108,13 +106,13 @@ Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \texti
\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 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
+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
@@ -134,7 +132,8 @@ Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt,
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
+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
graphischen Elementen die genutzt und frei angeordnet werden können.
@@ -146,8 +145,8 @@ graphischen 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
@@ -158,9 +157,9 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementar
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
+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~ b/ausarbeitung/Tutorial.tex~
index 53e4b30..8998612 100644
--- a/ausarbeitung/Tutorial.tex~
+++ b/ausarbeitung/Tutorial.tex~
@@ -1,19 +1,20 @@
\section{Technische Grundlagen}
Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum Einen stellt sich die Frage, ob die Handymodelle die
-benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum Anderen ob Schnittstellen vorhanden sind um das
+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
-jeweiligen Herstellers, vorhanden sein.\newline
-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
-Ein weiterer Punkt der zu einer Entscheidung beiträgt ist die Frage ob andere Programme und Bibliotheken auf den jeweiligen
+wie \textit{GPS} oder Lage\-sensoren 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, findet die Auswahl aufgrund des Betriebs\-systemes statt. Bei
+geeigneter Wahl ist es möglich, die Software auf mehrere Betriebs\-systeme 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
+Ein weiterer Punkt der zu einer Entscheidung beiträgt, ist die Frage, ob andere Programme und Bibliotheken auf den jeweiligen
Systemen ausführbar sind. Es wird also ein \textit{Layer} benötigt, mit welchem immer die gleichen Programmbibliotheken
-genutzen werden können. Dabei sollte das zugrundeliegende System unabhängig von diesem \textit{Layer} sein. Es soll also damit vom
+genutzen werden können. Dabei sollte das zu\-grun\-de\-lie\-gen\-de 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 http://standards.ieee.org/regauth/posix/ [Online; letzter Aufruf 16.02.2010]} dar.
@@ -21,9 +22,9 @@ 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
weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
-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
+entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System portiert werden, ohne dass
+die ge\-nutz\-ten 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 Menge an
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.
@@ -38,9 +39,9 @@ eingegangen.
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]} 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.
+Desktop-Varianten der Windows-Familie erkennen. Es existiert ein \textit{Cross-Compiler} mit dem
+Namen \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}
@@ -48,37 +49,36 @@ Das von \textit{Google} entwickelte \textit{Android}\footnote{Android http://www
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
\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
+Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift aller\-dings nur auf
\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
+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 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
+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ü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.
+Für dieses Betriebssystem existiert ein \textit{SDK} welches \textit{HTML5}, \textit{CSS} und \textit{Java} unterstütz. 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 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
+handelt es sich um eine abgeänderte und angepasste Version von \textit{MacOS}. Somit basiert 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 \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.
+\textit{Multitasking}-Unterstützung. Somit ist es nicht möglich zwei Anwendungen parallel auszuführen, was gerade die
+geplante Anwendung stark einschränkt, da hier 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
+\textit{SymbianOS}\footnote{SymbianOS http://www.symbian.org/ [Online; letzter Aufruf 03.02.2010]} ist ein 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 Weiteren
@@ -87,18 +87,18 @@ 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 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
+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 sind nur die
+mit dem \textit{NDK} verfügbaren Bibliotheken zum momentanen Zeitpunkt stabil. Dies schränkt die Entwicklung stark ein und ist für
+das geplante somit 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 den Quellcode für \textit{WebOS} und \textit{SymbianOS} zu
+Aufgrund der Implementierung in \textit{C} ist es 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 übersetzen, sowie die graphischen Elemente auf den Plattformen darzustellen.
+Anhand der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden, das Programm sowohl für die
+jeweiligen Plattformen zu übersetzen sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
@@ -106,12 +106,12 @@ Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \texti
\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. 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 \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
+Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Die erste Version, der \textit{arm-wince-mingw32ce},
+bietet eine Menge an \textit{Tools}, mit welchen native \textit{Windows Mobile} Ap\-plikationen erstellt werden können. Hierzu
+wird eine Portierung der \textit{GNU}\footnote{GNU http://www.gnu.org/ [Online; letzter Aufruf 03.02.2010]}
+Enwicklungswerk\-zeu\-ge aus 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 Version 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
@@ -134,8 +134,9 @@ ansprechend darzustellen und eine einfache Bedienbarkeit zu garantieren. Dieses
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
-graphischen Elementen die genutzt und frei angeordnet werden können.
+beinhaltet einen eigenen \textit{Window-Manager} names \mbox{\textit{Elementary}}. \textit{Elementary} bietet ein umfangreiches
+Paket an
+graphischen Elementen, die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
@@ -157,9 +158,9 @@ sind die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{
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 welche Elemente an welchem Ort, in welcher
+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
+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
+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 e468cfc..d46ee9c 100644
--- a/ausarbeitung/maindoc.log
+++ b/ausarbeitung/maindoc.log
@@ -1,4 +1,4 @@
-This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 27 FEB 2010 18:19
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 28 FEB 2010 21:47
entering extended mode
%&-line parsing enabled.
**maindoc.tex
@@ -598,14 +598,8 @@ l.125 \include{Erklaerung}
]
\openout2 = `Einleitung.aux'.
- (./Einleitung.tex)
-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,
- []
-
-pdfTeX warning (ext4): destination with the same identifier (name{page.2}) has
-been already used, duplicate ignored
+ (./Einleitung.tex)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}
@@ -632,32 +626,13 @@ ro-gramm ist es m[]oglich
[3
-] [4]
-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--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
- []
-
-[6] [7]
+] [4] [5]) [6] [7]
\openout2 = `Tutorial.aux'.
(./Tutorial.tex
-Overfull \hbox (6.89201pt too wide) in paragraph at lines 3--29
-\OT1/ptm/m/n/12 ohne weit-eres auf ein an-deres, \OT1/ptm/m/it/12 POSIX \OT1/pt
-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--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 ,
+Overfull \hbox (2.83539pt too wide) in paragraph at lines 3--30
+\OT1/ptm/m/n/12 Da die gegebe-nen Hard-ware-un-ter-schiede min-i-mal sind, find
+-et die Auswahl auf-grund des Betriebs-
[]
[8
@@ -670,13 +645,6 @@ Overfull \hbox (0.91805pt too wide) in paragraph at lines 89--97
n. Diese
[]
-
-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)
@@ -692,57 +660,16 @@ File: Bilder/efl.png Graphic file (type png)
\openout2 = `Friend_Finder.aux'.
(./Friend_Finder.tex
-Overfull \hbox (12.09158pt too wide) in paragraph at lines 11--22
-\OT1/ptm/m/n/12 Mod-ulen. Der \OT1/ptm/m/it/12 Mes-sage Sender \OT1/ptm/m/n/12
-ist f[]ur das Versenden und Emp-fan-gen der Textnachricht-en zust[]andig,
- []
-
<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
-\OT1/ptm/m/n/12 er Datei zusam-menge-fast. In dieser Datei sind alle Funk-tio-n
-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=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--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--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>]
+<use Bilder/chat.png> [14 <./Bilder/ablauf.png>] [15 <./Bilder/chat.png>]
<Bilder/protocol.png, id=277, 536.0025pt x 605.26125pt>
File: Bilder/protocol.png Graphic file (type png)
@@ -754,33 +681,10 @@ File: Bilder/position.png Graphic file (type png)
<Bilder/barcode.png, id=294, 337.26pt x 450.9347pt>
File: Bilder/barcode.png Graphic file (type png)
<use Bilder/barcode.png>
-[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 (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 (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
- []
-
-[19] [20] <Bilder/graph.png, id=314, 642.4pt x 481.8pt>
+[18 <./Bilder/barcode.png>] [19] [20]
+<Bilder/graph.png, id=314, 642.4pt x 481.8pt>
File: Bilder/graph.png Graphic file (type png)
<use Bilder/graph.png>
-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>)
@@ -797,121 +701,73 @@ File: Bilder/graph2.png Graphic file (type png)
(./Anhang.tex [24
-]
-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 (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-
- []
-
-[25]
-Overfull \hbox (20.83896pt too wide) in paragraph at lines 132--156
-[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] \OT1
-/ptm/m/n/12 aufgerufen wer-den. Als n[]achster
+] [25]
+Overfull \hbox (3.63231pt too wide) in paragraph at lines 134--160
+\OT1/ptm/m/n/12 lich ist diese Datei unter [][][][][][][][][][][][][][][][][][]
+[][][][][][][][][][] zu find-
[]
-
-Overfull \hbox (6.52469pt too wide) in paragraph at lines 132--156
-[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
- []
-
-
-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-
- []
-
-[27]
-LaTeX Font Info: Try loading font information for OML+ptm on input line 200.
+[26] [27]
+LaTeX Font Info: Try loading font information for OML+ptm on input line 205.
(/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 (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 (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
- []
+(Font) Font shape `OML/cmm/m/it' tried instead on input line 205.
+ [28]
+LaTeX Font Info: Try loading font information for OMS+ptm on input line 232.
-[28]
-LaTeX Font Info: Try loading font information for OMS+ptm on input line 227.
- (/usr/share/texmf-texlive/tex/latex/psnfss/omsptm.fd
+(/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 227.
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 232.
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 227--229
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 232--234
[][]$\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 229--231
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 234--236
[][]$\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 231--233
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 236--238
[][]$\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 233--235
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 238--240
[][]$\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 241--243
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 246--248
[][]$\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 243--245
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 248--250
[][]$\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 245--247
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 250--252
[][]$\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 247--249
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 252--254
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libpng-[]1 .
[]
@@ -924,11 +780,11 @@ Overfull \hbox (7.57867pt too wide) in paragraph at lines 247--249
Here is how much of TeX's memory you used:
9203 strings out of 95086
124940 string characters out of 1183254
- 305128 words of memory out of 1500000
+ 305130 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,319b,1885s stack positions out of 5000i,500n,6000p,200000b,5000s
+ 35i,12n,46p,320b,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
mi12.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr10.pfb></usr/share
@@ -938,7 +794,7 @@ 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/utmr8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/time
s/utmri8a.pfb>
-Output written on maindoc.pdf (36 pages, 1993904 bytes).
+Output written on maindoc.pdf (36 pages, 1995249 bytes).
PDF statistics:
642 PDF objects out of 1000 (max. 8388607)
252 named destinations out of 1000 (max. 131072)
diff --git a/ausarbeitung/maindoc.pdf b/ausarbeitung/maindoc.pdf
index 60b1826..7ea8ce0 100644
--- a/ausarbeitung/maindoc.pdf
+++ b/ausarbeitung/maindoc.pdf
Binary files differ