Compare commits

...

2 Commits

9 changed files with 285 additions and 29 deletions

6
.gitignore vendored
View File

@ -6,7 +6,9 @@
*.blg
*.toc
*.tdo
latex/auto/
*/auto/
*.el
*.zip
*.pdf
!latex/*.pdf
!expose/*.pdf
!paper/*.pdf

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -30,11 +30,12 @@ numbers=noenddot,
\pagestyle{headings} % lebender Kolumnentitel
%% Deutsche Anpassungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ngerman]{babel}
\usepackage[english]{babel}
% \usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[section]{placeins} %bessere Kontrolle über Grafiken
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
% \usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\usepackage{url}
\usepackage{textcomp}
\usepackage{paralist}
@ -210,14 +211,14 @@ numbers=noenddot,
%% Erzeugung von Verzeichnissen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagenumbering{Roman}
\section*{Autorenreferat}
\section*{Abstract}
\label{sec:abstract}
\input{sections/abstract}
% \input{sections/abstract}
%\include{danksagung}
%\include{acknowlegements}
\newpage
\tableofcontents % Inhaltsverzeichnis
% \newpage
\tableofcontents % Table of Contents
%\addcontentsline{toc}{section}{\listfigurename}
\newpage
\listoftodos[TODOs]
@ -243,7 +244,7 @@ numbers=noenddot,
\change[inline]{improve glossary \url{https://en.wikibooks.org/wiki/LaTeX/Glossary}}
\input{glossar.tex}
% \input{../glossar.tex}
\listoffigures
\lstlistoflistings{Quellcodeverzeichnis}
@ -294,30 +295,30 @@ numbers=noenddot,
%% \label{sec:motivation}
%% \input{sections/motivation}
\newpage
\section{Foundation}
% \newpage
\section{Basics}
\label{sec:basics}
\input{sections/basics}
% \input{sections/basics}
\newpage
% \newpage
\section{Requirements}
\label{sec:requirements}
\input{sections/requirements}
% \input{sections/requirements}
%% \newpage
%% \section{Werkzeuge und Bibliotheken}
%% \input{sections/tools_libs}
\newpage
% \newpage
\section{Concept}
\label{sec:concept}
\input{sections/concept}
% \input{sections/concept}
\section{Analysis, Tests and Decisions}
\label{sec:ana-test-decision}
\input{sections/analysis_test_decision}
% \input{sections/analysis_test_decision}
\newpage
% \newpage
\section{Conclusion and Future Work}
\input{sections/conclusion}
@ -334,12 +335,11 @@ numbers=noenddot,
\appendix
% suppress page number in toc for parts
\addtocontents{toc}{\cftpagenumbersoff{part}}
%\pagenumbering{Alph}
%Seitennummerierung fortlaufend
\addpart{Anhang}
%\pagenumbering{Alph} %Seitennummerierung fortlaufend
\addpart{Appendix}
\pagenumbering{Roman}
\setcounter{page}{2} % Seitennummerierung fortlaufend
\input{sections/appendix}
% \input{sections/appendix}
%\include{selbststaendigkeitserklaerung}

View File

@ -38,10 +38,18 @@
booktitle = {Proceedings of the 6th {EAI} International Conference on Smart Objects and Technologies for Social Good}
}
@misc{Ouanounou2020secureLoRa,
author = {Emmanuel Ouanounou},
title = {{LoRaWAN \& MQTT: What to Know When Securing Your IoT Network}},
howpublished = "\url{https://www.cyberark.com/resources/threat-research-blog/lorawan-mqtt-what-to-know-when-securing-your-iot-network}",
year = {2020},
note = "[Online; letzter Zugriff 18.11.2020]"
@misc{pngkeyGenericCompany,
author = {PNGkey.com},
title = {{Generic Branding - Generic Company Logo Png}},
howpublished = "\url{https://www.pngkey.com/png/detail/141-1417312_generic-branding-generic-company-logo-png.png}",
year = {2021},
note = "[Online; accessed 2021-03-05]"
}
@misc{pngkeyGenericCompany,
author = {PNGkey.com},
title = {{Generic Branding - Generic Company Logo Png}},
howpublished = "\url{https://www.pngkey.com/png/detail/141-1417312_generic-branding-generic-company-logo-png.png}",
year = {2021},
note = "[Online; accessed 2021-03-05]"
}

View File

@ -0,0 +1,42 @@
% Fazit + Ausblick
Die vorliegende Arbeit hat zwei moderne Prokolle zur föderierten
Echtzeitkommunikation und dem Internet der Dinge vorgestellt.
LoRaWAN und Matrix wurden grundlegend erklärt um Komponenten, Architektur und
Arbeitsweise zu verstehen.
% In \fullref{sec:solutions} wurden Ansätze dargelegt, um Kommunikation mit Matrix über \ac{LoRaWAN} zu ermöglichen.
% \begin{itemize}
% \item{chirpstack ist zu kompliziert für rein lokale simulation!??!?}
% \item{meshsim war nicht im zeitlichen Rahmen zum Laufen zu kriegen}
% \item{blog posts veraltet, software inkompatibel zum aktuellen STand!?}
% \item{nicht mehr unterstützter Anwendungsfall, in bearbeitungszeit nicht möglich sich komplett einzuarbeiten}
% \end{itemize}
% Resultat: Zeitaufwand komplett verschätzt
% \improvement[inline]{was hat nach jetziger Sicht auch noch Sinn?}
% Matrix low-bandwidth mode hat schon gute Vorarbeit geleistet.\improvement{schöner erklären}
% Insbesondere die Kombination CoAP mit CBOR für kleinere Payloads, Flate $+$ Noise für
% effiziente Verschlüsselung und Anpassungen für UDP geben einen guten Ansatz.
% dieser könnte weiter verfolgt werden
% hardware projects: https://www.hackster.io/erictsai/lora-tooth-small-ble-sensors-over-wifi-lora-gateways-0aa109
% more: https://www.adafruit.com/?q=lora&sort=BestMatch
% 'officially proposed' 868 mhz lora<->RPi shield from TTN: https://shop.imst.de/wireless-modules/lora-products/8/ic880a-spi-lorawan-concentrator-868-mhz
% \section{Schlussbetrachtung}
% Aufgrund des zeitlichen Rahmens der vorliegenden Forschungsarbeit im Modul PTI09440 waren praktische Experimente nicht umsetzbar.
% \begin{itemize}
% \item[]{Idee war praktische Umsetzung}
% \item[]{Meshsim und p2p waren allerdings nur Demo Showcases}
% \item[]{nicht gewartete Software als Neueinsteiger macht sich anstrengend}
% \item[]{der Hardware part bei LoRaWAN müsste wohl auch getestet werden...
% kostet aber fett kohle (anschaffung! instandhaltung weniger problematisch)}
% \end{itemize}

View File

@ -0,0 +1,37 @@
% Introduction
\improvement[inline]{Motivation, Arbeitsziele}
Laut einem Beschluss der \ac{EU} soll angestrebt werden, mit Umwelt-, Verkehrs-
und Gesundheitsdaten möglichst offen umzugehen %\cite{openDataEUabout}:
\begin{quote}
\glqq just try to be fancy and get a clickbait-like quote in here\grqq
\end{quote}
In der Ära von \emph{Cloud Computing} und dem \ac{IoT}
wird ein zunehmender Anteil von Daten %\improvement{needs citation}
abseits von Rechenzentren von günstigen, speicherarmen,
energieeffizienten Sensoren erfasst.
Für die Verarbeitung und Auswertung ist es notwendig, die Daten an einen Ort
mit ausreichender Speicherkapazität und Rechenleistung zu
übertragen %(siehe Abb. \ref{fig:schema-dataflow}).
Der zuverlässige Transport ist zentrale Voraussetzung um ein Datawarehouse zu ermöglichen.
% \begin{figure}
% \centering
% \includegraphics[width=0.85\textwidth]{images/schema-dataflow.png}
% \caption[Schema Übertragungswege]{Schema Übertragungswege}
% \label{fig:schema-dataflow}
% \end{figure}
% \newpage
\subsection{Motivation}
% \newpage
\subsection{Central Question}
% \newpage
\subsection{Content of Paper}

View File

@ -0,0 +1,123 @@
% lösungsansätze
% Mit welchen Methoden soll das Problem bearbeitet werden?
Im vorherigen Abschnitt wurden die Architektur und Komponenten von LoRaWAN und
Matrix eingeführt.
In diesem Abschnitt werden Lösungsmöglichkeiten für die Kombination der beiden
Prokotolle beschrieben.
\subsection{Server im low-bandwidth Modus}
% \begin{figure}
% \centering
% \includegraphics[width=0.8\textwidth]{images/solution-ulb.png}
% \caption[Matrix mit CoAP-Proxy und Chirpstack]{Matrix low-bandwidth mode mit CoAP-Proxy und
% Chirpstack\protect}
% \label{fig:matrix-ulb-chirpstack}
% \end{figure}
Wie in \ref{subsub:matrix_stateoftech} beschrieben, wurde 2019 ein
\emph{low-bandwidth Modus} für Matrixserver experimentell umgesetzt.
Eine Variante einen Matrixserver Daten über LoRaWAN übertragen zu lassen, könnte
man den Server im low-bandwidth Modus betreiben und den daran angeschlossenen
\ac{CoAP}-Proxy als Application mit dem \emph{Application Server} des Chirpstack
verknüpfen (siehe Abb.\ref{fig:matrix-ulb-chirpstack}).
Dafür könnten die bestehenden Softwarekomponenten mit entsprechender
Konfiguration wiederverwendet werden.
Die prototypischen Impelemntierungen sowohl im Matrixserver als auch dem
CoAP-Proxy müssten ausgebaut und gewartet werden.
\subsection{Matrix Bridge als LoRaWAN Applikation}
% \begin{figure}
% \centering
% \includegraphics[width=0.8\textwidth]{images/solution-bridge.png}
% \caption[Matrix Bridge LoRa mit CoAP-Proxy und Chirpstack]{Matrix Bridge
% LoRa mit CoAP-Proxy und
% Chirpstack\protect}
% \label{fig:matrix-bridge-lora}
% \end{figure}
Eine Alternative wäre die Entwicklung einer Matrix Bridge für das LoRaWAN
Protokoll.
Diese kann über einen CoAP Proxy mit dem \emph{Application Server} des
Chirpstack verknüpft werden (siehe Abb.\ref{fig:matrix-bridge-lora}).
Für die Umsetzung könnten Ideen und Implementierungsansätze des
\emph{low-bandwidth Modus} wiederverwendet werden.
Vorteil an dieser Variante ist, dass bestehende Matrixserver keiner Änderung
bedürfen, sondern die Übertragung mittels LoRaWAN von einem registierten Client
übernommen wird.
Eine solche Bridge erfordert weniger Wartungsaufwand.
Außerdem kann durch Beitreten und Verlassen von Räumen explizit diese ausgewählt
werden, welche relevant für die Übertragung über die LoRaWAN Verbindung
stattfinden soll.
% Mit Hilfe der Kombination von \emph{Meshsim} und \emph{CoAP-Proxy} werden zwei
% Matrix-Applikationsserver installiert und verknüpft.
% Der Chirpstack wird zum Aufbau einer privaten Experimentierplattform und
% Simulation einer LoRaWAN Umgebung genutzt.
% Durch möglichst minimale Anpassung an den jeweiligen Softwarekomponenten sollen
% Matrix-Anwendungsdaten über das simulierte LoRaWAN Netzwerk übertragen werden.
% % - p2p matrix https://matrix.org/blog/2020/06/02/introducing-p-2-p-matrix/
% over https://libp2p.io/
Ein weiterer Aspekt ist die Art der Datenübertragung im LoRaWAN Funknetzwerk.
% \newpage
\subsection{bidirektionale Verbindung mit Geräteklasse C}
Die Kombination aus LoRaWAN Gateway und Endknoten kann so gewählt werden, dass
einer der im Verbund teilnehmenden Matrixserver die Rolle das Netzwerkservers
übernimmt und mittels Chirpstack an ein LoRaWAN Hardware Gateway angeschlossen.
Alle anderen Matrixserver werden an Endknoten angeschlossen.
Diese Endknoten müssen zwangsweise als Klasse C Geräte konfiguriert werden,
sodass sie ständig Daten vom Gateway empfangen können.
Die Datenübertragung um LoRaWAN findet somit bidirektional (Gateway->Endknoten
und Endknoten->Gateway) statt.
% \improvement[inline]{in welchen Fällen ist das günstig?}
% architecture: https://www.chirpstack.io/project/architecture/
% based on https://github.com/brocaar/chirpstack-docker
% \begin{itemize}
% \item{run the stack twice}
% \item{connect them either with a packet forwarder or the gateway bridge}
% \item{Whats the smallest easiest thing to test this???}
% % \item{connect both application servers with a dendrite/synapse each}
% \end{itemize}
% node simulation (+server, monitor):
% - simulation https://github.com/devlaam/lora_simulator/tree/master/src/main/scala
\subsection{unidrektionale Verbindung}
Eine unidirektionale Funkverbindung mit Endknoten der Klasse A oder B könnte
alternativ umgesetzt werden.
In dieser Variante würde jeder Matrixserver mit einem Chirpstack verknüpft und
jeder Chirpstack erhält ein Gateway und einen Endknoten.
Die Endknoten werden ausschließlich zum Versenden von Daten genutzt.
Die Gateways ausschließlich zum Empfang von Daten.
Das bedeutet beide Geräte übertragen die Daten jeweils unidirektional.
%\impvement[inline]{welche funktechnischen problem können hier auftreten?}
In dieser Konstellation können einfachere Endknoten (Klasse A oder B statt
Klasse C) genutzt werden, jedoch benötigt jeder teilnehmende Matrixserver auch
ein LoRaWAN Hardware Gateway.
% Uni- oder Bidirektional?\cite{pop2017does}
% \subsection{libp2p}
% kritik: libp2p zwar 2020, aber für unseren anwendungsfall nicht möglich, da
% service discovery/rendevouz server über lorawan in diesem rahmen nicht
% umgesetzt werden kann (und existiert noch nicht)
% will not work because of service/server discovery impossible without IP based
% relay/rendevouz server

44
thesis/title.tex Executable file
View File

@ -0,0 +1,44 @@
\begin{titlepage}
\pdfbookmark[1]{Title Page}{title}
\begin{center}
\includegraphics[scale=0.25]{images/generic-company-logo.png}
\vspace{1cm}
\begin{huge}
Master Thesis
\end{huge}
\begin{LARGE}
Title of the thesis
\end{LARGE}
\vspace{1.4cm}
\begin{large}
Surname, First Name
\end{large}
% \vspace{0.5cm}
born on \today \\
\vspace{1cm}
Studiengang Master Informatik
\vspace{0.7cm}
Your institution \\
Your Faculty \\
Your Research Group
\vspace{2.7cm}
\begin{tabular}{l l}
\textbf{Adviser} & \textbf{Institution} \\
% \hline
Prof. Dr. Awesome Teacher & Institution 1\\
M.Sc. Another Mentor & Institution or Company \\
\\
\\
Deadline: & \today
\end{tabular}
\end{center}
\end{titlepage}