677 lines
24 KiB
TeX
677 lines
24 KiB
TeX
% !TeX document-id = {17894a24-c077-4ce3-b68f-12869a421690}
|
|
%!TeX TXS-program:compile = txs:///pdflatex/[--shell-escape]
|
|
%\documentclass[notes]{beamer} % print frame + notes
|
|
%\documentclass[notes=only]{beamer} % only notes
|
|
\documentclass{beamer} % only frames
|
|
\usepackage[default]{sourcesanspro} % font used from htwk
|
|
%\usepackage[T1]{fontspec} %because luatex (else use package fontenc); demands utf-8 instead of ascii
|
|
\usepackage[ngerman]{babel}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{listings}
|
|
\usepackage{graphicx}
|
|
%\usepackage{minted}
|
|
\usepackage{hyperref}
|
|
\usepackage{booktabs}
|
|
\usepackage{gnuplottex}
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{backgrounds,calc,shadings,shapes,shadows}
|
|
|
|
\usepackage[backend=bibtex]{biblatex}
|
|
\bibliography{./präsentation}
|
|
\usepackage[export]{adjustbox}
|
|
|
|
\usetheme{default}
|
|
\usebeamercolor{wolverine}
|
|
\useoutertheme{smoothbars}
|
|
|
|
\beamertemplatenavigationsymbolsempty{}
|
|
\setbeamertemplate{footline}[frame number]
|
|
|
|
\lstset{basicstyle=\ttfamily\small} % default style for listings
|
|
|
|
%extra configs
|
|
\setbeamercolor{title}{fg=black}
|
|
\usepackage[inkscapearea=page]{svg}
|
|
\usepackage[edges]{forest}
|
|
\usepackage{longtable,booktabs} %Tabellen mit zeilenumbruch
|
|
\usepackage{subcaption}
|
|
|
|
\title{Konzeption und prototypische Realisierung\\
|
|
einer Webanwendung zur Simulation der\\
|
|
Abdeckung von Richtantennen\\
|
|
auf einer interaktiven Karte}
|
|
%\subtitle{Bachelorarbeit}
|
|
\author{Michael Lux}
|
|
\date{22. April 2021}
|
|
\begin{document}
|
|
|
|
{
|
|
\usebackgroundtemplate{%
|
|
\includegraphics[width=\paperwidth]{pictures/balkengreen.png}
|
|
}
|
|
\begin{frame}[plain]
|
|
\includegraphics[height=3ex]{logo/HTWK_Zusatz_de_H_Black_K.eps}
|
|
\newline
|
|
\center Verteidigung Bachelorarbeit
|
|
\titlepage{}
|
|
\end{frame}
|
|
}
|
|
|
|
%%Balken in Zwischenüberschriften%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%https://stackoverflow.com/questions/33517056/beamer-headline-setup
|
|
\makeatletter
|
|
\patchcmd{\endbeamer@frameslide}{\ifx\beamer@frametitle\@empty}{\iffalse}{}{\errmessage{failed to patch}}
|
|
\makeatother
|
|
|
|
\makeatletter
|
|
\setbeamertemplate{frametitle}{%
|
|
\ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
|
|
\@tempdima=\textwidth%
|
|
\advance\@tempdima by\beamer@leftmargin%
|
|
\advance\@tempdima by\beamer@rightmargin%
|
|
\begin{beamercolorbox}[sep=0.0cm,left,wd=\the\@tempdima]{frametitle}
|
|
\raisebox{-0.15cm}{\includegraphics[width=0.0212\paperwidth]{pictures/headergreen.png}}
|
|
\begin{minipage}{.81\paperwidth}
|
|
\usebeamerfont{frametitle}%
|
|
\vbox{}\vskip-1ex%
|
|
\if@tempswa\else\csname beamer@fteleft\endcsname\fi%
|
|
\strut\insertframetitle\par%
|
|
{%
|
|
\ifx\insertframesubtitle\@empty%
|
|
\else%
|
|
{\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\strut\insertframesubtitle\par}%
|
|
\fi
|
|
}%
|
|
\end{minipage}%
|
|
\enspace\quad\qquad\raisebox{-0.15cm}{\includegraphics[width=0.0212\paperwidth]{pictures/headergreen.png}}
|
|
\if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
|
|
\end{beamercolorbox}%
|
|
}
|
|
\makeatother
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
\begin{frame}
|
|
\frametitle{Gliederung}
|
|
\tableofcontents
|
|
\end{frame}
|
|
|
|
|
|
\section{Nutzen und Anwendungen}
|
|
|
|
\begin{frame}
|
|
\frametitle{Was? - Richtantennen und deren Abdeckung}
|
|
\begin{columns}
|
|
\column{.5\linewidth}
|
|
\begin{figure}
|
|
\includegraphics[height=0.55\paperheight]{pictures/richtantenne}
|
|
\caption{Installation einer Richtantenne auf einem Dach\\ {\scriptsize Quelle: \url{https://wiki.freifunk-franken.de/w/Richtfunk}}}
|
|
\end{figure}
|
|
\column{.6\linewidth}
|
|
\begin{figure}
|
|
\includegraphics[height=0.6\paperheight]{pictures/abdeckungpraktikum}
|
|
%TODO: Antenne, Signalstärken beschriften
|
|
\caption{Abdeckung einer Richtantenne aus im Praxisprojekt entwickelter Simulationsanwendung}
|
|
\end{figure}
|
|
\end{columns}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item "bevor Nutzen erklärt werden kann, erst erklären, worum es geht"
|
|
\item Richtantennen: Eigenschaft mit Nutzen nennen (Richtfunkstrecken über längere Distanzen durch Richtwirkung)
|
|
\item Abdeckung definieren (als Fläche, Empfangsbereiche), am Bild erklären (Sende- und Empfangsbereiche, Ausrichtung, Richtwirkung zeigen)
|
|
\item blau: starker Empfang, rot: schwach (Signalstärke)
|
|
}
|
|
|
|
|
|
\begin{frame}
|
|
\frametitle{Warum? - Planung von Richtfunkstrecken}
|
|
innerhalb freier Funknetze \& Drahtlos-Internet-Dienstanbieter (WISP)
|
|
%https://wiki.freifunk-franken.de/w/Richtfunk
|
|
|
|
\begin{columns}
|
|
\column{.5\linewidth}
|
|
\begin{figure}
|
|
%https://wiki.freifunk.net/images/4/43/Freifunk-logo.svg
|
|
\includesvg[height=0.25\paperheight]{pictures/freifunk}
|
|
%https://portal.funkfeuer.at/logo0xffsmall.jpg
|
|
\includegraphics[height=0.09\paperheight]{pictures/funkfeuer}
|
|
\caption{Initiativen für freie Funknetze: Freifunk in Deutschland und FunkFeuer in Österreich\\ \url{https://freifunk.net}\\ \url{https://funkfeuer.at}}
|
|
\end{figure}
|
|
\column{.5\linewidth}
|
|
\begin{figure}
|
|
%https://reudnetz.org/wer/
|
|
\includegraphics[height=0.12\paperheight]{pictures/reudnetz}
|
|
%http://www.westnetz.org/kontakt.html
|
|
\includegraphics[height=0.14\paperheight]{pictures/westnetz}
|
|
\caption{nicht kommerzielle WISP: Reudnetz w.V. und Westnetz w.V. aus Leipzig\\ \url{https://reudnetz.org}\\ \url{http://westnetz.org}}
|
|
\end{figure}
|
|
\end{columns}
|
|
|
|
%nicht-kommerzielle ISPs auch Teil des vorgesehenen Anwenderkreises, jedoch breit regional verstreut (Leipzig: Westnetz und Reudnetz)
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item Warum Abdeckung von Richtantennen simulieren: Planung von Richtfunkstrecken innerhalb freier Funknetze und WISP-Funknetze
|
|
\item Freie Funknetze definieren, Initiativen nennen
|
|
\item nicht kommerzielle WISPs definieren: ohne Gewinnerzielungsabsicht, Unterschied
|
|
\item verwenden Richtantennen: Grund nennen
|
|
\item Situation des Anschlusses einer neuen Person beschreiben (Problem, ob Anschluss möglich) -> Abhilfe bei Abschätzung durch Simulation
|
|
\item Überleitung: breite Auswahl Anwendungen existiert bereits
|
|
}
|
|
|
|
%\begin{frame}
|
|
% \frametitle{Warum? - Nutzen}
|
|
% Simulation der Abdeckung von Richtantennen
|
|
% \begin{itemize}
|
|
% \item Planung von Richtfunkstrecken
|
|
% \end{itemize}
|
|
% \begin{figure}
|
|
% \center\includegraphics[width=0.7\paperwidth]{pictures/antennamap}
|
|
% \caption{Im Praxisprojekt entwickelte Simulationsanwendung}%zur Simulierung der Abdeckung einer Richtantenne}
|
|
% \end{figure}
|
|
%\end{frame}
|
|
|
|
%Wireless InSite GUI -> Microsoft Windows 7, Windows 8, and Windows 10, 64- bit
|
|
%Matlab Antenna Toolbox -> Mac, Windows, Linux
|
|
|
|
\begin{frame}
|
|
\frametitle{Wie? - Überblick verwendbarer Anwendungen}
|
|
\includegraphics[height=0.61\paperheight]{pictures/anwendungen}
|
|
%\center\resizebox{\textwidth}{!}{\includesvg[height=\textheight]{pictures/anwendungen}}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item individuelle Nachteile aus Arbeit nennen
|
|
\item Matlab unter Plattformunabhängig, da für die meisten verfügbar (quasi)
|
|
}
|
|
|
|
\section{Problem- und Zielstellung}
|
|
\begin{frame}
|
|
\frametitle{Problemstellung}
|
|
Anwendungen weisen folgende Nachteile auf:
|
|
\begin{itemize}
|
|
\item Closed-Source
|
|
\item Plattformabhängigkeit
|
|
\item erschwerte Bedienbarkeit
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item Bedienbarkeit subjektiv, jedoch durch erhöhte Anzahl nötiger Schritte quantifizierbar (in Relation)
|
|
\item sagen, wieso diese Nachteile für die Zielgruppe problematisch sind
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{Zielstellung}
|
|
Konzeption und prototypische Realisierung einer Webanwendung zur Simulation der Abdeckung von Richtantennen auf einer interaktiven Karte
|
|
\begin{itemize}
|
|
\item Open-Source
|
|
\item Plattformunabhängig
|
|
\item Gute Bedienbarkeit
|
|
\end{itemize}
|
|
Mithilfe folgender Technologien:
|
|
\begin{itemize}
|
|
\item Leaflet\footnote{\url{https://leafletjs.com/}}
|
|
\item Signal-Server
|
|
\item Spring-Framework\footnote{\url{https://spring.io/}}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item Erklärung wieso Webanwendung
|
|
\item Gründe für die Verwendung der Technologien nennen
|
|
}
|
|
|
|
\section{Erarbeitung der Anforderungen}
|
|
\begin{frame}
|
|
\frametitle{Erarbeitung der Anforderungen}
|
|
\begin{columns}
|
|
\column{.4\linewidth}
|
|
\includegraphics[height=0.4\paperheight]{pictures/reihenfolgeanwentw}
|
|
\column{.6\linewidth}
|
|
\begin{block}{Vorab zu klärende Fragen}
|
|
\begin{enumerate}
|
|
\item Wie wird die Antennenabdeckung berechnet?
|
|
\item Wie kann die Simulation innerhalb einer Anwendung gestaltet werden?
|
|
\end{enumerate}
|
|
\end{block}
|
|
\end{columns}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item "nach diesem Schema wurde vorgegangen"
|
|
\item bevor die Anforderungen erstellt werden können, müssen diese Fragen geklärt werden
|
|
}
|
|
|
|
|
|
\begin{frame}
|
|
\frametitle{1. fachspezifisches Wissen sammeln}
|
|
Verwendung von Kanalmodellen\\
|
|
|
|
\begin{itemize}
|
|
\item berechnen Signalverluste im Funkkanal
|
|
\item nach Phillips et al. \cite{surveymodels} kategorisierbar (u.a. theoretische, Grund-,Gelände-, ergänzende und Vielstrahl-Modelle)
|
|
\item benötigen Informationen über
|
|
|
|
\begin{block}{Antennen (Antenneneigenschaften)}
|
|
\begin{itemize}
|
|
\item Sendeleistung, Antennengewinn, Richtcharakteristik, Frequenz, Position und Ausrichtung, Polarisation, ...
|
|
\end{itemize}
|
|
\end{block}
|
|
|
|
\begin{block}{Ausbreitungsraum (Eigenschaften des Raumes)}
|
|
\begin{itemize}
|
|
\item Höhendaten verschiedener Modelle benutzbar zur Beschreibung des Geländes, Klima-Zone, ...
|
|
\end{itemize}
|
|
\end{block}
|
|
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item Berechnung Antennenabdeckung durch: Kanalmodelle
|
|
\item Kanalmodelle, Funkkanal definieren
|
|
\item Welche Eigenschaften konkret
|
|
\item Antennen: Sendeleistung, Antennengewinn, Richtcharakteristik, Frequenz, Position und Ausrichtung, Polarisation
|
|
\item Raum: Höhendaten verschiedener Modelle; verwendbar zur Beschreibung des Geländes, Klima-Zone, ...
|
|
\item benötigte Eigenschaften abhängig vom Kanalmodell
|
|
\item Bezug der Eigenschaften (Höhendaten,Antennengewinn)
|
|
}
|
|
|
|
|
|
\begin{frame}
|
|
\frametitle{2. Vergleich einzelner Anwendungen}
|
|
\begin{columns}
|
|
\column{.5\linewidth}
|
|
\begin{block}{vorher}
|
|
\begin{itemize}
|
|
\item um Überblick verwendbarer Anwendungen zu erhalten
|
|
\end{itemize}
|
|
\end{block}
|
|
\column{.6\linewidth}
|
|
\begin{block}{jetzt}
|
|
\begin{itemize}
|
|
\item um Anforderungen an eigene Anwendung zu ermitteln
|
|
\item Erhalt erster Ideen für das Konzept
|
|
\end{itemize}
|
|
\end{block}
|
|
\end{columns}
|
|
%\begin{figure}
|
|
%\center \includegraphics[height=0.4\textheight]{pictures/hdtest}
|
|
%\caption{Durch Signal-Server erstellte Abdeckung mit Gelände}
|
|
\includegraphics[height=0.55\textheight]{pictures/airlinkvsradiomobilevssig}
|
|
% \caption{Webseite von Ubiquiti airLink (links) und Radio Mobile (rechts)}
|
|
% \end{figure}
|
|
|
|
\end{frame}
|
|
\note[itemize]{
|
|
\item grobe Erkenntnisse des Vergleiches nennen
|
|
\item detailliertere wichtige Erkenntnisse, aus denen eine Anforderung an die Anwendung abgeleitet wurde, kommen in der Anforderungsanalyse
|
|
}
|
|
%\begin{frame}
|
|
% \frametitle{2. Vergleich einzelner Anwendungen}
|
|
% \begin{figure}
|
|
% \center \includegraphics[height=0.8\textheight]{pictures/airlinkvsradiomobile}
|
|
% \caption{Webseite von Ubiquiti airLink (links) und Radio Mobile (rechts)}
|
|
% \end{figure}
|
|
%\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Anforderungsanalyse}
|
|
\begin{block}{Festlegung der Anforderungen}
|
|
Funktional
|
|
\begin{itemize}
|
|
\item Eintragen, Verschieben und Löschen von Antennenstandorten
|
|
\item Veränderung Antenneneigenschaften
|
|
\item Auswahl des Kanalmodells
|
|
\item Darstellung Abdeckung an ausgewählten Antennenstandorten
|
|
\item Export Antennenstandorte mit -Eigenschaften
|
|
\end{itemize}
|
|
|
|
Nicht-funktional (Begriffe nach DIN/ISO 25010)
|
|
\begin{itemize}
|
|
\item Gute Bedienbarkeit
|
|
\item Erweiterbarkeit
|
|
\item Genauigkeit
|
|
\item Hilfsbereitschaft
|
|
\item Installierbarkeit
|
|
\end{itemize}
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item Funktional/Nicht-funktional definieren
|
|
\item Gründe der Anforderungen beschreiben
|
|
\item Grund der Verwendung dieser Begriffe nennen-> nach Starke einheitliche Nennung stärkt Verständnis
|
|
}
|
|
|
|
|
|
\section{Konzept}
|
|
\begin{frame}[fragile=singleslide]
|
|
\frametitle{Entwurf der Architektur - Schichtenmodell}
|
|
Entworfen nach Darstellung durch Starke \cite{praxisbuch2020}
|
|
\begin{columns}
|
|
\column{.2\linewidth}
|
|
%\resizebox{\textwidth}{!}{\includesvg[height=\textheight]{pictures/schichtenarch}}
|
|
%\includegraphics[height=0.95\textheight]{pictures/schichtenarch}
|
|
\includegraphics[height=0.7\textheight]{pictures/schichtenmodell}
|
|
\column{.85\linewidth}
|
|
\begin{itemize}
|
|
\item Webbrowser
|
|
\vspace{12mm}
|
|
\item Webserver, Web-API-Controller
|
|
\vspace{12mm}
|
|
\item Abdeckungs-Objekt
|
|
\vspace{12mm}
|
|
\item Persistente Daten (Abdeckungsbilder, Template, Höhendaten, Antennendiagramme), Signal-Server
|
|
\end{itemize}
|
|
\end{columns}
|
|
\end{frame}
|
|
\note[itemize]{
|
|
\item kurz alle Komponenten und deren Beziehung erklären
|
|
}
|
|
|
|
|
|
\begin{frame}[fragile=singleslide]
|
|
\frametitle{Entwurf der Architektur - Laufzeitsicht}
|
|
\begin{figure}
|
|
\center
|
|
%\includesvg[width=\textwidth]{seqSystem}
|
|
\resizebox{1.03\textwidth}{!}{\includesvg[height=1.9\textheight]{pictures/seqSystem}}%changing inner width changes fontsize
|
|
%\caption[Abfolge von Benutzerinteraktionen mit Verarbeitungsschritten]{Sequenzielle Abfolge von Benutzerinteraktionen mit ausgelösten Verarbeitungsschritten im Backend}
|
|
\label{fig:seqsystem}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Entwurf der Webseitenoberfläche}
|
|
\begin{figure}
|
|
\center
|
|
\includegraphics[height=0.65\textheight]{pictures/guiskizze}
|
|
\caption{GUI-Prototyp mit Kartenansicht und Bedienelementen}
|
|
%{GUI-Prototyp basierend auf \url{https://leafletjs.com/examples/layers-control/}: Kartenansicht mit Zoom-Elementen oben links, darunter Symbolleiste für das Hinzufügen einer Antenne und Exportfunktion und Maßstabsleiste; Kartenauswahl oben rechts, unten rechts Legende für Signalstärke; mittig Pop-Up für Auswahl der Antenneneigenschaften und Kanalmodell}
|
|
%mit Kartenauswahl oben rechts, Zoom-Elementen oben links, darunter Symbolleiste für das Hinzufügen einer Antenne und Exportfunktion sowie mittig Pop-Up für Auswahl der Antenneneigenschaften und Kanalmodell
|
|
%Ansicht der Webseite mit Zoom-Elementen oben links, darunter Symbolleiste für das Hinzufügen einer Antenne und Exportfunktion; Kartenauswahl oben rechts, unten rechts Legende für Signalstärke
|
|
\end{figure}
|
|
\end{frame}
|
|
\note[itemize]{
|
|
\item Bedienelemente und deren Nutzen erklären
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{Entwurf der Web-API}
|
|
%\center\includegraphics{graphics/hochleistungsrechner}
|
|
Entwurfen nach dem REST-Prinzip von Fielding \cite{restapi} und Beschreibung dessen von Starke \cite{praxisbuch2020}
|
|
\begin{longtable}[]{@{}lll@{}}
|
|
\toprule
|
|
\begin{minipage}[b]{0.23\columnwidth}\raggedright
|
|
Mapping\strut
|
|
\end{minipage} & \begin{minipage}[b]{0.23\columnwidth}\raggedright
|
|
Controller\strut
|
|
\end{minipage} & \begin{minipage}[b]{0.46\columnwidth}\raggedright
|
|
Funktion\strut
|
|
\end{minipage}\tabularnewline
|
|
\midrule
|
|
\endhead
|
|
\begin{minipage}[t]{0.23\columnwidth}\raggedright
|
|
\emph{GET, ``/''}\strut
|
|
\end{minipage} & \begin{minipage}[t]{0.23\columnwidth}\raggedright
|
|
\emph{Home}\strut
|
|
\end{minipage} & \begin{minipage}[t]{0.46\columnwidth}\raggedright
|
|
\emph{Erzeugung der Webseitenansicht}\strut
|
|
\end{minipage}\tabularnewline
|
|
\begin{minipage}[t]{0.23\columnwidth}\raggedright
|
|
\emph{POST, ``/coverage''}\strut
|
|
\end{minipage} & \begin{minipage}[t]{0.23\columnwidth}\raggedright
|
|
\emph{Coverage}\strut
|
|
\end{minipage} & \begin{minipage}[t]{0.46\columnwidth}\raggedright
|
|
\emph{Erzeugung eines Abdeckungsobjektes mit Generierung der Abdeckung}\strut
|
|
\end{minipage}\tabularnewline
|
|
\begin{minipage}[t]{0.23\columnwidth}\raggedright
|
|
\emph{GET, ``/coverage/{ID}''}\strut
|
|
\end{minipage} & \begin{minipage}[t]{0.23\columnwidth}\raggedright
|
|
\emph{Coverage}\strut
|
|
\end{minipage} & \begin{minipage}[t]{0.46\columnwidth}\raggedright
|
|
\emph{Rückgabe der geforderten Abdeckung}\strut
|
|
\end{minipage}\tabularnewline
|
|
\bottomrule
|
|
\caption{Endpunkte der Webanwendung}
|
|
\end{longtable}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item REST und dessen Nutzen kurz erklären
|
|
}
|
|
|
|
\section{Implementierung}
|
|
%\subsection{Dateisystem}
|
|
\begin{frame}
|
|
\frametitle{Aufbau des Projektes}
|
|
\begin{block}{Spring-Projekt}
|
|
\begin{itemize}
|
|
\item nach Ausführung durch Craig \cite{springprog} erstellt
|
|
\item erstellt mit \textit{Spring initializr}\footnote{\url{https://start.spring.io/}} -> automatische Einbindung der Abhängigkeiten
|
|
\item Maven\footnote{\url{https://maven.apache.org/}} als Build-Tool -> Vorkonfigurationen, einfacher Build-Prozess durch Wrapper-Script
|
|
\item Plattformunabhängig durch JVM-Umgebung
|
|
\end{itemize}
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Back-End-Komponenten}
|
|
\begin{block}{Verwendete Abhängigkeiten}
|
|
\begin{itemize}
|
|
\item spring-boot-starter-web: Spring MVC (für Web-API) und Tomcat-Webserver
|
|
\item spring-boot-starter-thymeleaf: Generierung Webseite
|
|
\item spring-boot-starter-test: Testklasse für Schnittstelle zu Signal-Server
|
|
\item springdoc-openapi-ui: Dokumentation der Web-API
|
|
\end{itemize}
|
|
\end{block}
|
|
\begin{block}{Web-API}
|
|
\begin{itemize}
|
|
\item Abdeckungs-Objekt gibt übergebene Abdeckungsparameter als Antwort zurück mit Status der Erstellung
|
|
\item Validierung übergebener Parameter
|
|
\item Daten-Sicherheit: Generierung eines zufälligen Hashwertes für ID einer Abdeckung
|
|
\end{itemize}
|
|
\end{block}
|
|
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Generierung der Webseite}
|
|
\includegraphics[width=1\textwidth]{pictures/thymeleaf}
|
|
\begin{block}{Thymeleaf\footnote{\url{https://thymeleaf.org/}}}
|
|
\begin{itemize}
|
|
\item Java-Template-Engine
|
|
\item erzeugt View (HTML-Seite) aus View (HTML)-Template
|
|
\item fügt Liste von Kanalmodellen und Antennendiagramme in HTML-Template ein
|
|
\item Erweiterung der Listen ohne Anpassung des Templates möglich
|
|
\end{itemize}
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item unterstützt auch XML und XHTML
|
|
\item weitere Modell-Objekte ebenfalls einbettbar
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{Einrichtung von Signal-Server}
|
|
Verzeichnisstruktur und Programm unverändert\\
|
|
\vspace{5mm}
|
|
Verwendete Höhendaten: Shuttle Radar Topography Mission-Höhendaten mit $\sim$ 90m Auflösung
|
|
\begin{itemize}
|
|
\item frei verfügbar\footnote{etwa unter \url{https://earthexplorer.usgs.gov/}} und verwendbar
|
|
\item Abdeckung weiter Teile der Erdoberfläche
|
|
\item im Vergleich zu hochauflösenden Höhendaten kurze Berechnungszeit der Abdeckung einer Antenne
|
|
\end{itemize}
|
|
Antennendiagrammdaten von in freien Funknetzen häufig verwendeten Richtantennen benutzt
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Kommunikation zwischen Webanwendung und Signal-Server}
|
|
\begin{columns}
|
|
\column{.62\linewidth}
|
|
\textbf{Benutzte API: Processbuilder}
|
|
\begin{block}{Verglichen mit Java Native Interface (JNI):}
|
|
\begin{itemize}
|
|
\item Robust: Kapselung in eigenem Prozess
|
|
\item Fehlerbehandlung mithilfe Ausgaben des Prozesses
|
|
\item Aufruf einzelner Funktionen nicht möglich
|
|
\end{itemize}
|
|
weitere Betrachtung durch Yew und Oxley \cite{jnipaper}
|
|
\end{block}
|
|
|
|
\column{.5\linewidth}
|
|
\center\includesvg{pictures/jniprocbuilder}
|
|
\end{columns}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Bedienelemente der Webseite}
|
|
\begin{figure}
|
|
\begin{subfigure}{.5\textwidth}
|
|
\centering
|
|
\includegraphics[width=1.13\textwidth]{pictures/responsiveabdeckung}
|
|
%\caption[Ansicht der Webseite mit Kartenansicht und Bedienelementen]{Ansicht der Webseite mit Zoom-Elementen oben links, darunter Symbolleiste für das Hinzufügen einer Antenne und Exportfunktion; Kartenauswahl oben rechts, unten rechts Legende für Signalstärke}
|
|
\caption*{Ansicht der Webseite auf verschiedenen Endgeräten}
|
|
\end{subfigure}%
|
|
\begin{subfigure}{.5\textwidth}
|
|
\centering
|
|
\includegraphics[width=0.70\textwidth]{pictures/mobilpopup}
|
|
%\caption[Mobile Ansicht der Webseite mit Auswahl Antenneneigenschaften]{Mobile Ansicht der Webseite mit Pop-Up für Auswahl Antenneneigenschaften}
|
|
\end{subfigure}%
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
|
|
\section{Fazit}
|
|
{
|
|
\usebackgroundtemplate{%
|
|
\includegraphics[width=\paperwidth,keepaspectratio]{pictures/balkenlinks.png}
|
|
}
|
|
\begin{frame}
|
|
\frametitle{Erreichte Ziele}
|
|
\begin{figure}
|
|
\begin{columns}
|
|
\column{.3\linewidth}
|
|
%empty column
|
|
\column{.71\linewidth}
|
|
\begin{itemize}
|
|
\item plattformunabhängige Open-Source-Alternative erschaffen
|
|
\item Umsetzung aller funktionalen Anforderungen
|
|
\begin{itemize}
|
|
\item {\color{blue}Signal-Server}: breite Auswahl konfigurierbarer Antenneneigenschaften, Abdeckungsparametern \& Kanalmodellen
|
|
\item {\color{blue}Leaflet}: Auswahl und Darstellung Antennenstandort und -Abdeckung auf interaktiver Kartenansicht\\
|
|
\item {\color{blue}JSZip}: Export Antennenstandorte mit -Eigenschaften {\footnotesize \url{github.com/Stuk/jszip}}
|
|
\end{itemize}
|
|
\item prototypischer Nachweis der Realisierbarkeit des Konzeptes mithilfe der Technologien gelungen
|
|
\end{itemize}
|
|
%\includegraphics[width=\textwidth]{example-image}
|
|
\end{columns}
|
|
\end{figure}
|
|
\end{frame}
|
|
}
|
|
\note[itemize]{
|
|
\item Plattformunabhängigkeit durch Signal-Server nicht verletzt
|
|
\item Anforderungen aus Anforderungsanalyse und Zielstellung erfüllt
|
|
\item Entscheidungen nennen, die dazu geführt haben
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{Umsetzung der Qualitätsziele}
|
|
|
|
Gute Bedienbarkeit:
|
|
\begin{itemize}
|
|
\item GUI passt sich Anzeigebereich an
|
|
\item alle Schritte zur Simulation auf Kartenansicht
|
|
\item Bezug Höhen-/Antennendiagramm-Daten durch Nutzer entfällt
|
|
\end{itemize}
|
|
Erweiterbarkeit:
|
|
\begin{itemize}
|
|
\item durch weitere Spring-Frameworks, Leaflet-Plugins und Kanalmodelle
|
|
\item Modularität des Schichtenmodells
|
|
\end{itemize}
|
|
Genauigkeit:
|
|
\begin{itemize}
|
|
\item getestete Implementationen etablierter und überprüfter Kanalmodelle
|
|
\end{itemize}
|
|
Hilfsbereitschaft:
|
|
\begin{itemize}
|
|
\item Infoboxen in GUI, Dokumentation für Bau, Einsatz und Quellcode
|
|
\end{itemize}
|
|
Installierbarkeit:
|
|
\begin{itemize}
|
|
\item vereinfacht durch Maven-Wrapper
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
{
|
|
\usebackgroundtemplate{%
|
|
\includegraphics[width=\paperwidth,keepaspectratio]{pictures/balkenrechts.png}
|
|
}
|
|
\begin{frame}
|
|
\frametitle{Ausblick}
|
|
|
|
\begin{itemize}
|
|
\item Verwendung in freien Funknetzen
|
|
\item Erweiterungen und Anpassungen
|
|
\end{itemize}
|
|
|
|
\resizebox{0.1\textwidth}{!}{\includesvg{logo/antennamarkerroundwhite}} \textbf{RadioMap}
|
|
|
|
\url{https://github.com/lmux/RadioMap}
|
|
\url{http://radiomap.lmux.de/}
|
|
\end{frame}
|
|
}
|
|
\note[itemize]{
|
|
\item hier Funktionen/Umsetzung auf Webseite zeigen
|
|
}
|
|
\begin{frame}
|
|
\frametitle{Rückblick auf die Arbeit}
|
|
\begin{columns}
|
|
\column{.5\linewidth}
|
|
\begin{itemize}
|
|
\item alternative Herangehensweisen und Fokus denkbar
|
|
\item Beitrag zur Unterstützung freier Funknetze und nicht-kommerzieller ISPs
|
|
\end{itemize}
|
|
\column{.6\linewidth}
|
|
\includegraphics[width=0.55\paperwidth,keepaspectratio]{pictures/titelblatt}
|
|
\end{columns}
|
|
\end{frame}
|
|
|
|
\note[itemize]{
|
|
\item was lief gut, was hätte besser gemacht werden können
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{Referenzen}
|
|
% This prints the bibliography on the slide
|
|
\setbeamerfont{bibliography item}{size=\footnotesize}
|
|
\setbeamerfont{bibliography entry author}{size=\footnotesize}
|
|
\setbeamerfont{bibliography entry title}{size=\footnotesize}
|
|
\setbeamerfont{bibliography entry location}{size=\footnotesize}
|
|
\setbeamerfont{bibliography entry note}{size=\footnotesize}
|
|
\printbibliography
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Behandelte Anwendungen}
|
|
%\begin{itemize}
|
|
Ubiquiti airLink {\scriptsize \url{https://link.ui.com/}}\\
|
|
Radio Mobile {\scriptsize \url{https://ve2dbe.com/english1.html}}\\
|
|
Cloud-RF {\scriptsize \url{https://cloudrf.com/}}\\
|
|
CNIP {\scriptsize \url{https://github.com/Telecominfraproject/OpenCellular/tree/cnip/software/cnip}}\\
|
|
GRASS-RaPlaT {\scriptsize \url{http://www-e6.ijs.si/RaPlaT/GRASS-RaPlaT_main_page}}\\
|
|
Matlab Antenna Toolbox {\scriptsize \url{https://mathworks.com/products/antenna.html}}\\
|
|
Wireless InSite {\scriptsize \url{https://remcom.com/wireless-insite-em-propagation-software/}}\\
|
|
SPLAT! {\scriptsize \url{https://qsl.net/kd2bd/splat.html}}\\
|
|
Signal-Server (Fork) {\scriptsize \url{https://github.com/N9OZB/Signal-Server}}
|
|
% \end{itemize}
|
|
\end{frame}
|
|
|
|
\end{document}
|
|
|