summaryrefslogtreecommitdiffstats
path: root/ausarbeitung
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-14 16:47:11 +0100
committerPatrick Hornecker2010-02-14 16:47:11 +0100
commitd87ceaf676e137bffa3e6fb57ee3260a92db0f28 (patch)
tree0de81397eb0b529fd4c40ea886bb9b90cd59a4bd /ausarbeitung
parenttex source (diff)
downloadfriendfinder-d87ceaf676e137bffa3e6fb57ee3260a92db0f28.tar.gz
friendfinder-d87ceaf676e137bffa3e6fb57ee3260a92db0f28.tar.xz
friendfinder-d87ceaf676e137bffa3e6fb57ee3260a92db0f28.zip
improved sender and receiver
Diffstat (limited to 'ausarbeitung')
-rw-r--r--ausarbeitung/Anhang.aux2
-rw-r--r--ausarbeitung/Anhang.tex66
-rw-r--r--ausarbeitung/Anhang.tex~66
-rw-r--r--ausarbeitung/Einleitung.tex8
-rw-r--r--ausarbeitung/Einleitung.tex~11
-rw-r--r--ausarbeitung/Friend_Finder.aux8
-rw-r--r--ausarbeitung/Friend_Finder.tex86
-rw-r--r--ausarbeitung/Friend_Finder.tex.backup104
-rw-r--r--ausarbeitung/Friend_Finder.tex~89
-rw-r--r--ausarbeitung/Grundlagen.tex137
-rw-r--r--ausarbeitung/Grundlagen.tex.backup68
-rw-r--r--ausarbeitung/Grundlagen.tex~137
-rw-r--r--ausarbeitung/Title.tex2
-rw-r--r--ausarbeitung/Title.tex~4
-rw-r--r--ausarbeitung/Tutorial.aux1
-rw-r--r--ausarbeitung/Tutorial.tex57
-rw-r--r--ausarbeitung/Tutorial.tex~57
-rw-r--r--ausarbeitung/literature.bib5
-rw-r--r--ausarbeitung/maindoc.aux19
-rw-r--r--ausarbeitung/maindoc.bbl7
-rw-r--r--ausarbeitung/maindoc.blg51
-rw-r--r--ausarbeitung/maindoc.log231
-rw-r--r--ausarbeitung/maindoc.pdfbin1438010 -> 1439822 bytes
-rw-r--r--ausarbeitung/maindoc.toc4
24 files changed, 662 insertions, 558 deletions
diff --git a/ausarbeitung/Anhang.aux b/ausarbeitung/Anhang.aux
index 318e259..423d8a4 100644
--- a/ausarbeitung/Anhang.aux
+++ b/ausarbeitung/Anhang.aux
@@ -1,6 +1,6 @@
\relax
\@setckpt{Anhang}{
-\setcounter{page}{30}
+\setcounter{page}{31}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
diff --git a/ausarbeitung/Anhang.tex b/ausarbeitung/Anhang.tex
index 3297ab6..5ad1988 100644
--- a/ausarbeitung/Anhang.tex
+++ b/ausarbeitung/Anhang.tex
@@ -55,9 +55,9 @@ 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
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten Shell neu exportiert werden, da die Variablen durch die hier gewählte
+Methode nur
+in diesen Shell's existieren, in denen 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
@@ -67,7 +67,7 @@ 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
+Paketinformationen
der installierten Dateien beinhaltet. Dieses exportieren geschieht mit dem folgenden Aufruf.
\begin{verbatim}
@@ -81,7 +81,7 @@ dieses Verzeichniss gewechselt werden und es kann mit dem ersten Programm begonn
\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:
+Das Herunterladen geschieht mit:
\begin{verbatim}
svn co http://svn.enlightenment.org/svn/e/trunk/evil
@@ -95,15 +95,15 @@ eingelesen werden. Nachdem dies geschehen ist, kann man nun das Konfigurationssk
./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
+Durch diesen Aufruf wird der Installationspfad auf den Wert der Variable ``WINCE\_PATH'' gesetzt, als Zielsystem ein
+\textit{ARM-Prozessor} gewählt 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
+Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
installieren.
\begin{verbatim}
@@ -128,7 +128,7 @@ Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
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
+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.
@@ -142,7 +142,7 @@ Bevor man \textit{Eet} erstellen kann, muss man noch vier vorgefertigte \textit{
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
+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.
@@ -164,6 +164,8 @@ Im Anschluss muss nun auch wieder kompiliert und installiert werden.
\subsubsection*{Embryo}
+Der Erste Schritt ist auch hier das Herunterladen des Programmcodes.
+
\begin{verbatim}
svn co http://svn.enlightenment.org/svn/e/trunk/embryo
\end{verbatim}
@@ -182,13 +184,15 @@ Im Anschluss nun auch wieder kompilieren und installieren.
\subsubsection*{Evas}
-Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollen diese in das
+Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollten diese in das
gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die
-Packetinformationen beinhalten für die heruntergeladen Dateien ergänzt werden:
+Paketinformationen beinhalten, um die heruntergeladen Pakete 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
+ 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
@@ -243,15 +247,15 @@ zu
#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
+ab. Anschliessend muss nun auch der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
+\textit{include}-Pfade in den Headern von ''freetype2`` nicht korrekt sind.\newline
Falls man nun noch \textit{evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
und ''ddraw.h`` in die Verzichnisse ''/opt/cegcc/arm-cegcc/include/w32api/'' und ''/opt/mingw32ce/arm-mingw32ce/include/''
kopieren.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zu allererst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
+Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
\begin{verbatim}
@@ -265,7 +269,7 @@ Um \textit{Ecore} zu erstellen muss zu allererst eine Änderung im ``winnt.h''-H
\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
+Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{Ecore} kompiliert werden. Dazu wird auch hier wieder das
``autogen.sh'' Skript ausgeführt.
\begin{verbatim}
@@ -309,7 +313,7 @@ Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
./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
+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.
@@ -348,20 +352,28 @@ Mobile Gerät kopiert und entpackt werden.
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}
+ \item zlib-1.2.3-bin.tar.bz2:
+\newline \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:
+\newline \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:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-bin.tar.bz2/download}
+ \item libjepg-6b-dev.tar.bz2:
+\newline \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}
+ \item freetype-2.3.7-bin.tar.bz2:
+\newline \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:
+\newline \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:
+\newline \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:
+\newline \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}
diff --git a/ausarbeitung/Anhang.tex~ b/ausarbeitung/Anhang.tex~
index 1c67dce..20c0236 100644
--- a/ausarbeitung/Anhang.tex~
+++ b/ausarbeitung/Anhang.tex~
@@ -55,9 +55,9 @@ 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
+Der Inhalt dieser Datei muss nun in jeder neu geöffneten Shell neu exportiert werden, da die Variablen durch die hier gewählte
+Methode nur
+in diesen Shell's existieren, in denen 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
@@ -67,7 +67,7 @@ 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
+Paketinformationen
der installierten Dateien beinhaltet. Dieses exportieren geschieht mit dem folgenden Aufruf.
\begin{verbatim}
@@ -81,7 +81,7 @@ dieses Verzeichniss gewechselt werden und es kann mit dem ersten Programm begonn
\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:
+Das Herunterladen geschieht mit:
\begin{verbatim}
svn co http://svn.enlightenment.org/svn/e/trunk/evil
@@ -95,15 +95,15 @@ eingelesen werden. Nachdem dies geschehen ist, kann man nun das Konfigurationssk
./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
+Durch diesen Aufruf wird der Installationspfad auf den Wert der Variable ``WINCE\_PATH'' gesetzt, als Zielsystem ein
+\textit{ARM-Prozessor} gewählt 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
+Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
installieren.
\begin{verbatim}
@@ -128,7 +128,7 @@ Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
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
+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.
@@ -142,7 +142,7 @@ Bevor man \textit{Eet} erstellen kann, muss man noch vier vorgefertigte \textit{
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
+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.
@@ -164,6 +164,8 @@ Im Anschluss muss nun auch wieder kompiliert und installiert werden.
\subsubsection*{Embryo}
+Der Erste Schritt ist auch hier das Herunterladen des Programmcodes.
+
\begin{verbatim}
svn co http://svn.enlightenment.org/svn/e/trunk/embryo
\end{verbatim}
@@ -182,13 +184,15 @@ Im Anschluss nun auch wieder kompilieren und installieren.
\subsubsection*{Evas}
-Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollen diese in das
+Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollten diese in das
gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die
-Packetinformationen beinhalten für die heruntergeladen Dateien ergänzt werden:
+Paketinformationen beinhalten, um die heruntergeladen Pakete 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
+ 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
@@ -243,15 +247,15 @@ zu
#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
+ab. Anschliessend muss nun auch der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
+\textit{include}-Pfade in den Headern von ''freetype2`` nicht korrekt sind.\newline
Falls man nun noch \textit{evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
und ''ddraw.h`` in die Verzichnisse ''/opt/cegcc/arm-cegcc/include/w32api/'' und ''/opt/mingw32ce/arm-mingw32ce/include/''
kopieren.
\subsubsection*{Ecore}
-Um \textit{Ecore} zu erstellen muss zu allererst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
+Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
\begin{verbatim}
@@ -265,7 +269,7 @@ Um \textit{Ecore} zu erstellen muss zu allererst eine Änderung im ``winnt.h''-H
\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
+Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{Ecore} kompiliert werden. Dazu wird auch hier wieder das
``autogen.sh'' Skript ausgeführt.
\begin{verbatim}
@@ -309,7 +313,7 @@ Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
./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
+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.
@@ -348,19 +352,26 @@ Mobile Gerät kopiert und entpackt werden.
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}
+ \item zlib-1.2.3-bin.tar.bz2:
+\newline \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:
+\newline \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:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-bin.tar.bz2/download}
+ \item libjepg-6b-dev.tar.bz2:
+\newline \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 freetype-2.3.7-bin.tar.bz2:
+\newline \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:
+\newline \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:
+\newline \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}
@@ -433,7 +444,8 @@ 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
+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
diff --git a/ausarbeitung/Einleitung.tex b/ausarbeitung/Einleitung.tex
index bff0a6a..54b8443 100644
--- a/ausarbeitung/Einleitung.tex
+++ b/ausarbeitung/Einleitung.tex
@@ -1,15 +1,15 @@
\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 Modellen, dieser sogennanten
+Funktionalität moderner Handys weit über das Telefonieren und Schreiben von SMS hinaus. Aktuelle 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 Smart Phones ergibt sich somit eine immense Menge an möglichen
Anwendungsgebieten. \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
+bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder den nächsten Supermarkt in der Nähe
+anzuzeigen. 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
@@ -20,5 +20,5 @@ verschlüsseln der Daten genutzt werden, sicher und einfach verteilen kann. Hier
Benutzer ohne großen Aufwand möglich ist den Schlüssel weiterzugeben und dritte Personen diese nicht abfangen können\newline
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.
+konzipiert und implementiert. Hierbei ging es vor allem um eine sichere sowie 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~ b/ausarbeitung/Einleitung.tex~
index 4dfb3ff..78f5ea8 100644
--- a/ausarbeitung/Einleitung.tex~
+++ b/ausarbeitung/Einleitung.tex~
@@ -1,15 +1,15 @@
\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 Modellen, dieser sogennanten
+Funktionalität moderner Handys weit über das Telefonieren und Schreiben von SMS hinaus. Aktuelle 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 Smart Phones ergibt sich somit eine immense Menge an möglichen
Anwendungsgebieten. \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
+bestimmten Programmen zum Beispiel möglich eine zurückgelegte Strecke zu speichern oder den nächsten Supermarkt in der Nähe
+anzuzeigen. 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
@@ -20,6 +20,5 @@ verschlüsseln der Daten genutzt werden, sicher und einfach verteilen kann. Hier
Benutzer ohne großen Aufwand möglich ist den Schlüssel weiterzugeben und dritte Personen diese nicht abfangen können\newline
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
+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/Friend_Finder.aux b/ausarbeitung/Friend_Finder.aux
index 8d914fc..fd8362c 100644
--- a/ausarbeitung/Friend_Finder.aux
+++ b/ausarbeitung/Friend_Finder.aux
@@ -1,13 +1,13 @@
\relax
-\citation{IRC}
+\citation{OSM}
\@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}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \textit {Friend Finder} Nachrichtenaustausch}}{13}{figure.3}}
\citation{OpenSSL}
-\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \textit {Friend Finder} Nachrichtenaustausch}}{14}{figure.3}}
\citation{libircclient}
\citation{OpenSSL}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{14}{subsubsection.4.1.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{14}{subsubsection.4.1.2}}
\@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}
diff --git a/ausarbeitung/Friend_Finder.tex b/ausarbeitung/Friend_Finder.tex
index 4c59b03..85436d9 100644
--- a/ausarbeitung/Friend_Finder.tex
+++ b/ausarbeitung/Friend_Finder.tex
@@ -1,8 +1,9 @@
\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.
+aufgezählten Funktionen realisiert. Das fotographieren des Barcodes, der Gruppenchat sowie das Setzen von Marken auf der Kartesind
+in der Implementation nicht enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, die zur Realisierung
+notwendig waren, eingegangen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -12,7 +13,7 @@ enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, d
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
+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
@@ -21,25 +22,25 @@ empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{E
\begin{figure}[h]
\centering
- \includegraphics[width=10cm]{Bilder/ablauf}
+ \includegraphics[width=7cm]{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
+Zum Erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
+bietet eine Fülle an vordefinierten Bedienelement. 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
+durch eine andere ersetzt 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.
+realisiert. Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap} \citep{OSM} genutzt.
\subsubsection{Versenden der Nachrichten}
-Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll \citep{IRC} verwendet. Die
+Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll verwendet. Die
Vorteile dieses Protokolles liegen in seiner weiten Verbreitung, einer ausgedehnten Serverstruktur, sowie in dessen
Stabilität.\newline
@@ -47,12 +48,12 @@ In der Datei \textit{msg\_sender.c} sind alle Funktionen und Aufrufe implementie
\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.
+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)}`` , welche 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
+acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versandt 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
@@ -78,21 +79,35 @@ Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver-
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
+Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden dass maximal eine Zeichenkette der
+Länge 8 Byte verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt zu
+versenden. Somit werden für das Versenden einer Position insgesamt acht Nachrichten an den \textit{IRC}-Server übermittelt.
+Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der Empfänger eine
+Bestätigung an den \textit{IRC-Kanal} sendet. Diese Bestätigung ist wird unverschlüsselt versandt. 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.
+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
+Das Verhalten des Empfängers beim Erhalten einer Nachricht ist etwas komplizierter. Im ersten Schritt muss auch hier eine
+\textit{IRC-Session} initialisiert werden. Da mehrere Benutzer Positionsdaten senden können legt der Empfänger für jeden Sender
+einen Datensatz an. Dieser wird nach und nach mit den Positionsdaten gefüllt und die benötigten Daten weitergegeben, sobald alle
+vorhanden sind. Da der Sender seine Daten, aufgrund der Restrektion der Länge der zu verschlüsselnden Zeichenkette, gestückelt
+sendet ist es von Nöten das der Empfänger die Daten dem jeweiligen Absender zuordnen kann und diese auch wieder korrekt
+zusammensetzt. Dies geschieht mit Hilfe von Terminierungszeichen am Ende eines jeden Positionsbruchstückes. Dieses Zeichen wurde
+vom Sender angehängt und der Empfänger kann mit dieser Hilfe erkennen wie die gesendeten Daten zugeordnet werden müssen. Wenn dies
+geschehen ist und sowohl \textit{Latitude} als auch \textit{Longtitude} Informationen vorhanden sind, werden diese Position an das
+Frontend weitergegeben. \newline
+
+Zur Realisierung des Empfängers werden die gleichen Bibliotheken wie beim Sender genutzt. Auch hier wird zur Entschlüsselung der
+\textit{Blowfish-Algorithmus} von \textit{libcrypto} genutzt.
\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
+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
@@ -149,29 +164,40 @@ Im Gegensatz zu diesem hohen Hintergrundverkehr benötigt \textit{Friend Finder}
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.
+Informationen über den Server im Rahmen von \textit{Friend Finder} nicht benötigt werden, da die Positionsdaten mehrmals pro
+Minute übermittelt werden und somit immer Datenverkehr zwischen Sender und \textit{IRC}-Server vorhanden ist. \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-}
+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)$.
+Größe der zu versendenden Nachricht aus: $h + (t * 2,6)$.
\subsubsection{Versenden und Empfangen von Positionen}
+Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Diese
+vier Pakte unterliegen auch hier wieder der gleichen Formel wie das Versenden der Nachrichten. Sei $h$ die Größe des
+\textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht. Somit ergibt sich die Größe der versendeten
+Nachricht durch $h + (t * 2,6)$. Hinzu kommt noch, das für jedes Empfangene Fragment ein Acknowledgement gesendet wird. %größe
+%des ack packetes noch nachtragen.
+%formel für entsthenden verkehr aufstellen -> grafik erstellen.
+
+
\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
+versandt, wenn dies auch vom Nutzer so gewollt sind und auch gebraucht werden. 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, da im Hintergrund die Verbindung nicht ständig überprüft wird. Aufgrund der Tatsache, dass
+Positionsdaten mehrmals pro Minute versandt werden, ist dies aber auch nicht wirklich nötig da durch das Versenden oder
+nicht Versenden dieser Daten auch ein Verbindungsproblem festgestellt werden könnte\newline
+Ein weiterer Vorteil von \textit{Friend Finder} ist das Verschicken 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/Friend_Finder.tex.backup b/ausarbeitung/Friend_Finder.tex.backup
index 33904f7..16fe9ee 100644
--- a/ausarbeitung/Friend_Finder.tex.backup
+++ b/ausarbeitung/Friend_Finder.tex.backup
@@ -1,8 +1,9 @@
\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.
+aufgezählten Funktionen realisiert. Das fotographieren des Barcodes, der Gruppenchat sowie das Setzen von Marken auf der Kartesind
+in der Implementation nicht enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, die zur Realisierung
+notwendig waren, eingegangen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -12,7 +13,7 @@ enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, d
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
+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
@@ -21,25 +22,25 @@ empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{E
\begin{figure}[h]
\centering
- \includegraphics[width=10cm]{Bilder/ablauf}
+ \includegraphics[width=7cm]{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
+Zum Erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
+bietet eine Fülle an vordefinierten Bedienelement. 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
+durch eine andere ersetzt 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.
+realisiert. Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap} \citep{OSM} genutzt.
\subsubsection{Versenden der Nachrichten}
-Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll \citep{IRC} verwendet. Die
+Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll verwendet. Die
Vorteile dieses Protokolles liegen in seiner weiten Verbreitung, einer ausgedehnten Serverstruktur, sowie in dessen
Stabilität.\newline
@@ -47,17 +48,23 @@ In der Datei \textit{msg\_sender.c} sind alle Funktionen und Aufrufe implementie
\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.
+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)}`` , welche 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
+acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versandt 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
+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
@@ -72,12 +79,15 @@ Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver-
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
+Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden dass maximal eine Zeichenkette der
+Länge 8 Byte verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt zu
+versenden. Somit werden für das Versenden einer Position insgesamt acht Nachrichten an den \textit{IRC}-Server übermittelt.
+Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der Empfänger eine
+Bestätigung an den \textit{IRC-Kanal} sendet. Diese Bestätigung ist wird unverschlüsselt versandt. 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.
+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}
@@ -85,11 +95,19 @@ noch nicht final....empfänger empfängt nachricht, ordnet sie, leitet sie zum z
\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
+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.
+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}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -105,8 +123,8 @@ 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
+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 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
@@ -115,8 +133,8 @@ 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
+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.
@@ -124,18 +142,25 @@ Bei im folgenden genannten Paketgrößen sind diese 52 Byte schon abgezogen. \ne
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}
+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, da die Positionsdaten mehrmals pro
+Minute übermittelt werden und somit immer Datenverkehr zwischen Sender und \textit{IRC}-Server vorhanden ist. \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-}
+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
@@ -147,12 +172,13 @@ 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 sind und auch gebraucht werden. 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, da im Hintergrund die Verbindung nicht ständig überprüft wird. Aufgrund der Tatsache, dass
+Positionsdaten mehrmals pro Minute versandt werden, ist dies aber auch nicht wirklich nötig da durch das Versenden oder
+nicht Versenden dieser Daten auch ein Verbindungsproblem festgestellt werden könnte\newline
+Ein weiterer Vorteil von \textit{Friend Finder} ist das Verschicken 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~ b/ausarbeitung/Friend_Finder.tex~
index 8736f26..85436d9 100644
--- a/ausarbeitung/Friend_Finder.tex~
+++ b/ausarbeitung/Friend_Finder.tex~
@@ -1,8 +1,9 @@
\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.
+aufgezählten Funktionen realisiert. Das fotographieren des Barcodes, der Gruppenchat sowie das Setzen von Marken auf der Kartesind
+in der Implementation nicht enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, die zur Realisierung
+notwendig waren, eingegangen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -12,7 +13,7 @@ enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, d
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
+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
@@ -21,25 +22,25 @@ empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{E
\begin{figure}[h]
\centering
- \includegraphics[width=10cm]{Bilder/ablauf}
+ \includegraphics[width=7cm]{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
+Zum Erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
+bietet eine Fülle an vordefinierten Bedienelement. 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
+durch eine andere ersetzt 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.
+realisiert. Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \textit{OpenStreetMap} \citep{OSM} genutzt.
\subsubsection{Versenden der Nachrichten}
-Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll \citep{IRC} verwendet. Die
+Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll verwendet. Die
Vorteile dieses Protokolles liegen in seiner weiten Verbreitung, einer ausgedehnten Serverstruktur, sowie in dessen
Stabilität.\newline
@@ -47,12 +48,12 @@ In der Datei \textit{msg\_sender.c} sind alle Funktionen und Aufrufe implementie
\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.
+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)}`` , welche 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
+acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versandt 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
@@ -78,21 +79,35 @@ Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver-
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
+Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden dass maximal eine Zeichenkette der
+Länge 8 Byte verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt zu
+versenden. Somit werden für das Versenden einer Position insgesamt acht Nachrichten an den \textit{IRC}-Server übermittelt.
+Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der Empfänger eine
+Bestätigung an den \textit{IRC-Kanal} sendet. Diese Bestätigung ist wird unverschlüsselt versandt. 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.
+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
+Das Verhalten des Empfängers beim Erhalten einer Nachricht ist etwas komplizierter. Im ersten Schritt muss auch hier eine
+\textit{IRC-Session} initialisiert werden. Da mehrere Benutzer Positionsdaten senden können legt der Empfänger für jeden Sender
+einen Datensatz an. Dieser wird nach und nach mit den Positionsdaten gefüllt und die benötigten Daten weitergegeben, sobald alle
+vorhanden sind. Da der Sender seine Daten, aufgrund der Restrektion der Länge der zu verschlüsselnden Zeichenkette, gestückelt
+sendet ist es von Nöten das der Empfänger die Daten dem jeweiligen Absender zuordnen kann und diese auch wieder korrekt
+zusammensetzt. Dies geschieht mit Hilfe von Terminierungszeichen am Ende eines jeden Positionsbruchstückes. Dieses Zeichen wurde
+vom Sender angehängt und der Empfänger kann mit dieser Hilfe erkennen wie die gesendeten Daten zugeordnet werden müssen. Wenn dies
+geschehen ist und sowohl \textit{Latitude} als auch \textit{Longtitude} Informationen vorhanden sind, werden diese Position an das
+Frontend weitergegeben. \newline
+
+Zur Realisierung des Empfängers werden die gleichen Bibliotheken wie beim Sender genutzt. Auch hier wird zur Entschlüsselung der
+\textit{Blowfish-Algorithmus} von \textit{libcrypto} genutzt.
\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
+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
@@ -120,8 +135,7 @@ Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} anal
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
+Computer wie der Client und der Client hat sich über das \textit{localhost} Interface mit dem Server verbunden. \newline
Die Analyse ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
@@ -150,29 +164,40 @@ Im Gegensatz zu diesem hohen Hintergrundverkehr benötigt \textit{Friend Finder}
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.
+Informationen über den Server im Rahmen von \textit{Friend Finder} nicht benötigt werden, da die Positionsdaten mehrmals pro
+Minute übermittelt werden und somit immer Datenverkehr zwischen Sender und \textit{IRC}-Server vorhanden ist. \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-}
+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)$.
+Größe der zu versendenden Nachricht aus: $h + (t * 2,6)$.
\subsubsection{Versenden und Empfangen von Positionen}
+Wie schon erwähnt, werden die Positionsdaten beim Sender aufgeteilt und mit vier unterschiedlichen Nachrichten versandt. Diese
+vier Pakte unterliegen auch hier wieder der gleichen Formel wie das Versenden der Nachrichten. Sei $h$ die Größe des
+\textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht. Somit ergibt sich die Größe der versendeten
+Nachricht durch $h + (t * 2,6)$. Hinzu kommt noch, das für jedes Empfangene Fragment ein Acknowledgement gesendet wird. %größe
+%des ack packetes noch nachtragen.
+%formel für entsthenden verkehr aufstellen -> grafik erstellen.
+
+
\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
+versandt, wenn dies auch vom Nutzer so gewollt sind und auch gebraucht werden. 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, da im Hintergrund die Verbindung nicht ständig überprüft wird. Aufgrund der Tatsache, dass
+Positionsdaten mehrmals pro Minute versandt werden, ist dies aber auch nicht wirklich nötig da durch das Versenden oder
+nicht Versenden dieser Daten auch ein Verbindungsproblem festgestellt werden könnte\newline
+Ein weiterer Vorteil von \textit{Friend Finder} ist das Verschicken 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.tex b/ausarbeitung/Grundlagen.tex
index 9bd815d..f66bf6b 100644
--- a/ausarbeitung/Grundlagen.tex
+++ b/ausarbeitung/Grundlagen.tex
@@ -1,100 +1,101 @@
\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.
+In diesem ersten Teil dieser Bachelor-Arbeit wird der momentane Stand von \textit{location awareness} Software auf mobilen
+Geräten aufgezeigt. Es wird auch analysiert, was für Anforderungen an ein Programm dieser Art gestellt werden 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
+So bietet \textit{Google} den Dienst \textit{Google Latitude} \citep{Latitude} an. Bei diesem Programm 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
+welcher Daten verschlüsselt an mehrere Nutzer sendet. Für diesen Dienst wurde auch mit ein möglichst einfaches und verlässliches
+Protokoll entworfen, mit dem Ziel 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 mit Hilfe von \textit{Bluetooth} zu bestimmen. Hierbei registrierte eine Software wie oft welcher Nutzer mit
+einem anderen in Kontakt stand und wie oft sie in \textit{Bluetooth} Reichweite 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, meistens 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
+ 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
+um sehr sensible Daten handelt stellt dies ein großes Manko dar. So könnten 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 erst einmal 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
+Die obigen zwei Punkte wurden bisher in den meisten noch nicht berücksichtigt. 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 sein, dass es den Nutzern 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
+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
+lauffähig sein soll. Es sollte also gewährleistet werden dass die genutzten Algorithmen nicht zu berechnungsintensiv sind, die
+Datensicherheit aber trotz allem gegeben 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
+Kommunikationsdienst genutzt werden, welcher nach ein dezentrales Prinzip verfolgt. Auch hier muss, wie bei der
+Datenverschlüsselung, gewährleistet sein dass die Bedienung für den Anwender möglichst einfach gehalten wird und er somit ohne
+Aufwand und Fachwissen die Kommunikationsparameter einstellen und abä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
+die Software auf möglichst vielen dieser Betriebssystemen lauffähig ist. So ist sichergestellt, 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
+Wenn nun eine Benutzergruppe dieses 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
+geachtet werden das diese möglichst immer auf einem aktuellen Stand sind. Wenn so eine Karte vorhanden ist, so kann im
+nächstenwird Schritt ein Schlüssel erstellt und an alle Teilnehmer dieser Gruppe verteilt werden. 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
+ein Schlüssel aus, oder es 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 zugehörigen ö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. 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.
+Zusätzlich würde auch noch für ein symmetrisches Verfahren sprechen,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
+wäre also nützlich für den Benutzer wenn er ab einem bestimmten Abstand 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
+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
+die gesamte Gruppe mithören kann. Natürlich wäre hier noch eine Zusatzfunktion möglich, die einen Chat mit der gesamten Gruppe
+verfügbar macht. Wenn dieser Tourist nun seinen Freund per Chat kontaktiert hat, können sich diese nun einen
+Treffpunkt verabreden und diesen 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
+besitzt und kein öffentliches WLAN in Reichweite ist. Es sollte also auch sichergestellt sein dass die Datenpakete, welche
+versandt werden, nicht allzu groß sind. Auch die Anzahl der Hintergrunddaten, die vom verwendeten Protokoll versandt werden,
+sollten 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}
@@ -110,7 +111,7 @@ Benutzer innerhalb einer bestimmten Entfernung anzuzeigen, da eine Person die si
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
+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
@@ -122,29 +123,29 @@ fotographieren. \newline
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
+bestmögliche Verschlüsselung bieten. Aus Gründen von Berechnungsaufwand als auch von Schlüsselverwaltung ist 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.
+zwischen den Anwendern 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
+Daten verschickt, die 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
+\citep{IRC}. Dieses stellt mehrere Server zur Verfügung, wobei jeder Nutzer auch einen eigenen Server bereitstellen
+kann. Jeder Server verwaltet mehrere \textit {Channels}. Würde nun ein Server ausfallen, so könnten die Nutzer auf einen anderen
+\textit{IRC}-Server ausweichen. 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. Das Versenden von Hintergrunddaten, wie zum Beispiel Sitzungsinformationen, ist von der Anwendung
+auf Clientseite frei auswählbar und skalierbar.\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
+gehalten werden, der Verwaltungsaufwand für die Schlüssel gering ist 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, im Unterschied zu den meisten anderen Anwendungen dieser Art, gesichert. \ No newline at end of file
diff --git a/ausarbeitung/Grundlagen.tex.backup b/ausarbeitung/Grundlagen.tex.backup
index c928ddc..3eb2624 100644
--- a/ausarbeitung/Grundlagen.tex.backup
+++ b/ausarbeitung/Grundlagen.tex.backup
@@ -1,74 +1,76 @@
\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.
+In diesem ersten Teil dieser Bachelor-Arbeit wird der momentane Stand von \textit{location awareness} Software auf mobilen
+Geräten aufgezeigt. Es wird auch analysiert, was für Anforderungen an ein Programm dieser Art gestellt werden 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
+So bietet \textit{Google} den Dienst \textit{Google Latitude} \citep{Latitude} an. Bei diesem Programm 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
+welcher Daten verschlüsselt an mehrere Nutzer sendet. Für diesen Dienst wurde auch mit ein möglichst einfaches und verlässliches
+Protokoll entworfen, mit dem Ziel 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 mit Hilfe von \textit{Bluetooth} zu bestimmen. Hierbei registrierte eine Software wie oft welcher Nutzer mit
+einem anderen in Kontakt stand und wie oft sie in \textit{Bluetooth} Reichweite 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, meistens 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
+ 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
+um sehr sensible Daten handelt stellt dies ein großes Manko dar. So könnten 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 erst einmal 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
+Die obigen zwei Punkte wurden bisher in den meisten noch nicht berücksichtigt. 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 sein, dass es den Nutzern 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
+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
+lauffähig sein soll. Es sollte also gewährleistet werden dass die genutzten Algorithmen nicht zu berechnungsintensiv sind, die
+Datensicherheit aber trotz allem gegeben 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
+Kommunikationsdienst genutzt werden, welcher nach ein dezentrales Prinzip verfolgt. Auch hier muss, wie bei der
+Datenverschlüsselung, gewährleistet sein dass die Bedienung für den Anwender möglichst einfach gehalten wird und er somit ohne
+Aufwand und Fachwissen die Kommunikationsparameter einstellen und abä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
+die Software auf möglichst vielen dieser Betriebssystemen lauffähig ist. So ist sichergestellt, 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
+Wenn nun eine Benutzergruppe dieses 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
+geachtet werden das diese möglichst immer auf einem aktuellen Stand sind. Wenn so eine Karte vorhanden ist, so kann im
+nächstenwird Schritt ein Schlüssel erstellt und an alle Teilnehmer dieser Gruppe verteilt werden. 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
+ein Schlüssel aus, oder es 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
diff --git a/ausarbeitung/Grundlagen.tex~ b/ausarbeitung/Grundlagen.tex~
index 9bd815d..d83d1c6 100644
--- a/ausarbeitung/Grundlagen.tex~
+++ b/ausarbeitung/Grundlagen.tex~
@@ -1,100 +1,101 @@
\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.
+In diesem ersten Teil dieser Bachelor-Arbeit wird der momentane Stand von \textit{location awareness} Software auf mobilen
+Geräten aufgezeigt. Es wird auch analysiert, was für Anforderungen an ein Programm dieser Art gestellt werden 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
+So bietet \textit{Google} den Dienst \textit{Google Latitude} \citep{Latitude} an. Bei diesem Programm 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
+welcher Daten verschlüsselt an mehrere Nutzer sendet. Für diesen Dienst wurde auch mit ein möglichst einfaches und verlässliches
+Protokoll entworfen, mit dem Ziel 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 mit Hilfe von \textit{Bluetooth} zu bestimmen. Hierbei registrierte eine Software wie oft welcher Nutzer mit
+einem anderen in Kontakt stand und wie oft sie in \textit{Bluetooth} Reichweite 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, meistens 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
+ 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
+um sehr sensible Daten handelt stellt dies ein großes Manko dar. So könnten 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 erst einmal 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
+Die obigen zwei Punkte wurden bisher in den meisten noch nicht berücksichtigt. 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 sein, dass es den Nutzern 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
+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
+lauffähig sein soll. Es sollte also gewährleistet werden dass die genutzten Algorithmen nicht zu berechnungsintensiv sind, die
+Datensicherheit aber trotz allem gegeben 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
+Kommunikationsdienst genutzt werden, welcher nach ein dezentrales Prinzip verfolgt. Auch hier muss, wie bei der
+Datenverschlüsselung, gewährleistet sein dass die Bedienung für den Anwender möglichst einfach gehalten wird und er somit ohne
+Aufwand und Fachwissen die Kommunikationsparameter einstellen und abä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
+die Software auf möglichst vielen dieser Betriebssystemen lauffähig ist. So ist sichergestellt, 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
+Wenn nun eine Benutzergruppe dieses 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
+geachtet werden das diese möglichst immer auf einem aktuellen Stand sind. Wenn so eine Karte vorhanden ist, so kann im
+nächstenwird Schritt ein Schlüssel erstellt und an alle Teilnehmer dieser Gruppe verteilt werden. 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
+ein Schlüssel aus, oder es 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 zugehörigen ö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. 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.
+Zusätzlich würde auch noch für ein symmetrisches Verfahren sprechen,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
+wäre also nützlich für den Benutzer wenn er ab einem bestimmten Abstand 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
+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
+die gesamte Gruppe mithören kann. Natürlich wäre hier noch eine Zusatzfunktion möglich, die einen Chat mit der gesamten Gruppe
+verfügbar macht. Wenn dieser Tourist nun seinen Freund per Chat kontaktiert hat, können sich diese nun einen
+Treffpunkt verabreden und diesen 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
+besitzt und kein öffentliches WLAN in Reichweite ist. Es sollte also auch sichergestellt sein dass die Datenpakete, welche
+versandt werden, nicht allzu groß sind. Auch die Anzahl der Hintergrunddaten, die vom verwendeten Protokoll versandt werden,
+sollten 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}
@@ -110,7 +111,7 @@ Benutzer innerhalb einer bestimmten Entfernung anzuzeigen, da eine Person die si
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
+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
@@ -122,29 +123,29 @@ fotographieren. \newline
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
+bestmögliche Verschlüsselung bieten. Aus Gründen von Berechnungsaufwand als auch von Schlüsselverwaltung ist 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.
+zwischen den Anwendern 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
+Daten verschickt, die 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
+\citep{IRC}. Dieses stellt mehrere Server zur Verfügung, wobei jeder Nutzer auch einen eigenen Server bereitstellen
+kann. Jeder Server verwaltet mehrere \textit {Channels}. Würde nun ein Server ausfallen, so könnten die Nutzer auf einen anderen
+\textit{IRC}-Server ausweichen. 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. Das Versenden von Hintergrunddaten, wie zum Beispiel Sitzungsinformationen, ist von der Anwendung
+auf Clientseite frei auswählbar und skalierbar.\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
+gehalten werden, der Verwaltungsaufwand für die Schlüssel gering ist 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, im Unterschied zu anderen Anwendungen dieser Art, gesichert. \ No newline at end of file
diff --git a/ausarbeitung/Title.tex b/ausarbeitung/Title.tex
index de6c911..2692e0b 100644
--- a/ausarbeitung/Title.tex
+++ b/ausarbeitung/Title.tex
@@ -4,7 +4,7 @@
\includegraphics[width=8cm]{Bilder/siegel.png}
\vspace{1.3cm}
-{\large B A C H E L O R - A R B E I T}
+{\large B A C H E L O R A R B E I T}
\vspace{1.3cm}
{\Huge Mobiler, persönlicher Assistent}
diff --git a/ausarbeitung/Title.tex~ b/ausarbeitung/Title.tex~
index 9f7d616..2692e0b 100644
--- a/ausarbeitung/Title.tex~
+++ b/ausarbeitung/Title.tex~
@@ -4,10 +4,10 @@
\includegraphics[width=8cm]{Bilder/siegel.png}
\vspace{1.3cm}
-{\large B A C H E L O R - A R B E I T}
+{\large B A C H E L O R A R B E I T}
\vspace{1.3cm}
-{\Huge Mobiler, Persönlicher Assistent}
+{\Huge Mobiler, persönlicher Assistent}
\vspace{1.7cm}
{\Huge Patrick Hornecker}
diff --git a/ausarbeitung/Tutorial.aux b/ausarbeitung/Tutorial.aux
index 1e1c5fb..49ea512 100644
--- a/ausarbeitung/Tutorial.aux
+++ b/ausarbeitung/Tutorial.aux
@@ -11,7 +11,6 @@
\@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}
-\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}}
diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index 8087526..7ae5447 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -1,16 +1,16 @@
\section{Technische Grundlagen}
-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
+Ein wichtiger Punkt ist auch die Wahl der passenden Plattform. Bei geeigneter Auswahl 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 die Kommunikation zwischen einem Besitzer eines \textit{iPhones} sowie dem Besitzer
+eines \textit{Palm Pre's} 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
+Bibliotheken und Schnittstellen ansprechen kann. Dieser \textit{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 \textit{Layer} 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
+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
@@ -27,8 +27,8 @@ 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
+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
\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
@@ -50,11 +50,11 @@ Kernel kümmert sich um die Prozess- und Speicherverwaltung, Kommunikation sowie
setzt ein virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
-\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im moment eben auf diese beschränken. Des weiteren bietet
+\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
+allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} gelieferten stabil auf den Geräten sind.
+Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken unterstützt werden, sicher
interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
\subsubsection{WebOS}
@@ -62,14 +62,14 @@ interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\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
+weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Des weiteren beinhaltet
+eine Erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Somit werden mehrere Programmiersprachen unterstützt
und es besteht die Möglichkeit den \textit{POSIX Layer} zu nutzen.\newline
\subsubsection{iPhone OS}
-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}
+Bei \textit{iPhoneOS} \citep{iPhoneOS} handelt es sich um eine abgeänderte und angepasste 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 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
@@ -85,10 +85,10 @@ ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS
\subsubsection{Zielplattform}
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
+schreiben und dann im Anschluss 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
+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.
@@ -100,16 +100,17 @@ jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Pl
\subsubsection{CeGCC}
-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
+Da \textit{Windows Mobile} und die Programmiersprache \textit{C} genutzt wird, wird der \textit{CeGCC} als
+\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde nach
\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
-GCC. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
+\textit{GCC}. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
ausführbaren Dateien erstellt werden.\newline
-Es wird zwischen zwei verschiedenen Arten des CeGCC's unterschieden. Zum Einen \textit{CeGCC}, zum Anderen \textit{mingw32ce}.
+Es wird zwischen zwei verschiedenen Arten des \textit{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
+Bibliotheken einbinden möchte. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
+Bibliotheken nutzt.\newline
Soll das Programm nun für \textit{WebOS} oder \textit{SymbianOS} portiert werden, kann dies auf unter \textit{Linux} normal
kompiliert werden.
@@ -142,8 +143,8 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
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
+ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und Tools
bereit.\newline
-Im Anhang 1 ist eine genaue Anweisung zu finden, um \textit{Enlightenment} für \textit{Windows Mobile} zu erstellen. \ No newline at end of file
+Im Anhang 1 sind genaue Anweisungen 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 c75e581..7ae5447 100644
--- a/ausarbeitung/Tutorial.tex~
+++ b/ausarbeitung/Tutorial.tex~
@@ -1,16 +1,16 @@
\section{Technische Grundlagen}
-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
+Ein wichtiger Punkt ist auch die Wahl der passenden Plattform. Bei geeigneter Auswahl 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 die Kommunikation zwischen einem Besitzer eines \textit{iPhones} sowie dem Besitzer
+eines \textit{Palm Pre's} 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
+Bibliotheken und Schnittstellen ansprechen kann. Dieser \textit{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 \textit{Layer} 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
+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
@@ -27,8 +27,8 @@ 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
+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
\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
@@ -50,11 +50,11 @@ Kernel kümmert sich um die Prozess- und Speicherverwaltung, Kommunikation sowie
setzt ein virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
-\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im moment eben auf diese beschränken. Des weiteren bietet
+\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
+allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} gelieferten stabil auf den Geräten sind.
+Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken unterstützt werden, sicher
interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
\subsubsection{WebOS}
@@ -62,14 +62,14 @@ interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\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
+weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Des weiteren beinhaltet
+eine Erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Somit werden mehrere Programmiersprachen unterstützt
und es besteht die Möglichkeit den \textit{POSIX Layer} zu nutzen.\newline
\subsubsection{iPhone OS}
-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}
+Bei \textit{iPhoneOS} \citep{iPhoneOS} handelt es sich um eine abgeänderte und angepasste 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 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
@@ -85,10 +85,10 @@ ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS
\subsubsection{Zielplattform}
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
+schreiben und dann im Anschluss 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
+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.
@@ -100,16 +100,17 @@ jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Pl
\subsubsection{CeGCC}
-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
+Da \textit{Windows Mobile} und die Programmiersprache \textit{C} genutzt wird, wird der \textit{CeGCC} als
+\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde nach
\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
-GCC. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
+\textit{GCC}. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
ausführbaren Dateien erstellt werden.\newline
-Es wird zwischen zwei verschiedenen Arten des CeGCC's unterschieden. Zum Einen \textit{CeGCC}, zum Anderen \textit{mingw32ce}.
+Es wird zwischen zwei verschiedenen Arten des \textit{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
+Bibliotheken einbinden möchte. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
+Bibliotheken nutzt.\newline
Soll das Programm nun für \textit{WebOS} oder \textit{SymbianOS} portiert werden, kann dies auf unter \textit{Linux} normal
kompiliert werden.
@@ -142,8 +143,8 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
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
+ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und Tools
bereit.\newline
-Im Anhang 1 ist eine genaue Anweisung zu finden, um \textit{Enlightenment} für \textit{Windows Mobile} zu erstellen. \ No newline at end of file
+Im Anhang 1 sind genaue Anweisungen zu finden, um \textit{Enlightenment} für \textit{Windows Mobile} zu erstellen. \ No newline at end of file
diff --git a/ausarbeitung/literature.bib b/ausarbeitung/literature.bib
index 6880fff..7d4f12f 100644
--- a/ausarbeitung/literature.bib
+++ b/ausarbeitung/literature.bib
@@ -122,3 +122,8 @@ organization= {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität
year = {2009},
}
+@misc{OSM,
+Title = {OpenStreetMap},
+url = {http://www.openstreetmap.de/},
+Note = {[Online; letzter Aufruf 13.02.2010]},
+} \ No newline at end of file
diff --git a/ausarbeitung/maindoc.aux b/ausarbeitung/maindoc.aux
index 3f6d5a4..2554fc8 100644
--- a/ausarbeitung/maindoc.aux
+++ b/ausarbeitung/maindoc.aux
@@ -35,14 +35,15 @@
\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}}{{}}}
+\bibcite{OSM}{{12}{}{{OSM}}{{}}}
+\bibcite{PalmOS}{{13}{}{{PalmOS}}{{}}}
+\bibcite{POSIX}{{14}{}{{POSIX}}{{}}}
+\bibcite{SymbianOS}{{15}{}{{SymbianOS}}{{}}}
+\bibcite{WebOS}{{16}{}{{WebOS}}{{}}}
+\bibcite{Windows}{{17}{}{{Windows}}{{}}}
+\bibcite{Wireshark}{{18}{}{{Wireshark}}{{}}}
+\bibcite{xchat}{{19}{}{{xchat}}{{}}}
+\bibcite{FriendSensing}{{20}{2009}{{Quercia und Capra}}{{}}}
+\bibcite{SPALS}{{21}{2009}{{Rechert und Welke}}{{}}}
\bibstyle{dinat}
\citation{*}
diff --git a/ausarbeitung/maindoc.bbl b/ausarbeitung/maindoc.bbl
index 68ca2e1..e7ce7e6 100644
--- a/ausarbeitung/maindoc.bbl
+++ b/ausarbeitung/maindoc.bbl
@@ -1,4 +1,4 @@
-\begin{thebibliography}{20}
+\begin{thebibliography}{21}
% this bibliography was produced with the style dinat.bst v2.5
\makeatletter
\newcommand{\dinatlabel}[1]%
@@ -62,6 +62,11 @@
\newblock URL \url{http://megaui.net/fukuchi/works/qrencode/index.en.html}. --
\newblock [Online; letzter Aufruf 11.02.2010]
+\bibitem[OSM()]{OSM}
+\dinatlabel{OSM } \emph{OpenStreetMap}. --
+\newblock URL \url{http://www.openstreetmap.de/}. --
+\newblock [Online; letzter Aufruf 13.02.2010]
+
\bibitem[PalmOS()]{PalmOS}
\dinatlabel{PalmOS } \emph{PalmOS}. --
\newblock URL \url{http://www.palm.com/}. --
diff --git a/ausarbeitung/maindoc.blg b/ausarbeitung/maindoc.blg
index 6c74452..4e51a12 100644
--- a/ausarbeitung/maindoc.blg
+++ b/ausarbeitung/maindoc.blg
@@ -19,6 +19,7 @@ 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 OSM
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
@@ -28,45 +29,45 @@ 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,
+You've used 21 entries,
3552 wiz_defined-function locations,
- 880 strings with 7575 characters,
-and the built_in function-call counts, 6632 in all, are:
-= -- 812
+ 885 strings with 7657 characters,
+and the built_in function-call counts, 6925 in all, are:
+= -- 848
> -- 20
< -- 37
-+ -- 63
++ -- 64
- -- 12
-* -- 609
-:= -- 1023
+* -- 636
+:= -- 1067
add.period$ -- 2
-call.type$ -- 20
-change.case$ -- 83
-chr.to.int$ -- 20
-cite$ -- 74
-duplicate$ -- 268
-empty$ -- 699
+call.type$ -- 21
+change.case$ -- 87
+chr.to.int$ -- 21
+cite$ -- 78
+duplicate$ -- 281
+empty$ -- 733
format.name$ -- 26
-if$ -- 1515
+if$ -- 1585
int.to.chr$ -- 0
int.to.str$ -- 1
missing$ -- 0
-newline$ -- 111
+newline$ -- 116
num.names$ -- 8
-pop$ -- 157
+pop$ -- 165
preamble$ -- 1
-purify$ -- 64
+purify$ -- 67
quote$ -- 0
-skip$ -- 182
+skip$ -- 189
stack$ -- 0
-substring$ -- 334
-swap$ -- 28
+substring$ -- 346
+swap$ -- 29
text.length$ -- 4
text.prefix$ -- 0
top$ -- 0
-type$ -- 220
-warning$ -- 18
-while$ -- 50
+type$ -- 231
+warning$ -- 19
+while$ -- 52
width$ -- 0
-write$ -- 171
-(There were 18 warnings)
+write$ -- 179
+(There were 19 warnings)
diff --git a/ausarbeitung/maindoc.log b/ausarbeitung/maindoc.log
index e33e45b..6efed74 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) 11 FEB 2010 18:03
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 13 FEB 2010 12:42
entering extended mode
%&-line parsing enabled.
-**maindoc.tex
+**maindoc
(./maindoc.tex
LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, noh
@@ -647,12 +647,6 @@ erkehr aller Be-nutzer l[]auft, unerw[]unscht
[]
-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 50--54
[]
@@ -663,43 +657,43 @@ Underfull \hbox (badness 10000) in paragraph at lines 55--58
[]
-Underfull \hbox (badness 10000) in paragraph at lines 61--92
+Underfull \hbox (badness 10000) in paragraph at lines 61--93
[]
[4]
-Underfull \hbox (badness 10000) in paragraph at lines 93--98
+Underfull \hbox (badness 10000) in paragraph at lines 94--99
[]
[5]
-Underfull \hbox (badness 10000) in paragraph at lines 101--105
+Underfull \hbox (badness 10000) in paragraph at lines 102--106
[]
-Underfull \hbox (badness 10000) in paragraph at lines 106--111
+Underfull \hbox (badness 10000) in paragraph at lines 107--112
[]
-Overfull \hbox (5.2344pt too wide) in paragraph at lines 112--115
+Overfull \hbox (5.2344pt too wide) in paragraph at lines 113--116
[]\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
[]
-Underfull \hbox (badness 10000) in paragraph at lines 112--115
+Underfull \hbox (badness 10000) in paragraph at lines 113--116
[]
-Underfull \hbox (badness 10000) in paragraph at lines 116--120
+Underfull \hbox (badness 10000) in paragraph at lines 117--121
[]
[6]
-Underfull \hbox (badness 10000) in paragraph at lines 132--143
+Underfull \hbox (badness 10000) in paragraph at lines 133--145
[]
@@ -769,24 +763,24 @@ Underfull \hbox (badness 10000) in paragraph at lines 103--108
[]
-Underfull \hbox (badness 10000) in paragraph at lines 109--113
+Underfull \hbox (badness 10000) in paragraph at lines 109--114
[]
[10]
-Overfull \hbox (6.26726pt too wide) in paragraph at lines 119--125
+Overfull \hbox (6.26726pt too wide) in paragraph at lines 120--126
\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>
+<Bilder/elm-app-01_2.png, id=236, 133.35536pt x 185.83714pt>
File: Bilder/elm-app-01_2.png Graphic file (type png)
<use Bilder/elm-app-01_2.png>
-<Bilder/elm-app-02_2.png, id=238, 206.48572pt x 405.22821pt>
+<Bilder/elm-app-02_2.png, id=237, 206.48572pt x 405.22821pt>
File: Bilder/elm-app-02_2.png Graphic file (type png)
-<use Bilder/elm-app-02_2.png> <Bilder/efl.png, id=239, 48.18pt x 72.27pt>
+<use Bilder/elm-app-02_2.png> <Bilder/efl.png, id=238, 48.18pt x 72.27pt>
File: Bilder/efl.png Graphic file (type png)
<use Bilder/efl.png>
@@ -794,14 +788,14 @@ File: Bilder/efl.png Graphic file (type png)
LaTeX Warning: `h' float specifier changed to `ht'.
-Overfull \hbox (7.29773pt too wide) in paragraph at lines 142--148
+Overfull \hbox (7.29773pt too wide) in paragraph at lines 143--149
[]\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 142--148
+Underfull \hbox (badness 10000) in paragraph at lines 143--149
[]
@@ -810,71 +804,76 @@ Underfull \hbox (badness 10000) in paragraph at lines 142--148
\openout2 = `Friend_Finder.aux'.
(./Friend_Finder.tex
-<Bilder/ablauf.png, id=255, 546.54187pt x 597.73312pt>
+<Bilder/ablauf.png, id=254, 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'.
-
-
-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
+Overfull \hbox (19.98601pt too wide) in paragraph at lines 31--40
+\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
[]
+[13
-Underfull \hbox (badness 10000) in paragraph at lines 42--45
- []
+ <./Bilder/ablauf.png>]
+Underfull \hbox (badness 10000) in paragraph at lines 43--46
-[13
+ []
-]
-Underfull \hbox (badness 10000) in paragraph at lines 46--61
+Underfull \hbox (badness 10000) in paragraph at lines 47--62
[]
-[14 <./Bilder/ablauf.png>]
-<Bilder/chat.png, id=269, 338.76563pt x 450.18187pt>
+<Bilder/chat.png, id=263, 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
+
+LaTeX Warning: `h' float specifier changed to `ht'.
+
+[14]
+Underfull \hbox (badness 10000) in paragraph at lines 79--85
[]
-Overfull \hbox (16.41936pt too wide) in paragraph at lines 85--87
+Overfull \hbox (16.41936pt too wide) in paragraph at lines 86--88
[]\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 <./Bilder/chat.png>]
-Overfull \hbox (0.26793pt too wide) in paragraph at lines 90--91
+
+Overfull \hbox (0.26793pt too wide) in paragraph at lines 91--92
\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
[]
-<Bilder/barcode.png, id=281, 337.26pt x 450.9347pt>
+[15 <./Bilder/chat.png>] <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
+
+<use Bilder/barcode.png>
+Underfull \hbox (badness 10000) in paragraph at lines 113--119
[]
[16 <./Bilder/barcode.png>]
-Underfull \hbox (badness 10000) in paragraph at lines 119--124
+Underfull \hbox (badness 10000) in paragraph at lines 120--125
[]
-Underfull \hbox (badness 10000) in paragraph at lines 132--147
+Underfull \hbox (badness 10000) in paragraph at lines 133--148
+
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 149--155
[]
[17]
-Overfull \hbox (4.52718pt too wide) in paragraph at lines 156--165
+Overfull \hbox (4.52718pt too wide) in paragraph at lines 158--167
\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
@@ -903,181 +902,169 @@ Overfull \hbox (14.754pt too wide) in paragraph at lines 56--56
ngw32ce/include/"[]
[]
-[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/[]
- []
-
-
-Overfull \hbox (95.02904pt too wide) in paragraph at lines 192--192
-[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.p
-c $WINCE_PATH/lib/freetype2.pc[]
- []
-
-
-Overfull \hbox (13.83946pt too wide) in paragraph at lines 194--197
+[20] [21] [22]
+Overfull \hbox (13.83946pt too wide) in paragraph at lines 198--201
\OT1/ptm/m/n/12 be-liebi-gen Ed-i-tor ge[]offnet wer-den und in bei-den Dateien
der Wert von ''pre-fix`` auf ''WINCE[]PATH``
[]
-[22]
-Overfull \hbox (20.929pt too wide) in paragraph at lines 208--208
+
+Overfull \hbox (20.929pt too wide) in paragraph at lines 212--212
[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --di
sable-async-events[]
[]
-Overfull \hbox (15.93102pt too wide) in paragraph at lines 224--227
+Overfull \hbox (15.93102pt too wide) in paragraph at lines 228--231
[]\OT1/ptm/m/n/12 Allerdings wird sie im Ord-ner ''freetype2`` nicht ge-fun-den
. Um dies zu umge-hen muss ''ft2build.h``
[]
-Overfull \hbox (169.12907pt too wide) in paragraph at lines 230--230
+Overfull \hbox (169.12907pt too wide) in paragraph at lines 234--234
[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2buil
d.h $WINCE_PATH/freetype-2.3.7-dev/include[]
[]
[23]
-Overfull \hbox (33.279pt too wide) in paragraph at lines 265--265
+Overfull \hbox (33.279pt too wide) in paragraph at lines 269--269
[] \OT1/cmtt/m/n/12 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRE
D|SYNCHRONIZE|0xfff)[]
[]
[24]
-Overfull \hbox (119.72905pt too wide) in paragraph at lines 310--310
+Overfull \hbox (119.72905pt too wide) in paragraph at lines 314--314
[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --wi
th-edje-cc=$WINCE_PATH/bin/edje_cc[]
[]
-Overfull \hbox (40.46509pt too wide) in paragraph at lines 312--315
+Overfull \hbox (40.46509pt too wide) in paragraph at lines 316--319
\OT1/ptm/m/n/12 muss man im in der Datei ``Make-file.am'' im Ord-ner ``sr-c/bin
/'' alle Vorkomm-nisse von ``test[]fileselector.c''
[]
[25]
-LaTeX Font Info: Try loading font information for OMS+ptm on input line 351.
+LaTeX Font Info: Try loading font information for OMS+ptm on input line 355.
(/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.
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 355.
-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 /
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 355--357
+[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
+ ported % 20packages / zlib-[]1 . 2 .
[]
-Overfull \hbox (58.68912pt too wide) in paragraph at lines 352--353
-[]\OT1/ptm/m/n/12 zlib-1.2.3-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
-ceforge . net / projects / cegcc / files / ported % 20packages /
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 357--359
+[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
+ ported % 20packages / zlib-[]1 . 2 .
[]
-Overfull \hbox (60.93295pt too wide) in paragraph at lines 353--354
-[]\OT1/ptm/m/n/12 libjpeg-6b-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
-ceforge . net / projects / cegcc / files / ported % 20packages /
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 359--361
+[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
+ ported % 20packages / libjpeg-[]6b /
[]
-Overfull \hbox (62.025pt too wide) in paragraph at lines 354--355
-[]\OT1/ptm/m/n/12 libjepg-6b-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
-ceforge . net / projects / cegcc / files / ported % 20packages /
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 361--363
+[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
+ ported % 20packages / libjpeg-[]6b /
[]
-Overfull \hbox (11.16382pt too wide) in paragraph at lines 361--362
-[]\OT1/ptm/m/n/12 freetype-2.3.7-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / /
-sourceforge . net / projects / cegcc / files / ported %
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 369--371
+[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
+ ported % 20packages / freetype-[]2 .
[]
-Overfull \hbox (12.07597pt too wide) in paragraph at lines 362--363
-[]\OT1/ptm/m/n/12 freetype-2.3.7-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / /
-sourceforge . net / projects / cegcc / files / ported %
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 371--373
+[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
+ ported % 20packages / freetype-[]2 .
[]
-
-Overfull \hbox (8.524pt too wide) in paragraph at lines 363--364
-[]\OT1/ptm/m/n/12 libpng-1.2.33-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / s
-ourceforge . net / projects / cegcc / files / ported %
+[26]
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 373--375
+[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
+ ported % 20packages / libpng-[]1 .
[]
-Overfull \hbox (9.43616pt too wide) in paragraph at lines 364--365
-[]\OT1/ptm/m/n/12 libpng-1.2.33-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / s
-ourceforge . net / projects / cegcc / files / ported %
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 375--377
+[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
+ ported % 20packages / libpng-[]1 .
[]
-[26] [27] [28]
-Overfull \hbox (14.754pt too wide) in paragraph at lines 489--489
+[27] [28]
+Overfull \hbox (14.754pt too wide) in paragraph at lines 501--501
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-a
rm/loader_eet.dll[]
[]
-Overfull \hbox (27.104pt too wide) in paragraph at lines 489--489
+Overfull \hbox (27.104pt too wide) in paragraph at lines 501--501
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-
arm/loader_jpeg.dll[]
[]
-Overfull \hbox (39.45401pt too wide) in paragraph at lines 489--489
+Overfull \hbox (39.45401pt too wide) in paragraph at lines 501--501
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/mingw32ce
-arm/loader_pmaps.dll[]
[]
-Overfull \hbox (14.754pt too wide) in paragraph at lines 489--489
+Overfull \hbox (14.754pt too wide) in paragraph at lines 501--501
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/png/mingw32ce-a
rm/loader_png.dll[]
[]
-Overfull \hbox (14.754pt too wide) in paragraph at lines 489--489
+Overfull \hbox (14.754pt too wide) in paragraph at lines 501--501
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/xpm/mingw32ce-a
rm/loader_xpm.dll[]
[]
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 489--489
+Overfull \hbox (2.40399pt too wide) in paragraph at lines 501--501
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-ar
m/saver_eet.dll[]
[]
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 489--489
+Overfull \hbox (2.40399pt too wide) in paragraph at lines 501--501
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-ar
m/saver_png.dll[]
[]
-) [29] (./maindoc.bbl [30
+[29]) [30] (./maindoc.bbl [31
-]) [31] (./maindoc.aux (./Title.aux) (./Erklaerung.aux) (./Einleitung.aux) (./G
-rundlagen.aux) (./Tutorial.aux) (./Friend_Finder.aux)
-(./Anhang.aux)) )
+]) [32] (./maindoc.aux (./Title.aux)
+(./Erklaerung.aux) (./Einleitung.aux) (./Grundlagen.aux) (./Tutorial.aux)
+(./Friend_Finder.aux) (./Anhang.aux)) )
Here is how much of TeX's memory you used:
- 8712 strings out of 95086
- 119580 string characters out of 1183254
- 200196 words of memory out of 1500000
- 11538 multiletter control sequences out of 10000+50000
+ 8710 strings out of 95086
+ 119519 string characters out of 1183254
+ 200215 words of memory out of 1500000
+ 11534 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,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).
+ 35i,13n,46p,303b,591s stack positions out of 5000i,500n,6000p,200000b,5000s
+{/usr/share/texmf-texlive/fonts/enc/dvip
+s/base/8r.enc}</usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmmi10.pfb></usr
+/share/texmf-texlive/fonts/type1/bluesky/cm/cmr10.pfb></usr/share/texmf-texlive
+/fonts/type1/bluesky/cm/cmssbx10.pfb></usr/share/texmf-texlive/fonts/type1/blue
+sky/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmtt12.pfb><
+/usr/share/texmf-texlive/fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-tex
+live/fonts/type1/urw/times/utmri8a.pfb>
+Output written on maindoc.pdf (34 pages, 1439822 bytes).
PDF statistics:
- 467 PDF objects out of 1000 (max. 8388607)
- 105 named destinations out of 1000 (max. 131072)
+ 472 PDF objects out of 1000 (max. 8388607)
+ 107 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.pdf b/ausarbeitung/maindoc.pdf
index 6b2205a..af72c8c 100644
--- a/ausarbeitung/maindoc.pdf
+++ b/ausarbeitung/maindoc.pdf
Binary files differ
diff --git a/ausarbeitung/maindoc.toc b/ausarbeitung/maindoc.toc
index eb4dce0..6ac150b 100644
--- a/ausarbeitung/maindoc.toc
+++ b/ausarbeitung/maindoc.toc
@@ -19,8 +19,8 @@
\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.1}Grafisches Benutzeroberfl\IeC {\"a}che}{14}{subsubsection.4.1.1}
+\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{14}{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}