summaryrefslogtreecommitdiffstats
path: root/ausarbeitung
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-11 18:06:06 +0100
committerPatrick Hornecker2010-02-11 18:06:06 +0100
commit1428440cfffe73e75320dde46d8afb3afe9fced5 (patch)
tree41e91c24b50e7227fe6d3fe6b0e1e768de5f55f5 /ausarbeitung
parentkey bugs... (diff)
downloadfriendfinder-1428440cfffe73e75320dde46d8afb3afe9fced5.tar.gz
friendfinder-1428440cfffe73e75320dde46d8afb3afe9fced5.tar.xz
friendfinder-1428440cfffe73e75320dde46d8afb3afe9fced5.zip
tex source
Diffstat (limited to 'ausarbeitung')
-rw-r--r--ausarbeitung/Anhang.aux12
-rw-r--r--ausarbeitung/Anhang.tex.backup463
-rw-r--r--ausarbeitung/Ausblick.tex.backup141
-rw-r--r--ausarbeitung/Ausblick.tex~146
-rw-r--r--ausarbeitung/Bilder/ablauf.pngbin0 -> 54689 bytes
-rw-r--r--ausarbeitung/Bilder/barcode.pngbin0 -> 37511 bytes
-rw-r--r--ausarbeitung/Bilder/chat.pngbin0 -> 28828 bytes
-rw-r--r--ausarbeitung/Bilder/efl.pngbin0 -> 26170 bytes
-rw-r--r--ausarbeitung/Bilder/elm-app-01_2.pngbin0 -> 22498 bytes
-rw-r--r--ausarbeitung/Bilder/elm-app-02_2.pngbin0 -> 54238 bytes
-rw-r--r--ausarbeitung/Einleitung.aux1
-rw-r--r--ausarbeitung/Einleitung.tex40
-rw-r--r--ausarbeitung/Einleitung.tex.backup17
-rw-r--r--ausarbeitung/Einleitung.tex~41
-rw-r--r--ausarbeitung/Friend_Finder.aux53
-rw-r--r--ausarbeitung/Friend_Finder.tex169
-rw-r--r--ausarbeitung/Friend_Finder.tex.backup158
-rw-r--r--ausarbeitung/Friend_Finder.tex~178
-rw-r--r--ausarbeitung/Grundlagen.aux39
-rw-r--r--ausarbeitung/Grundlagen.tex150
-rw-r--r--ausarbeitung/Grundlagen.tex.backup149
-rw-r--r--ausarbeitung/Grundlagen.tex~150
-rw-r--r--ausarbeitung/Makefile11
-rw-r--r--ausarbeitung/Tutorial.aux32
-rw-r--r--ausarbeitung/Tutorial.tex96
-rw-r--r--ausarbeitung/Tutorial.tex.backup133
-rw-r--r--ausarbeitung/Tutorial.tex~96
-rw-r--r--ausarbeitung/literature.bib55
-rw-r--r--ausarbeitung/literature.bib.backup129
-rw-r--r--ausarbeitung/literature.bib~55
-rw-r--r--ausarbeitung/maindoc.aux34
-rw-r--r--ausarbeitung/maindoc.bbl116
-rw-r--r--ausarbeitung/maindoc.blg72
-rw-r--r--ausarbeitung/maindoc.log339
-rw-r--r--ausarbeitung/maindoc.out63
-rw-r--r--ausarbeitung/maindoc.pdfbin1369112 -> 1438010 bytes
-rw-r--r--ausarbeitung/maindoc.tex2
-rw-r--r--ausarbeitung/maindoc.tex.backup129
-rw-r--r--ausarbeitung/maindoc.tex~4
-rw-r--r--ausarbeitung/maindoc.toc63
40 files changed, 2712 insertions, 624 deletions
diff --git a/ausarbeitung/Anhang.aux b/ausarbeitung/Anhang.aux
index 03897b0..318e259 100644
--- a/ausarbeitung/Anhang.aux
+++ b/ausarbeitung/Anhang.aux
@@ -1,8 +1,8 @@
\relax
\@setckpt{Anhang}{
-\setcounter{page}{29}
+\setcounter{page}{30}
\setcounter{equation}{0}
-\setcounter{enumi}{5}
+\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
@@ -11,19 +11,19 @@
\setcounter{part}{0}
\setcounter{section}{0}
\setcounter{subsection}{0}
-\setcounter{subsubsection}{0}
+\setcounter{subsubsection}{4}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
-\setcounter{figure}{3}
+\setcounter{figure}{5}
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
-\setcounter{Item}{5}
+\setcounter{Item}{0}
\setcounter{lstlisting}{0}
\setcounter{lstnumber}{1}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
\setcounter{lotdepth}{1}
-\setcounter{section@level}{2}
+\setcounter{section@level}{3}
}
diff --git a/ausarbeitung/Anhang.tex.backup b/ausarbeitung/Anhang.tex.backup
new file mode 100644
index 0000000..7c77240
--- /dev/null
+++ b/ausarbeitung/Anhang.tex.backup
@@ -0,0 +1,463 @@
+\section*{Anhang}
+\begin{appendix}
+
+\subsection*{Anhang 1}
+
+Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
+portieren, sind die folgenden Schritte nötig:
+
+Im allerersten Schritt muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
+Dateien können auf der Projekthomepage gefunden und heruntergeladen werden. Für diese Aufgabe wird der \textit{mingw32ce} für den
+\textit{ARM}-Prozessortyp benötigt. Dieser muss auf der Homepage des CeGCC-Projekts heruntergeladen und in das passende
+Systemverzeichniss entpackt werden.\newline
+
+Bevor man mit dem nächsten Schritt fortfahren kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert
+werden.
+
+\begin{verbatim}
+sudo apt-get install build-essential make gcc bison flex subversion
+autoconf libtool gettext libfreetype6-dev libpng12-dev zlib1g-dev
+libjpeg-dev libtiff-dev libungif4-dev librsvg2-dev xorg-dev
+libltdl3-dev libcurl4-dev cvs subversion git-core doxygen proj
+libsqlite3-0 libsqlite3-dev
+\end{verbatim}
+
+Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
+Entwickler herunterladen.\newline
+Nun muss man sich noch ein Verzeichniss anlegen, in welchem die für Windows Mobile kompilierten Dateien abgelegt werden. Des
+weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zu dem genutzten Kompiler liegen und welche dann einmalig
+exportiert werden müssen, damit die benötigten \textit{Header-Files}, textit{Libraries} und \textit{Binaries} auch vom
+Betriebssystem gefunden werden. Diese Datei wird im folgenden ``mingw32ce.env'' benannt.
+
+\begin{verbatim}
+ touch mingw32ce.env
+\end{verbatim}
+
+Nun müssen noch in diese Datei die zu exportierenden Pfade geschrieben werden.
+
+\begin{verbatim}
+export CEGCC_PATH=/opt/cegcc
+export MINGW32CE_PATH=/opt/mingw32ce
+export WINCE_PATH=$HOME/workspace/wince
+
+export PATH=$CEGCC_PATH/bin:$MINGW32CE_PATH/bin:$PATH
+export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/include
+ -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/include
+ -I$WINCE_PATH/freetype-2.3.7-dev/include
+ -I$WINCE_PATH/libpng-1.2.33-dev/include/libpng12
+ -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/include/"
+export LDFLAGS="-L$WINCE_PATH/lib -L$WINCE_PATH/zlib-1.2.3-dev/lib
+ -L$WINCE_PATH/libjpeg-6b-dev/lib
+ -L$WINCE_PATH/win_iconv-dev/include -L$WINCE_PATH/freetype-2.3.7-dev/lib
+ -L$WINCE_PATH/libpng-1.2.33-dev/lib -L$WINCE_PATH/win_icon-dev/lib
+ -L$CEGCC_PATH/lib"
+export LD_LIBRARY_PATH="$WINCE_PATH/bin"
+export PKG_CONFIG_PATH="$WINCE_PATH/lib/pkgconfig"
+\end{verbatim}
+
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten Shell neu exportiert werden, da sie durch die hier gewählte Methode nur
+in
+eben diesen Shell's gelten wo sie exportiert wurden.\newline
+Bei den Variablen ``CEGCC\_PATH'' und ``MINGW32CE\_PATH'' ist der Pfad zum Verzeichniss des \textit{cegcc}, beziehungsweiße des
+\textit{mingw32ce}
+Kompilers einzutragen. Unter ``WINCE\_PATH'' muss der Pfad, zu dem Verzeichniss in dem die kompilierten Daten gespeichert werden
+sollen,
+eingetragen werden. Mit ``PATH'' werden die \textit{Binaries}, der zwei Kompiler, in den Systempfad aufgenommen. Des weiteren
+werden unter
+``CPPFLAGS'' die \textit{include}-Pfade und unter ``LDFLAGS'' die \textit{Librarie} Pfade abgelegt. ``LD\_LIBRARY\_PATH'' zeigt
+auf den Ordner
+in welchem die kompilierten \textit{Binaries} liegen. ``PKG\_CONFIG\_PATH'' zeigt schliesslich noch auf den Ordner der die
+Packetinformationen
+der installierten Dateien beinhaltet. Dieses exportieren geschieht mit dem folgenden Aufruf.
+
+\begin{verbatim}
+source <Pfad-zu-der-Datei>/mingw32ce.env
+\end{verbatim}
+
+Im nächsten Schritt muss nun noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} abgelegt wird. Nun
+muss noch in
+dieses Verzeichniss gewechselt werden und es kann mit dem ersten Programm begonnen werden.
+
+\subsubsection*{Evil}
+Als erstes ist es nötig das Programm \textit{Evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde,
+herunterzuladen.
+Das herunterladen geschieht mit:
+
+\begin{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/evil
+\end{verbatim}
+
+Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den
+\textit{Umgebungsvaribalen}
+eingelesen werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript starten
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+\end{verbatim}
+
+Durch diesen Aufruf wird der Installationspfad auf den Wert der Variable ``WINCE\_PATH'' gesetzt und als Zielsystem ein
+\textit{ARM-Prozessor} gesetzt und der \textit{mingw32ce}-Kompiler als Kompiler gewählt.\newline
+Nachdem dieses Skript erfolgreich durchgeführt wurde, kann man im nächsten Schritt das Programm erstellen.
+
+\begin{verbatim}
+ make
+\end{verbatim}
+
+Ist auch dies erfolgreich durchgelofen, so muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
+installieren.
+
+\begin{verbatim}
+ make install
+\end{verbatim}
+
+Nun sollte \textit{Evil} erfolgreich im Zielordner installiert worden sein.
+
+\subsubsection*{Eina}
+
+Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository herunterzuladen.
+
+\begin{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/eina
+\end{verbatim}
+
+Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+\end{verbatim}
+
+Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{evil} übergeben. Hinzu kommt noch ``--disable-pthread''. Mit
+diesem
+Parameter wird \textit{threading} beim erstellen von \textit{eina} deaktiviert, da \textit{ARM-Prozessoren} dies nicht
+unterstützen.\newline
+Nachdem das Skript durchgelaufen ist, muss man nun auch wieder das Programm erstellen und im Zielverzeichniss installieren.
+
+\begin{verbatim}
+ make ; make install
+\end{verbatim}
+
+\subsubsection*{eet}
+
+Bevor man \textit{eet} erstellen kann, muss man noch vier vorgefertigte \textit{tar-Archive} im Verzeichniss, welches in der
+Variable
+``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive kann man unter den Links, welche in Anhang 2 zu finden sind,
+herunterladen.
+Nach dem herunterladen müssen diese nur noch in das ``WINCE\_PATH''-Verzeichniss kopiert und entpackt werden. Nun kann man den
+Quellcode
+für \textit{eet} herunterladen.
+
+\begin{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/eet
+\end{verbatim}
+
+Nachdem die Dateien heruntergeladen sind, muss wieder das ``autogen.sh``-Skript aufgerufen werden.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+\end{verbatim}
+
+Im Anschluss muss nun auch wieder kompiliert und installiert werden.
+
+\begin{verbatim}
+ make ; make install
+\end{verbatim}
+
+\subsubsection*{embryo}
+
+\begin{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/embryo
+\end{verbatim}
+
+Nachdem die Dateien heruntergeladen sind auch wieder das Skript aufrufen.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+\end{verbatim}
+
+Im Anschluss nun auch wieder kompilieren und installieren.
+
+\begin{verbatim}
+ make ; make install
+\end{verbatim}
+
+\subsubsection*{evas}
+
+Auch für \textit{evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollen diese in das
+gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die
+Packetinformationen beinhalten für die heruntergeladen Dateien ergänzt werden:
+
+\begin{verbatim}
+ cp $WINCE_PATH/cp libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
+ cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc $WINCE_PATH/lib/freetype2.pc
+\end{verbatim}
+
+Nun müssen diese Packetinformationen noch bearbeitet werden. Dazu müssen diese mit einem beliebigen Editor geöffnet werden und in
+beiden
+Dateien der Wert von ''prefix`` auf ''WINCE\_PATH`` gesetzt werden.
+
+Nachdem dies durchgeführt wurde kann nun \textit{evas} heruntergeladen werden.
+
+\begin{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/evas
+\end{verbatim}
+
+Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen werden.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
+\end{verbatim}
+
+Als nächster Schritt muss nun das Programm kompiliert werden.
+
+\begin{verbatim}
+ make
+\end{verbatim}
+
+Sollte hierbei die Datei ''ft2build.h`` nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden. Eigentlich
+liegt die
+Datei an folgendem Ort:
+
+\begin{verbatim}
+ $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
+\end{verbatim}
+
+Allerdings wird sie im Ordner ''freetype2`` nicht gefunden. Um dies zu umgehen muss ''ft2build.h`` einfach eine Ordnerebene nach
+oben
+kopiert werden.
+
+\begin{verbatim}
+ cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
+\end{verbatim}
+
+Um einen weiteren Fehler von vorneherein zu umgehen, muss man noch den Pfad eines eingebundenen Headers in ''ft2build.h``
+abändern.
+Hierzu öffnet man ''ft2build.h`` mit einem beliebigen Editor und ändert folgendes
+
+\begin{verbatim}
+ #include <freetype/config/ftheader.h>
+\end{verbatim}
+
+zu
+
+\begin{verbatim}
+ #include <freetype2/freetype/config/ftheader.h>
+\end{verbatim}
+
+ab. Anschliessend zu dieser Lösung muss nun einfach der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
+\textit{include}-Pfade in den Headern von ''freetype2`` stellenweiße nicht korrekt sind.\newline
+Falls man nun noch \textit{evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
+und ''ddraw.h`` in die Verzichnisse ''/opt/cegcc/arm-cegcc/include/w32api/'' und ''/opt/mingw32ce/arm-mingw32ce/include/''
+kopieren.
+
+\subsubsection*{ecore}
+
+Um \textit{ecore} zu erstellen muss zu allererst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
+\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
+
+\begin{verbatim}
+ #define PROCESS_SET_QUOTA 0x0100
+ #define PROCESS_SET_INFORMATION 0x0200
+ #define PROCESS_QUERY_INFORMATION 0x0400
++#define PROCESS_SUSPEND_RESUME 0x0800
+ #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xfff)
+
+ #define THREAD_TERMINATE 0x0001
+\end{verbatim}
+
+Der mit ``+'' gekennzeichnete Eintrag ``PROCESS\_SUSPEND\_RESUME'' muss in die Datei ``winnt.h'' eingefügt werden.\newline
+Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{ecore} kompiliert werden. Dazu wird auch hier wieder zuerst das
+``autogen.sh'' Skript ausgeführt.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+\end{verbatim}
+
+Nachdem dies erfolgreich ausgeführt wurde können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen Programmen
+ausgeführt werden.
+
+\subsubsection*{edje}
+
+Auch hier gilt wieder, Dateien herunterladen.
+
+\begin{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/embryo
+\end{verbatim}
+
+Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript aufgerufen werden.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+\end{verbatim}
+
+Die letzten beiden Schritte sind auch hier wieder kompilieren und installieren.
+
+\begin{verbatim}
+ make ; make install
+\end{verbatim}
+
+\subsubsection*{elementary}
+
+Zuerst müssen auch hier die benötigten Daten heruntergeladen werden.
+
+\begin{verbatim}
+svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
+\end{verbatim}
+
+Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc
+\end{verbatim}
+
+Um zwei Fehlern vorzubeugen, welche beim erstellen der Test-Files von \textit{elementary} auftreten muss man im in der Datei
+``Makefile.am'' im Ordner ``src/bin/'' alle Vorkommnisse von ``test\_fileselector.c'' entfernen und folgende Zeilen
+auskommentieren.
+
+\begin{verbatim}
+bin_PROGRAMS = elementary_test
+if BUILD_QUICKLAUNCH
+bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
+endif
+\end{verbatim}
+
+Nun kann das Programm auf gewohnte Art und Weise erstellt und installiert werden.
+
+\begin{verbatim}
+ make ; make install
+\end{verbatim}
+
+\subsubsection*{Weitere Schritte}
+
+Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in WINCE\_PATH angelegt und dessen Zugriffsrechte
+abgeändert
+werden.
+
+\begin{verbatim}
+ touch efl_zip.sh
+ chmod 774 efl_zip.sh
+\end{verbatim}
+
+In dieses Skript wird nun der Code eingefügt, welcher unter Anhang 4 zu finden ist.\newline
+Bei Ausführung dieses Skripts werden die vorhandenen \textit{DLL's} nocheinmal komprimiert und alles in einen Ordner mit dem Namen
+``efl'' kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} komprimiert. Möchte man nun noch eigene
+Anwendungen
+hinzufügen, so muss man diese nur in diesen ``efl'' Ordner hinzufügen und erneut komprimieren. Nun kann dieses Archiv auf das
+Mobile Gerät kopiert und entpackt werden.
+
+\subsection*{Anhang 2}
+
+Archive für \textit{eet}:
+\begin{itemize}
+ \item zlib-1.2.3-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
+ \item zlib-1.2.3-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
+ \item libjpeg-6b-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-bin.tar.bz2/download}
+ \item libjepg-6b-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-dev.tar.bz2/download}
+\end{itemize}
+
+\subsection*{Anhang 3}
+
+Archive für \textit{evas}:
+\begin{itemize}
+ \item freetype-2.3.7-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-bin.tar.bz2/download}
+ \item freetype-2.3.7-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-dev.tar.bz2/download}
+ \item libpng-1.2.33-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-bin.tar.bz2/download}
+ \item libpng-1.2.33-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-dev.tar.bz2/download}
+\end{itemize}
+
+\subsection*{Anhang 4}
+
+efl\_zip.sh:
+\begin{verbatim}
+ #!/bin/sh
+
+rm -rf efl/
+rm -f efl.zip
+
+mkdir -p efl/eina/mp
+mkdir -p efl/evas/modules/engines/buffer/mingw32ce-arm/
+mkdir -p efl/evas/modules/engines/software_16/mingw32ce-arm/
+mkdir -p efl/evas/modules/engines/software_16_wince/mingw32ce-arm/
+mkdir -p efl/evas/modules/engines/software_generic/mingw32ce-arm/
+mkdir -p efl/evas/modules/loaders/eet/mingw32ce-arm/
+mkdir -p efl/evas/modules/loaders/jpeg/mingw32ce-arm/
+mkdir -p efl/evas/modules/loaders/pmaps/mingw32ce-arm/
+mkdir -p efl/evas/modules/loaders/png/mingw32ce-arm/
+mkdir -p efl/evas/modules/loaders/xpm/mingw32ce-arm/
+mkdir -p efl/evas/modules/savers/eet/mingw32ce-arm/
+mkdir -p efl/evas/modules/savers/png/mingw32ce-arm/
+
+cp bin/eet.exe efl/
+cp bin/libdl-0.dll efl/
+cp bin/libevil-0.dll efl/
+cp bin/libeina-0.dll efl/
+cp bin/libeet-1.dll efl/
+cp bin/libevas-0.dll efl/
+cp bin/libecore-0.dll efl/
+cp bin/libecore_evas-0.dll efl/
+cp bin/libecore_job-0.dll efl/
+cp bin/libecore_wince-0.dll efl/
+cp bin/libembryo-0.dll efl/
+cp bin/libedje-0.dll efl/
+
+arm-mingw32ce-strip efl/libdl-0.dll
+arm-mingw32ce-strip efl/libevil-0.dll
+arm-mingw32ce-strip efl/libeina-0.dll
+arm-mingw32ce-strip efl/libeet-1.dll
+arm-mingw32ce-strip efl/libevas-0.dll
+arm-mingw32ce-strip efl/libecore-0.dll
+arm-mingw32ce-strip efl/libecore_evas-0.dll
+arm-mingw32ce-strip efl/libecore_job-0.dll
+arm-mingw32ce-strip efl/libecore_wince-0.dll
+arm-mingw32ce-strip efl/libembryo-0.dll
+arm-mingw32ce-strip efl/libedje-0.dll
+
+
+cp lib/eina/mp/eina_chained_mempool.dll efl/eina/mp
+cp lib/eina/mp/eina_fixed_bitmap.dll efl/eina/mp
+cp lib/eina/mp/eina_pass_through.dll efl/eina/mp
+
+arm-mingw32ce-strip efl/eina/mp/eina_chained_mempool.dll
+arm-mingw32ce-strip efl/eina/mp/eina_fixed_bitmap.dll
+arm-mingw32ce-strip efl/eina/mp/eina_pass_through.dll
+
+
+cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
+cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
+cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
+cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+
+cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
+cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
+cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
+cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
+cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+
+cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
+cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
+
+arm-mingw32ce-strip efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
+arm-mingw32ce-strip efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
+arm-mingw32ce-strip efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
+arm-mingw32ce-strip efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+
+arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+
+arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
+arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
+
+cp freetype-2.3.7-bin/bin/libfreetype-6.dll efl/
+cp libjpeg-6b-bin/bin/jpeg62.dll efl/
+cp libpng-1.2.33-bin/bin/libpng12-0.dll efl/
+cp libpng-1.2.33-bin/bin/libpng-3.dll efl/
+cp zlib-1.2.3-bin/bin/zlib1.dll efl/
+
+zip -r -9 efl.zip efl/
+
+\end{verbatim}
+
+
+\end{appendix}
diff --git a/ausarbeitung/Ausblick.tex.backup b/ausarbeitung/Ausblick.tex.backup
new file mode 100644
index 0000000..8794769
--- /dev/null
+++ b/ausarbeitung/Ausblick.tex.backup
@@ -0,0 +1,141 @@
+\section{Ausblick}
+
+Die Software \textit{Friend Finder} zeigt nur einen recht einfachen Ansatz auf, um Daten sicher zu versenden und die Position von
+anderen Benutzern aufzuzeigen. Im nun folgenden Teil dieser Arbeit werden Ausblicke auf weitere Möglichkeiten und Ansätze, für
+Nachrichtenverschlüsselung und \textit{location awareness}, aufgezeigt.
+
+\subsection{Plattformunabhängigkeit}
+
+Für mobile Systeme existieren zum momentanen Zeitpunkt mehrere verschiedene Betriebssysteme, welche zum Teil andere Ansätze
+verfolgen. Es werden nun die drei bekanntesten Vertreter der Betriebssyteme, für Smart Phones, vorgestellt und es wird erläutert
+werden, inwiefern sie sich zur portierung von Software eignen.
+
+\subsubsection{Windows Mobile}
+
+Der wohl bekannteste Vertreter ist \textit{Windows Mobile}. Die aktuelle Version 6.5 wurde von Microsoft
+auch \textit{Windows Phone} betitelt.Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
+ähnlichkeiten zu den Desktop-Varianten der \textit{Windows}-Familie erkennen. \newline
+
+Will man für dieses Betriebssystem Anwendungen entwickeln so bietet Microsoft eine eigenes \textit{Software Development Kit (SDK)}
+an, welches auch jeder frei nutzen kann. Bei der Programmierung kann hierbei sowohl auf \textit{C}/\textit{C++},
+sowie auch auf Java zurückgegriffen werden. Allerdings ist die \textit{Win32 API} nich kompatibel mit der Desktopversion, weshalb
+Anwendungen getrennt entwickelt oder portiert werden müssen.\newline
+
+Wie Im Kapitel Tutorial schon erwähnt, lässt sich mit Hilfe eines \textit{Cross-Compilers} das \textit{Enlightenment}-Paket für
+dieses System, mit etwas Aufwand, portieren. Durch diese Tatsache und der Unterstützung von \textit{C}/\textit{C++}
+eignet sich Windows Mobile sehr gut als Plattform für Anwendungen, welche nich unbedingt von vorne herein für diese entwickelt
+wurden.
+
+\subsubsection{Android}
+
+Bei \textit{Android} \citep{Android} handelt es sich um ein neueres Betriebssystem für Smart Phones. Das von Google entwickelte
+System setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser Kernel kümmert sich um die Prozess- und Speicherverwaltung,
+Kommunikation sowie um die Hardwareabstraktion. \newline
+
+Zum implementieren von Anwendungen stellt Google eigens ein eigenes \textit{SDK} bereit. Dieses greift allerdings nur auf
+\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im moment eben auf diese beschränken. Somit können Programme
+die in \textit{C} oder \textit{C++} geschrieben wurden nicht portiert werden. Auch wenn man einen passenden
+\textit{Cross-Compiler} nutzt funktionieren ist die Portierung nicht immer möglich, da Google die \textit{libc}-Bibliothek (unter
+\textit{Android} nun \textit{Bionic} genannt) an mobile Geräte angepasst und verändert hat.\newline
+
+Durch diese starken Einschränkungen ist es somit auch nicht wirklich möglich das \textit{Elementary}-Paket für \textit{Android}
+zu compilieren, da dieses komplett in \textit{C} geschrieben wurde. Somit muss Software, um auf einem \textit{Android}-Handy ohne
+Probleme lauffähig zu sein, in \textit{Java} geschrieben sein. Als graphische Darstellung kann der Entwickler die von Google
+bereitgestellten \textit.{GUI}-Elemente nutzen.
+
+\subsubsection{WebOS}
+
+\textit{WebOS} \citep{WebOS} gehört nicht zu den weit verbeiteten Betriebsystemen, allerdings wird es hier aufgeführt, da
+\textit{Enlightenment} portiert werden kann. Das System wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt.
+Momentan ist das System nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
+
+Für dieses Betriebssystem existiert sowohl ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java} sowie ein
+weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Hiermit werden mehrere Programmiersprachen
+unterstütz und die Portierungsmöglichkeiten dieser Plattform gewinnen erheblich an Attraktivität.\newline
+
+Wie bereits erwähnt, wurde \textit{Enlightenment}, genauer gesagt \textit{Evas}, bereits erfolgreich für WebOS compiliert und
+ausgeführt. Mit dem \textit{C SDK} und dieser Portierung wäre es so ohne weitere Probleme möglich den \textit{Friend Finder} auf
+einem \textit{WebOS}-Gerät auszuführen.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Kryptographische Verfahren auf Mobilen Plattformen}
+
+In diesem Absatz werden mögliche kryptographische Verfahren für Smart Phones behandelt. So wird prinzipiell zwischen zwei
+verschiedenen Arten der Verschlüsselung unterschieden. Zum einen existieren die sogenanten symmetrischen und zum anderen die
+asymmetrischen Verfahren. Bei ersterem existiert nur ein \textit{private-key} welcher von allen Teilnehmern zum ver- sowie
+entschlüsseln genutzt wird. Bei den asymmetrischen Verfahren sind mehrere Schlüssel nötig. Hierbei werden Daten mit einem
+öffentlichen Schlüsel verschlüsselt und können nur mit dem dazu passenden privaten Schlüssel wieder entschlüsselt werden. \newline
+
+Im folgenden werden verschiedene Algorithmen und deren Tauglichkeit vorgestellt. Des weiteren wird auch auf Möglichkeiten
+eingegangen, um Schlüssel zu verteilen.
+
+\subsubsection{Symmetrische Verschlüsselungsverfahren}
+
+Bei der Klasse der symmetrischen Verschlüsselungsverfahren können theoretisch alle bekannten Verfahren genutzt werden. Natürlich
+stellt sich hier die Frage der Güte der Verschlüsselung, die die einzelnen Algorithmen bieten. Das eigentliche Problem bei der
+Nutzung dieser Verfahren ist, wie man den privaten Schlüssel an die anderen Nutzer weitergeben kann, ohne ihn dabei für dritte
+zugänglich zu machen.\newline
+
+Als naiven Ansatz könnte man hierzu den Austausch per \textit{Bluetooth} erwägen. Allerdings gilt \textit{Bluetooth} nicht als
+sicheres Verfahren um Daten zu übertragen. Somit eignet sich dieses Art des Austauschens nicht, da nicht garantiert ist das
+Dritte mithören und den \textit{private key} erhalten. \newline
+
+Eine weitere Möglichkeit wäre einen 2D-Barcode aus einer Zeichenkette zu erstellen. Diesen könnte man dann auf dem Display
+eines mobilen Gerätes ausgeben. Andere Nutzer könnten dann den Barcode fotographieren und wiederrum in eine Zeichenkette
+umwandeln. Diese Zeichenkette könnte dann für beide Kommunikationspartner als privater Schlüssel genutzt werden.\newline
+Was allerdings gegen diese Methode spricht ist die Tatsache, dass sich zwei oder mehrere Nutzer treffen müssen um diese Daten
+auszutauschen. Somit verliert dieser Ansatz den großen Nachteil, dass die Mobilität ein Stück weit verloren geht, da man sich vor
+beginn der sicheren Kommunikation erst treffen muss. \newline
+Man könnte auch einfach die SD-Karten der mobilen Geräte mit einem oder mehreren gespeicherten, privaten Schlüsseln mit anderen
+Nutzern austauschen. Aber auch hier verliert man stark an Mobilität.\newline
+
+%kerberos
+
+\subsubsection{Asymmetrische Verschlüsselungsverfahren}
+
+Der Vorteil von asymmetrischen Kryptographiesystemen gegenüber den symmetrischen ist, dass man nur den eigenen privaten Schlüssel
+geheim halten muss während der öffentliche Schlüssel frei zugänglich ist. Bei symmetrischen Verfahren muss man alle privaten
+Schlüssel speichern und geheim halten. Durch diesen Vorteil der \textit{Public-Key} Verfahren ist das Verteilen der einzelenen
+Schlüssel wesentlich einfacher. Das Problem von vorgetäuschten öffentlichen Schlüssen durch dritte kann mit einer
+vertrauenswürdigen Zertifizierungsstelle oder einem \textit{Web of Trust} stark eingegrenzt werden.\newline
+
+Das Prinzip des \textit{Web of Trust} macht sich das \textit{Pretty Good Privacy (PGP)} Verfahren zu nutze. Dieses Verfahren wurde
+von der Firma \textit{PGP} in Form von \textit{PGP Mobile} \citep{PGPmobile} für Smart Phones realisiert. Das
+\textit{PGP}-Verfahren ermöglicht es Daten zu verschlüsseln, signieren oder sowohl zu verschlüsseln als auch zu signieren. Bei
+einem signierten und Verschlüsselten Datenpaket wendet der Sender zuerst ein Hash-Verfahren auf die zu verschlüsselnden Daten an.
+Im nächsten Schritt wird der private Schlüssels des Senders auf eben diesen Hash angewendet um eine Signatur zu erstellen. Soll
+die Nachricht nun verschlüsselt werden, so wird das unverschlüsselte Datenpaket und die Signatur komprimiert und mit einem
+zufällig generierten Schlüssel verschlüsselt. Da dieser zufällige Schlüssel nur einmal gültig ist, wird er asymmetrisch mit
+dem öffentlichen Schlüssel des Empfängers verschlüsselt und an die Nachricht angehängt. Nun kann die gesamte Nachricht an den
+Empfänger gesendet werden. \newline
+Der Empfänger kann nun mit Hilfe seines private Schlüssels den angehängten Schlüssel dieser Sitzung entschlüsseln und mit desen
+Hilfe die komprimierte Nachricht wiederherstellen.\newline
+Für dieses Verfahren existiert auch eine \textit{Open Source} Variante namens \textit{OpenPGP}. \citep{openPGP}. Mit dieser
+offenen Implementierung wäre es möglich ein solches Verfahren auch als freie Variante zu implementieren.\newline
+Der Nachteil des genannten Verfahrens ist mit Sicherheit der große Overhead an Daten versendet werden muss, sowie die Maße an
+benötigten Operationen um einen Klartext zu verschlüsseln. Dies tritt vor allem dann in Vordergrund wenn man, wie in
+\textit{Friend Finder}, im Sekundentakt verschlüsselte Positionsdaten versenden möchte.\newline
+
+%noch ein verfahren
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Alternative \textit{location awareness} Verfahren}
+
+Neben dem in \textit{Friend Finder} implementierten, recht einfachen Verfahren, um andere Nutzer zu lokalisieren wurden schon
+andere Verfahren vorgestellt. Im folgenden Abschnitt werden alternative Vorgehensweisen vorgestellt und erklärt.
+
+\subsubsection*{FriendSensing: Recommending Friends Using Mobile Phones}
+
+Im Paper \textit{FriendSensing: Recommending Friends Using Mobile Phones} \citep{FriendSensing} aus dem Jahr 2009 erläutern die
+Autoren ihren Ansatz um Freunde für mobile, soziale Netze zu finden. Hierfür benutzen sie zum einen \textit{Bluetooth} und
+zeichnen andere Telefone in Reichweite auf. Somit kann aufgezeichnet werden, wie oft Nutzer A und Nutzer B aufeinandergetroffen
+sind. Des weiteren haben sie eine Software auf den mobilen Geräten installiert, welche aufzeichnet wie oft Nutzer A mit Nutzer B
+kommunziert. Aus diesen zwei gewonnenen Datensätzen waren die Autoren nun mit Hilfe von verschiedenen Algorithmen, wie zum
+Beispiel den \textit{Shortest Path} Algorithmus oder \textit{Markov Ketten}, in der Lage zu ermitteln, wie gut Nutzer A einen
+Nutzer B kennt.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Zusammenfassung} \ No newline at end of file
diff --git a/ausarbeitung/Ausblick.tex~ b/ausarbeitung/Ausblick.tex~
new file mode 100644
index 0000000..17a61eb
--- /dev/null
+++ b/ausarbeitung/Ausblick.tex~
@@ -0,0 +1,146 @@
+\section{Ausblick}
+
+Die Software \textit{Friend Finder} zeigt nur einen recht einfachen Ansatz auf, um Daten sicher zu versenden und die Position von
+anderen Benutzern aufzuzeigen. Im nun folgenden Teil dieser Arbeit werden Ausblicke auf weitere Möglichkeiten und Ansätze, für
+Nachrichtenverschlüsselung und \textit{location awareness}, aufgezeigt.
+
+\subsection{Plattformunabhängigkeit}
+
+Für mobile Systeme existieren zum momentanen Zeitpunkt mehrere verschiedene Betriebssysteme, welche zum Teil andere Ansätze
+verfolgen. Es werden nun die drei bekanntesten Vertreter der Betriebssyteme, für Smart Phones, vorgestellt und es wird erläutert
+werden, inwiefern sie sich zur portierung von Software eignen.
+
+\subsubsection{Windows Mobile}
+
+Der wohl bekannteste Vertreter ist \textit{Windows Mobile}. Die aktuelle Version 6.5 wurde von Microsoft
+auch \textit{Windows Phone} betitelt.Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
+ähnlichkeiten zu den Desktop-Varianten der \textit{Windows}-Familie erkennen. \newline
+
+Will man für dieses Betriebssystem Anwendungen entwickeln so bietet Microsoft eine eigenes \textit{Software Development Kit (SDK)}
+an, welches auch jeder frei nutzen kann. Bei der Programmierung kann hierbei sowohl auf \textit{C}/\textit{C++},
+sowie auch auf Java zurückgegriffen werden. Allerdings ist die \textit{Win32 API} nich kompatibel mit der Desktopversion, weshalb
+Anwendungen getrennt entwickelt oder portiert werden müssen.\newline
+
+Wie Im Kapitel Tutorial schon erwähnt, lässt sich mit Hilfe eines \textit{Cross-Compilers} das \textit{Enlightenment}-Paket für
+dieses System, mit etwas Aufwand, portieren. Durch diese Tatsache und der Unterstützung von \textit{C}/\textit{C++}
+eignet sich Windows Mobile sehr gut als Plattform für Anwendungen, welche nich unbedingt von vorne herein für diese entwickelt
+wurden.
+
+\subsubsection{Android}
+
+Bei \textit{Android} \citep{Android} handelt es sich um ein neueres Betriebssystem für Smart Phones. Das von Google entwickelte
+System setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser Kernel kümmert sich um die Prozess- und Speicherverwaltung,
+Kommunikation sowie um die Hardwareabstraktion. \newline
+
+Zum implementieren von Anwendungen stellt Google eigens ein eigenes \textit{SDK} bereit. Dieses greift allerdings nur auf
+\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im moment eben auf diese beschränken. Somit können Programme
+die in \textit{C} oder \textit{C++} geschrieben wurden nicht portiert werden. Auch wenn man einen passenden
+\textit{Cross-Compiler} nutzt funktionieren ist die Portierung nicht immer möglich, da Google die \textit{libc}-Bibliothek (unter
+\textit{Android} nun \textit{Bionic} genannt) an mobile Geräte angepasst und verändert hat.\newline
+
+Durch diese starken Einschränkungen ist es somit auch nicht wirklich möglich das \textit{Elementary}-Paket für \textit{Android}
+zu compilieren, da dieses komplett in \textit{C} geschrieben wurde. Somit muss Software, um auf einem \textit{Android}-Handy ohne
+Probleme lauffähig zu sein, in \textit{Java} geschrieben sein. Als graphische Darstellung kann der Entwickler die von Google
+bereitgestellten \textit.{GUI}-Elemente nutzen.
+
+\subsubsection{WebOS}
+
+\textit{WebOS} \citep{WebOS} gehört nicht zu den weit verbeiteten Betriebsystemen, allerdings wird es hier aufgeführt, da
+\textit{Enlightenment} portiert werden kann. Das System wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt.
+Momentan ist das System nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
+
+Für dieses Betriebssystem existiert sowohl ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java} sowie ein
+weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Hiermit werden mehrere Programmiersprachen
+unterstütz und die Portierungsmöglichkeiten dieser Plattform gewinnen erheblich an Attraktivität.\newline
+
+Wie bereits erwähnt, wurde \textit{Enlightenment}, genauer gesagt \textit{Evas}, bereits erfolgreich für WebOS compiliert und
+ausgeführt. Mit dem \textit{C SDK} und dieser Portierung wäre es so ohne weitere Probleme möglich den \textit{Friend Finder} auf
+einem \textit{WebOS}-Gerät auszuführen.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Kryptographische Verfahren auf Mobilen Plattformen}
+
+In diesem Absatz werden mögliche kryptographische Verfahren für Smart Phones behandelt. So wird prinzipiell zwischen zwei
+verschiedenen Arten der Verschlüsselung unterschieden. Zum einen existieren die sogenanten symmetrischen und zum anderen die
+asymmetrischen Verfahren. Bei ersterem existiert nur ein \textit{private-key} welcher von allen Teilnehmern zum ver- sowie
+entschlüsseln genutzt wird. Bei den asymmetrischen Verfahren sind mehrere Schlüssel nötig. Hierbei werden Daten mit einem
+öffentlichen Schlüsel verschlüsselt und können nur mit dem dazu passenden privaten Schlüssel wieder entschlüsselt werden. \newline
+
+Im folgenden werden verschiedene Algorithmen und deren Tauglichkeit vorgestellt. Des weiteren wird auch auf Möglichkeiten
+eingegangen, um Schlüssel zu verteilen.
+
+\subsubsection{Symmetrische Verschlüsselungsverfahren}
+
+Bei der Klasse der symmetrischen Verschlüsselungsverfahren können theoretisch alle bekannten Verfahren genutzt werden. Natürlich
+stellt sich hier die Frage der Güte der Verschlüsselung, die die einzelnen Algorithmen bieten. Das eigentliche Problem bei der
+Nutzung dieser Verfahren ist, wie man den privaten Schlüssel an die anderen Nutzer weitergeben kann, ohne ihn dabei für dritte
+zugänglich zu machen.\newline
+
+Als naiven Ansatz könnte man hierzu den Austausch per \textit{Bluetooth} erwägen. Allerdings gilt \textit{Bluetooth} nicht als
+sicheres Verfahren um Daten zu übertragen. Somit eignet sich dieses Art des Austauschens nicht, da nicht garantiert ist das
+Dritte mithören und den \textit{private key} erhalten. \newline
+
+Eine weitere Möglichkeit wäre einen 2D-Barcode aus einer Zeichenkette zu erstellen. Diesen könnte man dann auf dem Display
+eines mobilen Gerätes ausgeben. Andere Nutzer könnten dann den Barcode fotographieren und wiederrum in eine Zeichenkette
+umwandeln. Diese Zeichenkette könnte dann für beide Kommunikationspartner als privater Schlüssel genutzt werden.\newline
+Was allerdings gegen diese Methode spricht ist die Tatsache, dass sich zwei oder mehrere Nutzer treffen müssen um diese Daten
+auszutauschen. Somit verliert dieser Ansatz den großen Nachteil, dass die Mobilität ein Stück weit verloren geht, da man sich vor
+beginn der sicheren Kommunikation erst treffen muss. \newline
+Man könnte auch einfach die SD-Karten der mobilen Geräte mit einem oder mehreren gespeicherten, privaten Schlüsseln mit anderen
+Nutzern austauschen. Aber auch hier verliert man stark an Mobilität.\newline
+
+Man könnte auch eine Implementierung von \textit{Kerberos} \citep{Kerberos} für mobile Geräte erwägen. Bei diesem Verfahren
+übernimmt eine vertrauenswürdige dritte Partei die Authentifizierung. Diese wird von einem geschützten \textit{Kerberos}
+durchgeführt. Wenn ein Client sich gegenüber einem Server authentifizieren möchte, muss er sich beim \textit{Kerberos} Server
+anmelden. Dieser verifiziert dann seine eigene Identität, sowie Client gegenüber Server und Server gegenüber Client. \newline
+Möchte man nun diesen Dienst auf Smart Phones erweitern, so muss man einen \textit{Kerberos} Client für die jeweilige Plattform
+entwickeln.
+
+\subsubsection{Asymmetrische Verschlüsselungsverfahren}
+
+Der Vorteil von asymmetrischen Kryptographiesystemen gegenüber den symmetrischen ist, dass man nur den eigenen privaten Schlüssel
+geheim halten muss während der öffentliche Schlüssel frei zugänglich ist. Bei symmetrischen Verfahren muss man alle privaten
+Schlüssel speichern und geheim halten. Durch diesen Vorteil der \textit{Public-Key} Verfahren ist das Verteilen der einzelenen
+Schlüssel wesentlich einfacher. Das Problem von vorgetäuschten öffentlichen Schlüssen durch dritte kann mit einer
+vertrauenswürdigen Zertifizierungsstelle oder einem \textit{Web of Trust} stark eingegrenzt werden.\newline
+
+Das Prinzip des \textit{Web of Trust} macht sich das \textit{Pretty Good Privacy (PGP)} Verfahren zu nutze. Dieses Verfahren wurde
+von der Firma \textit{PGP} in Form von \textit{PGP Mobile} \citep{PGPmobile} für Smart Phones realisiert. Das
+\textit{PGP}-Verfahren ermöglicht es Daten zu verschlüsseln, signieren oder sowohl zu verschlüsseln als auch zu signieren. Bei
+einem signierten und Verschlüsselten Datenpaket wendet der Sender zuerst ein Hash-Verfahren auf die zu verschlüsselnden Daten an.
+Im nächsten Schritt wird der private Schlüssels des Senders auf eben diesen Hash angewendet um eine Signatur zu erstellen. Soll
+die Nachricht nun verschlüsselt werden, so wird das unverschlüsselte Datenpaket und die Signatur komprimiert und mit einem
+zufällig generierten Schlüssel verschlüsselt. Da dieser zufällige Schlüssel nur einmal gültig ist, wird er asymmetrisch mit
+dem öffentlichen Schlüssel des Empfängers verschlüsselt und an die Nachricht angehängt. Nun kann die gesamte Nachricht an den
+Empfänger gesendet werden. \newline
+Der Empfänger kann nun mit Hilfe seines private Schlüssels den angehängten Schlüssel dieser Sitzung entschlüsseln und mit desen
+Hilfe die komprimierte Nachricht wiederherstellen.\newline
+Für dieses Verfahren existiert auch eine \textit{Open Source} Variante namens \textit{OpenPGP} \citep{openPGP}. Mit dieser
+offenen Implementierung wäre es möglich ein solches Verfahren auch als freie Variante zu implementieren.\newline
+Der Nachteil des genannten Verfahrens ist mit Sicherheit der große Overhead an Daten versendet werden muss, sowie die Maße an
+benötigten Operationen um einen Klartext zu verschlüsseln. Dies tritt vor allem dann in Vordergrund wenn man, wie in
+\textit{Friend Finder}, im Sekundentakt verschlüsselte Positionsdaten versenden möchte.\newline
+
+%noch ein verfahren ipsec??
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Alternative \textit{location awareness} Verfahren}
+
+Neben dem in \textit{Friend Finder} implementierten, recht einfachen Verfahren, um andere Nutzer zu lokalisieren wurden schon
+andere Verfahren vorgestellt. Im folgenden Abschnitt werden alternative Vorgehensweisen vorgestellt und erklärt.
+
+\subsubsection*{FriendSensing: Recommending Friends Using Mobile Phones}
+
+Im Paper \textit{FriendSensing: Recommending Friends Using Mobile Phones} \citep{FriendSensing} aus dem Jahr 2009 erläutern die
+Autoren ihren Ansatz um Freunde für mobile, soziale Netze zu finden. Hierfür benutzen sie zum einen \textit{Bluetooth} und
+zeichnen andere Telefone in Reichweite auf. Somit kann aufgezeichnet werden, wie oft Nutzer A und Nutzer B aufeinandergetroffen
+sind. Des weiteren haben sie eine Software auf den mobilen Geräten installiert, welche aufzeichnet wie oft Nutzer A mit Nutzer B
+kommunziert. Aus diesen zwei gewonnenen Datensätzen waren die Autoren nun mit Hilfe von verschiedenen Algorithmen, wie zum
+Beispiel den \textit{Shortest Path} Algorithmus oder \textit{Markov Ketten}, in der Lage zu ermitteln, wie gut Nutzer A einen
+Nutzer B kennt.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Zusammenfassung} \ No newline at end of file
diff --git a/ausarbeitung/Bilder/ablauf.png b/ausarbeitung/Bilder/ablauf.png
new file mode 100644
index 0000000..86f044b
--- /dev/null
+++ b/ausarbeitung/Bilder/ablauf.png
Binary files differ
diff --git a/ausarbeitung/Bilder/barcode.png b/ausarbeitung/Bilder/barcode.png
new file mode 100644
index 0000000..0f609af
--- /dev/null
+++ b/ausarbeitung/Bilder/barcode.png
Binary files differ
diff --git a/ausarbeitung/Bilder/chat.png b/ausarbeitung/Bilder/chat.png
new file mode 100644
index 0000000..a4827eb
--- /dev/null
+++ b/ausarbeitung/Bilder/chat.png
Binary files differ
diff --git a/ausarbeitung/Bilder/efl.png b/ausarbeitung/Bilder/efl.png
new file mode 100644
index 0000000..59168b4
--- /dev/null
+++ b/ausarbeitung/Bilder/efl.png
Binary files differ
diff --git a/ausarbeitung/Bilder/elm-app-01_2.png b/ausarbeitung/Bilder/elm-app-01_2.png
new file mode 100644
index 0000000..562176d
--- /dev/null
+++ b/ausarbeitung/Bilder/elm-app-01_2.png
Binary files differ
diff --git a/ausarbeitung/Bilder/elm-app-02_2.png b/ausarbeitung/Bilder/elm-app-02_2.png
new file mode 100644
index 0000000..3b21a3b
--- /dev/null
+++ b/ausarbeitung/Bilder/elm-app-02_2.png
Binary files differ
diff --git a/ausarbeitung/Einleitung.aux b/ausarbeitung/Einleitung.aux
index d7a4857..06e6eca 100644
--- a/ausarbeitung/Einleitung.aux
+++ b/ausarbeitung/Einleitung.aux
@@ -1,5 +1,4 @@
\relax
-\citation{efl}
\@writefile{toc}{\contentsline {section}{\numberline {1}Einleitung}{2}{section.1}}
\@setckpt{Einleitung}{
\setcounter{page}{3}
diff --git a/ausarbeitung/Einleitung.tex b/ausarbeitung/Einleitung.tex
index 2f5896c..bff0a6a 100644
--- a/ausarbeitung/Einleitung.tex
+++ b/ausarbeitung/Einleitung.tex
@@ -1,26 +1,24 @@
\section{Einleitung}
-In der heutigen, vernetzten Gesellschaft wird es den Leuten relativ einfach gemacht sich untereinander, auch über große
-Entfernungen, auf dem digitalen Weg zu verständigen. Die Spannweite dieser Vernetzung reicht von E-Mails, Personal Messanger bis
-hin zu sozialen Netzwerken wie zum Beispiel \textit{facebook}, \textit{StudiVZ} oder \textit{twitter}. \newline
+Durch den fortschreitenden Stand der modernen Technik ist es möglich immer leistungsstärkere, mobile Geräte zu bauen. So geht die
+Funktionalität moderner Handys weit über das Telefonieren und Schreiben von SMS hinaus. Aktuellen Modellen, dieser sogennanten
+Smart Phones, ist es zum Beispiel möglich sich mit einem \textit{WLAN} zu verbinden, die eigene Position mittels \textit{GPS} zu
+ermitteln oder per \textit{UMTS} Daten zu übertragen.\newline
+Aus dieser Fülle an Funktionen und den verschiedenen angebotenen Smart Phones ergibt sich somit eine immense Menge an möglichen
+Anwendungsgebieten. \newline
-Seit einiger Zeit wird diese Vernetzung um eine neue Möglichkeit erweitert. Die Masse an neuen Modellen und der Erfolg von
-\textit{Smartphones} ermöglicht es dem Nutzer immer und so gut wie überall über das Internet verfügbar zu sein. So existieren
-schon Unmengen an Kommunikationssoftware und Applikationen die speziell für diese Mobilen Geräte entwickelt wurden. \newline
+Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der Smart Phones, immer weiter. So ist es mit
+bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder sich den nächsten Supermarkt in der Nähe
+anzeigen zu lassen. Dienste dieser Art sind bei Benutzern sehr beliebt und werden auch rege genutzt. Was allerdings von vielen
+Anwendern übersehen wird, ist die Tatsache, dass es möglich ist durch übermittelte Positionsdaten ein Bewegungsprofil zu
+erstellen, oder aber dritte Personen könnten die Daten abfangen und anderweitig missbrauchen. \newline
-Mit dem Aufkommen dieser neuen und mobilen Internetplattform muss auch hier wieder die Frage nach der Sicherheit von Daten und
-Persönlichen Informationen gestellt werden. So gelten für \textit{Smartphones} andere Vorraussetzungen wie für Desktop Computer.
-Der Energieverbrauch sollte möglichst gering gehalten werden, um den Akku nicht allzuschnell zu entladen. Es muss auch
-berücksichtigt werden, dass die Mobilen Geräte nicht an die Leistungsfähigkeit regulärer Computer heranreichen und somit nicht
-die aufwändigsten Verfahren gewählt werden können. \newline
+Somit ist es besonders im Bereich von Positionsdaten ein wichtiger Aspekt, Daten zu verschlüsseln. Hierzu müssen Algorithmen
+genutzt werden, welche das Verschlüsseln von Daten ohne zuviel Berechnungsaufwand durchführen, um den Akku des Gerätes zu
+schonen. Eine weitere Frage,die sich in diesem Kontext stellt, ist wie man auf sichere Art und Weise die Schlüssel, welche zum
+verschlüsseln der Daten genutzt werden, sicher und einfach verteilen kann. Hierbei sollte sichergestellt sein dass es für den
+Benutzer ohne großen Aufwand möglich ist den Schlüssel weiterzugeben und dritte Personen diese nicht abfangen können\newline
-Der Inhalt dieser Bachelor-Arbeit behandelt eben dieses Thema: Das verschlüsselte versenden von Informationen auf
-\textit{Smartphones} und des weiteren die Möglichkeiten von \textit{location awareness}. Für diesen Zweck wurde ein Programm
-namens \textit{``Friend Finder''} implementiert, welche einfache Chat Nachrichten sowie die eigene Position versenden kann. Diese
-Positionen können dann von anderen Benutzern auf ihrem Mobilen Gerät angezeigt werden. Des weiteren beinhaltet diese Arbeit eine
-Analyse des Datenverkehrs, welcher durch diese Software erzeugt wird. Es werden auch andere Möglichkeiten von \textit{location
-awareness} und Verschlüsselung aufgezeigt und besprochen.\newline
-
-Ein weiterer Punkt der aktuellen Generation der \textit{Smartphones} ist, das es verschiedene Betriebssysteme gibt. Diese
-unterscheiden sich je nach Hersteller. Diese Ausarbeitung beinhaltet auch ein kurzes Tutorial, um das Softwarepacket
-\textit{Enlightenment}\citep{efl} von einer Linux-Plattform nach Windows Mobile zu konvertieren. \ No newline at end of file
+Eine solche Software, welche Positionsdaten in einem sicheren Kontext versendet, wurde im Rahmen dieser Bachelor-Arbeit
+konzipiert und implementiert. Hierbei ging es vor allem um eine sichere Datenübertragung sowie eine dezentrale Datenübertragung.
+Ein weiterer Teil bildet das Kompilieren eines Programmes für Windows Mobile unter Linux. \ No newline at end of file
diff --git a/ausarbeitung/Einleitung.tex.backup b/ausarbeitung/Einleitung.tex.backup
new file mode 100644
index 0000000..f8f6376
--- /dev/null
+++ b/ausarbeitung/Einleitung.tex.backup
@@ -0,0 +1,17 @@
+\section{Einleitung}
+
+Durch den fortschreitenden Stand 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 Modelle dieser sogennanten Smart
+Phones ist es zum Beispiel möglich sich mit einem \textit{WLAN} zu verbinden, die eigene Position mittels \textit{GPS} zu
+ermitteln oder per \textit{UMTS} Daten zu übertragen.\newline
+Aus dieser Fülle an Funktionen und den verschiedenen angebotenen Modellen ergeben sich somit eine Menge an möglichen
+Anwendungsgebieten dieser mobilen Geräte. \newline
+
+Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der Smart Phones, immer weiter. So ist es mit
+bestimmen Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder sich den nächsten Supermarkt in der Nähe
+anzeigen zu lassen. Dienste dieser Art sind bei Benutzern sehr beliebt und werden auch rege genutzt. Was allerdings von vielen
+Anwendern übersehen wird ist die Tatsache das es möglich ist durch übermittelte Positionsdaten ein Bewegungsprofil zu erstellen.
+Oder aber dritte Personen könnten die Daten abfangen und missbrauchen. \newline
+
+Somit ist es besonders im Bereich von Positionsdaten ein wichtiger Aspekt Daten zu verschlüsseln. Hierzu müssen Algorithmen
+genutzt werden welche das Verschlüsseln von Daten ohne zuviel Berechnungsaufwand durchführen. \ No newline at end of file
diff --git a/ausarbeitung/Einleitung.tex~ b/ausarbeitung/Einleitung.tex~
index db75402..4dfb3ff 100644
--- a/ausarbeitung/Einleitung.tex~
+++ b/ausarbeitung/Einleitung.tex~
@@ -1,26 +1,25 @@
\section{Einleitung}
-In der heutigen, vernetzten Gesellschaft wird es den Leuten relativ einfach gemacht sich untereinander, auch über große
-Entfernungen, auf dem digitalen Weg zu verständigen. Die Spannweite dieser Vernetzung reicht von E-Mails, Personal Messanger bis
-hin zu sozialen Netzwerken wie zum Beispiel \textit{facebook}, \textit{StudiVZ} oder \textit{twitter}. \newline
+Durch den fortschreitenden Stand der modernen Technik ist es möglich immer leistungsstärkere, mobile Geräte zu bauen. So geht die
+Funktionalität moderner Handys weit über das Telefonieren und Schreiben von SMS hinaus. Aktuellen Modellen, dieser sogennanten
+Smart Phones, ist es zum Beispiel möglich sich mit einem \textit{WLAN} zu verbinden, die eigene Position mittels \textit{GPS} zu
+ermitteln oder per \textit{UMTS} Daten zu übertragen.\newline
+Aus dieser Fülle an Funktionen und den verschiedenen angebotenen Smart Phones ergibt sich somit eine immense Menge an möglichen
+Anwendungsgebieten. \newline
-Seit einiger Zeit wird diese Vernetzung um eine neue Möglichkeit erweitert. Die Masse an neuen Modellen und der Erfolg von
-\textit{Smartphones} ermöglicht es dem Nutzer immer und so gut wie überall über das Internet verfügbar zu sein. So existieren
-schon Unmengen an Kommunikationssoftware und Applikationen die speziell für diese Mobilen Geräte entwickelt wurden. \newline
+Auch positionsabhängige Dienste verbreiten sich, dank \textit{GPS}-Funktionen der Smart Phones, immer weiter. So ist es mit
+bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder sich den nächsten Supermarkt in der Nähe
+anzeigen zu lassen. Dienste dieser Art sind bei Benutzern sehr beliebt und werden auch rege genutzt. Was allerdings von vielen
+Anwendern übersehen wird, ist die Tatsache, dass es möglich ist durch übermittelte Positionsdaten ein Bewegungsprofil zu
+erstellen, oder aber dritte Personen könnten die Daten abfangen und anderweitig missbrauchen. \newline
-Mit dem Aufkommen dieser neuen und mobilen Internetplattform muss auch hier wieder die Frage nach der Sicherheit von Daten und
-Persönlichen Informationen gestellt werden. So gelten für \textit{Smartphones} andere Vorraussetzungen wie für Desktop Computer.
-Der Energieverbrauch sollte möglichst gering gehalten werden, um den Akku nicht allzuschnell zu entladen. Es muss auch
-berücksichtigt werden, dass die Mobilen Geräte nicht an die Leistungsfähigkeit regulärer Computer herranreichen und somit nicht
-die aufwändigsten Verfahren gewählt werden können. \newline
+Somit ist es besonders im Bereich von Positionsdaten ein wichtiger Aspekt, Daten zu verschlüsseln. Hierzu müssen Algorithmen
+genutzt werden, welche das Verschlüsseln von Daten ohne zuviel Berechnungsaufwand durchführen, um den Akku des Gerätes zu
+schonen. Eine weitere Frage,die sich in diesem Kontext stellt, ist wie man auf sichere Art und Weise die Schlüssel, welche zum
+verschlüsseln der Daten genutzt werden, sicher und einfach verteilen kann. Hierbei sollte sichergestellt sein dass es für den
+Benutzer ohne großen Aufwand möglich ist den Schlüssel weiterzugeben und dritte Personen diese nicht abfangen können\newline
-Der Inhalt dieser Bachelor-Arbeit behandelt eben dieses Thema: Das verschlüsselte versenden von Informationen auf
-\textit{Smartphones} und des weiteren die Möglichkeiten von \textit{location awareness}. Für diesen Zweck wurde ein Programm
-namens \textit{``Friend Finder''} implementiert, welche einfache Chat Nachrichten sowie die eigene Position versenden kann. Diese
-Positionen können dann von anderen Benutzern auf ihrem Mobilen Gerät angezeigt werden. Des weiteren beinhaltet diese Arbeit eine
-Analyse des Datenverkehrs, welcher durch diese Software erzeugt wird. Es werden auch andere Möglichkeiten von \textit{location
-awareness} und Verschlüsselung aufgezeigt und besprochen.\newline
-
-Ein weiterer Punkt der aktuellen Generation der \textit{Smartphones} ist, das es verschiedene Betriebssysteme gibt. Diese
-unterscheiden sich je nach Hersteller. Diese Ausarbeitung beinhaltet auch ein kurzes Tutorial, um das Softwarepacket
-\textit{Enlightenment}\citep{efl} von einer Linux-Plattform nach Windows Mobile zu konvertieren. \ No newline at end of file
+Eine solche Software, welche Positionsdaten in einem sicheren Kontext versendet, wurde im Rahmen dieser Bachelor-Arbeit
+konzipiert und implementiert. Hierbei ging es vor allem um eine sichere Datenübertragung. Allerdings sollten die versendeten
+Daten möglichst kompakt sein, um auch hier den Akku zu schonen. Ein weiterer Teil bildet das Kompilieren eines Programmes für
+Windows Mobile unter Linux. \ No newline at end of file
diff --git a/ausarbeitung/Friend_Finder.aux b/ausarbeitung/Friend_Finder.aux
new file mode 100644
index 0000000..8d914fc
--- /dev/null
+++ b/ausarbeitung/Friend_Finder.aux
@@ -0,0 +1,53 @@
+\relax
+\citation{IRC}
+\@writefile{toc}{\contentsline {section}{\numberline {4}Friend Finder}{13}{section.4}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Verwendete Verfahren und Bibliotheken}{13}{subsection.4.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{13}{subsubsection.4.1.2}}
+\citation{OpenSSL}
+\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \textit {Friend Finder} Nachrichtenaustausch}}{14}{figure.3}}
+\citation{libircclient}
+\citation{OpenSSL}
+\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Versenden von Chatnachrichten}}{15}{figure.4}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{15}{subsubsection.4.1.3}}
+\citation{qrencode}
+\citation{PNG}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.4}Empfangen der eigenen Position}{16}{subsubsection.4.1.4}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{16}{subsubsection.4.1.5}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces 2D-Barcode mit \textit {Friend Finder}}}{16}{figure.5}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Analyse}{16}{subsection.4.2}}
+\citation{Wireshark}
+\citation{IRCD}
+\citation{xchat}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{17}{subsubsection.4.2.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{18}{subsubsection.4.2.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{18}{subsubsection.4.2.3}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}Fazit der Auswertung}{18}{subsubsection.4.2.4}}
+\@setckpt{Friend_Finder}{
+\setcounter{page}{19}
+\setcounter{equation}{0}
+\setcounter{enumi}{0}
+\setcounter{enumii}{0}
+\setcounter{enumiii}{0}
+\setcounter{enumiv}{0}
+\setcounter{footnote}{0}
+\setcounter{mpfootnote}{0}
+\setcounter{part}{0}
+\setcounter{section}{4}
+\setcounter{subsection}{2}
+\setcounter{subsubsection}{4}
+\setcounter{paragraph}{0}
+\setcounter{subparagraph}{0}
+\setcounter{figure}{5}
+\setcounter{table}{0}
+\setcounter{NAT@ctr}{0}
+\setcounter{parentequation}{0}
+\setcounter{Item}{0}
+\setcounter{lstlisting}{0}
+\setcounter{lstnumber}{1}
+\setcounter{subfigure}{0}
+\setcounter{lofdepth}{1}
+\setcounter{subtable}{0}
+\setcounter{lotdepth}{1}
+\setcounter{section@level}{3}
+}
diff --git a/ausarbeitung/Friend_Finder.tex b/ausarbeitung/Friend_Finder.tex
index e823035..4c59b03 100644
--- a/ausarbeitung/Friend_Finder.tex
+++ b/ausarbeitung/Friend_Finder.tex
@@ -1,80 +1,13 @@
\section{Friend Finder}
-So gut wie alle Geräte der heutigen Generation von Smart Phones besitzen einen GPS Empfänger. Dieser kann auf unterschiedliche
-Art und Weiße genutzt werden. Von einfachem bestimmen der aktuellen Position, über Routing bis hin zu Freizeitaktivitäten wie
-\textit{Geocaching}. Eine weitere, interessante Möglichkeit wäre es, sich Freunde anzeigen zu lassen, die sich in
-einem bestimmten Radius um die eigene Position befinden. Mit diesen könnte man dann, ähnlich wie mit einem Chat Programm,
-Nachrichten austauschen.\newline
-Da es unter Datenschutzaspekten aber nicht wünschenswert ist das jeder Dritte die Position anderer ermitteln kann, sollten die
-Daten verschlüsselt versendet werden. Ansonsten könnte es zu Szenarien, wie das erstellen eines Bewegungsprofiles der Benutzer,
-kommen. Es muss somit gewährleistet sein, dass die gesendeten Daten nur dann lesbar sind, wenn der Nutzer dem einwilligt. \newline
-
-Mit einer solchem Programm wäre es zum Beispiel möglich, sich mit Freunden zum Essen zu verabreden, wenn diese sich in der Nähe
-der eigenen Position befinden. Der Nutzer sollte einfach nur den Radius wählen, innerhald dessen Personen sichtbar sind, und
-könnte diese dann per verschlüsselter Textnachricht anschreiben. \newline
-Eine andere Möglichkeit bestünde darin, dass man auf bestimmten Veranstaltungen wissen möchte wer teilnimmt. Dabei stellt
-der Nutzer allerdings fest das eine ihm bekannte Person die gleiche Software nutzt, aber für ihn nicht sichtbar ist. Der
-Benutzer muss nun die Möglichkeit haben dieser Person ohne aufwand den für die Verschlüsselung genutzen Schlüssel zu
-übergeben.\newline
-
-Eine ähnliche Software wurde schon im Paper \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} beschrieben und
-implementiert. Allerdings lag bei dieser Arbeit der Focus auf einem effizienten Protokoll zur verschlüsselten
-Positionsübertragung. Der Aspekt, dass Nutzer nur innerhalb eines begrenzten Radius angezeigt werden, wurde hier nicht
-berücksichtigt. Auch die Software \textit{SmokeScreen} \citep{SmokeScreen} beschäftigt sich mit versenden privater Informationen
-innerhalb von Gruppen die der Nutzer festlegt. Allerdings bewegt sich \textit{SmokeScreen} nich im Rahmen von \textit{location
-awareness}. Somit sollte die Software ein effizientes Protokoll, eine sichere Verschlüsselung sowie die Möglichkeit der
-Einstellung durch den Anwender verbinden.
+Die eingangs beschriebene Software hat den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit mit fast allen
+aufgezählten Funktionen realisiert. Das fotographieren des Barcodes sowie der Gruppenchat sind in der Implementation nicht
+enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, die zur Realisierung notwendig waren, eingegangen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\subsection{Anforderungsanalyse}
-
-Anhand der oben erstellten Szenarien sollte diese Software also folgende Funktionen besitzen:
-
-\begin{itemize}
- \item Versenden von Nachrichten
- \item Versenden der eigenen Position
- \item Anzeigen der Position von anderen Teilnehmern
- \item Erstellen eines 2D-Barcodes
- \end{itemize}
-
-\subsubsection{Eigene Position senden}
-
-Um den Standort anderer Nutzer zu sehen, muss das Programm in der Lage sein, auf einer Karte deren Position anzuzeigen. Damit
-für andere Nutzer die eigene Position sichtbar ist, muss diese in einem gängigen Format versendet werden. Hierfür fiel die Wahl
-auf das Standart Positions Format \textit{Latitude}/\textit{Longtitude}. Um Datensicherheit zu garantieren müssen diese
-Positionsdaten in verschlüsselter Form versendet werden.
-
-\subsubsection{Position anderer Teilnehmer anzeigen}
-
-Um die Position anderer Teilnehmer zu visualisieren muss das Programm in der Lage sein, die eigehenden Positionsdaten sowohl zu
-entschlüsseln, als auch diese auf einer Karte darzustellen. Des weiteren muss ein Format für die Karte genutzt werden, welches auf
-dem mobilen Gerät darstelbar ist und man einfach auf den neusten Stand bringen kann. Es sollte auch möglich sein, nur
-Benutzer innerhalb einer bestimmten Entfernung anzuzeigen, da eine Person die sich in 6 Kilometer Entfernung aufhält für Dienste
-dieser Art nur begrenzt sinnvoll sind.
-
-\subsubsection{Nachrichten versenden und empfangen}
-
-Damit man mit anderen Nutzern, welche sich in der Nähe der eigenen Position befinden, auch Kommunizieren kann, muss die Software
-in der Lage sein Textnachrichten zu versenden und zu empfangen. Auch soll die Datensicherheit garantiert sein. Der Datenverkehr
-muss also auch bei dieser Funktion in verschlüsselter Form stattfinden.
-
-\subsubsection{2D-Barcode}
-
-Um einen Schlüssel an eine Person weiterzugeben, deren Positon man sehen oder mit ihr kommunizieren möchte, muss es eine
-Möglichkeit geben diesen Schlüssel auf einfach Weise weiterzugeben. Hierzu kann aus einer vorher festgelegten Zeichenkette einen
-2D-Barcode erstellt und angezeigt werden. Zur weitergabe des Schlüssels muss nun der andere Anwender diesen vom Display
-fotographieren oder per MMS versenden und auf dem anderen Gerät wiederherstellen.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\subsection{Verwendete Verfahren und Bibliotheken}
-Die oben beschriebene Software wurde mit fast all diesen Funktionen, ausser das abfotographiern und umwandeln der 2D-Barcodes in
-einen Schlüssel, im Rahmen dieser Arbeit implementiert und hört auf den Namen \textit{Friend Finder}. Im folgenden Abschnitt wird
-die Implementierung und Funktionsweise der einzelnen Funktionen erläutert, sowie die zugrundeliegenden Bibliotheken vorgestellt.
-\newline
-
\textit{Friend Finder} wurde so konzipiert, dass die Graphische Darstellung ohne großen Aufwand vom den restlichen
Teilen der Software abgekoppelt und durch eine andere, darstellende Bibliothek ersetzt werden kann. Somit
könnte man \textit{Enlightenment} durch eine andere Art der Darstellung austauschen, ohne dabei die Funktionalität der
@@ -92,17 +25,6 @@ empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{E
\caption{\textit{Friend Finder} Nachrichtenaustausch}
\end{figure}
-
-\textit{Friend Finder} ist an sich in fünf Submodule aufgeteilt:
-
-\begin{enumerate}
- \item Graphische Benutzeroberfläche
- \item Versenden von Textnachrichten
- \item Versenden der eigenen Position
- \item Empfangen der eigenen Position
- \item Erstellen eines Barcodes
-\end{enumerate}
-
\subsubsection{Grafisches Benutzeroberfläche}
Zum erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
@@ -135,7 +57,13 @@ Empfänger wieder zusammengesetzt. \newline
Ein weiterer wichtiger Unterschied zu den Modulen Senden und Empfangen von \textit{GPS}-Positionen ist die Tatsache, dass bei
diesem Programmteil Sender und Empfänger in der gleichen Datei implementiert wurden. Der Grund hierfür ist, dass man hier nicht
zwischen mehreren Sendern oder Empfängern unterscheiden muss, und diese zwei Teile hier somit nicht komplett getrennt voneinander
-arbeiten müssen.\newline
+arbeiten müssen. In der folgenden Abbildung ist eine Konversation über \textit{Friend Finder} zu sehen.\newline
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=5cm]{Bilder/chat}
+ \caption{Versenden von Chatnachrichten}
+\end{figure}
Um Nachrichten zu versenden wurde für dieses Projekt die \textit{IRC-Client Bibliothek}\citep{libircclient} verwendet. Diese
\textit{library} bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
@@ -156,6 +84,7 @@ Bestätigung ist unverschlüssel. Kommt dieses \textit{Acknowledgement} beim Sen
Auch hier wird, wie beim Versenden der Nachrichten zum verschlüsseln der \textit{Blowfish-Algorithmus} aus \textit{libcrypto},
sowie \textit{libircclient} zum versenden der Daten genutzt.
+
\subsubsection{Empfangen der eigenen Position}
noch nicht final....empfänger empfängt nachricht, ordnet sie, leitet sie zum zeichnen weiter....grob gesehen
@@ -165,6 +94,16 @@ noch nicht final....empfänger empfängt nachricht, ordnet sie, leitet sie zum z
Die Datei \textit{barcode.c} beinhaltet die Funktionen zum erstellen eines 2D-Barcodes. Hierzu wird die Funktion
"\textit{generate\_barcode(char* key)}", mit einer Zeichenkette als Übergabeparameter, aufgerufen. Aus dieser Zeichenkette wird
dann ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png} Datei auf das Speichermedium geschrieben wird.
+Zum erstellen des Barcodes wurde die offene Bibliothek \textit{qrencode} \citep{qrencode} genutzt. Diese erstellt aus einer
+Zeichenkette einen 2D-Barcode. Aus den Bilddaten dieses Barcodes wurde mit \textit{libpng} \citep{PNG} eine \textit{.png} Datei
+erstellt. Die untere Abbildung zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=5cm]{Bilder/barcode}
+ \caption{2D-Barcode mit \textit{Friend Finder}}
+\end{figure}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -172,40 +111,55 @@ dann ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png}
Das Ziel war es mit \textit{Friend Finder} Daten verschlüsselt zu übertragen. Es soll dabei ein möglichst geringer
Berechnungsaufwand entstehen um die Daten zu verschlüsseln, sowie möglichst wenig Datenoverhead produziert und versendet werden.
-Dies ist notwendig, damit das Programm möglichst lange auf dem mobilen Gerät ausgeführt werden kann und nicht schon nach
-kurzer Zeit der Akku versagt. \newline
+Unter Datenoverhead werden die Hintergrunddaten gesehen, welche versendet werden um zum Beispiel die Verbindung
+zwischen Client und Server aufrecht zu erhalten oder um zu kontrollieren ob Server oder Client noch verfügbar sind. Diese Daten
+ sind von Interesse da mit vielen versendeten Daten ein höherer Anspruch des Rechenkerns einhergeht, was wiederrum in einem
+höheren Stromverbrauch resultiert.\newline
Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Der \textit{Traffic} wurde mit Hilfe des Programmes
-\textit{Wireshark} \citep{Wireshark} untersucht.\newline
+\textit{Wireshark} \citep{Wireshark} untersucht.Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC-Protokoll}
+verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid} \citep{IRCD} genutzt. Der Server lief auf dem gleichen
+Computer wie der Client und der Client hat sich über das \textit{localhost} Interface mit dem Server verbunden. \newline
-Die Analyse selbst ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
+Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird auch das dritte Feature, dass Versenden und Empfangen von
Positionen, unter die Lupe genommen.
\subsubsection{Allgemeiner Datenverkehr}
-Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC-Protokoll} \citep{IRC} verwendet. Dieses Protokoll basiert
-\textit{TCP/IP} und führt somit bei Verbindungsaufbau einen \textit{TCP-Handshake} durch. Des weiteren werden
-während der gesamten Verbindungsdauer \textit{ACK-} oder \textit{NACK-Pakete} für jede Nachrichten versendet. \newline
-
-Während einer bestehenden Verbindung zu einem \textit{IRC-Server} schicken sich Server und Client fortlaufend Nachrichten. So
-sendet der Client zum Beispiel immer eine "Who" Anfrage an den Server, welcher dann mit allen im Channel eingelogten Nutzern
-antwortet.\newline
-
-Wird eine bestehnde Verbindung beendet, so entsteht auch hier wieder Datenverkehr, da \textit{TCP} auch beim Beenden einer
-Verbindung ein eigenes Verfahren nutz. Bei diesem wird ein Paket versendet welches angibt dass die Verbindung nun beendet wird.
-Dieses Paket wird auch wieder bestätigt. Diese beiden Pakete werden von beiden Seiten der Kommunikation versandt.\newline
+Bei Messung des allgemeinen Datenaufkommens mit eine normalen \textit{IRC-Clients}, hier \textit{X-Chat} \citep{xchat}, ergeben
+sich folgender Datenverkehr. \newline
+Beim Verbindungsaufbau sendet der \textit{IRC}-Server zuerst ein Paket mit Informationen wie Limit der \textit{Channels}
+oder Anzahl der aktiven Benutzer. Dieses Paket hatte in der Versuchsumgebung eine Größe von 1090 Bytes. Hiervon müssen noch 20
+Bytes \textit{IP-} und 32 Byte \textit{TCP-Header} abgezogen werden. Somit sind die hat das Datenfeld eine Größe von 1038 Bytes.
+Bei im folgenden genannten Paketgrößen sind diese 52 Byte schon abgezogen. \newline
+Wenn im nächsten Schritt der Benutzer nun eine \textit{Channel} beitritt so sendet dieser drei Pakete an den Server. Diese
+beinhalten den Namen des \textit{Channels} dem beigetreten werden soll, eine Anfrage der aktiven Nutzer in diesem \textit{Channel}
+sowie welche Rechter der beitretende Nutzer in diesem \textit{Channel} inne hat. Diese drei Pakete haben alle die Größe von 26
+Byte. Ist die Verbindung zwischen Client und Server aufgebaut so sendet der Client alle 30 Sekunden ein \textit{Ping} Paket an den
+Server, welches dieser mit einem \textit{Pong} beantwortet. Diese Pakete haben eine Größe von 40 Byte für die \textit{Ping}
+Nachricht und 58 Byte für die beantwortende \textit{Pong} Nachricht. Alle 60 Sekunden versendet der Client eine Anfrage, welche
+Teilnehmer sich im \textit{Channel} befinden. Diese Nachricht von Client zu Server ist 25 Byte groß. Die Antwort hierzu ist
+abhängig von der Anzahl der Benutzer. Ist nur ein Benutzer im \textit{Channel} so ist sie 151 Bytes groß, bei zwei ist sie schon
+233 Byte groß. Wird eine Verbindung beendet, so schickt der Client noch eine \textit{Quit} Nachricht an den Server. \newline
+
+Im Gegensatz zu diesem hohen Hintergrundverkehr benötigt \textit{Friend Finder} nur einen \textit{TCP-Handshake} um die
+Verbindung aufzubauen. Ist die Verbindung etabliert fallen keine weiteren Hintergrunddaten an. Der Nachteil hiervon ist, dass der
+Client nur bei einem auftretenden Fehler beim versenden der Daten bemerkt das er nicht mehr verbunden ist. Allerdings wird
+hiermit auch Berechnungszeit und somit Akku gespart, da diese \textit{Keep-Alive} Nachrichten, sowie die zusätzliche
+Informationen über den Server im Rahmen von \textit{Friend Finder} nicht benötigt werden.
\subsubsection{Versenden und Empfangen von Nachrichten}
Um das Versenden von Nachrichten zu evaluieren wurde "Hello World" als Testnachricht benutzt. Der \textit{Blockcipher} von
\textit{Friend Finder} teilt den Satz "Hello World" in zwei Teile auf: "Hello " und "World". Diese werden dann von \textit{TCP}
-aufgrund der Fenstergröße in ein Paket gepackt. Das gesamte Paket hat die größe von 81 Bytes, wobei der \textit{TCP-Header} 32
-Bytes und der \textit{IP-Header} 20 Bytes groß ist. Somit haben die Daten eine Größe von insgesamt 29 Bytes.\newline
+aufgrund der Fenstergröße in ein Paket gepackt. Das gesamte Paket hat die größe von 147 Bytes, wobei \textit{TCP-}
+und \textit{IP-Header} in der Summe auch wieder mit 52 Byte abzuziehen sind. Somit haben die Daten eine Größe von insgesamt 95
+Bytes.\newline
Beachtet man dass ein \textit{char} in \textit{C} die Größe von einem Byte hat und der Beispielsatz aus elf Zeichen besteht, so
-ist dieser unverschlüsselt 11 Byte groß. Somit vergrößern sich die Daten nach der Verschlüsselung um circa den Faktor 2,6.\newline
+ist dieser unverschlüsselt 11 Byte groß. Somit vergrößern sich die Daten nach der Verschlüsselung um circa den Faktor 8,6.\newline
Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht ist, so ergibt sie die
Länge der zu versendenden Nachricht aus: $h + (t * 2,6)$.
@@ -213,12 +167,11 @@ Länge der zu versendenden Nachricht aus: $h + (t * 2,6)$.
\subsubsection{Fazit der Auswertung}
-Zur Analyse des Allgemeinen Datenverkehrs ist zu sagen dass Aufgrund der Tatsache dass das \textit{IRC-Protokoll}
-auf \textit{TCP/IP} bassiert, eine großer Overhead an Paketen versandt wird. Somit werde wesentlich mehr Pakete als
-nur die benötigten Daten verschickt. Hinzu kommen noch Pakete welche zur ständigen Kommunikation zwischen Server und
-Client ausgetauscht werden.
+Im Bereich des Allgemeinen Datenverkehrs fällt kein Overhead durch \textit{Friend Finder} an. Hier werden nur dann Daten
+versandt, wenn dies auch vom Nutzer so gewollt ist. Dies hat den Vorteil, dass der Anwender die totale Kontrolle über die Daten,
+die er sendet, hat. Allerdings kann so auch erst beim versenden von Daten festgestellt werden, ob die Verbindung unterbrochen
+wurde.\newline
+Ein weiterer Vorteil von \textit{Friend Finder} ist das versenden von Daten an mehrere Benutzer. Hier muss der
+Client sein Paket nur einmal versenden und alle Teilnehmenden Nutzer in einem Channel können diese Nachricht einsehen, sofern dies
+gewollt ist.
-Um den den von \textit{TCP} generierten Datenoverhead zu minimieren, wäre auch das versenden von Daten über \textit{UDP}
-interessant. Dies gilt weniger für das versenden der Textnachrichten sondern eher für das versenden der Positionen. Hier werden,
-wenn mehrere User aktiv sind, ständig Positionsdaten und Acknowledgements zwischen Server und Clients ausgetauscht. Somit könnte
-durch die Nutzung von \textit{UDP} hier einiges an versendeten Packeten gespart werden.\newline
diff --git a/ausarbeitung/Friend_Finder.tex.backup b/ausarbeitung/Friend_Finder.tex.backup
new file mode 100644
index 0000000..33904f7
--- /dev/null
+++ b/ausarbeitung/Friend_Finder.tex.backup
@@ -0,0 +1,158 @@
+\section{Friend Finder}
+
+Die eingangs beschriebene Software hat den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit mit fast allen
+aufgezählten Funktionen realisiert. Das fotographieren des Barcodes sowie der Gruppenchat sind in der Implementation nicht
+enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, die zur Realisierung notwendig waren, eingegangen.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Verwendete Verfahren und Bibliotheken}
+
+\textit{Friend Finder} wurde so konzipiert, dass die Graphische Darstellung ohne großen Aufwand vom den restlichen
+Teilen der Software abgekoppelt und durch eine andere, darstellende Bibliothek ersetzt werden kann. Somit
+könnte man \textit{Enlightenment} durch eine andere Art der Darstellung austauschen, ohne dabei die Funktionalität der
+zugrunde liegenden Komponenten zu zerstören. \newline
+Da das ver- und entschlüsseln der Daten möglichst wenig Rechenaufwand erzeugen und der Schlüsselaustausch nicht zu
+kompliziert sein soll, nutzt das Programm ein symmetrisches Verschlüsselungsverfahren. \newline
+\textit{Abbildung 3} zeigt den Kommunikationsaustausch von \textit{Friend Finder}. Der \textit{Message Sender} ist für das
+Versenden und Empfangen der Textnachrichten zuständig, \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.
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=10cm]{Bilder/ablauf}
+ \caption{\textit{Friend Finder} Nachrichtenaustausch}
+\end{figure}
+
+\subsubsection{Grafisches Benutzeroberfläche}
+
+Zum erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
+bietet eine Fülle an vordefinierten Oberflächenelement. Der gesammte Programmcode der Benutzeroberfläche wurde in einer Datei
+zusammengefast (\textit{gui.c}). Diese Tatsache vereinfacht das Erhalten der Modularität, da einfach nur diese Datei
+durch eine andere ersetzen werden muss um einen anderen Typ von Oberfläche zu benutzen. \newline
+In der der Datei \textit{gui.c} sind alle Funktionen enthalten um die Oberflächenelement zu erzeugen und 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
+Wie schon erwähnt, wurde die Graphische Nutzeroberfläche mit Hilfe von Bibliotheken aus dem \textit{Elementary}-Paket
+realisiert.
+
+\subsubsection{Versenden der Nachrichten}
+
+Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll \citep{IRC} verwendet. Die
+Vorteile dieses Protokolles liegen in seiner weiten Verbreitung, einer ausgedehnten Serverstruktur, sowie in dessen
+Stabilität.\newline
+
+In der Datei \textit{msg\_sender.c} sind alle Funktionen und Aufrufe implementiert, welche nötig sind um die Verbindung zum
+\textit{IRC-Server} zu erstellen und die Nachrichten zu verschicken. Um eine Verbindung zu einem gegebenen \textit{IRC-Server} zu
+erstellen 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,
+kann man nun durch das Aufrufen der Funktion "\textit{set\_txt\_msg(char* msg)}" die Nachricht versenden. Wird eine Nachricht
+empfangen so wird diese an die Funktion "\textit{show\_message(char* msg)}" , welcher zur Benutzeroberfläche gehört, übergeben.
+Bei der Implementerierung des Nachrichtenversandes ist eine Besonderheit zu erwähnen. Das genutzte Verschlüsselungsverfahren
+\textit{Blowfish} wurde seitens der \textit{OpenSSL}\citep{OpenSSL} Bibliothek als \textit{Blockcipher} implementiert. Das
+bedeutet, das immer nur maximal 64 Bit Nachrichten verschlüsselt werden können. Da in der Programmiersprache \textit{C} dies genau
+acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versendet und beim
+Empfänger wieder zusammengesetzt. \newline
+Ein weiterer wichtiger Unterschied zu den Modulen Senden und Empfangen von \textit{GPS}-Positionen ist die Tatsache, dass bei
+diesem Programmteil Sender und Empfänger in der gleichen Datei implementiert wurden. Der Grund hierfür ist, dass man hier nicht
+zwischen mehreren Sendern oder Empfängern unterscheiden muss, und diese zwei Teile hier somit nicht komplett getrennt voneinander
+arbeiten müssen.\newline
+
+Um Nachrichten zu versenden wurde für dieses Projekt die \textit{IRC-Client Bibliothek}\citep{libircclient} verwendet. Diese
+\textit{library} bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
+diesen zu senden, sowie eingehende Nachrichten zu empfangen.\newline
+Zur Ver- und Entschlüsselung der gesendeten Nachrichten, sowie der Positionsdaten wird die Bibliothek
+des \textit{OpenSSL-Projekts}\citep{OpenSSL}, namens \textit{libcrypto}, verwendet. Hierzu werden die Daten mit dem
+\textit{Blowfish-Algorithmus} verschlüsselt. Bei diesem Algorithmus handelt es sich um ein symmetrisches
+Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver- sowie entschlüsseln nutzen.
+
+\subsubsection{Versenden der eigenen Position}
+
+Der benötigte Programmcode zum Versenden der eigenen Position ist in der Datei \textit{sender.c} zu finden. Auch hier muss zuerst
+eine \textit{IRC-Session} initialisiert werden um danach die Position zu versenden. Der Ablauf beim Senden der Positionen erfolgt
+in einer vorgegebenen Reihenfolge. Zuerst wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
+Daraufhin werden solange keine Daten mehr gesendet, bis der Empfänger eine Bestätigung an den \textit{IRC-Kanal} sendet. Diese
+Bestätigung ist unverschlüssel. Kommt dieses \textit{Acknowledgement} beim Sender an, so versendet dieser wieder ein
+\textit{Latitude/Longtitude Paar}.\newline
+
+Auch hier wird, wie beim Versenden der Nachrichten zum verschlüsseln der \textit{Blowfish-Algorithmus} aus \textit{libcrypto},
+sowie \textit{libircclient} zum versenden der Daten genutzt.
+
+\subsubsection{Empfangen der eigenen Position}
+
+noch nicht final....empfänger empfängt nachricht, ordnet sie, leitet sie zum zeichnen weiter....grob gesehen
+
+\subsubsection{Erzeugen eines 2D-Barcodes}
+
+Die Datei \textit{barcode.c} beinhaltet die Funktionen zum erstellen eines 2D-Barcodes. Hierzu wird die Funktion
+"\textit{generate\_barcode(char* key)}", mit einer Zeichenkette als Übergabeparameter, aufgerufen. Aus dieser Zeichenkette wird
+dann ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png} Datei auf das Speichermedium geschrieben wird.
+Zum erstellen des Barcodes wurde die offene Bibliothek \textit{qrencode} genutzt. Diese erstellt aus einer Zeichenkette einen
+2D-Barcode. Aus den Bilddaten dieses Barcodes wurde mit \textit{libpng} eine \textit{.png} Datei erstellt.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Analyse}
+
+Das Ziel war es mit \textit{Friend Finder} Daten verschlüsselt zu übertragen. Es soll dabei ein möglichst geringer
+Berechnungsaufwand entstehen um die Daten zu verschlüsseln, sowie möglichst wenig Datenoverhead produziert und versendet werden.
+Unter Datenoverhead werden die Hintergrunddaten gesehen, welche versendet werden um zum Beispiel die Verbindung
+zwischen Client und Server aufrecht zu erhalten oder um zu kontrollieren ob Server oder Client noch verfügbar sind. Diese Daten
+ sind von Interesse da mit vielen versendeten Daten ein höherer Anspruch des Rechenkerns einhergeht, was wiederrum in einem
+höheren Stromverbrauch resultiert.\newline
+
+Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
+auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Der \textit{Traffic} wurde mit Hilfe des Programmes
+\textit{Wireshark} \citep{Wireshark} untersucht.Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC-Protokoll}
+verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid} genutzt. Der Server lief auf dem gleichen Computer wie
+der Client und wurde über das \textit{localhost} Interface mit dem Client verbunden. \newline
+
+Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
+bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
+Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird auch das dritte Feature, dass Versenden und Empfangen von
+Positionen, unter die Lupe genommen.
+
+\subsubsection{Allgemeiner Datenverkehr}
+
+Bei Messung des allgemeinen Datenaufkommens mit eine normalen \textit{IRC-Clients}, hier \textit{X-Chat}, ergeben sich folgender
+Datenverkehr. \newline
+Beim Verbindungsaufbau sendet der \textit{IRC}-Server zuerst ein Paket mit Informationen wie Limit der \textit{Channels}
+oder Anzahl der aktiven Benutzer. Dieses Paket hatte in der Versuchsumgebung eine Größe von 1090 Bytes. Hiervon müssen noch 20
+Bytes \textit{IP-} und 32 Byte \textit{TCP-Header} abgezogen werden. Somit sind die hat das Datenfeld eine Größe von 1038 Bytes.
+Bei im folgenden genannten Paketgrößen sind diese 52 Byte schon abgezogen. \newline
+Wenn im nächsten Schritt der Benutzer nun eine \textit{Channel} beitritt so sendet dieser drei Pakete an den Server. Diese
+beinhalten den Namen des \textit{Channels} dem beigetreten werden soll, eine Anfrage der aktiven Nutzer in diesem \textit{Channel}
+sowie welche Rechter der beitretende Nutzer in diesem \textit{Channel} inne hat. Diese drei Pakete haben alle die Größe von 26
+Byte. Ist die Verbindung zwischen Client und Server aufgebaut so sendet der Server alle 30 Sekunden ein \textit{Ping} Paket an den
+Client, welches dieser mit einem \textit{Pong} beantwortet. Diese Pakete haben eine Größe von 40 Byte für die \textit{Ping}
+Nachricht und 58 Byte für die beantwortende \textit{Pong} Nachricht. Alle 60 Sekunden versendet der Client eine Anfrage, welche
+Teilnehmer sich im \textit{Channel} befinden. Diese Nachricht von Client zu Server ist 25 Byte groß. Die Antwort hierzu ist
+abhängig von der Anzahl der Benutzer. Ist nur ein Benutzer im \textit{Channel} so ist sie 151 Bytes groß, bei zwei ist sie schon
+233 Byte groß. Wird eine Verbindung beendet, so schickt der Client noch eine \textit{Quit} Nachricht an den Server. \newline
+
+\subsubsection{Versenden und Empfangen von Nachrichten}
+
+Um das Versenden von Nachrichten zu evaluieren wurde "Hello World" als Testnachricht benutzt. Der \textit{Blockcipher} von
+\textit{Friend Finder} teilt den Satz "Hello World" in zwei Teile auf: "Hello " und "World". Diese werden dann von \textit{TCP}
+aufgrund der Fenstergröße in ein Paket gepackt. Das gesamte Paket hat die größe von 147 Bytes, wobei \textit{TCP-}
+und \textit{IP-Header} in der Summe auch wieder mit 52 Byte abzuziehen sind. Somit haben die Daten eine Größe von insgesamt 95
+Bytes.\newline
+Beachtet man dass ein \textit{char} in \textit{C} die Größe von einem Byte hat und der Beispielsatz aus elf Zeichen besteht, so
+ist dieser unverschlüsselt 11 Byte groß. Somit vergrößern sich die Daten nach der Verschlüsselung um circa den Faktor 8,6.\newline
+Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht ist, so ergibt sie die
+Länge der zu versendenden Nachricht aus: $h + (t * 2,6)$.
+
+\subsubsection{Versenden und Empfangen von Positionen}
+
+\subsubsection{Fazit der Auswertung}
+
+Zur Analyse des Allgemeinen Datenverkehrs ist zu sagen dass Aufgrund der Tatsache dass das \textit{IRC-Protokoll}
+auf \textit{TCP/IP} bassiert, eine großer Overhead an Paketen versandt wird. Somit werde wesentlich mehr Pakete als
+nur die benötigten Daten verschickt. Hinzu kommen noch Pakete welche zur ständigen Kommunikation zwischen Server und
+Client ausgetauscht werden.
+
+Um den den von \textit{TCP} generierten Datenoverhead zu minimieren, wäre auch das versenden von Daten über \textit{UDP}
+interessant. Dies gilt weniger für das versenden der Textnachrichten sondern eher für das versenden der Positionen. Hier werden,
+wenn mehrere User aktiv sind, ständig Positionsdaten und Acknowledgements zwischen Server und Clients ausgetauscht. Somit könnte
+durch die Nutzung von \textit{UDP} hier einiges an versendeten Packeten gespart werden.\newline
diff --git a/ausarbeitung/Friend_Finder.tex~ b/ausarbeitung/Friend_Finder.tex~
new file mode 100644
index 0000000..8736f26
--- /dev/null
+++ b/ausarbeitung/Friend_Finder.tex~
@@ -0,0 +1,178 @@
+\section{Friend Finder}
+
+Die eingangs beschriebene Software hat den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit mit fast allen
+aufgezählten Funktionen realisiert. Das fotographieren des Barcodes sowie der Gruppenchat sind in der Implementation nicht
+enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, die zur Realisierung notwendig waren, eingegangen.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Verwendete Verfahren und Bibliotheken}
+
+\textit{Friend Finder} wurde so konzipiert, dass die Graphische Darstellung ohne großen Aufwand vom den restlichen
+Teilen der Software abgekoppelt und durch eine andere, darstellende Bibliothek ersetzt werden kann. Somit
+könnte man \textit{Enlightenment} durch eine andere Art der Darstellung austauschen, ohne dabei die Funktionalität der
+zugrunde liegenden Komponenten zu zerstören. \newline
+Da das ver- und entschlüsseln der Daten möglichst wenig Rechenaufwand erzeugen und der Schlüsselaustausch nicht zu
+kompliziert sein soll, nutzt das Programm ein symmetrisches Verschlüsselungsverfahren. \newline
+\textit{Abbildung 3} zeigt den Kommunikationsaustausch von \textit{Friend Finder}. Der \textit{Message Sender} ist für das
+Versenden und Empfangen der Textnachrichten zuständig, \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.
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=10cm]{Bilder/ablauf}
+ \caption{\textit{Friend Finder} Nachrichtenaustausch}
+\end{figure}
+
+\subsubsection{Grafisches Benutzeroberfläche}
+
+Zum erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
+bietet eine Fülle an vordefinierten Oberflächenelement. Der gesammte Programmcode der Benutzeroberfläche wurde in einer Datei
+zusammengefast (\textit{gui.c}). Diese Tatsache vereinfacht das Erhalten der Modularität, da einfach nur diese Datei
+durch eine andere ersetzen werden muss um einen anderen Typ von Oberfläche zu benutzen. \newline
+In der der Datei \textit{gui.c} sind alle Funktionen enthalten um die Oberflächenelement zu erzeugen und 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
+Wie schon erwähnt, wurde die Graphische Nutzeroberfläche mit Hilfe von Bibliotheken aus dem \textit{Elementary}-Paket
+realisiert.
+
+\subsubsection{Versenden der Nachrichten}
+
+Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll \citep{IRC} verwendet. Die
+Vorteile dieses Protokolles liegen in seiner weiten Verbreitung, einer ausgedehnten Serverstruktur, sowie in dessen
+Stabilität.\newline
+
+In der Datei \textit{msg\_sender.c} sind alle Funktionen und Aufrufe implementiert, welche nötig sind um die Verbindung zum
+\textit{IRC-Server} zu erstellen und die Nachrichten zu verschicken. Um eine Verbindung zu einem gegebenen \textit{IRC-Server} zu
+erstellen 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,
+kann man nun durch das Aufrufen der Funktion "\textit{set\_txt\_msg(char* msg)}" die Nachricht versenden. Wird eine Nachricht
+empfangen so wird diese an die Funktion "\textit{show\_message(char* msg)}" , welcher zur Benutzeroberfläche gehört, übergeben.
+Bei der Implementerierung des Nachrichtenversandes ist eine Besonderheit zu erwähnen. Das genutzte Verschlüsselungsverfahren
+\textit{Blowfish} wurde seitens der \textit{OpenSSL}\citep{OpenSSL} Bibliothek als \textit{Blockcipher} implementiert. Das
+bedeutet, das immer nur maximal 64 Bit Nachrichten verschlüsselt werden können. Da in der Programmiersprache \textit{C} dies genau
+acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versendet und beim
+Empfänger wieder zusammengesetzt. \newline
+Ein weiterer wichtiger Unterschied zu den Modulen Senden und Empfangen von \textit{GPS}-Positionen ist die Tatsache, dass bei
+diesem Programmteil Sender und Empfänger in der gleichen Datei implementiert wurden. Der Grund hierfür ist, dass man hier nicht
+zwischen mehreren Sendern oder Empfängern unterscheiden muss, und diese zwei Teile hier somit nicht komplett getrennt voneinander
+arbeiten müssen. In der folgenden Abbildung ist eine Konversation über \textit{Friend Finder} zu sehen.\newline
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=5cm]{Bilder/chat}
+ \caption{Versenden von Chatnachrichten}
+\end{figure}
+
+Um Nachrichten zu versenden wurde für dieses Projekt die \textit{IRC-Client Bibliothek}\citep{libircclient} verwendet. Diese
+\textit{library} bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
+diesen zu senden, sowie eingehende Nachrichten zu empfangen.\newline
+Zur Ver- und Entschlüsselung der gesendeten Nachrichten, sowie der Positionsdaten wird die Bibliothek
+des \textit{OpenSSL-Projekts}\citep{OpenSSL}, namens \textit{libcrypto}, verwendet. Hierzu werden die Daten mit dem
+\textit{Blowfish-Algorithmus} verschlüsselt. Bei diesem Algorithmus handelt es sich um ein symmetrisches
+Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver- sowie entschlüsseln nutzen.
+
+\subsubsection{Versenden der eigenen Position}
+
+Der benötigte Programmcode zum Versenden der eigenen Position ist in der Datei \textit{sender.c} zu finden. Auch hier muss zuerst
+eine \textit{IRC-Session} initialisiert werden um danach die Position zu versenden. Der Ablauf beim Senden der Positionen erfolgt
+in einer vorgegebenen Reihenfolge. Zuerst wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
+Daraufhin werden solange keine Daten mehr gesendet, bis der Empfänger eine Bestätigung an den \textit{IRC-Kanal} sendet. Diese
+Bestätigung ist unverschlüssel. Kommt dieses \textit{Acknowledgement} beim Sender an, so versendet dieser wieder ein
+\textit{Latitude/Longtitude Paar}.\newline
+
+Auch hier wird, wie beim Versenden der Nachrichten zum verschlüsseln der \textit{Blowfish-Algorithmus} aus \textit{libcrypto},
+sowie \textit{libircclient} zum versenden der Daten genutzt.
+
+\subsubsection{Empfangen der eigenen Position}
+
+noch nicht final....empfänger empfängt nachricht, ordnet sie, leitet sie zum zeichnen weiter....grob gesehen
+
+\subsubsection{Erzeugen eines 2D-Barcodes}
+
+Die Datei \textit{barcode.c} beinhaltet die Funktionen zum erstellen eines 2D-Barcodes. Hierzu wird die Funktion
+"\textit{generate\_barcode(char* key)}", mit einer Zeichenkette als Übergabeparameter, aufgerufen. Aus dieser Zeichenkette wird
+dann ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png} Datei auf das Speichermedium geschrieben wird.
+Zum erstellen des Barcodes wurde die offene Bibliothek \textit{qrencode} \citep{qrencode} genutzt. Diese erstellt aus einer
+Zeichenkette einen 2D-Barcode. Aus den Bilddaten dieses Barcodes wurde mit \textit{libpng} \citep{PNG} eine \textit{.png} Datei
+erstellt. Die untere Abbildung zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=5cm]{Bilder/barcode}
+ \caption{2D-Barcode mit \textit{Friend Finder}}
+\end{figure}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\subsection{Analyse}
+
+Das Ziel war es mit \textit{Friend Finder} Daten verschlüsselt zu übertragen. Es soll dabei ein möglichst geringer
+Berechnungsaufwand entstehen um die Daten zu verschlüsseln, sowie möglichst wenig Datenoverhead produziert und versendet werden.
+Unter Datenoverhead werden die Hintergrunddaten gesehen, welche versendet werden um zum Beispiel die Verbindung
+zwischen Client und Server aufrecht zu erhalten oder um zu kontrollieren ob Server oder Client noch verfügbar sind. Diese Daten
+ sind von Interesse da mit vielen versendeten Daten ein höherer Anspruch des Rechenkerns einhergeht, was wiederrum in einem
+höheren Stromverbrauch resultiert.\newline
+
+Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
+auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Der \textit{Traffic} wurde mit Hilfe des Programmes
+\textit{Wireshark} \citep{Wireshark} untersucht.Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC-Protokoll}
+verwendet. In dieser Testumgebung wurde die Software \textit{IRCD-Hybrid} \citep{IRCD} genutzt. Der Server lief auf dem gleichen
+Computer wie
+der Client und wurde über das \textit{localhost} Interface mit dem Client verbunden. \newline
+
+Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
+bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
+Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird auch das dritte Feature, dass Versenden und Empfangen von
+Positionen, unter die Lupe genommen.
+
+\subsubsection{Allgemeiner Datenverkehr}
+
+Bei Messung des allgemeinen Datenaufkommens mit eine normalen \textit{IRC-Clients}, hier \textit{X-Chat} \citep{xchat}, ergeben
+sich folgender Datenverkehr. \newline
+Beim Verbindungsaufbau sendet der \textit{IRC}-Server zuerst ein Paket mit Informationen wie Limit der \textit{Channels}
+oder Anzahl der aktiven Benutzer. Dieses Paket hatte in der Versuchsumgebung eine Größe von 1090 Bytes. Hiervon müssen noch 20
+Bytes \textit{IP-} und 32 Byte \textit{TCP-Header} abgezogen werden. Somit sind die hat das Datenfeld eine Größe von 1038 Bytes.
+Bei im folgenden genannten Paketgrößen sind diese 52 Byte schon abgezogen. \newline
+Wenn im nächsten Schritt der Benutzer nun eine \textit{Channel} beitritt so sendet dieser drei Pakete an den Server. Diese
+beinhalten den Namen des \textit{Channels} dem beigetreten werden soll, eine Anfrage der aktiven Nutzer in diesem \textit{Channel}
+sowie welche Rechter der beitretende Nutzer in diesem \textit{Channel} inne hat. Diese drei Pakete haben alle die Größe von 26
+Byte. Ist die Verbindung zwischen Client und Server aufgebaut so sendet der Client alle 30 Sekunden ein \textit{Ping} Paket an den
+Server, welches dieser mit einem \textit{Pong} beantwortet. Diese Pakete haben eine Größe von 40 Byte für die \textit{Ping}
+Nachricht und 58 Byte für die beantwortende \textit{Pong} Nachricht. Alle 60 Sekunden versendet der Client eine Anfrage, welche
+Teilnehmer sich im \textit{Channel} befinden. Diese Nachricht von Client zu Server ist 25 Byte groß. Die Antwort hierzu ist
+abhängig von der Anzahl der Benutzer. Ist nur ein Benutzer im \textit{Channel} so ist sie 151 Bytes groß, bei zwei ist sie schon
+233 Byte groß. Wird eine Verbindung beendet, so schickt der Client noch eine \textit{Quit} Nachricht an den Server. \newline
+
+Im Gegensatz zu diesem hohen Hintergrundverkehr benötigt \textit{Friend Finder} nur einen \textit{TCP-Handshake} um die
+Verbindung aufzubauen. Ist die Verbindung etabliert fallen keine weiteren Hintergrunddaten an. Der Nachteil hiervon ist, dass der
+Client nur bei einem auftretenden Fehler beim versenden der Daten bemerkt das er nicht mehr verbunden ist. Allerdings wird
+hiermit auch Berechnungszeit und somit Akku gespart, da diese \textit{Keep-Alive} Nachrichten, sowie die zusätzliche
+Informationen über den Server im Rahmen von \textit{Friend Finder} nicht benötigt werden.
+
+\subsubsection{Versenden und Empfangen von Nachrichten}
+
+Um das Versenden von Nachrichten zu evaluieren wurde "Hello World" als Testnachricht benutzt. Der \textit{Blockcipher} von
+\textit{Friend Finder} teilt den Satz "Hello World" in zwei Teile auf: "Hello " und "World". Diese werden dann von \textit{TCP}
+aufgrund der Fenstergröße in ein Paket gepackt. Das gesamte Paket hat die größe von 147 Bytes, wobei \textit{TCP-}
+und \textit{IP-Header} in der Summe auch wieder mit 52 Byte abzuziehen sind. Somit haben die Daten eine Größe von insgesamt 95
+Bytes.\newline
+Beachtet man dass ein \textit{char} in \textit{C} die Größe von einem Byte hat und der Beispielsatz aus elf Zeichen besteht, so
+ist dieser unverschlüsselt 11 Byte groß. Somit vergrößern sich die Daten nach der Verschlüsselung um circa den Faktor 8,6.\newline
+Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht ist, so ergibt sie die
+Länge der zu versendenden Nachricht aus: $h + (t * 2,6)$.
+
+\subsubsection{Versenden und Empfangen von Positionen}
+
+\subsubsection{Fazit der Auswertung}
+
+Im Bereich des Allgemeinen Datenverkehrs fällt kein Overhead durch \textit{Friend Finder} an. Hier werden nur dann Daten
+versandt, wenn dies auch vom Nutzer so gewollt ist. Dies hat den Vorteil, dass der Anwender die totale Kontrolle über die Daten,
+die er sendet, hat. Allerdings kann so auch erst beim versenden von Daten festgestellt werden, ob die Verbindung unterbrochen
+wurde.\newline
+Ein weiterer Vorteil von \textit{Friend Finder} ist das versenden von Daten an mehrere Benutzer. Hier muss der
+Client sein Paket nur einmal versenden und alle Teilnehmenden Nutzer in einem Channel können diese Nachricht einsehen, sofern dies
+gewollt ist.
+
diff --git a/ausarbeitung/Grundlagen.aux b/ausarbeitung/Grundlagen.aux
new file mode 100644
index 0000000..74d60b1
--- /dev/null
+++ b/ausarbeitung/Grundlagen.aux
@@ -0,0 +1,39 @@
+\relax
+\citation{Latitude}
+\citation{SPALS}
+\citation{FriendSensing}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Grundlagen}{3}{section.2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Aktueller Stand}{3}{subsection.2.1}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Ziele}{4}{subsection.2.2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Anwendungsm\IeC {\"o}glichkeiten}{4}{subsection.2.3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Anforderungen}{6}{subsection.2.4}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Verfahren}{6}{subsection.2.5}}
+\citation{IRC}
+\@setckpt{Grundlagen}{
+\setcounter{page}{8}
+\setcounter{equation}{0}
+\setcounter{enumi}{0}
+\setcounter{enumii}{0}
+\setcounter{enumiii}{0}
+\setcounter{enumiv}{0}
+\setcounter{footnote}{0}
+\setcounter{mpfootnote}{0}
+\setcounter{part}{0}
+\setcounter{section}{2}
+\setcounter{subsection}{5}
+\setcounter{subsubsection}{0}
+\setcounter{paragraph}{0}
+\setcounter{subparagraph}{0}
+\setcounter{figure}{0}
+\setcounter{table}{0}
+\setcounter{NAT@ctr}{0}
+\setcounter{parentequation}{0}
+\setcounter{Item}{0}
+\setcounter{lstlisting}{0}
+\setcounter{lstnumber}{1}
+\setcounter{subfigure}{0}
+\setcounter{lofdepth}{1}
+\setcounter{subtable}{0}
+\setcounter{lotdepth}{1}
+\setcounter{section@level}{2}
+}
diff --git a/ausarbeitung/Grundlagen.tex b/ausarbeitung/Grundlagen.tex
new file mode 100644
index 0000000..9bd815d
--- /dev/null
+++ b/ausarbeitung/Grundlagen.tex
@@ -0,0 +1,150 @@
+\section{Grundlagen}
+
+In diesem ersten Teil dieser Bachelor-Arbeit wird der momentane Softwarestand von \textit{location awareness} auf mobilen Geräten
+aufgezeigt. Es wird auch analysiert werden, was für Anforderungen an ein Programm dieser Art gibt um einen sicheren Datenverkehr
+zu garantieren.
+
+\subsection{Aktueller Stand}
+Da so gut wie alle aktuellen Smart Phones mit einem \textit{GPS} ausgestattet sind existieren für die verschiedenen
+Betriebssysteme schon eine Reihe von Anwendungen die Funktionalitäten für \textit{location awareness} bieten. So existieren
+Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching} zu betreiben. Es
+existieren auch eine Menge an Anwendungen die die eigene Position für Freunde sichtbar macht.\newline
+So bietet \textit{Google} den Dienst \textit{Google Latitude} \citep{Latitude} an. Bei diesem Dienst ist es möglich die Position
+von Freunden, die diesen auch 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-Funkzelle} zu bestimmen. Es existiert auch eine Paper mit dem
+Titel \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS}. Hierfür wurde ein Dienst für mobile Geräte implementiert,
+welcher Daten verschlüsselt an mehrere Nutzer sendet. Dieser Dienst wurde auch mit einem möglichst einfachen und verlässlichen
+Protokoll entworfen um die Berechnungszeiten niedrig zu halten. Des weiteren hat man in dem Paper \textit{FriendSensing:
+Recommending Friends Using Mobile Phones} \citep{FriendSensing} Möglichkeiten erörtert um die Position anderer Benutzer mithilfe
+von \textit{Bluetooth} zu bestimmen. Hierbei registrierte eine Software wie oft welcher Nutzer mit einem anderen in Kontakt stand
+und wie oft sie in Reichweite von \textit{Bluetooth} waren. Diese Aufzählung, über Software die sich mit der Thematik von
+\textit{location awareness} auseinandersetzt könnte an dieser Stelle noch weiter fortgeführt werden da es hierfür Unmengen an
+Programmen gibt. \newline
+
+Allerdings nutzen diese Programme, die oft auf \textit{Google Maps} basieren, immer das Prinzip eines zentralen Knotenpunktes, an
+welchen die Positionsdaten gesendet werden und dieser diese dann weiterleitet. Somit existiert immer eine zentrale
+Kontrollinstanz, welche Einsicht in die Daten der Nutzer hat, während die Nutzer selbst immer nur Zugang zu den für sie bestimmten
+ Daten besitzen. Somit können die Nutzer auch nicht die Nutzung ihrer Daten durch den Anbieter einsehen. Die folgen hiervon
+könnten sein, dass zum Beispiel der Anbieter gezielt Werbung für die Position der Nutzer einspielt, da er ihren Aufenthaltsort
+immer kennt. \newline
+
+Bestehende Software dieser Art verschlüsselt auch in den seltensten Fällen die versendeten Daten. Da es sich bei Positionsdaten
+um sehr sensible Daten handelt ist dies ein großes Manko. So können Dritte den Datenverkehr abhören und auch Positionsdaten von
+Nutzern erhalten die diese nur einer bestimmten Gruppe zur Verfügung stellen wollten. Sind diese Positionsdaten ersteinmal
+gesammelt können ohne weiteres Bewegungsprofile erstellt und missbraucht werden. Der Benutzer begibt sich also mit der Nutzung von
+solchen Programmen in die Gefahr das regelmäßige Aufenthaltsorte erkannt werden und der ständig aufspürbar ist. Somit stellen
+solche Dienste, die sensible Daten dieser Art ohne Verschlüsselung versenden, eine starke Einschränkung für die Privatsphäre dar.
+\newline
+
+\subsection{Ziele}
+
+Die obigen zwei Punkte wurden bisher in den meisten Fällen noch nicht als Software realisiert. Somit besteht seitens der Nutzer
+mit Sicherheit eine Nachfrage nach einer Software welche ihre Persönlichen Daten auf sicherem Wege schützt und trotzdem noch die
+gewohnte Funktionalität bietet. Hierfür muss sichergestellt werden, dass es dem Nutzer ohne Fachkentniss möglich ist, Schlüssel
+zur Verschlüsselung untereinander auszutauschen und somit festzulegen wer alles diese Positionsdaten erhalten darf. Des
+weiteren muss beim Schlüsselaustausch gewährleistet sein, dass der Schlüssel auf eine Sichere Art und weiße übertragen
+wird, ohne das andere diesen abfangen können. Hierbei muss allerdings beachtet werden, dass diese Software auf mobilen Geräten
+lauffähig sein soll. Es muss also gewährleistet werden dass die genutzten Algorithmen nicht zu berechnungsintensiv sind, die
+Sicherheit der Daten aber trotz allem gewährleistet ist. \newline
+
+Da auch ein zentraler Knoten, über den der gesamte Datenverkehr aller Benutzer läuft, unerwünscht ist, muss hier ein
+Kommunikationsdienst genutzt werden, welcher nach einem dezentralen Prinzip funktioniert. Auch hier muss, wie bei der
+Datenverschlüsselung, gewährleistet sein dass die Bedinung für den Anwender möglichst einfach gehalten wird und er somit ohne
+Aufwand und Fachwissen die Kommunikationsparameter einrichten und ändern kann. \newline
+
+Da mittlerweile eine große Anzahl an unterschiedlichen Plattformen für mobile Geräte existieren, sollte gewährleistet sein dass
+die Software auf möglichst vielen dieser Betriebssystemen lauffähig ist. So ist gewährleistet, dass möglichst viele Benutzer
+erreicht werden. \newline
+
+\subsection{Anwendungsmöglichkeiten}
+
+Wenn nun eine Benutzergruppe diese Programm nutzen möchte, so sollte sie in der Lage sein mit einfachen mitteln die nötigen
+Parameter zu verteilen. Hierzu betrachten wir den möglichen Fall, dass eine Gruppe von Touristen in einer ihnen fremden Stadt
+unterwegs sind. Diese möchten nun auf eigene Faust diese Stadt erkunden. Hierzu müssen zuerst geignete Kartendaten vorhanden
+sein. Hier sollten, wenn möglich, freie Kartendaten verwendet werden um Nebenkosten zu verringern. Es muss allerdings darauf
+geachtet Ist dies der Fall, so wird ein Schlüssel erstellt und an alle Teilnehmer dieser Gruppe verteilt. Beim verteilen stellt
+sich nun die Frage wie dies ohne großen Aufwand aber mit maximaler Sicherheit möglich ist. Hier könnte nun ein Gruppenmitglied
+einen oder mehrere Schlüssel erstellen und diese sich in Form eines \textit{2D-Barcodes} ausgeben lasen. Dieser Barcode kann nun
+von den anderen Nutzern, mit deren Smart Phones, gescannt und wieder in einen Schlüssel, bestehend aus Zeichenketten, umgewandelt
+werden. Da dies keine Kommunikation zwischen den Geräten erfordert kann kein dritter diese Schlüssel während der Datenübertragung
+abfangen.\newline
+Nun stellt sich allerdings auch die Frage nach der Anzahl der zu verteilenden Schlüssel. Je nach Art der Verschlüsselung reicht
+ein Schlüssel aus, oder sind mehrere nötig. Würde die Software eine asymmetrische Verschlüsselung benutzen, so müsste jeder
+Nutzer einen privaten Schlüssel erstellen und sich, mittels scannen eines Barcodes, den öffentlichen Schlüssel besorgen. Dies
+hätte zur folge das man, je nach Gruppe mit der kommuniziert werden soll, immer mehrere Schlüssel besitzen und verwalten müsste.
+Je nach gewähltem Verfahren kann auch zusätzlich noch ein Zertifikat für diese Schlüssel hinzukommen. Der normale Benutzer müsste
+hier also schon seine Schlüssel richtig verwalten. Ein symmetrischen Kryptographieverfahren hätte hier den Vorteil, dass man nur
+einen Schlüssel an alle Benutzer der Gruppe verteilen müsste. Des weitern fällt der Verwaltungsaufwand hier wesentlich geringer
+aus, da nur ein Schlüssel pro Gruppe von nöten ist. Was des weiteren auch noch für ein symmetrisches Verfahren sprechen würde,
+ist die Tatsache dass diese einen wesentlich geringeren Berechnungsaufwand haben und somit der Akku länger halten würde.\newline
+Nachdem diese Gruppe von Touristen nun ihre Schlüssel ausgetauscht haben erkunden sie unabhängig voneinander die Stadt. Dabei
+möchten sie sehen wo die anderen Mitreisenden sich gerade befinden. Allerdings ist es für die Teilnehmer hier nicht von
+Interesse, die anderen Teilnehmer auserhalb eines bestimmten Radiuses zu sehen, da der Fussweg zu deren Standort zu weit wäre. Es
+wäre also nützlich für den Benutzer wenn er ab einem bestimmten Radius die anderen Teilnehmer ausblenden könnte. Endeckt nun ein
+Mitglied dieser Reisegruppe eine besondere Sehenswürdigkeit, möchte er dies vielleicht einem Freund aus der Reisegruppe
+mitteilen. Zu diesem Zweck bräuchte er eine Chatfunktion, mit welcher er andere Gruppenmitglieder kontaktieren und mit ihnen
+Nachrichten austauschen kann. Allerdings sollte auch diese Funktion aus Gründen der Privatsphäre Daten nur in einem
+verschlüsselten Format übertragen. Des weiteren sollte es möglich sein nur mit dieser einen Person gezielt zu chatten, ohne das
+die gesamte Gruppe mithören kann. Natürlich könnte man sich auch hier noch eine Zusatzfunktion überlegen, die einen Chat mit
+der gesamten Gruppe ermöglicht. Wenn dieser Tourist nun seinen Freund per Chat kontaktiert hat, können sich diese nun einen
+Treffpunkt verabreden und diesen entweder auf der Karte dem anderen Teilnehmer senden und im Anschluss den Weg dorthin sich
+errechnen lassen. \newline
+
+Ein weiterer möglicher Fall wäre dass man mit Freunden kommunzieren möchte, aber keine \textit{UMTS} Datenflatrate
+besitzt. Es sollte also auch sichergestellt sein dass die Datenpakete, welche versandt werden, nicht allzu groß sind und auch die
+Anzahl der Hintergrunddaten, die vom verwendeten Protokoll versandt werden, nicht zu groß ist. So ist zum einen gesichert das
+nicht zu hohe Verbindungskosten entsehen und zum anderen auch der Berechnungsaufwand für das erstellen und versenden dieser
+Pakete nicht zu groß ist. \newline
+
+\subsection{Anforderungen}
+
+Anhand der zwei vorrangegangenen Beispielen ist gut erkennbar was an Funktionalität benötigt wird. So sollte es möglich sein die
+Standorte anderer Nutzer zu auf einer Karte zu anzuzeigen. Damit für andere Nutzer die eigene Position sichtbar ist, muss diese in
+einem gängigen Format versendet werden. Hierfür ist das Format \textit{Latitude}/\textit{Longtitude} bestens geignet. Um
+die Datensicherheit zu garantieren müssen diese Positionsdaten in verschlüsselter Form versendet werden. \newline
+
+Um die Position anderer Teilnehmer zu visualisieren muss das Programm in der Lage sein, die eigehenden Positionsdaten sowohl zu
+entschlüsseln, als auch diese auf einer Karte darzustellen. Des weiteren muss ein Format für die Karte genutzt werden, welches auf
+dem mobilen Gerät darstelbar ist und man einfach auf den neusten Stand bringen kann. Es sollte auch möglich sein, nur
+Benutzer innerhalb einer bestimmten Entfernung anzuzeigen, da eine Person die sich in 6 Kilometer Entfernung aufhält für Dienste
+dieser Art nur begrenzt sinnvoll sind. \newline
+
+Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen sollte es möglich sein Chatnachrichten auszutauschen. Auch
+hier muss gewährleistet sein das der Datenverkehr verschlüsselt ablaufen muss und somit dritte nicht die Konversation mitlesen
+können. \newline
+
+Um einen Schlüssel an eine Person weiterzugeben, deren Positon man sehen oder mit ihr kommunizieren möchte, muss es eine
+Möglichkeit geben diesen Schlüssel auf einfach Weise weiterzugeben. Hierzu kann aus einer vorher festgelegten Zeichenkette einen
+2D-Barcode erstellt und angezeigt werden. Zur Weitergabe des Schlüssels muss nun der andere Anwender diesen vom Display
+fotographieren. \newline
+
+\subsection{Verfahren}
+
+Anhanden der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
+gewählt werden. Wie schon erwähnt muss die Verschlüsselung möglichst einfach zu berechnen sein und dabei trotzdem noch
+bestmögliche Verschlüsselung bieten. Wie schon erwähnt ist aufgrund von sowohl Berechnungsaufwand als auch von
+Schlüsselverwaltung ein symmetrisches Verfahren besser geeignet als ein asymmetrisches. Es ist einfacher einen Schlüssel pro
+Gruppe zu verwalten als einen privaten, einen öffentlichen sowie unter Umständen noch ein Zertifikat. Die Daten werden also
+durch Client A ver- und von Client B entschlüssel. \newline
+Die Schlüssel können, wie schon beschrieben, durch das Erstellen eines \textit{2D-Barcodes} und das fotographieren von diesem
+ausgetauscht werden.
+
+Für die Kommunikation zwischen den einzelnen Teilnehmern ist ein dezentrales Protokoll von nöten, welches möglichst wenig
+Daten verschickt welche nichts mit der eigentlichen Kommunikation zu tun haben, das stabil läuft und welches beim Ausfallen eines
+Knotenpunktes diesen mit einem anderen ersetzen kann.\newline
+Eine Möglichkeit wäre hier eine \textit{Peer-to-Peer} Lösung. Allerdings verbietet ein Großteil der \textit{GSM}-Provider
+\textit{Peer-to-Peer} Datenverkehr innerhalb ihrer Netze, womit diese Lösung praktisch nicht anwendbar wäre. Ein Vorhandenes
+Protokoll, welches ein aktives Netzwerk bereitstellt und dieses und auch rege genutzt wird, ist das \textit{IRC}-Protokoll
+\citep{IRC}. Dieses stellt mehrere Server zur Verfügung, wobei jeder Nutzer auch einen eigenen Server bereitstellen kann, die
+mehrere \textit{Channels} haben können. \textit{IRC} ist ein Chatprotokoll welches auch Dateien versenden kann. Würde nun ein
+Server ausfallen, so könnten die Nutzer auf einen anderen \textit{IRC}-Server wechseln. Des weiteren sind \textit{IRC}-Netzwerke
+nicht mit einem zentralen Knotenpunkt organisiert, sondern bestehen aus mehreren Servern. Somit ist auch die Anforderung der
+dezentralität gegeben, da Nutzer beliebig zwischen den Servern wechseln können.\newline
+
+Durch die Wahl dieser Lösung ist also garantiert, dass sowohl die Berechnungszeiten durch ein symmetrisches Verfahren niedrig
+gehalten werden, der Verwaltungsaufwand für die Schlüssel ist gering da nur ein Schlüssel pro Gruppe gespeichert werden muss und
+die Verteilung der Schlüssel kann durch die angesprochenen Barcodes erfolgen. Bei der Kommunikation gibt es keinen einzelnen
+Zentralen Server der den gesamten Datenverkehr einsehen kann. Der Verkehr erfolgt über diesen nur in verschlüsselter Form. Des
+weiteren kann jeder beliebige \textit{IRC}-Server gewählt werden. Somit sind die Eingangs erwähnten Punkte, Verschlüsselung und
+dezentralles Protokoll, hiermit abgedeckt und die Privatsphäre ist für den Anwender, anderst als bei anderen Anwendungen
+dieser Art, gesichert. \ No newline at end of file
diff --git a/ausarbeitung/Grundlagen.tex.backup b/ausarbeitung/Grundlagen.tex.backup
new file mode 100644
index 0000000..c928ddc
--- /dev/null
+++ b/ausarbeitung/Grundlagen.tex.backup
@@ -0,0 +1,149 @@
+\section{Grundlagen}
+
+In diesem ersten Teil dieser Bachelor-Arbeit wird der momentane Softwarestand von \textit{location awareness} auf mobilen Geräten
+aufgezeigt. Es wird auch analysiert werden, was für Anforderungen an ein Programm dieser Art gibt um einen sicheren Datenverkehr
+zu garantieren.
+
+\subsection{Aktueller Stand}
+Da so gut wie alle aktuellen Smart Phones mit einem \textit{GPS} ausgestattet sind existieren für die verschiedenen
+Betriebssysteme schon eine Reihe von Anwendungen die Funktionalitäten für \textit{location awareness} bieten. So existieren
+Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching} zu betreiben. Es
+existieren auch eine Menge an Anwendungen die die eigene Position für Freunde sichtbar macht.\newline
+So bietet \textit{Google} den Dienst \textit{Google Latitude} \citep{Latitude} an. Bei diesem Dienst ist es möglich die Position
+von Freunden, die diesen auch 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-Funkzelle} zu bestimmen. Es existiert auch eine Paper mit dem
+Titel \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS}. Hierfür wurde ein Dienst für mobile Geräte implementiert,
+welcher Daten verschlüsselt an mehrere Nutzer sendet. Dieser Dienst wurde auch mit einem möglichst einfachen und verlässlichen
+Protokoll entworfen um die Berechnungszeiten niedrig zu halten. Des weiteren hat man in dem Paper \textit{FriendSensing:
+Recommending Friends Using Mobile Phones} \citep{FriendSensing} Möglichkeiten erörtert um die Position anderer Benutzer mithilfe
+von \textit{Bluetooth} zu bestimmen. Hierbei registrierte eine Software wie oft welcher Nutzer mit einem anderen in Kontakt stand
+und wie oft sie \textit{Bluetooth} reichweite waren.
+
+
+Allerdings nutzen diese Programme, die oft auf \textit{Google Maps} basieren, immer das Prinzip eines zentralen Knotenpunktes, an
+welchen die Positionsdaten gesendet werden und dieser diese dann weiterleitet. Somit existiert immer eine zentrale
+Kontrollinstanz, welche Einsicht in die Daten der Nutzer hat, während die Nutzer selbst immer nur Zugang zu den für sie bestimmten
+ Daten besitzen. Somit können die Nutzer auch nicht die Nutzung ihrer Daten durch den Anbieter einsehen. Die folgen hiervon
+könnten sein, dass zum Beispiel der Anbieter gezielt Werbung für die Position der Nutzer einspielt, da er ihren Aufenthaltsort
+immer kennt. \newline
+
+Bestehende Software dieser Art verschlüsselt auch in den seltensten Fällen die versendeten Daten. Da es sich bei Positionsdaten
+um sehr sensible Daten handelt ist dies ein großes Manko. So können Dritte den Datenverkehr abhören und auch Positionsdaten von
+Nutzern erhalten die diese nur einer bestimmten Gruppe zur Verfügung stellen wollten. Sind diese Positionsdaten ersteinmal
+gesammelt können ohne weiteres Bewegungsprofile erstellt und missbraucht werden. Der Benutzer begibt sich also mit der Nutzung von
+solchen Programmen in die Gefahr das regelmäßige Aufenthaltsorte erkannt werden und der ständig aufspürbar ist. Somit stellen
+solche Dienste, die sensible Daten dieser Art ohne Verschlüsselung versenden, eine starke Einschränkung für die Privatsphäre dar.
+\newline
+
+\subsection{Ziele}
+
+Die obigen zwei Punkte wurden bisher in den meisten Fällen noch nicht als Software realisiert. Somit besteht seitens der Nutzer
+mit Sicherheit eine Nachfrage nach einer Software welche ihre Persönlichen Daten auf sicherem Wege schützt und trotzdem noch die
+gewohnte Funktionalität bietet. Hierfür muss sichergestellt werden, dass es dem Nutzer ohne Fachkentniss möglich ist, Schlüssel
+zur Verschlüsselung untereinander auszutauschen und somit festzulegen wer alles diese Positionsdaten erhalten darf. Des
+weiteren muss beim Schlüsselaustausch gewährleistet sein, dass der Schlüssel auf eine Sichere Art und weiße übertragen
+wird, ohne das andere diesen abfangen können. Hierbei muss allerdings beachtet werden, dass diese Software auf mobilen Geräten
+lauffähig sein soll. Es muss also gewährleistet werden dass die genutzten Algorithmen nicht zu berechnungsintensiv sind, die
+Sicherheit der Daten aber trotz allem gewährleistet ist. \newline
+
+Da auch ein zentraler Knoten, über den der gesamte Datenverkehr aller Benutzer läuft, unerwünscht ist, muss hier ein
+Kommunikationsdienst genutzt werden, welcher nach einem dezentralen Prinzip funktioniert. Auch hier muss, wie bei der
+Datenverschlüsselung, gewährleistet sein dass die Bedinung für den Anwender möglichst einfach gehalten wird und er somit ohne
+Aufwand und Fachwissen die Kommunikationsparameter einrichten und ändern kann. \newline
+
+Da mittlerweile eine große Anzahl an unterschiedlichen Plattformen für mobile Geräte existieren, sollte gewährleistet sein dass
+die Software auf möglichst vielen dieser Betriebssystemen lauffähig ist. So ist gewährleistet, dass möglichst viele Benutzer
+erreicht werden. \newline
+
+\subsection{Anwendungsmöglichkeiten}
+
+Wenn nun eine Benutzergruppe diese Programm nutzen möchte, so sollte sie in der Lage sein mit einfachen mitteln die nötigen
+Parameter zu verteilen. Hierzu betrachten wir den möglichen Fall, dass eine Gruppe von Touristen in einer ihnen fremden Stadt
+unterwegs sind. Diese möchten nun auf eigene Faust diese Stadt erkunden. Hierzu müssen zuerst geignete Kartendaten vorhanden
+sein. Hier sollten, wenn möglich, freie Kartendaten verwendet werden um Nebenkosten zu verringern. Es muss allerdings darauf
+geachtet Ist dies der Fall, so wird ein Schlüssel erstellt und an alle Teilnehmer dieser Gruppe verteilt. Beim verteilen stellt
+sich nun die Frage wie dies ohne großen Aufwand aber mit maximaler Sicherheit möglich ist. Hier könnte nun ein Gruppenmitglied
+einen oder mehrere Schlüssel erstellen und diese sich in Form eines \textit{2D-Barcodes} ausgeben lasen. Dieser Barcode kann nun
+von den anderen Nutzern, mit deren Smart Phones, gescannt und wieder in einen Schlüssel, bestehend aus Zeichenketten, umgewandelt
+werden. Da dies keine Kommunikation zwischen den Geräten erfordert kann kein dritter diese Schlüssel während der Datenübertragung
+abfangen.\newline
+Nun stellt sich allerdings auch die Frage nach der Anzahl der zu verteilenden Schlüssel. Je nach Art der Verschlüsselung reicht
+ein Schlüssel aus, oder sind mehrere nötig. Würde die Software eine asymmetrische Verschlüsselung benutzen, so müsste jeder
+Nutzer einen privaten Schlüssel erstellen und sich, mittels scannen eines Barcodes, den öffentlichen Schlüssel besorgen. Dies
+hätte zur folge das man, je nach Gruppe mit der kommuniziert werden soll, immer mehrere Schlüssel besitzen und verwalten müsste.
+Je nach gewähltem Verfahren kann auch zusätzlich noch ein Zertifikat für diese Schlüssel hinzukommen. Der normale Benutzer müsste
+hier also schon seine Schlüssel richtig verwalten. Ein symmetrischen Kryptographieverfahren hätte hier den Vorteil, dass man nur
+einen Schlüssel an alle Benutzer der Gruppe verteilen müsste. Des weitern fällt der Verwaltungsaufwand hier wesentlich geringer
+aus, da nur ein Schlüssel pro Gruppe von nöten ist. Was des weiteren auch noch für ein symmetrisches Verfahren sprechen würde,
+ist die Tatsache dass diese einen wesentlich geringeren Berechnungsaufwand haben und somit der Akku länger halten würde.\newline
+Nachdem diese Gruppe von Touristen nun ihre Schlüssel ausgetauscht haben erkunden sie unabhängig voneinander die Stadt. Dabei
+möchten sie sehen wo die anderen Mitreisenden sich gerade befinden. Allerdings ist es für die Teilnehmer hier nicht von
+Interesse, die anderen Teilnehmer auserhalb eines bestimmten Radiuses zu sehen, da der Fussweg zu deren Standort zu weit wäre. Es
+wäre also nützlich für den Benutzer wenn er ab einem bestimmten Radius die anderen Teilnehmer ausblenden könnte. Endeckt nun ein
+Mitglied dieser Reisegruppe eine besondere Sehenswürdigkeit, möchte er dies vielleicht einem Freund aus der Reisegruppe
+mitteilen. Zu diesem Zweck bräuchte er eine Chatfunktion, mit welcher er andere Gruppenmitglieder kontaktieren und mit ihnen
+Nachrichten austauschen kann. Allerdings sollte auch diese Funktion aus Gründen der Privatsphäre Daten nur in einem
+verschlüsselten Format übertragen. Des weiteren sollte es möglich sein nur mit dieser einen Person gezielt zu chatten, ohne das
+die gesamte Gruppe mithören kann. Natürlich könnte man sich auch hier noch eine Zusatzfunktion überlegen, die einen Chat mit
+der gesamten Gruppe ermöglicht. Wenn dieser Tourist nun seinen Freund per Chat kontaktiert hat, können sich diese nun einen
+Treffpunkt verabreden und diesen entweder auf der Karte dem anderen Teilnehmer senden und im Anschluss den Weg dorthin sich
+errechnen lassen. \newline
+
+Ein weiterer möglicher Fall wäre dass man mit Freunden kommunzieren möchte, aber keine \textit{UMTS} Datenflatrate
+besitzt. Es sollte also auch sichergestellt sein dass die Datenpakete, welche versandt werden, nicht allzu groß sind und auch die
+Anzahl der Hintergrunddaten, die vom verwendeten Protokoll versandt werden, nicht zu groß ist. So ist zum einen gesichert das
+nicht zu hohe Verbindungskosten entsehen und zum anderen auch der Berechnungsaufwand für das erstellen und versenden dieser
+Pakete nicht zu groß ist. \newline
+
+\subsection{Anforderungen}
+
+Anhand der zwei vorrangegangenen Beispielen ist gut erkennbar was an Funktionalität benötigt wird. So sollte es möglich sein die
+Standorte anderer Nutzer zu auf einer Karte zu anzuzeigen. Damit für andere Nutzer die eigene Position sichtbar ist, muss diese in
+einem gängigen Format versendet werden. Hierfür ist das Format \textit{Latitude}/\textit{Longtitude} bestens geignet. Um
+die Datensicherheit zu garantieren müssen diese Positionsdaten in verschlüsselter Form versendet werden. \newline
+
+Um die Position anderer Teilnehmer zu visualisieren muss das Programm in der Lage sein, die eigehenden Positionsdaten sowohl zu
+entschlüsseln, als auch diese auf einer Karte darzustellen. Des weiteren muss ein Format für die Karte genutzt werden, welches auf
+dem mobilen Gerät darstelbar ist und man einfach auf den neusten Stand bringen kann. Es sollte auch möglich sein, nur
+Benutzer innerhalb einer bestimmten Entfernung anzuzeigen, da eine Person die sich in 6 Kilometer Entfernung aufhält für Dienste
+dieser Art nur begrenzt sinnvoll sind. \newline
+
+Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen sollte es möglich sein Chatnachrichten auszutauschen. Auch
+hier muss gewährleistet sein das der Datenverkehr verschlüsselt ablaufen muss und somit dritte nicht die Konversation mitlesen
+können. \newline
+
+Um einen Schlüssel an eine Person weiterzugeben, deren Positon man sehen oder mit ihr kommunizieren möchte, muss es eine
+Möglichkeit geben diesen Schlüssel auf einfach Weise weiterzugeben. Hierzu kann aus einer vorher festgelegten Zeichenkette einen
+2D-Barcode erstellt und angezeigt werden. Zur Weitergabe des Schlüssels muss nun der andere Anwender diesen vom Display
+fotographieren. \newline
+
+\subsection{Verfahren}
+
+Anhanden der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
+gewählt werden. Wie schon erwähnt muss die Verschlüsselung möglichst einfach zu berechnen sein und dabei trotzdem noch
+bestmögliche Verschlüsselung bieten. Wie schon erwähnt ist aufgrund von sowohl Berechnungsaufwand als auch von
+Schlüsselverwaltung ein symmetrisches Verfahren besser geeignet als ein asymmetrisches. Es ist einfacher einen Schlüssel pro
+Gruppe zu verwalten als einen privaten, einen öffentlichen sowie unter Umständen noch ein Zertifikat. Die Daten werden also
+durch Client A ver- und von Client B entschlüssel. \newline
+Die Schlüssel können, wie schon beschrieben, durch das Erstellen eines \textit{2D-Barcodes} und das fotographieren von diesem
+ausgetauscht werden.
+
+Für die Kommunikation zwischen den einzelnen Teilnehmern ist ein dezentrales Protokoll von nöten, welches möglichst wenig
+Daten verschickt welche nichts mit der eigentlichen Kommunikation zu tun haben, das stabil läuft und welches beim Ausfallen eines
+Knotenpunktes diesen mit einem anderen ersetzen kann.\newline
+Eine Möglichkeit wäre hier eine \textit{Peer-to-Peer} Lösung. Allerdings verbietet ein Großteil der \textit{GSM}-Provider
+\textit{Peer-to-Peer} Datenverkehr innerhalb ihrer Netze, womit diese Lösung praktisch nicht anwendbar wäre. Ein Vorhandenes
+Protokoll, welches ein aktives Netzwerk bereitstellt und dieses und auch rege genutzt wird, ist das \textit{IRC}-Protokoll
+\citep{IRC}. Dieses stellt mehrere Server zur Verfügung, wobei jeder Nutzer auch einen eigenen Server bereitstellen kann, die
+mehrere \textit{Channels} haben können. \textit{IRC} ist ein Chatprotokoll welches auch Dateien versenden kann. Würde nun ein
+Server ausfallen, so könnten die Nutzer auf einen anderen \textit{IRC}-Server wechseln. Des weiteren sind \textit{IRC}-Netzwerke
+nicht mit einem zentralen Knotenpunkt organisiert, sondern bestehen aus mehreren Servern. Somit ist auch die Anforderung der
+dezentralität gegeben, da Nutzer beliebig zwischen den Servern wechseln können.\newline
+
+Durch die Wahl dieser Lösung ist also garantiert, dass sowohl die Berechnungszeiten durch ein symmetrisches Verfahren niedrig
+gehalten werden, der Verwaltungsaufwand für die Schlüssel ist gering da nur ein Schlüssel pro Gruppe gespeichert werden muss und
+die Verteilung der Schlüssel kann durch die angesprochenen Barcodes erfolgen. Bei der Kommunikation gibt es keinen einzelnen
+Zentralen Server der den gesamten Datenverkehr einsehen kann. Der Verkehr erfolgt über diesen nur in verschlüsselter Form. Des
+weiteren kann jeder beliebige \textit{IRC}-Server gewählt werden. Somit sind die Eingangs erwähnten Punkte, Verschlüsselung und
+dezentralles Protokoll, hiermit abgedeckt und die Privatsphäre ist für den Anwender, anderst als bei anderen Anwendungen
+dieser Art, gesichert. \ No newline at end of file
diff --git a/ausarbeitung/Grundlagen.tex~ b/ausarbeitung/Grundlagen.tex~
new file mode 100644
index 0000000..9bd815d
--- /dev/null
+++ b/ausarbeitung/Grundlagen.tex~
@@ -0,0 +1,150 @@
+\section{Grundlagen}
+
+In diesem ersten Teil dieser Bachelor-Arbeit wird der momentane Softwarestand von \textit{location awareness} auf mobilen Geräten
+aufgezeigt. Es wird auch analysiert werden, was für Anforderungen an ein Programm dieser Art gibt um einen sicheren Datenverkehr
+zu garantieren.
+
+\subsection{Aktueller Stand}
+Da so gut wie alle aktuellen Smart Phones mit einem \textit{GPS} ausgestattet sind existieren für die verschiedenen
+Betriebssysteme schon eine Reihe von Anwendungen die Funktionalitäten für \textit{location awareness} bieten. So existieren
+Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching} zu betreiben. Es
+existieren auch eine Menge an Anwendungen die die eigene Position für Freunde sichtbar macht.\newline
+So bietet \textit{Google} den Dienst \textit{Google Latitude} \citep{Latitude} an. Bei diesem Dienst ist es möglich die Position
+von Freunden, die diesen auch 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-Funkzelle} zu bestimmen. Es existiert auch eine Paper mit dem
+Titel \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS}. Hierfür wurde ein Dienst für mobile Geräte implementiert,
+welcher Daten verschlüsselt an mehrere Nutzer sendet. Dieser Dienst wurde auch mit einem möglichst einfachen und verlässlichen
+Protokoll entworfen um die Berechnungszeiten niedrig zu halten. Des weiteren hat man in dem Paper \textit{FriendSensing:
+Recommending Friends Using Mobile Phones} \citep{FriendSensing} Möglichkeiten erörtert um die Position anderer Benutzer mithilfe
+von \textit{Bluetooth} zu bestimmen. Hierbei registrierte eine Software wie oft welcher Nutzer mit einem anderen in Kontakt stand
+und wie oft sie in Reichweite von \textit{Bluetooth} waren. Diese Aufzählung, über Software die sich mit der Thematik von
+\textit{location awareness} auseinandersetzt könnte an dieser Stelle noch weiter fortgeführt werden da es hierfür Unmengen an
+Programmen gibt. \newline
+
+Allerdings nutzen diese Programme, die oft auf \textit{Google Maps} basieren, immer das Prinzip eines zentralen Knotenpunktes, an
+welchen die Positionsdaten gesendet werden und dieser diese dann weiterleitet. Somit existiert immer eine zentrale
+Kontrollinstanz, welche Einsicht in die Daten der Nutzer hat, während die Nutzer selbst immer nur Zugang zu den für sie bestimmten
+ Daten besitzen. Somit können die Nutzer auch nicht die Nutzung ihrer Daten durch den Anbieter einsehen. Die folgen hiervon
+könnten sein, dass zum Beispiel der Anbieter gezielt Werbung für die Position der Nutzer einspielt, da er ihren Aufenthaltsort
+immer kennt. \newline
+
+Bestehende Software dieser Art verschlüsselt auch in den seltensten Fällen die versendeten Daten. Da es sich bei Positionsdaten
+um sehr sensible Daten handelt ist dies ein großes Manko. So können Dritte den Datenverkehr abhören und auch Positionsdaten von
+Nutzern erhalten die diese nur einer bestimmten Gruppe zur Verfügung stellen wollten. Sind diese Positionsdaten ersteinmal
+gesammelt können ohne weiteres Bewegungsprofile erstellt und missbraucht werden. Der Benutzer begibt sich also mit der Nutzung von
+solchen Programmen in die Gefahr das regelmäßige Aufenthaltsorte erkannt werden und der ständig aufspürbar ist. Somit stellen
+solche Dienste, die sensible Daten dieser Art ohne Verschlüsselung versenden, eine starke Einschränkung für die Privatsphäre dar.
+\newline
+
+\subsection{Ziele}
+
+Die obigen zwei Punkte wurden bisher in den meisten Fällen noch nicht als Software realisiert. Somit besteht seitens der Nutzer
+mit Sicherheit eine Nachfrage nach einer Software welche ihre Persönlichen Daten auf sicherem Wege schützt und trotzdem noch die
+gewohnte Funktionalität bietet. Hierfür muss sichergestellt werden, dass es dem Nutzer ohne Fachkentniss möglich ist, Schlüssel
+zur Verschlüsselung untereinander auszutauschen und somit festzulegen wer alles diese Positionsdaten erhalten darf. Des
+weiteren muss beim Schlüsselaustausch gewährleistet sein, dass der Schlüssel auf eine Sichere Art und weiße übertragen
+wird, ohne das andere diesen abfangen können. Hierbei muss allerdings beachtet werden, dass diese Software auf mobilen Geräten
+lauffähig sein soll. Es muss also gewährleistet werden dass die genutzten Algorithmen nicht zu berechnungsintensiv sind, die
+Sicherheit der Daten aber trotz allem gewährleistet ist. \newline
+
+Da auch ein zentraler Knoten, über den der gesamte Datenverkehr aller Benutzer läuft, unerwünscht ist, muss hier ein
+Kommunikationsdienst genutzt werden, welcher nach einem dezentralen Prinzip funktioniert. Auch hier muss, wie bei der
+Datenverschlüsselung, gewährleistet sein dass die Bedinung für den Anwender möglichst einfach gehalten wird und er somit ohne
+Aufwand und Fachwissen die Kommunikationsparameter einrichten und ändern kann. \newline
+
+Da mittlerweile eine große Anzahl an unterschiedlichen Plattformen für mobile Geräte existieren, sollte gewährleistet sein dass
+die Software auf möglichst vielen dieser Betriebssystemen lauffähig ist. So ist gewährleistet, dass möglichst viele Benutzer
+erreicht werden. \newline
+
+\subsection{Anwendungsmöglichkeiten}
+
+Wenn nun eine Benutzergruppe diese Programm nutzen möchte, so sollte sie in der Lage sein mit einfachen mitteln die nötigen
+Parameter zu verteilen. Hierzu betrachten wir den möglichen Fall, dass eine Gruppe von Touristen in einer ihnen fremden Stadt
+unterwegs sind. Diese möchten nun auf eigene Faust diese Stadt erkunden. Hierzu müssen zuerst geignete Kartendaten vorhanden
+sein. Hier sollten, wenn möglich, freie Kartendaten verwendet werden um Nebenkosten zu verringern. Es muss allerdings darauf
+geachtet Ist dies der Fall, so wird ein Schlüssel erstellt und an alle Teilnehmer dieser Gruppe verteilt. Beim verteilen stellt
+sich nun die Frage wie dies ohne großen Aufwand aber mit maximaler Sicherheit möglich ist. Hier könnte nun ein Gruppenmitglied
+einen oder mehrere Schlüssel erstellen und diese sich in Form eines \textit{2D-Barcodes} ausgeben lasen. Dieser Barcode kann nun
+von den anderen Nutzern, mit deren Smart Phones, gescannt und wieder in einen Schlüssel, bestehend aus Zeichenketten, umgewandelt
+werden. Da dies keine Kommunikation zwischen den Geräten erfordert kann kein dritter diese Schlüssel während der Datenübertragung
+abfangen.\newline
+Nun stellt sich allerdings auch die Frage nach der Anzahl der zu verteilenden Schlüssel. Je nach Art der Verschlüsselung reicht
+ein Schlüssel aus, oder sind mehrere nötig. Würde die Software eine asymmetrische Verschlüsselung benutzen, so müsste jeder
+Nutzer einen privaten Schlüssel erstellen und sich, mittels scannen eines Barcodes, den öffentlichen Schlüssel besorgen. Dies
+hätte zur folge das man, je nach Gruppe mit der kommuniziert werden soll, immer mehrere Schlüssel besitzen und verwalten müsste.
+Je nach gewähltem Verfahren kann auch zusätzlich noch ein Zertifikat für diese Schlüssel hinzukommen. Der normale Benutzer müsste
+hier also schon seine Schlüssel richtig verwalten. Ein symmetrischen Kryptographieverfahren hätte hier den Vorteil, dass man nur
+einen Schlüssel an alle Benutzer der Gruppe verteilen müsste. Des weitern fällt der Verwaltungsaufwand hier wesentlich geringer
+aus, da nur ein Schlüssel pro Gruppe von nöten ist. Was des weiteren auch noch für ein symmetrisches Verfahren sprechen würde,
+ist die Tatsache dass diese einen wesentlich geringeren Berechnungsaufwand haben und somit der Akku länger halten würde.\newline
+Nachdem diese Gruppe von Touristen nun ihre Schlüssel ausgetauscht haben erkunden sie unabhängig voneinander die Stadt. Dabei
+möchten sie sehen wo die anderen Mitreisenden sich gerade befinden. Allerdings ist es für die Teilnehmer hier nicht von
+Interesse, die anderen Teilnehmer auserhalb eines bestimmten Radiuses zu sehen, da der Fussweg zu deren Standort zu weit wäre. Es
+wäre also nützlich für den Benutzer wenn er ab einem bestimmten Radius die anderen Teilnehmer ausblenden könnte. Endeckt nun ein
+Mitglied dieser Reisegruppe eine besondere Sehenswürdigkeit, möchte er dies vielleicht einem Freund aus der Reisegruppe
+mitteilen. Zu diesem Zweck bräuchte er eine Chatfunktion, mit welcher er andere Gruppenmitglieder kontaktieren und mit ihnen
+Nachrichten austauschen kann. Allerdings sollte auch diese Funktion aus Gründen der Privatsphäre Daten nur in einem
+verschlüsselten Format übertragen. Des weiteren sollte es möglich sein nur mit dieser einen Person gezielt zu chatten, ohne das
+die gesamte Gruppe mithören kann. Natürlich könnte man sich auch hier noch eine Zusatzfunktion überlegen, die einen Chat mit
+der gesamten Gruppe ermöglicht. Wenn dieser Tourist nun seinen Freund per Chat kontaktiert hat, können sich diese nun einen
+Treffpunkt verabreden und diesen entweder auf der Karte dem anderen Teilnehmer senden und im Anschluss den Weg dorthin sich
+errechnen lassen. \newline
+
+Ein weiterer möglicher Fall wäre dass man mit Freunden kommunzieren möchte, aber keine \textit{UMTS} Datenflatrate
+besitzt. Es sollte also auch sichergestellt sein dass die Datenpakete, welche versandt werden, nicht allzu groß sind und auch die
+Anzahl der Hintergrunddaten, die vom verwendeten Protokoll versandt werden, nicht zu groß ist. So ist zum einen gesichert das
+nicht zu hohe Verbindungskosten entsehen und zum anderen auch der Berechnungsaufwand für das erstellen und versenden dieser
+Pakete nicht zu groß ist. \newline
+
+\subsection{Anforderungen}
+
+Anhand der zwei vorrangegangenen Beispielen ist gut erkennbar was an Funktionalität benötigt wird. So sollte es möglich sein die
+Standorte anderer Nutzer zu auf einer Karte zu anzuzeigen. Damit für andere Nutzer die eigene Position sichtbar ist, muss diese in
+einem gängigen Format versendet werden. Hierfür ist das Format \textit{Latitude}/\textit{Longtitude} bestens geignet. Um
+die Datensicherheit zu garantieren müssen diese Positionsdaten in verschlüsselter Form versendet werden. \newline
+
+Um die Position anderer Teilnehmer zu visualisieren muss das Programm in der Lage sein, die eigehenden Positionsdaten sowohl zu
+entschlüsseln, als auch diese auf einer Karte darzustellen. Des weiteren muss ein Format für die Karte genutzt werden, welches auf
+dem mobilen Gerät darstelbar ist und man einfach auf den neusten Stand bringen kann. Es sollte auch möglich sein, nur
+Benutzer innerhalb einer bestimmten Entfernung anzuzeigen, da eine Person die sich in 6 Kilometer Entfernung aufhält für Dienste
+dieser Art nur begrenzt sinnvoll sind. \newline
+
+Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen sollte es möglich sein Chatnachrichten auszutauschen. Auch
+hier muss gewährleistet sein das der Datenverkehr verschlüsselt ablaufen muss und somit dritte nicht die Konversation mitlesen
+können. \newline
+
+Um einen Schlüssel an eine Person weiterzugeben, deren Positon man sehen oder mit ihr kommunizieren möchte, muss es eine
+Möglichkeit geben diesen Schlüssel auf einfach Weise weiterzugeben. Hierzu kann aus einer vorher festgelegten Zeichenkette einen
+2D-Barcode erstellt und angezeigt werden. Zur Weitergabe des Schlüssels muss nun der andere Anwender diesen vom Display
+fotographieren. \newline
+
+\subsection{Verfahren}
+
+Anhanden der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
+gewählt werden. Wie schon erwähnt muss die Verschlüsselung möglichst einfach zu berechnen sein und dabei trotzdem noch
+bestmögliche Verschlüsselung bieten. Wie schon erwähnt ist aufgrund von sowohl Berechnungsaufwand als auch von
+Schlüsselverwaltung ein symmetrisches Verfahren besser geeignet als ein asymmetrisches. Es ist einfacher einen Schlüssel pro
+Gruppe zu verwalten als einen privaten, einen öffentlichen sowie unter Umständen noch ein Zertifikat. Die Daten werden also
+durch Client A ver- und von Client B entschlüssel. \newline
+Die Schlüssel können, wie schon beschrieben, durch das Erstellen eines \textit{2D-Barcodes} und das fotographieren von diesem
+ausgetauscht werden.
+
+Für die Kommunikation zwischen den einzelnen Teilnehmern ist ein dezentrales Protokoll von nöten, welches möglichst wenig
+Daten verschickt welche nichts mit der eigentlichen Kommunikation zu tun haben, das stabil läuft und welches beim Ausfallen eines
+Knotenpunktes diesen mit einem anderen ersetzen kann.\newline
+Eine Möglichkeit wäre hier eine \textit{Peer-to-Peer} Lösung. Allerdings verbietet ein Großteil der \textit{GSM}-Provider
+\textit{Peer-to-Peer} Datenverkehr innerhalb ihrer Netze, womit diese Lösung praktisch nicht anwendbar wäre. Ein Vorhandenes
+Protokoll, welches ein aktives Netzwerk bereitstellt und dieses und auch rege genutzt wird, ist das \textit{IRC}-Protokoll
+\citep{IRC}. Dieses stellt mehrere Server zur Verfügung, wobei jeder Nutzer auch einen eigenen Server bereitstellen kann, die
+mehrere \textit{Channels} haben können. \textit{IRC} ist ein Chatprotokoll welches auch Dateien versenden kann. Würde nun ein
+Server ausfallen, so könnten die Nutzer auf einen anderen \textit{IRC}-Server wechseln. Des weiteren sind \textit{IRC}-Netzwerke
+nicht mit einem zentralen Knotenpunkt organisiert, sondern bestehen aus mehreren Servern. Somit ist auch die Anforderung der
+dezentralität gegeben, da Nutzer beliebig zwischen den Servern wechseln können.\newline
+
+Durch die Wahl dieser Lösung ist also garantiert, dass sowohl die Berechnungszeiten durch ein symmetrisches Verfahren niedrig
+gehalten werden, der Verwaltungsaufwand für die Schlüssel ist gering da nur ein Schlüssel pro Gruppe gespeichert werden muss und
+die Verteilung der Schlüssel kann durch die angesprochenen Barcodes erfolgen. Bei der Kommunikation gibt es keinen einzelnen
+Zentralen Server der den gesamten Datenverkehr einsehen kann. Der Verkehr erfolgt über diesen nur in verschlüsselter Form. Des
+weiteren kann jeder beliebige \textit{IRC}-Server gewählt werden. Somit sind die Eingangs erwähnten Punkte, Verschlüsselung und
+dezentralles Protokoll, hiermit abgedeckt und die Privatsphäre ist für den Anwender, anderst als bei anderen Anwendungen
+dieser Art, gesichert. \ No newline at end of file
diff --git a/ausarbeitung/Makefile b/ausarbeitung/Makefile
new file mode 100644
index 0000000..257dc2f
--- /dev/null
+++ b/ausarbeitung/Makefile
@@ -0,0 +1,11 @@
+all: clean
+ pdflatex maindoc
+ bibtex maindoc
+ pdflatex maindoc
+ pdflatex maindoc
+
+clean:
+ rm -vf *.aux *.log *.bbl *.blg *.out *.dvi *.toc
+
+distclean: clean
+ rm -vf *.pdf
diff --git a/ausarbeitung/Tutorial.aux b/ausarbeitung/Tutorial.aux
index 7ad5a53..1e1c5fb 100644
--- a/ausarbeitung/Tutorial.aux
+++ b/ausarbeitung/Tutorial.aux
@@ -1,25 +1,27 @@
\relax
+\citation{POSIX}
\citation{CeGCC}
+\@writefile{toc}{\contentsline {section}{\numberline {3}Technische Grundlagen}{8}{section.3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Betriebsysteme f\IeC {\"u}r mobile Ger\IeC {\"a}te}{8}{subsection.3.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Windows Mobile}{8}{subsubsection.3.1.1}}
\citation{Android}
-\@writefile{toc}{\contentsline {section}{\numberline {2}Technische Grundlagen}{3}{section.2}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Betriebsysteme f\IeC {\"u}r mobile Ger\IeC {\"a}te}{3}{subsection.2.1}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Windows Mobile}{3}{subsubsection.2.1.1}}
\citation{WebOS}
\citation{iPhoneOS}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}Android}{4}{subsubsection.2.1.2}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.3}WebOS}{4}{subsubsection.2.1.3}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.4}iPhone OS}{4}{subsubsection.2.1.4}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.2}Android}{9}{subsubsection.3.1.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.3}WebOS}{9}{subsubsection.3.1.3}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{9}{subsubsection.3.1.4}}
\citation{SymbianOS}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.5}Symbian OS}{5}{subsubsection.2.1.5}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.6}Zielplattform}{5}{subsubsection.2.1.6}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Softwaregrundlagen}{5}{subsection.2.2}}
+\citation{CeGCC}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.5}Symbian OS}{10}{subsubsection.3.1.5}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.6}Zielplattform}{10}{subsubsection.3.1.6}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Softwaregrundlagen}{10}{subsection.3.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}CeGCC}{10}{subsubsection.3.2.1}}
\citation{efl}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}CeGCC}{6}{subsubsection.2.2.1}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}Enlightenment}{6}{subsubsection.2.2.2}}
-\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Beispiele verschiedener \textit {Elementary} Icons}}{6}{figure.1}}
-\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Aufbau von \textit {Enlightenment}}}{7}{figure.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Enlightenment}{11}{subsubsection.3.2.2}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Beispiele verschiedener \textit {Elementary} Icons}}{11}{figure.1}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Aufbau von \textit {Enlightenment}}}{12}{figure.2}}
\@setckpt{Tutorial}{
-\setcounter{page}{8}
+\setcounter{page}{13}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -28,7 +30,7 @@
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
-\setcounter{section}{2}
+\setcounter{section}{3}
\setcounter{subsection}{2}
\setcounter{subsubsection}{2}
\setcounter{paragraph}{0}
diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index 499d1b9..8087526 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -1,12 +1,16 @@
\section{Technische Grundlagen}
-Eine Applikation für mobile Geräte, welche das Ziel der Kommunikation zwischen Benutzern sowie deren Vernetzung hat, sollte auf
-möglichst vielen Plattformen ausführbar sein. Somit wäre es möglich viele Nutzer zu erreichen und auch die Kommunikation zwischen
-einem Besitzer eines \textit{iPhones} sowie dem Besitzer eines \textit{PalmPre} wäre sichergestellt, ohne die Software mehrere
-Male zu implementiern. Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen
-ausführbar sind. Grundlegend sind Betriebsysteme interessant, die über einen \textit{POSIX-Layer} verfügen. Dieser Layer stellt
-eine Schnittstelle zwischen Anwendungen und Betriebssytem dar. Somit können Anwendungen die auf einem \textit{Linux}-System
-entwickelt wurden ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
+Ein wichtiger Punkt ist auch die Wahl der passenden Plattform. Bei geeigneter Wahl dieser ist es möglich die Software auf mehrere
+Betriebssysteme für Smart Phones zu portieren und somit eine mehrfache Implementation zu vermeiden. Es wäre somit auch möglich
+viele Nutzer zu erreichen und auch die Kommunikation zwischen einem Besitzer eines \textit{iPhones} sowie dem Besitzer eines
+\textit{Palm Pre} sicherzustellen.\newline
+Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen ausführbar sind.
+Grundlegend sind Betriebsysteme interessant, die über einen \textit{Layer} verfügen mit welchem man eine große Anzahl an
+Bibliotheken und Schnittstellen ansprechen kann. Dieser Layer soll also eine Schnittstelle zwischen Anwendungen und Betriebssytem
+sein. Ein solcher ist der \textit{Portable Operating System Interface for Unix Layer (POSIX Layer)} \citep{POSIX}. Mit diesem
+LayerDurch stehen eine große Menge an aktuellen Bibliotheken, aus der \textit{Open-Source} Gemeinde, zur Verfügung welche auch
+aktiv weiterentwickelt werden. Anwendungen die auf einem \textit{Linux}-System entwickelt wurden können somit auch ohne weiteres
+auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll,
wenn es auf ein neues Gerät portiert wird.\newline
@@ -17,8 +21,8 @@ Generation, des jeweiligen Herstellers, vorhanden sein.\newline
\subsection{Betriebsysteme für mobile Geräte}
-Im folgenden werden die fünf bekanntesten Betriebssysteme für mobile Geräte kurz vorgestellt und auf die
-Portierungsmöglichkeiten der einzelnen Systeme eingegangen.
+Wie schon erwähnt ist die wahl einer geeigneten Plattform nicht unerheblich. Im folgenden werden fünf Betriebssysteme für mobile
+Plattformen vorgestellt und auf deren Portierungsmöglichkeiten eingegangen.
\subsubsection{Windows Mobile}
@@ -41,28 +45,25 @@ Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform
\subsubsection{Android}
-Bei \textit{Android} \citep{Android} handelt es sich um ein neueres Betriebssystem für Smart Phones. Das von Google entwickelte
-System setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser Kernel kümmert sich um die Prozess- und Speicherverwaltung,
-Kommunikation sowie um die Hardwareabstraktion. \newline
+Das von \textit{Google} entwickelte \textit{Android} \citep{Android} setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser
+Kernel kümmert sich um die Prozess- und Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage
+setzt ein virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
-Zum implementieren von Anwendungen stellt Google eigens ein eigenes \textit{SDK} bereit. Dieses greift allerdings nur auf
-\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im moment eben auf diese beschränken. Somit können Programme
-die in \textit{C} oder \textit{C++} geschrieben wurden nicht portiert werden. Auch wenn man einen passenden
-\textit{Cross-Compiler} nutzt ist die Portierung nicht immer möglich, da Google die \textit{libc}-Bibliothek (unter
-\textit{Android} nun \textit{Bionic} genannt) an mobile Geräte angepasst und verändert hat.\newline
-
-Durch diese starken Einschränkungen und dem fehlende \textit{POSIX Layer} ist es somit nicht möglich Programme, welche unter
-Linux oder in \textit{C}/\textit{C++} entwickelt wurden, für dieses System zu kompilieren.
+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 nutzbaren Sprachen im moment eben auf diese beschränken. Des weiteren bietet
+\textit{Google} mittlerweile ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder \textit{C++}
+zu schreiben. In diesem Paket werden auch eine Hand voll Bibliotheken mitgeliefert, welchen stabil laufen. \textit{Google} rät
+allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} gelieferten stabil auf den Geräten stabil
+sind. Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken stabil unterstützt werden, sicher
+interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
\subsubsection{WebOS}
-\textit{WebOS} \citep{WebOS} gehört nicht zu den weit verbeiteten Betriebsystemen, allerdings wird es hier aufgeführt, da
-\textit{Enlightenment} portiert werden kann. Das System wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt.
-Momentan ist das System nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
-
+\textit{WebOS} \citep{WebOS} wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt und ist momentan nur auf zwei
+Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
Für dieses Betriebssystem existiert sowohl ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java} sowie ein
weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Des weiteren existiert
-eine erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Es werden somit mehrere Programmiersprachen unterstützt
+eine Erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Es werden somit mehrere Programmiersprachen unterstützt
und es besteht die Möglichkeit den \textit{POSIX Layer} zu nutzen.\newline
\subsubsection{iPhone OS}
@@ -83,43 +84,44 @@ ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS
\subsubsection{Zielplattform}
-Als primäre Zielplattform für diese Arbeit wurde \textit{Windows Mobile} gewählt. Im ersten Schritt wurde das benutzen von
-\textit{iPhone OS} und \textit{Android} ausgeschlossen. Aufgrund ihrer Restriktionen, wie den fehlenden \textit{POSIX Layer}
-und Einschränkungen der \textit{SDK's} sowie die unterstützten Sprachen sind Programme, welche für diese Plattform entwickelt
-wurden nur auf diesen nutzbar. Diese Tatsache und die nicht vorhandene \textit{Multitasking}-Unterstützung des
-\textit{iPhones} machen diese zwei Geräte für diese Arbeit uninteressant.\newline
-
-Aufgrund der weiten Verbreitung, sowie der vorhandenen Tools ist die Wahl für dieses Projekt auf \textit{Windows Mobile}
-gefallen. So werden zum einen viele Benutzer erreicht und zum anderen kann die Software mit geringem Aufwand nach \textit{Symbian
-OS} und \textit{WebOS} portiert werden und ist somit bei richtiger Implementierung auf mehreren Plattformen ausführbar.
-
-Aufgrund der Entscheidung, \textit{Windows Mobile} zu nutzen, wird als \textit{Cross-Compiler} der \textit{CeGCC} verwendet. Mit
-desen Hilfe können in einer Linx Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien
-erstellt werden.\newline
+Die Wahl der Zielplattform ist auf \textit{Windows Mobile} gefallen, da es hier möglich ist das Programm in \textit{C} zu
+schreiben und dann auf nach \textit{Windows Mobile} zu portieren. \newline
+\textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
+geplanten Dienst wichtig, da hier Prozesse im Hintergund stattfinden werden und dies auf einem solchen System nicht realisierbar
+wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an, das nicht alle Bibliotheken
+stabil sind.\newline
+Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
+kompilieren.
\subsection{Softwaregrundlagen}
-Um Software, welche unter Linux entwickelt wurde, nach \textit{Windows Mobile} zu portieren werden bestimmte Softwarelösungen
-vorrausgesetzt, welche im folgenden kurz erläutert werden.
+Aufgrund der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
+jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
-Aufgrund der Entscheidung, \textit{Windows Mobile} zu nutzen, wird als \textit{Cross-Compiler} der \textit{CeGCC} verwendet.
-Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem GCC. Mit desen Hilfe können in
-einer Linux Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien erstellt werden.\newline
+Da \textit{Windows Mobile} und die Programmiersprache \textit{C} genutzt wird, wird der \textit{CeGCC} \citep{CeGCC} als
+\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich Programmcode, der unter \textit{Linux} entwickelt wurde nach
+\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
+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
Es wird zwischen zwei verschiedenen Arten des CeGCC's unterschieden. Zum Einen \textit{CeGCC}, zum Anderen \textit{mingw32ce}.
Der Unterschied zwischen diesen beiden Kompilern besteht darin, dass ersterer nur dann benutzt wird, wenn man nur Linux
Bibliotheken nutzt. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
Bibliotheken einbinden möchte.\newline
+Soll das Programm nun für \textit{WebOS} oder \textit{SymbianOS} portiert werden, kann dies auf unter \textit{Linux} normal
+kompiliert werden.
+
\subsubsection{Enlightenment}
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
-ansprechend darzustellen, sowie eine einfache Bedienbarkeit zu garantieren. Hier fiel die Wahl auf das freie, seit 1997
-existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie
-Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}. \textit{Elementary}
-bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
+ansprechend darzustellen, sowie 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 garantieren. Hier fiel die Wahl
+auf das freie, seit 1997 existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen
+Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}.
+\textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
diff --git a/ausarbeitung/Tutorial.tex.backup b/ausarbeitung/Tutorial.tex.backup
index 715e29b..f33eb1f 100644
--- a/ausarbeitung/Tutorial.tex.backup
+++ b/ausarbeitung/Tutorial.tex.backup
@@ -1,30 +1,34 @@
\section{Technische Grundlagen}
-Eine Applikation für mobile Geräte, welches das Ziel der kommunikation zwischen Benutzern und deren Vernetzung hat, sollte auf
-möglichst vielen Plattformen ausführbar sein. Somit wäre es möglich viele Nutzer zu erreichen und auch die Kommunikation zwischen
-einem Besitzer eines \textit{iPhones} sowie dem Besitzer eines \textit{PalmPre} wäre sichergestellt. Des weiteren ist es auch von
-Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen ausführbar sind. Grundlegend sind Betriebsysteme
-interessant, die über einen \textit{POSIX-Layer} verfügen. Dieser Layer stellt eine Schnittstelle zwischen Anwendungen und
-Betriebssytem dar. Somit können Anwendungen die auf einem \textit{Linux}-System entwickelt wurden ohne weiteres auf ein anderes,
-\textit{POSIX} kompatibles System, portiert werden.\newline
+Ein wichtiger Punkt ist auch die Wahl der passenden Plattform. Bei geeigneter Wahl dieser ist es möglich die Software auf mehrere
+Betriebssysteme für Smart Phones zu portieren und somit eine mehrfache Implementation zu vermeiden. Es wäre somit auch möglich
+viele Nutzer zu erreichen und auch die Kommunikation zwischen einem Besitzer eines \textit{iPhones} sowie dem Besitzer eines
+\textit{Palm Pre} sicherzustellen.\newline
+Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen ausführbar sind.
+Grundlegend sind Betriebsysteme interessant, die über einen \textit{Layer} verfügen mit welchem man eine große Anzahl an
+Bibliotheken und Schnittstellen ansprechen kann. Dieser Layer soll also eine Schnittstelle zwischen Anwendungen und Betriebssytem
+sein. Ein solcher ist der \textit{Portable Operating System Interface for UniX} Layer (\textit{POSIX Layer}). Mit diesem
+LayerDurch stehen eine große Menge an aktuellen Bibliotheken, aus der \textit{Open-Source} Gemeinde, zur Verfügung welche auch
+aktiv weiterentwickelt werden. Anwendungen die auf einem \textit{Linux}-System entwickelt wurden können somit auch ohne weiteres
+auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll,
-wenn es auf einem neuen Gerät ausgeführt werden soll.\newline
+wenn es auf ein neues Gerät portiert wird.\newline
-Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist im direkten Vergleich nicht allzu
+Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist im Vergleich nicht allzu
groß. So haben mittlerweile die meisten der aktuellen Geräte eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht.
Auch erweiterte Features wie GPS oder Lagesensoren sind in den meisten aktuellen Geräten vorhanden oder werden in der nächsten
Generation, des jeweiligen Herstellers, vorhanden sein.\newline
\subsection{Betriebsysteme für mobile Geräte}
-Im folgenden werden die fünf bekanntesten Betriebssysteme für mobile Geräte kurz vorgestellt werden. Des weiteren wird auf die
-Portierungsmöglichkeiten der einzelnen Systeme eingegangen.
+Wie schon erwähnt ist die wahl einer geeigneten Plattform nicht unerheblich. Im folgenden werden fünf Betriebssysteme für mobile
+Plattformen vorgestellt und auf deren Portierungsmöglichkeiten eingegangen.
\subsubsection{Windows Mobile}
Der wohl bekannteste Vertreter ist \textit{Windows Mobile}. Die aktuelle Version 6.5 wurde von Microsoft
auch \textit{Windows Phone} betitelt.Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
-ähnlichkeiten zu den Desktop-Varianten der \Windows-Familie erkennen. \textit{Windows Phone} besitzt keinen
+ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. \textit{Windows Phone} besitzt keinen
\textit{POSIX Layer}, allerdings existiert ein \textit{Cross-Compiler} names \textit{CeGCC} \citep{CeGCC}, mit welchem
Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.\newline
@@ -41,28 +45,25 @@ Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform
\subsubsection{Android}
-Bei \textit{Android} \citep{Android} handelt es sich um ein neueres Betriebssystem für Smart Phones. Das von Google entwickelte
-System setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser Kernel kümmert sich um die Prozess- und Speicherverwaltung,
-Kommunikation sowie um die Hardwareabstraktion. \newline
+Das von \textit{Google} entwickelte \textit{Android} \citep{Android} setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser
+Kernel kümmert sich um die Prozess- und Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage
+setzt ein virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
-Zum implementieren von Anwendungen stellt Google eigens ein eigenes \textit{SDK} bereit. Dieses greift allerdings nur auf
-\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im moment eben auf diese beschränken. Somit können Programme
-die in \textit{C} oder \textit{C++} geschrieben wurden nicht portiert werden. Auch wenn man einen passenden
-\textit{Cross-Compiler} nutzt funktionieren ist die Portierung nicht immer möglich, da Google die \textit{libc}-Bibliothek (unter
-\textit{Android} nun \textit{Bionic} genannt) an mobile Geräte angepasst und verändert hat.\newline
-
-Durch diese starken Einschränkungen und dem fehlende \textit{POSIX Layer} ist es somit nicht möglich Programme, welche unter
-Linux oder in \textit{C}/\textit{C++} entwickelt wurden, für dieses System zu kompilieren.
+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 nutzbaren Sprachen im moment eben auf diese beschränken. Des weiteren bietet
+\textit{Google} mittlerweile ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder \textit{C++}
+zu schreiben. In diesem Paket werden auch eine Hand voll Bibliotheken mitgeliefert, welchen stabil laufen. \textit{Google} rät
+allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} gelieferten stabil auf den Geräten stabil
+sind. Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken stabil unterstützt werden, sicher
+interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
\subsubsection{WebOS}
-\textit{WebOS} \citep{WebOS} gehört nicht zu den weit verbeiteten Betriebsystemen, allerdings wird es hier aufgeführt, da
-\textit{Enlightenment} portiert werden kann. Das System wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt.
-Momentan ist das System nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
-
+\textit{WebOS} \citep{WebOS} wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt und ist momentan nur auf zwei
+Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
Für dieses Betriebssystem existiert sowohl ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java} sowie ein
weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Des weiteren existiert
-eine erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Es werden somit mehrere Programmiersprachen unterstützt
+eine Erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Es werden somit mehrere Programmiersprachen unterstützt
und es besteht die Möglichkeit den \textit{POSIX Layer} zu nutzen.\newline
\subsubsection{iPhone OS}
@@ -70,8 +71,9 @@ und es besteht die Möglichkeit den \textit{POSIX Layer} zu nutzen.\newline
Bei \textit{iPhoneOS} \citep{iPhoneOS} handelt es sich um eine portierte Version von MacOS. Es 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. Des weiteren fehlt auch eine Unterstützung des \textit{POSIX Layers}. Der größte Kritikpunkt an diesem System dürfte
-allerdings das fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht möglich zwei Anwendungen parallel
-auszuführen.\newline
+allerdings das fehlen von \textit{Multitasking}-Unterstützung sein. 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.\newline
\subsubsection{Symbian OS}
@@ -82,35 +84,66 @@ ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS
\subsubsection{Zielplattform}
-Als primäre Zielplattform für diese Arbeit wurde \textit{Windows Mobile} gewählt. Im ersten Schritt wurde das benutzen von
-\textit{iPhone OS} und \textit{Android} ausgeschlossen. Aufgrund ihrer Restriktionen, wie den fehlenden \textit{POSIX Layer}
-und Einschränkungen der \textit{SDK's} sowie die unterstützten Sprachen sind Programme, welche für diese Plattform entwickelt
-wurden nur auf diesen nutzbar.\newline
+Die Wahl der Zielplattform ist auf \textit{Windows Mobile} gefallen, da es hier möglich ist das Programm in \textit{C} zu
+schreiben und dann auf nach \textit{Windows Mobile} zu portieren. \newline
+\textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
+geplanten Dienst wichtig, da hier Prozesse im Hintergund stattfinden werden und dies auf einem solchen System nicht realisierbar
+wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an, das nicht alle Bibliotheken
+stabil sind.\newline
+Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
+kompilieren.
-Aufgrund der weiten Verbreitung, sowie der vorhandenen Tools ist die Wahl für dieses Projekt auf \textit{Windows Mobile}
-gefallen. So werden zum einen viele Benutzer erreicht und zum anderen kann die Software mit geringem Aufwand nach \textit{Symbian
-OS} und \textit{WebOS} portiert werden und ist somit bei richtiger Implementierung auf mehreren Plattformen ausführbar.
+\subsection{Softwaregrundlagen}
-Aufgrund der Entscheidung, \textit{Windows Mobile} zu nutzen, wird als \textit{Cross-Compiler} der \textit{CeGCC} verwendet.
-Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem GCC. Mit desen Hilfe können in
-einer Linx Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien erstellt werden.\newline
-
-\subsection{}
+Aufgrund der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
+jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
-Aufgrund der Entscheidung, \textit{Windows Mobile} zu nutzen, wird als \textit{Cross-Compiler} der \textit{CeGCC} verwendet.
-Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem GCC. Mit desen Hilfe können in
-einer Linux Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien erstellt werden.\newline
+Da \textit{Windows Mobile} und die Programmiersprache \textit{C} genutzt wird, wird der \textit{CeGCC} \citep{CeGCC} als
+\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich Programmcode, der unter \textit{Linux} entwickelt wurde nach
+\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
+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
Es wird zwischen zwei verschiedenen Arten des CeGCC's unterschieden. Zum Einen \textit{CeGCC}, zum Anderen \textit{mingw32ce}.
Der Unterschied zwischen diesen beiden Kompilern besteht darin, dass ersterer nur dann benutzt wird, wenn man nur Linux
-Bibliotheken nutzt. Im Unterschied dazu wird der \textit{mingw32ce}-Kompiler dann gebraucht, wenn man auch \textit{Windows Mobile}
-Bibliotheken einbindet.\newline
+Bibliotheken nutzt. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
+Bibliotheken einbinden möchte.\newline
+
+Soll das Programm nun für \textit{WebOS} oder \textit{SymbianOS} portiert werden, kann dies auf unter \textit{Linux} normal
+kompiliert werden.
\subsubsection{Enlightenment}
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
-ansprechend darzustellen, sowie eine einfache Bedienbarkeit zu garantieren. Hier fiel die Wahl auf das freie
-\textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen, wie Windows, Linux, BSD
-und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}.
+ansprechend darzustellen, sowie 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 garantieren. Hier fiel die Wahl
+auf das freie, seit 1997 existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen
+Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}.
+\textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=2.2cm]{Bilder/elm-app-01_2} \includegraphics[width=2.7cm]{Bilder/elm-app-02_2}
+ \caption{Beispiele verschiedener \textit{Elementary} Icons}
+\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.
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=2.7cm]{Bilder/efl}
+ \caption{Aufbau von \textit{Enlightenment}}
+\end{figure}
+
+Bei \textit{Ecore} handelt es sich um eine \textit{library} welche das serialisieren von mehreren Programmteilen ermöglicht und
+für den Betrieb auf mobilen Geräten optimiert wurde. \textit{Edje} ist eine komplexe 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 wird. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
+Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und Tools
+bereit.\newline
+
+Im Anhang 1 ist eine genaue Anweisung zu finden, um \textit{Enlightenment} für \textit{Windows Mobile} zu erstellen. \ No newline at end of file
diff --git a/ausarbeitung/Tutorial.tex~ b/ausarbeitung/Tutorial.tex~
index d2b3a34..c75e581 100644
--- a/ausarbeitung/Tutorial.tex~
+++ b/ausarbeitung/Tutorial.tex~
@@ -1,12 +1,16 @@
\section{Technische Grundlagen}
-Eine Applikation für mobile Geräte, welche das Ziel der Kommunikation zwischen Benutzern sowie deren Vernetzung hat, sollte auf
-möglichst vielen Plattformen ausführbar sein. Somit wäre es möglich viele Nutzer zu erreichen und auch die Kommunikation zwischen
-einem Besitzer eines \textit{iPhones} sowie dem Besitzer eines \textit{PalmPre} wäre sichergestellt, ohne die Software mehrere
-Male zu implementiern. Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen
-ausführbar sind. Grundlegend sind Betriebsysteme interessant, die über einen \textit{POSIX-Layer} verfügen. Dieser Layer stellt
-eine Schnittstelle zwischen Anwendungen und Betriebssytem dar. Somit können Anwendungen die auf einem \textit{Linux}-System
-entwickelt wurden ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
+Ein wichtiger Punkt ist auch die Wahl der passenden Plattform. Bei geeigneter Wahl dieser ist es möglich die Software auf mehrere
+Betriebssysteme für Smart Phones zu portieren und somit eine mehrfache Implementation zu vermeiden. Es wäre somit auch möglich
+viele Nutzer zu erreichen und auch die Kommunikation zwischen einem Besitzer eines \textit{iPhones} sowie dem Besitzer eines
+\textit{Palm Pre} sicherzustellen.\newline
+Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen ausführbar sind.
+Grundlegend sind Betriebsysteme interessant, die über einen \textit{Layer} verfügen mit welchem man eine große Anzahl an
+Bibliotheken und Schnittstellen ansprechen kann. Dieser Layer soll also eine Schnittstelle zwischen Anwendungen und Betriebssytem
+sein. Ein solcher ist der \textit{Portable Operating System Interface for Unix Layer (POSIX Layer)}. Mit diesem
+LayerDurch stehen eine große Menge an aktuellen Bibliotheken, aus der \textit{Open-Source} Gemeinde, zur Verfügung welche auch
+aktiv weiterentwickelt werden. Anwendungen die auf einem \textit{Linux}-System entwickelt wurden können somit auch ohne weiteres
+auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll,
wenn es auf ein neues Gerät portiert wird.\newline
@@ -17,8 +21,8 @@ Generation, des jeweiligen Herstellers, vorhanden sein.\newline
\subsection{Betriebsysteme für mobile Geräte}
-Im folgenden werden die fünf bekanntesten Betriebssysteme für mobile Geräte kurz vorgestellt und auf die
-Portierungsmöglichkeiten der einzelnen Systeme eingegangen.
+Wie schon erwähnt ist die wahl einer geeigneten Plattform nicht unerheblich. Im folgenden werden fünf Betriebssysteme für mobile
+Plattformen vorgestellt und auf deren Portierungsmöglichkeiten eingegangen.
\subsubsection{Windows Mobile}
@@ -41,28 +45,25 @@ Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform
\subsubsection{Android}
-Bei \textit{Android} \citep{Android} handelt es sich um ein neueres Betriebssystem für Smart Phones. Das von Google entwickelte
-System setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser Kernel kümmert sich um die Prozess- und Speicherverwaltung,
-Kommunikation sowie um die Hardwareabstraktion. \newline
+Das von \textit{Google} entwickelte \textit{Android} \citep{Android} setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser
+Kernel kümmert sich um die Prozess- und Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage
+setzt ein virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
-Zum implementieren von Anwendungen stellt Google eigens ein eigenes \textit{SDK} bereit. Dieses greift allerdings nur auf
-\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im moment eben auf diese beschränken. Somit können Programme
-die in \textit{C} oder \textit{C++} geschrieben wurden nicht portiert werden. Auch wenn man einen passenden
-\textit{Cross-Compiler} nutzt ist die Portierung nicht immer möglich, da Google die \textit{libc}-Bibliothek (unter
-\textit{Android} nun \textit{Bionic} genannt) an mobile Geräte angepasst und verändert hat.\newline
-
-Durch diese starken Einschränkungen und dem fehlende \textit{POSIX Layer} ist es somit nicht möglich Programme, welche unter
-Linux oder in \textit{C}/\textit{C++} entwickelt wurden, für dieses System zu kompilieren.
+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 nutzbaren Sprachen im moment eben auf diese beschränken. Des weiteren bietet
+\textit{Google} mittlerweile ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder \textit{C++}
+zu schreiben. In diesem Paket werden auch eine Hand voll Bibliotheken mitgeliefert, welchen stabil laufen. \textit{Google} rät
+allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} gelieferten stabil auf den Geräten stabil
+sind. Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken stabil unterstützt werden, sicher
+interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
\subsubsection{WebOS}
-\textit{WebOS} \citep{WebOS} gehört nicht zu den weit verbeiteten Betriebsystemen, allerdings wird es hier aufgeführt, da
-\textit{Enlightenment} portiert werden kann. Das System wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt.
-Momentan ist das System nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
-
+\textit{WebOS} \citep{WebOS} wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt und ist momentan nur auf zwei
+Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
Für dieses Betriebssystem existiert sowohl ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java} sowie ein
weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Des weiteren existiert
-eine erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Es werden somit mehrere Programmiersprachen unterstützt
+eine Erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Es werden somit mehrere Programmiersprachen unterstützt
und es besteht die Möglichkeit den \textit{POSIX Layer} zu nutzen.\newline
\subsubsection{iPhone OS}
@@ -83,43 +84,44 @@ ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS
\subsubsection{Zielplattform}
-Als primäre Zielplattform für diese Arbeit wurde \textit{Windows Mobile} gewählt. Im ersten Schritt wurde das benutzen von
-\textit{iPhone OS} und \textit{Android} ausgeschlossen. Aufgrund ihrer Restriktionen, wie den fehlenden \textit{POSIX Layer}
-und Einschränkungen der \textit{SDK's} sowie die unterstützten Sprachen sind Programme, welche für diese Plattform entwickelt
-wurden nur auf diesen nutzbar. Diese Tatsache und die nicht vorhandene \textit{Multitasking}-Unterstützung des
-\textit{iPhones} machen diese zwei Geräte für diese Arbeit uninteressant.\newline
-
-Aufgrund der weiten Verbreitung, sowie der vorhandenen Tools ist die Wahl für dieses Projekt auf \textit{Windows Mobile}
-gefallen. So werden zum einen viele Benutzer erreicht und zum anderen kann die Software mit geringem Aufwand nach \textit{Symbian
-OS} und \textit{WebOS} portiert werden und ist somit bei richtiger Implementierung auf mehreren Plattformen ausführbar.
-
-Aufgrund der Entscheidung, \textit{Windows Mobile} zu nutzen, wird als \textit{Cross-Compiler} der \textit{CeGCC} verwendet. Mit
-desen Hilfe können in einer Linx Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien
-erstellt werden.\newline
+Die Wahl der Zielplattform ist auf \textit{Windows Mobile} gefallen, da es hier möglich ist das Programm in \textit{C} zu
+schreiben und dann auf nach \textit{Windows Mobile} zu portieren. \newline
+\textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
+geplanten Dienst wichtig, da hier Prozesse im Hintergund stattfinden werden und dies auf einem solchen System nicht realisierbar
+wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an, das nicht alle Bibliotheken
+stabil sind.\newline
+Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
+kompilieren.
\subsection{Softwaregrundlagen}
-Um Software, welche unter Linux entwickelt wurde, nach \textit{Windows Mobile} zu portieren werden bestimmte Softwarelösungen
-vorrausgesetzt, welche im folgenden kurz erläutert werden.
+Aufgrund der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
+jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
-Aufgrund der Entscheidung, \textit{Windows Mobile} zu nutzen, wird als \textit{Cross-Compiler} der \textit{CeGCC} verwendet.
-Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem GCC. Mit desen Hilfe können in
-einer Linux Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien erstellt werden.\newline
+Da \textit{Windows Mobile} und die Programmiersprache \textit{C} genutzt wird, wird der \textit{CeGCC} \citep{CeGCC} als
+\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich Programmcode, der unter \textit{Linux} entwickelt wurde nach
+\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
+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
Es wird zwischen zwei verschiedenen Arten des CeGCC's unterschieden. Zum Einen \textit{CeGCC}, zum Anderen \textit{mingw32ce}.
Der Unterschied zwischen diesen beiden Kompilern besteht darin, dass ersterer nur dann benutzt wird, wenn man nur Linux
Bibliotheken nutzt. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
Bibliotheken einbinden möchte.\newline
+Soll das Programm nun für \textit{WebOS} oder \textit{SymbianOS} portiert werden, kann dies auf unter \textit{Linux} normal
+kompiliert werden.
+
\subsubsection{Enlightenment}
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
-ansprechend darzustellen, sowie eine einfache Bedienbarkeit zu garantieren. Hier fiel die Wahl auf das freie, seit 1997
-existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen, wie
-Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}. \textit{Elementary}
-bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
+ansprechend darzustellen, sowie 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 garantieren. Hier fiel die Wahl
+auf das freie, seit 1997 existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen
+Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}.
+\textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
\begin{figure}[h]
\centering
diff --git a/ausarbeitung/literature.bib b/ausarbeitung/literature.bib
index 8cfc63c..6880fff 100644
--- a/ausarbeitung/literature.bib
+++ b/ausarbeitung/literature.bib
@@ -60,30 +60,47 @@ Note = {[Online; letzter Aufruf 25.01.2010]},
@misc{FriendSensing,
title = {FriendSensing: Recommending Friends Using Mobile Phones},
-author = {Daniele Quercia},
-author = {Licia Capra},
+author = {Daniele Quercia and Licia Capra},
year = {2009},
organization = {MIT SENSEable City Laboratory, Cambridge, USA und Dept.of Computer Sience, University College London, UK},
url = {web.mit.edu/quercia/www/publications/friendSensing_short.pdf},
note = {[Online; letzter Aufruf 27.01.2010]},
}
-@misc{PGPmobile,
-Title = {PGP Mobile},
-url = {http://www.pgp.com/products/mobile/index.html},
-Note = {[Online; letzter Aufruf 28.01.2010]},
+@misc{Latitude,
+title = {Google Latitude},
+url = {http://www.google.com/intl/en_us/latitude/intro.html},
+Note = {[Online; letzter Aufruf 11.02.2010]},
}
-@misc{openPGP,
-Title = {OpenPGP},
-url = {http://www.openpgp.org/},
-Note = {[Online; letzter Aufruf 28.01.2010]},
+@misc{POSIX,
+title = {Portable Operating System Interface for Unix Layer},
+url = {http://standards.ieee.org/regauth/posix/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
}
-@misc{Kerberos,
-Title = {Kerberos},
-url = {http://www.kerberos.org/},
-Note = {[Online; letzter Aufruf 28.01.2010]},
+@misc{qrencode,
+title = {libqrencode},
+url = {http://megaui.net/fukuchi/works/qrencode/index.en.html},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{PNG,
+title = {libpng},
+url = {http://www.libpng.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{IRCD,
+title = {IRCD-Hybrid},
+url = {http://www.ircd-hybrid.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{XChat,
+title = {X-Chat},
+url = {http://xchat.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
}
@misc{iPhoneOS,
@@ -100,14 +117,8 @@ Note = {[Online; letzter Aufruf 03.02.2010]},
@misc{SPALS,
title = {Spontaneous Privacy-Aware Location Sharing},
-author = {Klaus Rechert, Konstantin Welke},
-organization = {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
+author = {Klaus Rechert and Konstantin Welke},
+organization= {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
year = {2009},
}
-@misc{SmokeScreen,
-title = {SmokeScreen: Flexible Privacy Controls for Presence-Sharing},
-author = {Landon P. Cox, Angela Dalton, Varun Marupadi},
-organization = {Department of Computer Science, Duke University},
-year = {2007},
-} \ No newline at end of file
diff --git a/ausarbeitung/literature.bib.backup b/ausarbeitung/literature.bib.backup
new file mode 100644
index 0000000..40f1632
--- /dev/null
+++ b/ausarbeitung/literature.bib.backup
@@ -0,0 +1,129 @@
+@misc{efl,
+Title = {Enlightenment},
+url = {http://www.enlightenment.org/},
+Note = {[Online; letzter Aufruf 20.11.2009]},
+}
+
+@misc{CeGCC,
+Title = {CeGCC},
+url = {http://cegcc.sourceforge.net/},
+Note = {[Online; letzter Aufruf 20.11.2009]},
+}
+
+@misc{libircclient,
+Title = {libircclient},
+url = {http://libircclient.sourceforge.net/},
+Note = {[Online; letzter Aufruf 25.01.2010]},
+}
+
+@misc{OpenSSL,
+Title = {libCrypto},
+url = {http://www.openssl.org/},
+Note = {[Online; letzter Aufruf 25.01.2010]},
+}
+
+@misc{Wireshark,
+Title = {Wireshark},
+url = {http://www.wireshark.org/},
+Note = {[Online; letzter Aufruf 27.01.2010]},
+}
+
+@misc{IRC,
+Title = {IRC-Protokoll},
+url = {http://www.irc.org/},
+Note = {[Online; letzter Aufruf 27.01.2010]},
+}
+
+@misc{Windows,
+Title = {Windows Mobile},
+url = {http://www.microsoft.com/windowsmobile/de-de/default.mspx},
+Note = {[Online; letzter Aufruf 25.01.2010]},
+}
+
+@misc{Android,
+Title = {Android},
+url = {http://www.android.com/},
+Note = {[Online; letzter Aufruf 25.01.2010]},
+}
+
+@misc{WebOS,
+Title = {WebOS},
+url = {http://palmwebos.org/},
+Note = {[Online; letzter Aufruf 25.01.2010]},
+}
+
+@misc{PalmOS,
+Title = {PalmOS},
+url = {http://www.palm.com/},
+Note = {[Online; letzter Aufruf 25.01.2010]},
+}
+
+@misc{FriendSensing,
+title = {FriendSensing: Recommending Friends Using Mobile Phones},
+author = {Daniele Quercia and Licia Capra},
+year = {2009},
+organization = {MIT SENSEable City Laboratory, Cambridge, USA und Dept.of Computer Sience, University College London, UK},
+url = {web.mit.edu/quercia/www/publications/friendSensing_short.pdf},
+note = {[Online; letzter Aufruf 27.01.2010]},
+}
+
+@misc{Latitude,
+title = {Google Latitude},
+url = {http://www.google.com/intl/en_us/latitude/intro.html},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{Locale,
+title = {Locale},
+url = {http://www.twofortyfouram.com/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{POSIX,
+title = {Portable Operating System Interface for Unix Layer},
+url = {http://standards.ieee.org/regauth/posix/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{qrencode,
+title = {libqrencode},
+url = {http://megaui.net/fukuchi/works/qrencode/index.en.html},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{PNG,
+title = {libpng},
+url = {http://www.libpng.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{IRCD,
+title = {IRCD-Hybrid},
+url = {http://www.ircd-hybrid.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{XChat,
+title = {X-Chat},
+url = {http://xchat.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{iPhoneOS,
+Title = {iPhone OS},
+url = {http://www.apple.com/de/iphone/},
+Note = {[Online; letzter Aufruf 03.02.2010]},
+}
+
+@misc{SymbianOS,
+Title = {Symbian OS},
+OPTurl = {http://www.symbian.org/},
+Note = {[Online; letzter Aufruf 03.02.2010]},
+}
+
+@misc{SPALS,
+title = {Spontaneous Privacy-Aware Location Sharing},
+author = {Klaus Rechert and Konstantin Welke},
+OPTorganization = {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
+year = {2009},
+} \ No newline at end of file
diff --git a/ausarbeitung/literature.bib~ b/ausarbeitung/literature.bib~
index 8cfc63c..6880fff 100644
--- a/ausarbeitung/literature.bib~
+++ b/ausarbeitung/literature.bib~
@@ -60,30 +60,47 @@ Note = {[Online; letzter Aufruf 25.01.2010]},
@misc{FriendSensing,
title = {FriendSensing: Recommending Friends Using Mobile Phones},
-author = {Daniele Quercia},
-author = {Licia Capra},
+author = {Daniele Quercia and Licia Capra},
year = {2009},
organization = {MIT SENSEable City Laboratory, Cambridge, USA und Dept.of Computer Sience, University College London, UK},
url = {web.mit.edu/quercia/www/publications/friendSensing_short.pdf},
note = {[Online; letzter Aufruf 27.01.2010]},
}
-@misc{PGPmobile,
-Title = {PGP Mobile},
-url = {http://www.pgp.com/products/mobile/index.html},
-Note = {[Online; letzter Aufruf 28.01.2010]},
+@misc{Latitude,
+title = {Google Latitude},
+url = {http://www.google.com/intl/en_us/latitude/intro.html},
+Note = {[Online; letzter Aufruf 11.02.2010]},
}
-@misc{openPGP,
-Title = {OpenPGP},
-url = {http://www.openpgp.org/},
-Note = {[Online; letzter Aufruf 28.01.2010]},
+@misc{POSIX,
+title = {Portable Operating System Interface for Unix Layer},
+url = {http://standards.ieee.org/regauth/posix/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
}
-@misc{Kerberos,
-Title = {Kerberos},
-url = {http://www.kerberos.org/},
-Note = {[Online; letzter Aufruf 28.01.2010]},
+@misc{qrencode,
+title = {libqrencode},
+url = {http://megaui.net/fukuchi/works/qrencode/index.en.html},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{PNG,
+title = {libpng},
+url = {http://www.libpng.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{IRCD,
+title = {IRCD-Hybrid},
+url = {http://www.ircd-hybrid.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
+}
+
+@misc{XChat,
+title = {X-Chat},
+url = {http://xchat.org/},
+Note = {[Online; letzter Aufruf 11.02.2010]},
}
@misc{iPhoneOS,
@@ -100,14 +117,8 @@ Note = {[Online; letzter Aufruf 03.02.2010]},
@misc{SPALS,
title = {Spontaneous Privacy-Aware Location Sharing},
-author = {Klaus Rechert, Konstantin Welke},
-organization = {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
+author = {Klaus Rechert and Konstantin Welke},
+organization= {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
year = {2009},
}
-@misc{SmokeScreen,
-title = {SmokeScreen: Flexible Privacy Controls for Presence-Sharing},
-author = {Landon P. Cox, Angela Dalton, Varun Marupadi},
-organization = {Department of Computer Science, Duke University},
-year = {2007},
-} \ No newline at end of file
diff --git a/ausarbeitung/maindoc.aux b/ausarbeitung/maindoc.aux
index 2639769..3f6d5a4 100644
--- a/ausarbeitung/maindoc.aux
+++ b/ausarbeitung/maindoc.aux
@@ -19,28 +19,30 @@
\@writefile{lot}{\select@language{ngerman}}
\@input{Erklaerung.aux}
\@input{Einleitung.aux}
+\@input{Grundlagen.aux}
\@input{Tutorial.aux}
\@input{Friend_Finder.aux}
-\@input{Ausblick.aux}
\@input{Anhang.aux}
\bibdata{literature}
\bibcite{Android}{{1}{}{{Android}}{{}}}
\bibcite{CeGCC}{{2}{}{{CeGCC}}{{}}}
\bibcite{efl}{{3}{}{{efl}}{{}}}
-\bibcite{iPhoneOS}{{4}{}{{iPhoneOS}}{{}}}
-\bibcite{IRC}{{5}{}{{IRC}}{{}}}
-\bibcite{Kerberos}{{6}{}{{Kerberos}}{{}}}
-\bibcite{OpenSSL}{{7}{}{{OpenSSL}}{{}}}
-\bibcite{libircclient}{{8}{}{{libircclient}}{{}}}
-\bibcite{openPGP}{{9}{}{{openPGP}}{{}}}
-\bibcite{PalmOS}{{10}{}{{PalmOS}}{{}}}
-\bibcite{PGPmobile}{{11}{}{{PGPmobile}}{{}}}
-\bibcite{SymbianOS}{{12}{}{{SymbianOS}}{{}}}
-\bibcite{WebOS}{{13}{}{{WebOS}}{{}}}
-\bibcite{Windows}{{14}{}{{Windows}}{{}}}
-\bibcite{Wireshark}{{15}{}{{Wireshark}}{{}}}
-\bibcite{SPALS}{{16}{2009}{{Klaus~Rechert}}{{}}}
-\bibcite{SmokeScreen}{{17}{2007}{{Landon P.~Cox}}{{}}}
-\bibcite{FriendSensing}{{18}{2009}{{Quercia}}{{}}}
+\bibcite{Latitude}{{4}{}{{Latitude}}{{}}}
+\bibcite{iPhoneOS}{{5}{}{{iPhoneOS}}{{}}}
+\bibcite{IRC}{{6}{}{{IRC}}{{}}}
+\bibcite{IRCD}{{7}{}{{IRCD}}{{}}}
+\bibcite{OpenSSL}{{8}{}{{OpenSSL}}{{}}}
+\bibcite{libircclient}{{9}{}{{libircclient}}{{}}}
+\bibcite{PNG}{{10}{}{{PNG}}{{}}}
+\bibcite{qrencode}{{11}{}{{qrencode}}{{}}}
+\bibcite{PalmOS}{{12}{}{{PalmOS}}{{}}}
+\bibcite{POSIX}{{13}{}{{POSIX}}{{}}}
+\bibcite{SymbianOS}{{14}{}{{SymbianOS}}{{}}}
+\bibcite{WebOS}{{15}{}{{WebOS}}{{}}}
+\bibcite{Windows}{{16}{}{{Windows}}{{}}}
+\bibcite{Wireshark}{{17}{}{{Wireshark}}{{}}}
+\bibcite{xchat}{{18}{}{{xchat}}{{}}}
+\bibcite{FriendSensing}{{19}{2009}{{Quercia und Capra}}{{}}}
+\bibcite{SPALS}{{20}{2009}{{Rechert und Welke}}{{}}}
\bibstyle{dinat}
\citation{*}
diff --git a/ausarbeitung/maindoc.bbl b/ausarbeitung/maindoc.bbl
new file mode 100644
index 0000000..68ca2e1
--- /dev/null
+++ b/ausarbeitung/maindoc.bbl
@@ -0,0 +1,116 @@
+\begin{thebibliography}{20}
+% this bibliography was produced with the style dinat.bst v2.5
+\makeatletter
+\newcommand{\dinatlabel}[1]%
+{\ifNAT@numbers\else\NAT@biblabelnum{#1}\hspace{2\labelsep}\fi}
+\makeatother
+\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi
+\expandafter\ifx\csname url\endcsname\relax\def\url#1{\texttt{#1}}\fi
+
+\bibitem[Android()]{Android}
+\dinatlabel{Android } \emph{Android}. --
+\newblock URL \url{http://www.android.com/}. --
+\newblock [Online; letzter Aufruf 25.01.2010]
+
+\bibitem[CeGCC()]{CeGCC}
+\dinatlabel{CeGCC } \emph{CeGCC}. --
+\newblock URL \url{http://cegcc.sourceforge.net/}. --
+\newblock [Online; letzter Aufruf 20.11.2009]
+
+\bibitem[efl()]{efl}
+\dinatlabel{efl } \emph{Enlightenment}. --
+\newblock URL \url{http://www.enlightenment.org/}. --
+\newblock [Online; letzter Aufruf 20.11.2009]
+
+\bibitem[Latitude()]{Latitude}
+\dinatlabel{Latitude } \emph{Google Latitude}. --
+\newblock URL \url{http://www.google.com/intl/en_us/latitude/intro.html}. --
+\newblock [Online; letzter Aufruf 11.02.2010]
+
+\bibitem[iPhoneOS()]{iPhoneOS}
+\dinatlabel{iPhoneOS } \emph{iPhone OS}. --
+\newblock URL \url{http://www.apple.com/de/iphone/}. --
+\newblock [Online; letzter Aufruf 03.02.2010]
+
+\bibitem[IRC()]{IRC}
+\dinatlabel{IRC } \emph{IRC-Protokoll}. --
+\newblock URL \url{http://www.irc.org/}. --
+\newblock [Online; letzter Aufruf 27.01.2010]
+
+\bibitem[IRCD()]{IRCD}
+\dinatlabel{IRCD } \emph{IRCD-Hybrid}. --
+\newblock URL \url{http://www.ircd-hybrid.org/}. --
+\newblock [Online; letzter Aufruf 11.02.2010]
+
+\bibitem[OpenSSL()]{OpenSSL}
+\dinatlabel{OpenSSL } \emph{libCrypto}. --
+\newblock URL \url{http://www.openssl.org/}. --
+\newblock [Online; letzter Aufruf 25.01.2010]
+
+\bibitem[libircclient()]{libircclient}
+\dinatlabel{libircclient } \emph{libircclient}. --
+\newblock URL \url{http://libircclient.sourceforge.net/}. --
+\newblock [Online; letzter Aufruf 25.01.2010]
+
+\bibitem[PNG()]{PNG}
+\dinatlabel{PNG } \emph{libpng}. --
+\newblock URL \url{http://www.libpng.org/}. --
+\newblock [Online; letzter Aufruf 11.02.2010]
+
+\bibitem[qrencode()]{qrencode}
+\dinatlabel{qrencode } \emph{libqrencode}. --
+\newblock URL \url{http://megaui.net/fukuchi/works/qrencode/index.en.html}. --
+\newblock [Online; letzter Aufruf 11.02.2010]
+
+\bibitem[PalmOS()]{PalmOS}
+\dinatlabel{PalmOS } \emph{PalmOS}. --
+\newblock URL \url{http://www.palm.com/}. --
+\newblock [Online; letzter Aufruf 25.01.2010]
+
+\bibitem[POSIX()]{POSIX}
+\dinatlabel{POSIX } \emph{Portable Operating System Interface for Unix Layer}.
+ --
+\newblock URL \url{http://standards.ieee.org/regauth/posix/}. --
+\newblock [Online; letzter Aufruf 11.02.2010]
+
+\bibitem[SymbianOS()]{SymbianOS}
+\dinatlabel{SymbianOS } \emph{Symbian OS}. --
+\newblock [Online; letzter Aufruf 03.02.2010]
+
+\bibitem[WebOS()]{WebOS}
+\dinatlabel{WebOS } \emph{WebOS}. --
+\newblock URL \url{http://palmwebos.org/}. --
+\newblock [Online; letzter Aufruf 25.01.2010]
+
+\bibitem[Windows()]{Windows}
+\dinatlabel{Windows } \emph{Windows Mobile}. --
+\newblock URL \url{http://www.microsoft.com/windowsmobile/de-de/default.mspx}.
+ --
+\newblock [Online; letzter Aufruf 25.01.2010]
+
+\bibitem[Wireshark()]{Wireshark}
+\dinatlabel{Wireshark } \emph{Wireshark}. --
+\newblock URL \url{http://www.wireshark.org/}. --
+\newblock [Online; letzter Aufruf 27.01.2010]
+
+\bibitem[xchat()]{xchat}
+\dinatlabel{xchat } \emph{X-Chat}. --
+\newblock URL \url{http://xchat.org/}. --
+\newblock [Online; letzter Aufruf 11.02.2010]
+
+\bibitem[Quercia und Capra(2009)]{FriendSensing}
+\dinatlabel{Quercia und Capra 2009} \textsc{Quercia}, Daniele~; \textsc{Capra},
+ Licia:
+\newblock \emph{FriendSensing: Recommending Friends Using Mobile Phones}.
+\newblock 2009. --
+\newblock URL
+ \url{web.mit.edu/quercia/www/publications/friendSensing_short.pdf}. --
+\newblock [Online; letzter Aufruf 27.01.2010]
+
+\bibitem[Rechert und Welke(2009)]{SPALS}
+\dinatlabel{Rechert und Welke 2009} \textsc{Rechert}, Klaus~; \textsc{Welke},
+ Konstantin:
+\newblock \emph{Spontaneous Privacy-Aware Location Sharing}.
+\newblock 2009
+
+\end{thebibliography}
diff --git a/ausarbeitung/maindoc.blg b/ausarbeitung/maindoc.blg
new file mode 100644
index 0000000..6c74452
--- /dev/null
+++ b/ausarbeitung/maindoc.blg
@@ -0,0 +1,72 @@
+This is BibTeX, Version 0.99c (Web2C 7.5.6)
+The top-level auxiliary file: maindoc.aux
+A level-1 auxiliary file: Title.aux
+A level-1 auxiliary file: Erklaerung.aux
+A level-1 auxiliary file: Einleitung.aux
+A level-1 auxiliary file: Grundlagen.aux
+A level-1 auxiliary file: Tutorial.aux
+A level-1 auxiliary file: Friend_Finder.aux
+A level-1 auxiliary file: Anhang.aux
+The style file: dinat.bst
+Reallocated wiz_functions (elt_size=4) to 6000 items from 3000.
+Database file #1: literature.bib
+Warning--to sort, need author or key in Latitude
+Warning--to sort, need author or key in IRC
+Warning--to sort, need author or key in POSIX
+Warning--to sort, need author or key in CeGCC
+Warning--to sort, need author or key in Android
+Warning--to sort, need author or key in WebOS
+Warning--to sort, need author or key in iPhoneOS
+Warning--to sort, need author or key in SymbianOS
+Warning--to sort, need author or key in efl
+Warning--to sort, need author or key in OpenSSL
+Warning--to sort, need author or key in libircclient
+Warning--to sort, need author or key in qrencode
+Warning--to sort, need author or key in PNG
+Warning--to sort, need author or key in Wireshark
+Warning--to sort, need author or key in IRCD
+Warning--to sort, need author or key in xchat
+Warning--to sort, need author or key in Windows
+Warning--to sort, need author or key in PalmOS
+You've used 20 entries,
+ 3552 wiz_defined-function locations,
+ 880 strings with 7575 characters,
+and the built_in function-call counts, 6632 in all, are:
+= -- 812
+> -- 20
+< -- 37
++ -- 63
+- -- 12
+* -- 609
+:= -- 1023
+add.period$ -- 2
+call.type$ -- 20
+change.case$ -- 83
+chr.to.int$ -- 20
+cite$ -- 74
+duplicate$ -- 268
+empty$ -- 699
+format.name$ -- 26
+if$ -- 1515
+int.to.chr$ -- 0
+int.to.str$ -- 1
+missing$ -- 0
+newline$ -- 111
+num.names$ -- 8
+pop$ -- 157
+preamble$ -- 1
+purify$ -- 64
+quote$ -- 0
+skip$ -- 182
+stack$ -- 0
+substring$ -- 334
+swap$ -- 28
+text.length$ -- 4
+text.prefix$ -- 0
+top$ -- 0
+type$ -- 220
+warning$ -- 18
+while$ -- 50
+width$ -- 0
+write$ -- 171
+(There were 18 warnings)
diff --git a/ausarbeitung/maindoc.log b/ausarbeitung/maindoc.log
index cdbfe51..e33e45b 100644
--- a/ausarbeitung/maindoc.log
+++ b/ausarbeitung/maindoc.log
@@ -1,7 +1,7 @@
-This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 4 FEB 2010 15:24
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 11 FEB 2010 18:03
entering extended mode
%&-line parsing enabled.
-**maindoc
+**maindoc.tex
(./maindoc.tex
LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, noh
@@ -464,8 +464,8 @@ Package: subfigure 2002/03/15 v2.1.5 subfigure package
\subfig@top=\skip74
\subfig@bottom=\skip75
) (./maindoc.aux
-(./Title.aux) (./Erklaerung.aux) (./Einleitung.aux) (./Tutorial.aux)
-(./Friend_Finder.aux) (./Ausblick.aux) (./Anhang.aux))
+(./Title.aux) (./Erklaerung.aux) (./Einleitung.aux) (./Grundlagen.aux)
+(./Tutorial.aux) (./Friend_Finder.aux) (./Anhang.aux))
\openout1 = `maindoc.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 105.
@@ -531,7 +531,7 @@ LaTeX Info: Redefining \pageref on input line 105.
\openout2 = `Title.aux'.
(./Title.tex
-<Bilder/siegel.png, id=147, 568.2831pt x 568.2831pt>
+<Bilder/siegel.png, id=127, 568.2831pt x 568.2831pt>
File: Bilder/siegel.png Graphic file (type png)
<use Bilder/siegel.png>
(/usr/share/texmf-texlive/tex/latex/ucs/data/uni-0.def
@@ -597,22 +597,17 @@ l.116 \include{Erklaerung}
\openout2 = `Einleitung.aux'.
(./Einleitung.tex
-Underfull \hbox (badness 10000) in paragraph at lines 3--6
+Underfull \hbox (badness 10000) in paragraph at lines 3--9
[]
-Underfull \hbox (badness 10000) in paragraph at lines 7--10
+Underfull \hbox (badness 10000) in paragraph at lines 10--15
[]
-Underfull \hbox (badness 10000) in paragraph at lines 11--16
-
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 17--23
+Underfull \hbox (badness 10000) in paragraph at lines 16--21
[]
@@ -620,286 +615,272 @@ Underfull \hbox (badness 10000) in paragraph at lines 17--23
]
-\openout2 = `Tutorial.aux'.
+\openout2 = `Grundlagen.aux'.
+
+ (./Grundlagen.tex
+Underfull \hbox (badness 10000) in paragraph at lines 8--23
- (./Tutorial.tex
-Overfull \hbox (0.23062pt too wide) in paragraph at lines 3--12
-\OT1/ptm/m/n/12 Auch die Frage der un-ter-st[]utzten Pro-gram-mier-sprachen ste
-llt sich, da das Pro-gramm nicht st[]andig
[]
-Underfull \hbox (badness 10000) in paragraph at lines 3--12
+Underfull \hbox (badness 10000) in paragraph at lines 24--30
[]
-Underfull \hbox (badness 10000) in paragraph at lines 13--17
+Underfull \hbox (badness 10000) in paragraph at lines 31--38
[]
+[3
-Underfull \hbox (badness 10000) in paragraph at lines 25--30
- []
+]
+Underfull \hbox (badness 10000) in paragraph at lines 41--49
+ []
-Underfull \hbox (badness 10000) in paragraph at lines 44--47
+Overfull \hbox (21.31631pt too wide) in paragraph at lines 50--54
+[]\OT1/ptm/m/n/12 Da auch ein zen-traler Knoten, []uber den der gesamte Daten-v
+erkehr aller Be-nutzer l[]auft, unerw[]unscht
[]
-[3
-
-
-]
-Underfull \hbox (badness 10000) in paragraph at lines 48--53
+Overfull \hbox (1.86339pt too wide) in paragraph at lines 50--54
+\OT1/ptm/m/n/12 ist, muss hi-er ein Kom-mu-nika-tions-di-enst genutzt wer-den,
+welch-er nach einem dezen-tralen Prinzip
[]
-Underfull \hbox (badness 10000) in paragraph at lines 59--62
+Underfull \hbox (badness 10000) in paragraph at lines 50--54
[]
-Underfull \hbox (badness 10000) in paragraph at lines 63--67
+Underfull \hbox (badness 10000) in paragraph at lines 55--58
[]
-Underfull \hbox (badness 10000) in paragraph at lines 70--76
+Underfull \hbox (badness 10000) in paragraph at lines 61--92
[]
[4]
-Underfull \hbox (badness 10000) in paragraph at lines 86--91
+Underfull \hbox (badness 10000) in paragraph at lines 93--98
[]
-
-Underfull \hbox (badness 10000) in paragraph at lines 96--99
+[5]
+Underfull \hbox (badness 10000) in paragraph at lines 101--105
[]
-Underfull \hbox (badness 10000) in paragraph at lines 107--110
+Underfull \hbox (badness 10000) in paragraph at lines 106--111
[]
-[5]
-Underfull \hbox (badness 10000) in paragraph at lines 111--115
+Overfull \hbox (5.2344pt too wide) in paragraph at lines 112--115
+[]\OT1/ptm/m/n/12 Um die Kom-mu-nika-tion zwis-chen ver-schiede-nen Teil-nehmer
+n zu erm[]oglichen sollte es m[]oglich
[]
-Overfull \hbox (6.26726pt too wide) in paragraph at lines 118--123
-\OT1/ptm/m/n/12 auch f[]ur den Be-nutzer ansprechend darzustellen, sowie eine e
-in-fache Be-di-en-barkeit zu garantieren.
+Underfull \hbox (badness 10000) in paragraph at lines 112--115
+
[]
-<Bilder/elm-app-01_2.png, id=231, 133.35536pt x 185.83714pt>
-File: Bilder/elm-app-01_2.png Graphic file (type png)
-<use Bilder/elm-app-01_2.png>
-<Bilder/elm-app-02_2.png, id=232, 206.48572pt x 405.22821pt>
-File: Bilder/elm-app-02_2.png Graphic file (type png)
+Underfull \hbox (badness 10000) in paragraph at lines 116--120
-<use Bilder/elm-app-02_2.png> <Bilder/efl.png, id=233, 48.18pt x 72.27pt>
-File: Bilder/efl.png Graphic file (type png)
+ []
-<use Bilder/efl.png>
+[6]
+Underfull \hbox (badness 10000) in paragraph at lines 132--143
-LaTeX Warning: `h' float specifier changed to `ht'.
+ []
+) [7]
+\openout2 = `Tutorial.aux'.
-Overfull \hbox (7.29773pt too wide) in paragraph at lines 140--146
-[]\OT1/ptm/m/n/12 Bei \OT1/ptm/m/it/12 Ecore \OT1/ptm/m/n/12 han-delt es sich u
-m eine \OT1/ptm/m/it/12 li-brary \OT1/ptm/m/n/12 welche das se-ri-al-isieren vo
-n mehreren Pro-grammteilen
+ (./Tutorial.tex
+Overfull \hbox (0.23062pt too wide) in paragraph at lines 3--16
+\OT1/ptm/m/n/12 Auch die Frage der un-ter-st[]utzten Pro-gram-mier-sprachen ste
+llt sich, da das Pro-gramm nicht st[]andig
[]
-Underfull \hbox (badness 10000) in paragraph at lines 140--146
+Underfull \hbox (badness 10000) in paragraph at lines 3--16
[]
-[6 <./Bilder/elm-app-01_2.png> <./Bilder/elm-app-02_2.png>]) [7 <./Bilder/efl.p
-ng>]
-\openout2 = `Friend_Finder.aux'.
- (./Friend_Finder.tex
-Underfull \hbox (badness 10000) in paragraph at lines 3--11
+Underfull \hbox (badness 10000) in paragraph at lines 17--21
[]
-Overfull \hbox (5.16269pt too wide) in paragraph at lines 12--19
-\OT1/ptm/m/n/12 Eine an-dere M[]oglichkeit best[]unde darin, dass man auf bes-t
-immten Ve-r-anstal-tun-gen wis-sen m[]ochte
+Overfull \hbox (16.10585pt too wide) in paragraph at lines 24--26
+\OT1/ptm/m/n/12 den f[]unf Be-trieb-ssys-teme f[]ur mo-bile Plat-tfor-men vorge
+stellt und auf deren Portierungsm[]oglichkeiten
[]
-Underfull \hbox (badness 10000) in paragraph at lines 12--19
+Underfull \hbox (badness 10000) in paragraph at lines 29--34
[]
-LaTeX Font Info: Try loading font information for OMS+ptm on input line 35.
-(/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 35.
- [8
+[8
]
-Underfull \hbox (badness 10000) in paragraph at lines 73--77
+Underfull \hbox (badness 10000) in paragraph at lines 48--51
[]
-[9]
-Overfull \hbox (10.33582pt too wide) in paragraph at lines 78--88
-\OT1/ptm/m/n/12 lung aus-tauschen, ohne dabei die Funk-tion-alit[]at der zu-gru
-nde liegen-den Kom-po-nen-ten zu zerst[]oren.
- []
-
-<Bilder/ablauf.png, id=262, 564.60938pt x 606.76688pt>
-File: Bilder/ablauf.png Graphic file (type png)
- <use Bilder/ablauf.png>
-
-LaTeX Warning: `h' float specifier changed to `ht'.
+Underfull \hbox (badness 10000) in paragraph at lines 52--59
-Overfull \hbox (17.98195pt too wide) in paragraph at lines 108--117
-\OT1/ptm/m/n/12 Zum er-stellen der Ober-fl[]ache wurde \OT1/ptm/m/it/12 En-ligh
-t-en-ment \OT1/ptm/m/n/12 ver-wen-det. Diese Bib-lio-thek stellt alle ben[]otig
-ten
[]
-Underfull \hbox (badness 10000) in paragraph at lines 120--123
+Underfull \hbox (badness 10000) in paragraph at lines 62--68
[]
-[10]
-Underfull \hbox (badness 10000) in paragraph at lines 124--139
- []
-
-[11 <./Bilder/ablauf.png>]
-Underfull \hbox (badness 10000) in paragraph at lines 150--156
+Underfull \hbox (badness 10000) in paragraph at lines 71--77
[]
-
-Overfull \hbox (16.41936pt too wide) in paragraph at lines 157--159
-[]\OT1/ptm/m/n/12 Auch hi-er wird, wie beim Versenden der Nachricht-en zum ver-
-schl[]usseln der \OT1/ptm/m/it/12 Blowfish-Algorithmus
+[9]
+Overfull \hbox (0.91805pt too wide) in paragraph at lines 87--95
+\OT1/ptm/m/it/12 iPhoneOS \OT1/ptm/m/n/12 wurde auf-grund sein-er man-gel-nden
+\OT1/ptm/m/it/12 Mul-ti-task-ing\OT1/ptm/m/n/12 -Unterst[]utzung aus-geschlosse
+n. Diese
[]
-Overfull \hbox (0.26793pt too wide) in paragraph at lines 161--162
-\OT1/ptm/m/n/12 noch nicht fi-nal....empf[]anger empf[]angt nachricht, ord-net
-sie, leit-et sie zum ze-ich-nen weit-er....grob
- []
+Underfull \hbox (badness 10000) in paragraph at lines 103--108
-[12]
-Overfull \hbox (16.41174pt too wide) in paragraph at lines 173--177
-\OT1/ptm/m/n/12 Daten-over-head pro-duziert und versendet wer-den. Dies ist not
-wendig, damit das Pro-gramm m[]oglichst
[]
-Underfull \hbox (badness 10000) in paragraph at lines 173--177
+Underfull \hbox (badness 10000) in paragraph at lines 109--113
[]
-
-Underfull \hbox (badness 10000) in paragraph at lines 178--181
-
+[10]
+Overfull \hbox (6.26726pt too wide) in paragraph at lines 119--125
+\OT1/ptm/m/n/12 auch f[]ur den Be-nutzer ansprechend darzustellen, sowie eine e
+in-fache Be-di-en-barkeit zu garantieren.
[]
+<Bilder/elm-app-01_2.png, id=237, 133.35536pt x 185.83714pt>
+File: Bilder/elm-app-01_2.png Graphic file (type png)
+
+<use Bilder/elm-app-01_2.png>
+<Bilder/elm-app-02_2.png, id=238, 206.48572pt x 405.22821pt>
+File: Bilder/elm-app-02_2.png Graphic file (type png)
-Underfull \hbox (badness 10000) in paragraph at lines 189--192
+<use Bilder/elm-app-02_2.png> <Bilder/efl.png, id=239, 48.18pt x 72.27pt>
+File: Bilder/efl.png Graphic file (type png)
- []
+<use Bilder/efl.png>
+LaTeX Warning: `h' float specifier changed to `ht'.
-Underfull \hbox (badness 10000) in paragraph at lines 193--196
+Overfull \hbox (7.29773pt too wide) in paragraph at lines 142--148
+[]\OT1/ptm/m/n/12 Bei \OT1/ptm/m/it/12 Ecore \OT1/ptm/m/n/12 han-delt es sich u
+m eine \OT1/ptm/m/it/12 li-brary \OT1/ptm/m/n/12 welche das se-ri-al-isieren vo
+n mehreren Pro-grammteilen
[]
-Underfull \hbox (badness 10000) in paragraph at lines 197--200
+Underfull \hbox (badness 10000) in paragraph at lines 142--148
[]
-[13]
-Overfull \hbox (4.52718pt too wide) in paragraph at lines 203--211
-\OT1/ptm/m/n/12 Wenn $\OML/ztmcm/m/it/12 h$ \OT1/ptm/m/n/12 die Gr[]o^^Ye des \
-OT1/ptm/m/it/12 TCP-Headers \OT1/ptm/m/n/12 und $\OML/ztmcm/m/it/12 t$ \OT1/ptm
-/m/n/12 die An-zahl der Ze-ichen der un-ver-schl[]usselten Nachricht
- []
+[11 <./Bilder/elm-app-01_2.png> <./Bilder/elm-app-02_2.png>]) [12 <./Bilder/efl
+.png>]
+\openout2 = `Friend_Finder.aux'.
-)
-Underfull \hbox (badness 10000) in paragraph at lines 221--119
+ (./Friend_Finder.tex
+<Bilder/ablauf.png, id=255, 546.54187pt x 597.73312pt>
+File: Bilder/ablauf.png Graphic file (type png)
+ <use Bilder/ablauf.png>
- []
+LaTeX Warning: `h' float specifier changed to `ht'.
-[14]
-\openout2 = `Ausblick.aux'.
- (./Ausblick.tex
-Overfull \hbox (20.34167pt too wide) in paragraph at lines 11--16
-\OT1/ptm/m/n/12 Bei er-sterem ex-istiert nur ein \OT1/ptm/m/it/12 private-key \
-OT1/ptm/m/n/12 welch-er von allen Teil-nehmern zum ver- sowie entschl[]usseln
+Overfull \hbox (17.98195pt too wide) in paragraph at lines 30--39
+\OT1/ptm/m/n/12 Zum er-stellen der Ober-fl[]ache wurde \OT1/ptm/m/it/12 En-ligh
+t-en-ment \OT1/ptm/m/n/12 ver-wen-det. Diese Bib-lio-thek stellt alle ben[]otig
+ten
[]
-Underfull \hbox (badness 10000) in paragraph at lines 11--16
+Underfull \hbox (badness 10000) in paragraph at lines 42--45
[]
+[13
-Underfull \hbox (badness 10000) in paragraph at lines 22--26
- []
+]
+Underfull \hbox (badness 10000) in paragraph at lines 46--61
+ []
-Underfull \hbox (badness 10000) in paragraph at lines 27--30
+[14 <./Bilder/ablauf.png>]
+<Bilder/chat.png, id=269, 338.76563pt x 450.18187pt>
+File: Bilder/chat.png Graphic file (type png)
+ <use Bilder/chat.png>
+Underfull \hbox (badness 10000) in paragraph at lines 78--84
[]
-Underfull \hbox (badness 10000) in paragraph at lines 31--39
-
+Overfull \hbox (16.41936pt too wide) in paragraph at lines 85--87
+[]\OT1/ptm/m/n/12 Auch hi-er wird, wie beim Versenden der Nachricht-en zum ver-
+schl[]usseln der \OT1/ptm/m/it/12 Blowfish-Algorithmus
[]
-[15
-
+[15 <./Bilder/chat.png>]
+Overfull \hbox (0.26793pt too wide) in paragraph at lines 90--91
+\OT1/ptm/m/n/12 noch nicht fi-nal....empf[]anger empf[]angt nachricht, ord-net
+sie, leit-et sie zum ze-ich-nen weit-er....grob
+ []
-]
-Underfull \hbox (badness 10000) in paragraph at lines 49--54
+<Bilder/barcode.png, id=281, 337.26pt x 450.9347pt>
+File: Bilder/barcode.png Graphic file (type png)
+ <use Bilder/barcode.png>
+Underfull \hbox (badness 10000) in paragraph at lines 112--118
[]
+[16 <./Bilder/barcode.png>]
+Underfull \hbox (badness 10000) in paragraph at lines 119--124
-Overfull \hbox (6.1992pt too wide) in paragraph at lines 55--71
-\OT1/ptm/m/n/12 Phones re-al-isiert. Das \OT1/ptm/m/it/12 PGP\OT1/ptm/m/n/12 -V
-erfahren erm[]oglicht es Dat-en zu ver-schl[]usseln, sig-nieren oder sowohl
[]
-Underfull \hbox (badness 10000) in paragraph at lines 55--71
+Underfull \hbox (badness 10000) in paragraph at lines 132--147
[]
-[16]
-
-LaTeX Font Warning: Font shape `OT1/cmss/bx/it' undefined
-(Font) using `OT1/cmss/bx/n' instead on input line 76.
+[17]
+Overfull \hbox (4.52718pt too wide) in paragraph at lines 156--165
+\OT1/ptm/m/n/12 Wenn $\OML/ztmcm/m/it/12 h$ \OT1/ptm/m/n/12 die Gr[]o^^Ye des \
+OT1/ptm/m/it/12 TCP-Headers \OT1/ptm/m/n/12 und $\OML/ztmcm/m/it/12 t$ \OT1/ptm
+/m/n/12 die An-zahl der Ze-ichen der un-ver-schl[]usselten Nachricht
+ []
-) [17]
+) [18]
\openout2 = `Anhang.aux'.
(./Anhang.tex
@@ -913,7 +894,7 @@ Overfull \hbox (2.40399pt too wide) in paragraph at lines 56--56
2.3-dev/include[]
[]
-[18
+[19
]
@@ -922,7 +903,7 @@ Overfull \hbox (14.754pt too wide) in paragraph at lines 56--56
ngw32ce/include/"[]
[]
-[19] [20]
+[20] [21]
Overfull \hbox (64.15402pt too wide) in paragraph at lines 192--192
[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/cp libpng-1.2.33-dev/lib/pkgconfig/libpng* $
WINCE_PATH/lib/pkgconfig/[]
@@ -940,7 +921,7 @@ Overfull \hbox (13.83946pt too wide) in paragraph at lines 194--197
der Wert von ''pre-fix`` auf ''WINCE[]PATH``
[]
-[21]
+[22]
Overfull \hbox (20.929pt too wide) in paragraph at lines 208--208
[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --di
sable-async-events[]
@@ -958,13 +939,13 @@ Overfull \hbox (169.12907pt too wide) in paragraph at lines 230--230
d.h $WINCE_PATH/freetype-2.3.7-dev/include[]
[]
-[22]
+[23]
Overfull \hbox (33.279pt too wide) in paragraph at lines 265--265
[] \OT1/cmtt/m/n/12 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRE
D|SYNCHRONIZE|0xfff)[]
[]
-[23]
+[24]
Overfull \hbox (119.72905pt too wide) in paragraph at lines 310--310
[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --wi
th-edje-cc=$WINCE_PATH/bin/edje_cc[]
@@ -976,7 +957,15 @@ Overfull \hbox (40.46509pt too wide) in paragraph at lines 312--315
/'' alle Vorkomm-nisse von ``test[]fileselector.c''
[]
-[24]
+[25]
+LaTeX Font Info: Try loading font information for OMS+ptm on input line 351.
+
+ (/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 351.
+
Overfull \hbox (57.77696pt too wide) in paragraph at lines 351--352
[]\OT1/ptm/m/n/12 zlib-1.2.3-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
ceforge . net / projects / cegcc / files / ported % 20packages /
@@ -1024,7 +1013,7 @@ Overfull \hbox (9.43616pt too wide) in paragraph at lines 364--365
ourceforge . net / projects / cegcc / files / ported %
[]
-[25] [26] [27]
+[26] [27] [28]
Overfull \hbox (14.754pt too wide) in paragraph at lines 489--489
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-a
rm/loader_eet.dll[]
@@ -1066,33 +1055,29 @@ Overfull \hbox (2.40399pt too wide) in paragraph at lines 489--489
m/saver_png.dll[]
[]
-) [28] (./maindoc.bbl [29
-
-]) [30] (./maindoc.aux (./Title.aux) (./Erklaerung.aux) (./Einleitung.aux) (./T
-utorial.aux) (./Friend_Finder.aux) (./Ausblick.aux)
-(./Anhang.aux))
-
-LaTeX Font Warning: Some font shapes were not available, defaults substituted.
+) [29] (./maindoc.bbl [30
- )
+]) [31] (./maindoc.aux (./Title.aux) (./Erklaerung.aux) (./Einleitung.aux) (./G
+rundlagen.aux) (./Tutorial.aux) (./Friend_Finder.aux)
+(./Anhang.aux)) )
Here is how much of TeX's memory you used:
8712 strings out of 95086
- 119616 string characters out of 1183254
- 200164 words of memory out of 1500000
- 11535 multiletter control sequences out of 10000+50000
+ 119580 string characters out of 1183254
+ 200196 words of memory out of 1500000
+ 11538 multiletter control sequences out of 10000+50000
24736 words of font info for 62 fonts, out of 1200000 for 2000
28 hyphenation exceptions out of 8191
- 35i,12n,46p,303b,591s stack positions out of 5000i,500n,6000p,200000b,5000s
-{/usr/share/texmf-texlive/fonts/enc/dvips/base/8r.enc}</usr/share/texmf-texli
-ve/fonts/type1/bluesky/cm/cmmi10.pfb></usr/share/texmf-texlive/fonts/type1/blue
-sky/cm/cmr10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmssbx10.pfb>
-</usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf-t
-exlive/fonts/type1/bluesky/cm/cmtt12.pfb></usr/share/texmf-texlive/fonts/type1/
-urw/times/utmr8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/times/utmri8a.pf
-b>
-Output written on maindoc.pdf (32 pages, 1369112 bytes).
+ 35i,13n,46p,307b,591s stack positions out of 5000i,500n,6000p,200000b,5000s
+{/usr/share/texmf-texlive/fonts/enc/dvips/base/8r.enc}</usr/sh
+are/texmf-texlive/fonts/type1/bluesky/cm/cmmi10.pfb></usr/share/texmf-texlive/f
+onts/type1/bluesky/cm/cmr10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/c
+m/cmssbx10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmsy10.pfb></us
+r/share/texmf-texlive/fonts/type1/bluesky/cm/cmtt12.pfb></usr/share/texmf-texli
+ve/fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/t
+imes/utmri8a.pfb>
+Output written on maindoc.pdf (33 pages, 1438010 bytes).
PDF statistics:
- 481 PDF objects out of 1000 (max. 8388607)
- 111 named destinations out of 1000 (max. 131072)
- 322 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 467 PDF objects out of 1000 (max. 8388607)
+ 105 named destinations out of 1000 (max. 131072)
+ 292 words of extra memory for PDF output out of 10000 (max. 10000000)
diff --git a/ausarbeitung/maindoc.out b/ausarbeitung/maindoc.out
index 3ef467a..56f830b 100644
--- a/ausarbeitung/maindoc.out
+++ b/ausarbeitung/maindoc.out
@@ -1,35 +1,30 @@
\BOOKMARK [1][-]{section.1}{Einleitung}{}
-\BOOKMARK [1][-]{section.2}{Technische Grundlagen}{}
-\BOOKMARK [2][-]{subsection.2.1}{Betriebsysteme f\374r mobile Ger\344te}{section.2}
-\BOOKMARK [3][-]{subsubsection.2.1.1}{Windows Mobile}{subsection.2.1}
-\BOOKMARK [3][-]{subsubsection.2.1.2}{Android}{subsection.2.1}
-\BOOKMARK [3][-]{subsubsection.2.1.3}{WebOS}{subsection.2.1}
-\BOOKMARK [3][-]{subsubsection.2.1.4}{iPhone OS}{subsection.2.1}
-\BOOKMARK [3][-]{subsubsection.2.1.5}{Symbian OS}{subsection.2.1}
-\BOOKMARK [3][-]{subsubsection.2.1.6}{Zielplattform}{subsection.2.1}
-\BOOKMARK [2][-]{subsection.2.2}{Softwaregrundlagen}{section.2}
-\BOOKMARK [3][-]{subsubsection.2.2.1}{CeGCC}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.2}{Enlightenment}{subsection.2.2}
-\BOOKMARK [1][-]{section.3}{Friend Finder}{}
-\BOOKMARK [2][-]{subsection.3.1}{Anforderungsanalyse}{section.3}
-\BOOKMARK [3][-]{subsubsection.3.1.1}{Eigene Position senden}{subsection.3.1}
-\BOOKMARK [3][-]{subsubsection.3.1.2}{Position anderer Teilnehmer anzeigen}{subsection.3.1}
-\BOOKMARK [3][-]{subsubsection.3.1.3}{Nachrichten versenden und empfangen}{subsection.3.1}
-\BOOKMARK [3][-]{subsubsection.3.1.4}{2D-Barcode}{subsection.3.1}
-\BOOKMARK [2][-]{subsection.3.2}{Verwendete Verfahren und Bibliotheken}{section.3}
-\BOOKMARK [3][-]{subsubsection.3.2.1}{Grafisches Benutzeroberfl\344che}{subsection.3.2}
-\BOOKMARK [3][-]{subsubsection.3.2.2}{Versenden der Nachrichten}{subsection.3.2}
-\BOOKMARK [3][-]{subsubsection.3.2.3}{Versenden der eigenen Position}{subsection.3.2}
-\BOOKMARK [3][-]{subsubsection.3.2.4}{Empfangen der eigenen Position}{subsection.3.2}
-\BOOKMARK [3][-]{subsubsection.3.2.5}{Erzeugen eines 2D-Barcodes}{subsection.3.2}
-\BOOKMARK [2][-]{subsection.3.3}{Analyse}{section.3}
-\BOOKMARK [3][-]{subsubsection.3.3.1}{Allgemeiner Datenverkehr}{subsection.3.3}
-\BOOKMARK [3][-]{subsubsection.3.3.2}{Versenden und Empfangen von Nachrichten}{subsection.3.3}
-\BOOKMARK [3][-]{subsubsection.3.3.3}{Versenden und Empfangen von Positionen}{subsection.3.3}
-\BOOKMARK [3][-]{subsubsection.3.3.4}{Fazit der Auswertung}{subsection.3.3}
-\BOOKMARK [1][-]{section.4}{Ausblick}{}
-\BOOKMARK [2][-]{subsection.4.1}{Kryptographische Verfahren auf Mobilen Plattformen}{section.4}
-\BOOKMARK [3][-]{subsubsection.4.1.1}{Symmetrische Verschl\374sselungsverfahren}{subsection.4.1}
-\BOOKMARK [3][-]{subsubsection.4.1.2}{Asymmetrische Verschl\374sselungsverfahren}{subsection.4.1}
-\BOOKMARK [2][-]{subsection.4.2}{Alternative location awareness Verfahren}{section.4}
-\BOOKMARK [2][-]{subsection.4.3}{Zusammenfassung}{section.4}
+\BOOKMARK [1][-]{section.2}{Grundlagen}{}
+\BOOKMARK [2][-]{subsection.2.1}{Aktueller Stand}{section.2}
+\BOOKMARK [2][-]{subsection.2.2}{Ziele}{section.2}
+\BOOKMARK [2][-]{subsection.2.3}{Anwendungsm\366glichkeiten}{section.2}
+\BOOKMARK [2][-]{subsection.2.4}{Anforderungen}{section.2}
+\BOOKMARK [2][-]{subsection.2.5}{Verfahren}{section.2}
+\BOOKMARK [1][-]{section.3}{Technische Grundlagen}{}
+\BOOKMARK [2][-]{subsection.3.1}{Betriebsysteme f\374r mobile Ger\344te}{section.3}
+\BOOKMARK [3][-]{subsubsection.3.1.1}{Windows Mobile}{subsection.3.1}
+\BOOKMARK [3][-]{subsubsection.3.1.2}{Android}{subsection.3.1}
+\BOOKMARK [3][-]{subsubsection.3.1.3}{WebOS}{subsection.3.1}
+\BOOKMARK [3][-]{subsubsection.3.1.4}{iPhone OS}{subsection.3.1}
+\BOOKMARK [3][-]{subsubsection.3.1.5}{Symbian OS}{subsection.3.1}
+\BOOKMARK [3][-]{subsubsection.3.1.6}{Zielplattform}{subsection.3.1}
+\BOOKMARK [2][-]{subsection.3.2}{Softwaregrundlagen}{section.3}
+\BOOKMARK [3][-]{subsubsection.3.2.1}{CeGCC}{subsection.3.2}
+\BOOKMARK [3][-]{subsubsection.3.2.2}{Enlightenment}{subsection.3.2}
+\BOOKMARK [1][-]{section.4}{Friend Finder}{}
+\BOOKMARK [2][-]{subsection.4.1}{Verwendete Verfahren und Bibliotheken}{section.4}
+\BOOKMARK [3][-]{subsubsection.4.1.1}{Grafisches Benutzeroberfl\344che}{subsection.4.1}
+\BOOKMARK [3][-]{subsubsection.4.1.2}{Versenden der Nachrichten}{subsection.4.1}
+\BOOKMARK [3][-]{subsubsection.4.1.3}{Versenden der eigenen Position}{subsection.4.1}
+\BOOKMARK [3][-]{subsubsection.4.1.4}{Empfangen der eigenen Position}{subsection.4.1}
+\BOOKMARK [3][-]{subsubsection.4.1.5}{Erzeugen eines 2D-Barcodes}{subsection.4.1}
+\BOOKMARK [2][-]{subsection.4.2}{Analyse}{section.4}
+\BOOKMARK [3][-]{subsubsection.4.2.1}{Allgemeiner Datenverkehr}{subsection.4.2}
+\BOOKMARK [3][-]{subsubsection.4.2.2}{Versenden und Empfangen von Nachrichten}{subsection.4.2}
+\BOOKMARK [3][-]{subsubsection.4.2.3}{Versenden und Empfangen von Positionen}{subsection.4.2}
+\BOOKMARK [3][-]{subsubsection.4.2.4}{Fazit der Auswertung}{subsection.4.2}
diff --git a/ausarbeitung/maindoc.pdf b/ausarbeitung/maindoc.pdf
index 68af1d2..6b2205a 100644
--- a/ausarbeitung/maindoc.pdf
+++ b/ausarbeitung/maindoc.pdf
Binary files differ
diff --git a/ausarbeitung/maindoc.tex b/ausarbeitung/maindoc.tex
index 760f984..a25f999 100644
--- a/ausarbeitung/maindoc.tex
+++ b/ausarbeitung/maindoc.tex
@@ -115,9 +115,9 @@
\pagenumbering{arabic}
\include{Erklaerung}
\include{Einleitung}
+\include{Grundlagen}
\include{Tutorial}
\include{Friend_Finder}
-\include{Ausblick}
\include{Anhang}
%\bibliographystyle{dinat}
%\bibliography{literature}
diff --git a/ausarbeitung/maindoc.tex.backup b/ausarbeitung/maindoc.tex.backup
new file mode 100644
index 0000000..5de7032
--- /dev/null
+++ b/ausarbeitung/maindoc.tex.backup
@@ -0,0 +1,129 @@
+%%%%%%%%%%
+%Pr�ambel%
+%%%%%%%%%%
+
+%Hier sind Parameter einzustellen (Pakete werden geladen und durch [Optionen]
+%und {Argumente} bestimmt
+\documentclass[a4paper,12pt]{scrartcl}
+
+%Kodierung des Tex-Dokumentes
+%\usepackage[T1]{fontenc}
+%\usepackage[latin1]{inputenc}
+\usepackage[utf8x]{inputenc}
+
+%erlaubt die deutschsprachigen Zeichen
+\usepackage[ngerman]{babel}
+\usepackage{marvosym}
+%erlaubt das Zeichnen von Tabellen
+\usepackage{tabularx}
+%erlaubt Graphiken einzubinden
+\usepackage{graphicx}
+\usepackage{url}
+
+%erm�glicht verschiedene Stile des Literaturverzeichnises
+%\usepackage{jurabib}
+%\usepackage{plain}
+%weitere Stile auf der
+\usepackage[sectionbib,square]{natbib}
+
+\usepackage{a4wide}
+\usepackage{amsfonts}
+\usepackage{amsmath}
+\usepackage{amssymb}
+
+%Mathematische Formeln
+\usepackage{amsmath,mathrsfs,amssymb}
+\usepackage[intlimits]{empheq}
+\usepackage{theorem}
+%\usepackage{mathpazo}
+\usepackage{mathptmx}
+
+%Listen
+\usepackage{eqlist}
+
+%erlaubt Referenzen im Inhaltsverzeichnis
+\usepackage[
+ pdftex,
+ pdfpagelabels,
+ plainpages=false,
+ colorlinks,
+ urlcolor=blue,
+ linkcolor=black,
+ citecolor=black,
+ pdfauthor={Patrick Hornecker},
+ pdftitle={GZ:if expand("%") == ""|browse confirm w|else|confirm w|endif
+}
+]{hyperref}
+
+% programm code
+\usepackage{listings}
+\lstset{basicstyle=\tiny, stringstyle=\ttfamily, backgroundcolor=\color{gray}, numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt}
+
+%(nummeriert auch \paragraph)
+%\setcounter{secnumdepth}{4}
+
+%(Anzahl Ebenen ins Inhaltsverzeichnis)
+%\setcounter{tocdepth}{3}
+
+%\setcounter{section}{4}
+%\setcounter{chapter}{+2}
+
+\usepackage{makeidx}
+
+%Zeilenabstand
+% \linespread{1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Paket fancyhdr einbinden%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{fancyhdr}
+\renewcommand{\headrulewidth}{0.4pt}
+%Seitenstil auf fancy schalten. Das Paket pagestyle Bestimmt, ob Kopf- und/oder
+%Fusszeile angezeigt werden
+\pagestyle{fancyplain}
+%l�scht vordefinierte Einstellungen
+\fancyhf{}
+
+\fancyhead[L]{Mobiler, persönlicher Assistent}
+\fancyhead[R]{Patrick Hornecker}
+\fancyfoot[C]{\thepage}
+
+%L�dt Symbolschriften
+\usepackage{pifont}
+\usepackage{subfigure}
+%Hyperlinks
+\usepackage{hyperref}
+%Bibtex
+\usepackage{natbib}
+%Setzt den Abstand zwischen den Abs�tzen auf "gro�"
+\setlength{\parskip}\bigskipamount
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%Anfang des Textk�rpers%
+%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+
+%Der Befehl \include{x} sagt: die Datei x einbinden. In ihr
+%befindet sich ein St�ck von Tex-Dokument, das schon als ein
+%Teil von der Umgebung des Textk�rpers verstanden wird...
+%\include{titel}
+\include{Title}
+\pagenumbering{roman}
+\tableofcontents
+\clearpage
+\pagenumbering{arabic}
+\include{Erklaerung}
+\include{Einleitung}
+\include{Tutorial}
+\include{Friend_Finder}
+\include{Ausblick}
+\include{Anhang}
+%\bibliographystyle{dinat}
+%\bibliography{literature}
+\bibliography{literature}
+\bibliographystyle{dinat}
+
+\nocite{*}
+
+\end{document}
diff --git a/ausarbeitung/maindoc.tex~ b/ausarbeitung/maindoc.tex~
index 0a413aa..2293d1c 100644
--- a/ausarbeitung/maindoc.tex~
+++ b/ausarbeitung/maindoc.tex~
@@ -115,15 +115,15 @@
\pagenumbering{arabic}
\include{Erklaerung}
\include{Einleitung}
+\include{Grundlagen}
\include{Tutorial}
\include{Friend_Finder}
-\include{Ausblick}
\include{Anhang}
%\bibliographystyle{dinat}
%\bibliography{literature}
\bibliography{literature}
%\bibliographystyle{plain}
-\bibliographystyle{unsrt}
+\bibliographystyle{plain}
\nocite{*}
\end{document}
diff --git a/ausarbeitung/maindoc.toc b/ausarbeitung/maindoc.toc
index a218c0a..eb4dce0 100644
--- a/ausarbeitung/maindoc.toc
+++ b/ausarbeitung/maindoc.toc
@@ -1,36 +1,31 @@
\select@language {ngerman}
\contentsline {section}{\numberline {1}Einleitung}{2}{section.1}
-\contentsline {section}{\numberline {2}Technische Grundlagen}{3}{section.2}
-\contentsline {subsection}{\numberline {2.1}Betriebsysteme f\IeC {\"u}r mobile Ger\IeC {\"a}te}{3}{subsection.2.1}
-\contentsline {subsubsection}{\numberline {2.1.1}Windows Mobile}{3}{subsubsection.2.1.1}
-\contentsline {subsubsection}{\numberline {2.1.2}Android}{4}{subsubsection.2.1.2}
-\contentsline {subsubsection}{\numberline {2.1.3}WebOS}{4}{subsubsection.2.1.3}
-\contentsline {subsubsection}{\numberline {2.1.4}iPhone OS}{4}{subsubsection.2.1.4}
-\contentsline {subsubsection}{\numberline {2.1.5}Symbian OS}{5}{subsubsection.2.1.5}
-\contentsline {subsubsection}{\numberline {2.1.6}Zielplattform}{5}{subsubsection.2.1.6}
-\contentsline {subsection}{\numberline {2.2}Softwaregrundlagen}{5}{subsection.2.2}
-\contentsline {subsubsection}{\numberline {2.2.1}CeGCC}{6}{subsubsection.2.2.1}
-\contentsline {subsubsection}{\numberline {2.2.2}Enlightenment}{6}{subsubsection.2.2.2}
-\contentsline {section}{\numberline {3}Friend Finder}{8}{section.3}
-\contentsline {subsection}{\numberline {3.1}Anforderungsanalyse}{8}{subsection.3.1}
-\contentsline {subsubsection}{\numberline {3.1.1}Eigene Position senden}{9}{subsubsection.3.1.1}
-\contentsline {subsubsection}{\numberline {3.1.2}Position anderer Teilnehmer anzeigen}{9}{subsubsection.3.1.2}
-\contentsline {subsubsection}{\numberline {3.1.3}Nachrichten versenden und empfangen}{9}{subsubsection.3.1.3}
-\contentsline {subsubsection}{\numberline {3.1.4}2D-Barcode}{9}{subsubsection.3.1.4}
-\contentsline {subsection}{\numberline {3.2}Verwendete Verfahren und Bibliotheken}{10}{subsection.3.2}
-\contentsline {subsubsection}{\numberline {3.2.1}Grafisches Benutzeroberfl\IeC {\"a}che}{10}{subsubsection.3.2.1}
-\contentsline {subsubsection}{\numberline {3.2.2}Versenden der Nachrichten}{11}{subsubsection.3.2.2}
-\contentsline {subsubsection}{\numberline {3.2.3}Versenden der eigenen Position}{12}{subsubsection.3.2.3}
-\contentsline {subsubsection}{\numberline {3.2.4}Empfangen der eigenen Position}{12}{subsubsection.3.2.4}
-\contentsline {subsubsection}{\numberline {3.2.5}Erzeugen eines 2D-Barcodes}{13}{subsubsection.3.2.5}
-\contentsline {subsection}{\numberline {3.3}Analyse}{13}{subsection.3.3}
-\contentsline {subsubsection}{\numberline {3.3.1}Allgemeiner Datenverkehr}{13}{subsubsection.3.3.1}
-\contentsline {subsubsection}{\numberline {3.3.2}Versenden und Empfangen von Nachrichten}{14}{subsubsection.3.3.2}
-\contentsline {subsubsection}{\numberline {3.3.3}Versenden und Empfangen von Positionen}{14}{subsubsection.3.3.3}
-\contentsline {subsubsection}{\numberline {3.3.4}Fazit der Auswertung}{14}{subsubsection.3.3.4}
-\contentsline {section}{\numberline {4}Ausblick}{15}{section.4}
-\contentsline {subsection}{\numberline {4.1}Kryptographische Verfahren auf Mobilen Plattformen}{15}{subsection.4.1}
-\contentsline {subsubsection}{\numberline {4.1.1}Symmetrische Verschl\IeC {\"u}sselungsverfahren}{15}{subsubsection.4.1.1}
-\contentsline {subsubsection}{\numberline {4.1.2}Asymmetrische Verschl\IeC {\"u}sselungsverfahren}{16}{subsubsection.4.1.2}
-\contentsline {subsection}{\numberline {4.2}Alternative \textit {location awareness} Verfahren}{17}{subsection.4.2}
-\contentsline {subsection}{\numberline {4.3}Zusammenfassung}{17}{subsection.4.3}
+\contentsline {section}{\numberline {2}Grundlagen}{3}{section.2}
+\contentsline {subsection}{\numberline {2.1}Aktueller Stand}{3}{subsection.2.1}
+\contentsline {subsection}{\numberline {2.2}Ziele}{4}{subsection.2.2}
+\contentsline {subsection}{\numberline {2.3}Anwendungsm\IeC {\"o}glichkeiten}{4}{subsection.2.3}
+\contentsline {subsection}{\numberline {2.4}Anforderungen}{6}{subsection.2.4}
+\contentsline {subsection}{\numberline {2.5}Verfahren}{6}{subsection.2.5}
+\contentsline {section}{\numberline {3}Technische Grundlagen}{8}{section.3}
+\contentsline {subsection}{\numberline {3.1}Betriebsysteme f\IeC {\"u}r mobile Ger\IeC {\"a}te}{8}{subsection.3.1}
+\contentsline {subsubsection}{\numberline {3.1.1}Windows Mobile}{8}{subsubsection.3.1.1}
+\contentsline {subsubsection}{\numberline {3.1.2}Android}{9}{subsubsection.3.1.2}
+\contentsline {subsubsection}{\numberline {3.1.3}WebOS}{9}{subsubsection.3.1.3}
+\contentsline {subsubsection}{\numberline {3.1.4}iPhone OS}{9}{subsubsection.3.1.4}
+\contentsline {subsubsection}{\numberline {3.1.5}Symbian OS}{10}{subsubsection.3.1.5}
+\contentsline {subsubsection}{\numberline {3.1.6}Zielplattform}{10}{subsubsection.3.1.6}
+\contentsline {subsection}{\numberline {3.2}Softwaregrundlagen}{10}{subsection.3.2}
+\contentsline {subsubsection}{\numberline {3.2.1}CeGCC}{10}{subsubsection.3.2.1}
+\contentsline {subsubsection}{\numberline {3.2.2}Enlightenment}{11}{subsubsection.3.2.2}
+\contentsline {section}{\numberline {4}Friend Finder}{13}{section.4}
+\contentsline {subsection}{\numberline {4.1}Verwendete Verfahren und Bibliotheken}{13}{subsection.4.1}
+\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}
+\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{13}{subsubsection.4.1.2}
+\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{15}{subsubsection.4.1.3}
+\contentsline {subsubsection}{\numberline {4.1.4}Empfangen der eigenen Position}{16}{subsubsection.4.1.4}
+\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{16}{subsubsection.4.1.5}
+\contentsline {subsection}{\numberline {4.2}Analyse}{16}{subsection.4.2}
+\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{17}{subsubsection.4.2.1}
+\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{18}{subsubsection.4.2.2}
+\contentsline {subsubsection}{\numberline {4.2.3}Versenden und Empfangen von Positionen}{18}{subsubsection.4.2.3}
+\contentsline {subsubsection}{\numberline {4.2.4}Fazit der Auswertung}{18}{subsubsection.4.2.4}