Added birdnetes introduction
This commit is contained in:
parent
030b259d32
commit
a458ad1712
Binary file not shown.
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 78 KiB |
@ -1,9 +1,9 @@
|
|||||||
\relax
|
\relax
|
||||||
\providecommand\hyper@newdestlabel[2]{}
|
\providecommand\hyper@newdestlabel[2]{}
|
||||||
\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{Kivonat}{i}{chapter*.2}\protected@file@percent }
|
\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{Kivonat}{i}{chapter*.2}\protected@file@percent }
|
||||||
\@writefile{toc}{\select@language{english} \contentsline {chapter}{Abstract}{ii}{chapter*.3}\protected@file@percent }
|
\@writefile{toc}{\select@language{english} \contentsline {chapter}{Abstract}{iii}{chapter*.3}\protected@file@percent }
|
||||||
\@setckpt{content/abstract}{
|
\@setckpt{content/abstract}{
|
||||||
\setcounter{page}{3}
|
\setcounter{page}{4}
|
||||||
\setcounter{equation}{0}
|
\setcounter{equation}{0}
|
||||||
\setcounter{enumi}{0}
|
\setcounter{enumi}{0}
|
||||||
\setcounter{enumii}{0}
|
\setcounter{enumii}{0}
|
||||||
@ -43,5 +43,5 @@
|
|||||||
\setcounter{theorem}{0}
|
\setcounter{theorem}{0}
|
||||||
\setcounter{section@level}{0}
|
\setcounter{section@level}{0}
|
||||||
\setcounter{lstlisting}{0}
|
\setcounter{lstlisting}{0}
|
||||||
\setcounter{romanPage}{3}
|
\setcounter{romanPage}{4}
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
\relax
|
\relax
|
||||||
\providecommand\hyper@newdestlabel[2]{}
|
\providecommand\hyper@newdestlabel[2]{}
|
||||||
\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{Függelék}{3}{appendix*.5}\protected@file@percent }
|
\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{Függelék}{9}{appendix*.6}\protected@file@percent }
|
||||||
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {F.1}A TeXstudio felülete}{3}{section.F.1}\protected@file@percent }
|
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {F.1}A TeXstudio felülete}{9}{section.F.1}\protected@file@percent }
|
||||||
\@writefile{lof}{\select@language{magyar} \contentsline {figure}{\numberline {F.1.1.}{\ignorespaces A TeXstudio \LaTeX -szerkesztő.\relax }}{3}{figure.caption.6}\protected@file@percent }
|
\@writefile{lof}{\select@language{magyar} \contentsline {figure}{\numberline {F.1.1.}{\ignorespaces A TeXstudio \LaTeX -szerkesztő.\relax }}{9}{figure.caption.7}\protected@file@percent }
|
||||||
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {F.2}Válasz az ,,Élet, a világmindenség, meg minden'' kérdésére}{4}{section.F.2}\protected@file@percent }
|
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {F.2}Válasz az ,,Élet, a világmindenség, meg minden'' kérdésére}{10}{section.F.2}\protected@file@percent }
|
||||||
\@setckpt{content/appendices}{
|
\@setckpt{content/appendices}{
|
||||||
\setcounter{page}{5}
|
\setcounter{page}{11}
|
||||||
\setcounter{equation}{2}
|
\setcounter{equation}{2}
|
||||||
\setcounter{enumi}{0}
|
\setcounter{enumi}{0}
|
||||||
\setcounter{enumii}{0}
|
\setcounter{enumii}{0}
|
||||||
\setcounter{enumiii}{0}
|
\setcounter{enumiii}{0}
|
||||||
\setcounter{enumiv}{0}
|
\setcounter{enumiv}{0}
|
||||||
\setcounter{footnote}{0}
|
\setcounter{footnote}{3}
|
||||||
\setcounter{mpfootnote}{0}
|
\setcounter{mpfootnote}{0}
|
||||||
\setcounter{part}{0}
|
\setcounter{part}{0}
|
||||||
\setcounter{chapter}{6}
|
\setcounter{chapter}{6}
|
||||||
@ -26,10 +26,10 @@
|
|||||||
\setcounter{footnote@ch}{0}
|
\setcounter{footnote@ch}{0}
|
||||||
\setcounter{parentequation}{0}
|
\setcounter{parentequation}{0}
|
||||||
\setcounter{Item}{0}
|
\setcounter{Item}{0}
|
||||||
\setcounter{Hfootnote}{0}
|
\setcounter{Hfootnote}{3}
|
||||||
\setcounter{bookmark@seq@number}{11}
|
\setcounter{bookmark@seq@number}{24}
|
||||||
\setcounter{lstnumber}{1}
|
\setcounter{lstnumber}{1}
|
||||||
\setcounter{endNonectr}{4}
|
\setcounter{endNonectr}{5}
|
||||||
\setcounter{currNonectr}{0}
|
\setcounter{currNonectr}{0}
|
||||||
\setcounter{caption@flags}{0}
|
\setcounter{caption@flags}{0}
|
||||||
\setcounter{continuedfloat}{0}
|
\setcounter{continuedfloat}{0}
|
||||||
@ -45,5 +45,5 @@
|
|||||||
\setcounter{theorem}{0}
|
\setcounter{theorem}{0}
|
||||||
\setcounter{section@level}{1}
|
\setcounter{section@level}{1}
|
||||||
\setcounter{lstlisting}{0}
|
\setcounter{lstlisting}{0}
|
||||||
\setcounter{romanPage}{3}
|
\setcounter{romanPage}{4}
|
||||||
}
|
}
|
||||||
|
45
docs/thesis/content/bir.aux
Normal file
45
docs/thesis/content/bir.aux
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
\relax
|
||||||
|
\providecommand\hyper@newdestlabel[2]{}
|
||||||
|
\@setckpt{content/bir}{
|
||||||
|
\setcounter{page}{3}
|
||||||
|
\setcounter{equation}{0}
|
||||||
|
\setcounter{enumi}{0}
|
||||||
|
\setcounter{enumii}{0}
|
||||||
|
\setcounter{enumiii}{0}
|
||||||
|
\setcounter{enumiv}{0}
|
||||||
|
\setcounter{footnote}{0}
|
||||||
|
\setcounter{mpfootnote}{0}
|
||||||
|
\setcounter{part}{0}
|
||||||
|
\setcounter{chapter}{1}
|
||||||
|
\setcounter{section}{3}
|
||||||
|
\setcounter{subsection}{0}
|
||||||
|
\setcounter{subsubsection}{0}
|
||||||
|
\setcounter{paragraph}{0}
|
||||||
|
\setcounter{subparagraph}{0}
|
||||||
|
\setcounter{figure}{0}
|
||||||
|
\setcounter{table}{0}
|
||||||
|
\setcounter{footnote@add}{0}
|
||||||
|
\setcounter{footnote@ch}{0}
|
||||||
|
\setcounter{parentequation}{0}
|
||||||
|
\setcounter{Item}{0}
|
||||||
|
\setcounter{Hfootnote}{0}
|
||||||
|
\setcounter{bookmark@seq@number}{6}
|
||||||
|
\setcounter{lstnumber}{1}
|
||||||
|
\setcounter{endNonectr}{2}
|
||||||
|
\setcounter{currNonectr}{0}
|
||||||
|
\setcounter{caption@flags}{0}
|
||||||
|
\setcounter{continuedfloat}{0}
|
||||||
|
\setcounter{NAT@ctr}{0}
|
||||||
|
\setcounter{currexamplectr}{0}
|
||||||
|
\setcounter{endexamplectr}{0}
|
||||||
|
\setcounter{example}{0}
|
||||||
|
\setcounter{currdefinitionctr}{0}
|
||||||
|
\setcounter{enddefinitionctr}{0}
|
||||||
|
\setcounter{definition}{0}
|
||||||
|
\setcounter{currtheoremctr}{0}
|
||||||
|
\setcounter{endtheoremctr}{0}
|
||||||
|
\setcounter{theorem}{0}
|
||||||
|
\setcounter{section@level}{1}
|
||||||
|
\setcounter{lstlisting}{0}
|
||||||
|
\setcounter{romanPage}{3}
|
||||||
|
}
|
65
docs/thesis/content/birdnetes-introduction.aux
Normal file
65
docs/thesis/content/birdnetes-introduction.aux
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
\relax
|
||||||
|
\providecommand\hyper@newdestlabel[2]{}
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{\numberline {2}A Birdnetes részletes bemutatása}{3}{chapter.2}\protected@file@percent }
|
||||||
|
\@writefile{lof}{\select@language{magyar} \addvspace {10\p@ }}
|
||||||
|
\@writefile{lot}{\select@language{magyar} \addvspace {10\p@ }}
|
||||||
|
\newlabel{chapt:birdnetes-introduction}{{2}{3}{A szakdolgozat felépítése}{chapter.2}{}}
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {2.1}Gyors elméleti összefoglaló}{3}{section.2.1}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsection}{\numberline {2.1.1}Cloud, felhő}{3}{subsection.2.1.1}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsubsection}{\numberline {2.1.1.1}Mikroszolgáltatások}{3}{subsubsection.2.1.1.1}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsubsection}{\numberline {2.1.1.2}Konténerek}{4}{subsubsection.2.1.1.2}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsubsection}{\numberline {2.1.1.3}Kubernetes}{4}{subsubsection.2.1.1.3}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsection}{\numberline {2.1.2}MQTT}{4}{subsection.2.1.2}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsection}{\numberline {2.1.3}Open API}{4}{subsection.2.1.3}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {2.2}Rendszerszintű architektúra}{5}{section.2.2}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsection}{\numberline {2.2.1}Főbb komponensek}{5}{subsection.2.2.1}\protected@file@percent }
|
||||||
|
\@writefile{lof}{\select@language{magyar} \contentsline {figure}{\numberline {2.1.}{\ignorespaces A Birdnetes rendszer architektúrája\relax }}{5}{figure.caption.4}\protected@file@percent }
|
||||||
|
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
|
||||||
|
\newlabel{fig:birdnetes-components}{{2.1}{5}{A Birdnetes rendszer architektúrája\relax }{figure.caption.4}{}}
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsubsection}{\numberline {2.2.1.1}Input Service}{5}{subsubsection.2.2.1.1}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsubsection}{\numberline {2.2.1.2}AI Service}{6}{subsubsection.2.2.1.2}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsubsection}{\numberline {2.2.1.3}Guard Service}{6}{subsubsection.2.2.1.3}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\select@language{magyar} \contentsline {subsubsection}{\numberline {2.2.1.4}Command and Control Service}{6}{subsubsection.2.2.1.4}\protected@file@percent }
|
||||||
|
\@setckpt{content/birdnetes-introduction}{
|
||||||
|
\setcounter{page}{7}
|
||||||
|
\setcounter{equation}{0}
|
||||||
|
\setcounter{enumi}{0}
|
||||||
|
\setcounter{enumii}{0}
|
||||||
|
\setcounter{enumiii}{0}
|
||||||
|
\setcounter{enumiv}{0}
|
||||||
|
\setcounter{footnote}{3}
|
||||||
|
\setcounter{mpfootnote}{0}
|
||||||
|
\setcounter{part}{0}
|
||||||
|
\setcounter{chapter}{2}
|
||||||
|
\setcounter{section}{2}
|
||||||
|
\setcounter{subsection}{1}
|
||||||
|
\setcounter{subsubsection}{4}
|
||||||
|
\setcounter{paragraph}{0}
|
||||||
|
\setcounter{subparagraph}{0}
|
||||||
|
\setcounter{figure}{1}
|
||||||
|
\setcounter{table}{0}
|
||||||
|
\setcounter{footnote@add}{0}
|
||||||
|
\setcounter{footnote@ch}{0}
|
||||||
|
\setcounter{parentequation}{0}
|
||||||
|
\setcounter{Item}{0}
|
||||||
|
\setcounter{Hfootnote}{3}
|
||||||
|
\setcounter{bookmark@seq@number}{20}
|
||||||
|
\setcounter{lstnumber}{1}
|
||||||
|
\setcounter{endNonectr}{3}
|
||||||
|
\setcounter{currNonectr}{0}
|
||||||
|
\setcounter{caption@flags}{0}
|
||||||
|
\setcounter{continuedfloat}{0}
|
||||||
|
\setcounter{NAT@ctr}{0}
|
||||||
|
\setcounter{currexamplectr}{0}
|
||||||
|
\setcounter{endexamplectr}{0}
|
||||||
|
\setcounter{example}{0}
|
||||||
|
\setcounter{currdefinitionctr}{0}
|
||||||
|
\setcounter{enddefinitionctr}{0}
|
||||||
|
\setcounter{definition}{0}
|
||||||
|
\setcounter{currtheoremctr}{0}
|
||||||
|
\setcounter{endtheoremctr}{0}
|
||||||
|
\setcounter{theorem}{0}
|
||||||
|
\setcounter{section@level}{3}
|
||||||
|
\setcounter{lstlisting}{0}
|
||||||
|
\setcounter{romanPage}{4}
|
||||||
|
}
|
122
docs/thesis/content/birdnetes-introduction.tex
Normal file
122
docs/thesis/content/birdnetes-introduction.tex
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\chapter{A Birdnetes részletes bemutatása}
|
||||||
|
\label{chapt:birdnetes-introduction}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
Ebben a fejezetben ismertetem a Birdnetes mikroszolgáltatás rendszerének architektúráját.
|
||||||
|
Részletesen kifejtem az alkalmazásom szempontjából fontos komponensek feladatát és működését.
|
||||||
|
Majd egy példával ábrázolom a rendszer hangfelismerő folyamatát.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\section{Gyors elméleti összefoglaló}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
Ez a szakasz nem azt a célt szolgálja, hogy minnél részletesebb képet mutasson az itt leírt technológiákról.
|
||||||
|
Ez csupán egy rövid összefoglaló a Birdnetes működésének megértése szempontjából elengedhetetlen technológiákról és elvekről,
|
||||||
|
hogy valamilyen szinten tisztában legyünk a fejezetben elhangzó kifejezésekkel.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsection{Cloud, felhő}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A cloud lényegében annyit jelent, hogy a szervert, amin az alkalmazás fut, nem a fejlesztőnek kell üzemeltetnie,
|
||||||
|
hanem valamilyen másik szervezet\footnotemark által vannak karban tartva.
|
||||||
|
Ez több okból is hasznos:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Olcsóbb. Nem kell berendezéseket vásárolni, nincs üzemeltetési díj. Az egyetlen költség a bérlés, ami általában töredéke annak, amit akkor fizetnénk ha magunk csinálnánk az egészet.
|
||||||
|
\item Gyorsabb fejlesztés. Az alkalmazás futtatására használt szervereket általában a fejlesztő nem látja, ezekkel nem kell foglalkoznia. Ha az alkalmazásnak hirtelen nagyobb erőforrás igénye lesz, a rendszer automatikusan skálázódik.
|
||||||
|
\item Nagyobb megbízhatóság. Az ilyen szolgáltatást nyújtó szervezeteknek ez az egyik legnagyobb feladata. Az alkalmazás bárhol és bármikor elérhető.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\footnotetext{Ilyenek például a Microsoft Azure, az Amazon Web Services vagy a Google Cloud.}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Mikroszolgáltatások}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A mikroszolgáltatások nem sok mindenben különböznek egy általános szolgáltatástól.
|
||||||
|
Ugyan úgy valamilyen kéréseket kiszolgáló egységek, legyen az web kérések kiszolgálása HTTP-n keresztül
|
||||||
|
vagy akár parancssori utasítások feldolgozása. Az egyetlen fő különbség az a szolgáltatások felelősségköre.
|
||||||
|
A mikroszolgáltatások fejlesztésénél a fejlesztők elsősorban arra törekednek, hogy egy komponensnek minnél kevesebb feladata és függősége legyen,
|
||||||
|
ezzel megnő a tesztelhetőség és könyebb a skálázhatóság.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Konténerek}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A konténer technikailag semmivel sem több mint egy Linux-on futó processz amelyre különböző korlátozásokat szabtak.
|
||||||
|
Ilyen korlátozások lehetnek például, hogy a konténer nem látja a teljes fájlrendszert, annak csak egy kijelölt részét,
|
||||||
|
megadható a konténer által használható processzor és memória igény vagy akár korlátozható az is, hogy a konténer hogyan használhatja a hálózatot.
|
||||||
|
Léteznek eszközök, például a Docker\footnote{https://www.docker.com/}, mely lehetővé teszi a fejlesztők számára az ilyen konténerek könnyed létrehozását és futtatását.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Kubernetes}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A Kubernetes\footnote{https://kubernetes.io/} az ilyen komplex konténerizált mikroszolgáltatás rendszerek menedzselésének könnyítését szolgálja.
|
||||||
|
Kihasználja és ötvözi az imént említett technológiák előnyeit, hogy egy robosztus rendszert alkosson.
|
||||||
|
Használatával felgyorsulhat és automatizált lehet az egyes konténerek telepítése, futtatása, de talán a legfőbb előnye,
|
||||||
|
hogy segítségével könnyedén megoldható a rendszert ért terhelési igények szerinti dinamikus skálázódás.
|
||||||
|
Azok a mikroszolgáltatások, amikre a rendszernek épp nincs szüksége, nem futnak, nem igényelnek erőforrást a szerveren,
|
||||||
|
így nem kell utánnuk fizetni sem. Ezzel ellentétben, ha valamely szolgáltatás után hirtelen megnő az igény,
|
||||||
|
akkor az könnyedén duplikálható.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsection{MQTT}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
Az MQTT (Message Queue Telemetry Transport) az egy kliens-szerver publish/subscribe üzenetküldő protokoll. Könnyű implementálni és alacsony a sávszélesség igénye,
|
||||||
|
mellyel tökéletes jelöltje a Machine to Machine (M2M), illetve az Internet of Things (IoT) kommunikáció megvalósítására.
|
||||||
|
Működéséhez szükség van egy szerverre, amelynek feladata a beérkező üzenetek továbbküldése témák alapján. Egyes kliensek fel tudnak iratkozni bizonyos témákra, míg más kliensek publikálnak
|
||||||
|
és a szerver levezényli a két fél között a kommunikációt.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsection{Open API}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
Az Open API egy nyilvános alkalmazás-programozási leíró, amely a fejlesztők számára hozzáférést biztosít egy másik alkalmazáshoz.
|
||||||
|
Az API-k lírják és meghatározzák, hogy egy alkalmazás hogyan kommunikálhat egy másikkal,
|
||||||
|
melyet használva a fejlesztők könnyedén képesek a kommunikációra képes kódot írni vagy generálni.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\section{Rendszerszintű architektúra}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A Birdnetes fejlesztése során kifejezetten fontos szerepe volt a mikroszolgáltatás alapú rendszerek elvei követésének.
|
||||||
|
A rendszer egy Kubernetes klaszterben van telepítve és több kisebb komponensből áll, melyek egymás között a HTTP és az MQTT protokollok segítségével kommunikálnak.
|
||||||
|
A rendszer összes szolgáltatásának van egy Open API leírója, melyet használva hamar volt egy olyan kódbázisom, amely képes volt a rendszerrel való kommunikációra.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsection{Főbb komponensek}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A \ref{fig:birdnetes-components}-es ábrán láthatóak a rendszer komponensei, melyek mind egy-egy mikroszolgáltatás.
|
||||||
|
Az egymás mellett lévő kék levélborítékok az MQTT kommunikációt jelölik,
|
||||||
|
amellyel például a természetben elhelyezett eszközök felé irányuló kommunikációja is történik.
|
||||||
|
A következő alszakaszokban bemutatom az alkalmazásom szempontjából fontosabb komponenseket.
|
||||||
|
|
||||||
|
\begin{figure}[!ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=150mm, keepaspectratio]{figures/architecture-redesigned.png}
|
||||||
|
\caption{A Birdnetes rendszer architektúrája}
|
||||||
|
\label{fig:birdnetes-components}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Input Service}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A kihelyezett IoT eszközök által felvett hangfájlok ezen a komponensen keresztül érkeznek be a rendszerbe.
|
||||||
|
Itt történik a hanganyaghoz tartozó metaadatok lementése az Input Service saját adatbázisába.
|
||||||
|
Ilyenek például a beküldő eszköz azonosítója, a beérkezés dátuma vagy a hangüzenet rendszerszintű egyedi azonosítója.
|
||||||
|
Amint a szolgáltatás a berékezett üzenettel kapcsolatban elvégezte az összes feladatát,
|
||||||
|
publikál egy üzenetet az MQTT üzenetsorra a többi kliensnek feldolgozásra.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsubsection{AI Service}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
Az AI Service példányai fogadják az Input Service-től érkező üzeneteket és elkezdik klasszifikálni az abban található hanganyagot.
|
||||||
|
Meghatározzák, hogy a hanganyag mekkora valószínűséggel volt seregély hang vagy sem.
|
||||||
|
Ennek eredményét a hangminta egyedi azonosítójával együtt publikálják egy másik üzenetsoron.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Guard Service}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A Guard Service feliratkozik az AI Service által publikált üzenetek témájára
|
||||||
|
és valamilyen valószínűségi kritérium alapján eldönti, hogy a hangminta tartalmaz-e seregély hangot.
|
||||||
|
Ha igen, akkor az üzenetsoron küld egy riasztás parancsot a hanganyagot küldő eszköznek.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Command and Control Service}
|
||||||
|
%----------------------------------------------------------------------------
|
||||||
|
A Command and Control Service az előzőekkel ellentétben nem vesz részt a minták fogadásában, feldolgozásában vagy kezelésében.
|
||||||
|
Felelősége az eszközök és azok szenzorai állapotának menedzselése és követése.
|
||||||
|
Ezen keresztül lehet az egyes eszközöket ki- és bekapcsolni.
|
@ -3,12 +3,11 @@
|
|||||||
\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{\numberline {1}Bevezetés}{1}{chapter.1}\protected@file@percent }
|
\@writefile{toc}{\select@language{magyar} \contentsline {chapter}{\numberline {1}Bevezetés}{1}{chapter.1}\protected@file@percent }
|
||||||
\@writefile{lof}{\select@language{magyar} \addvspace {10\p@ }}
|
\@writefile{lof}{\select@language{magyar} \addvspace {10\p@ }}
|
||||||
\@writefile{lot}{\select@language{magyar} \addvspace {10\p@ }}
|
\@writefile{lot}{\select@language{magyar} \addvspace {10\p@ }}
|
||||||
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {1.1}Az alaphelyzet}{1}{section.1.1}\protected@file@percent }
|
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {1.1}A probléma}{1}{section.1.1}\protected@file@percent }
|
||||||
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {1.2}A probléma}{1}{section.1.2}\protected@file@percent }
|
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {1.2}A megoldás}{1}{section.1.2}\protected@file@percent }
|
||||||
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {1.3}A megoldás}{1}{section.1.3}\protected@file@percent }
|
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {1.3}A szakdolgozat felépítése}{2}{section.1.3}\protected@file@percent }
|
||||||
\@writefile{toc}{\select@language{magyar} \contentsline {section}{\numberline {1.4}A szakdolgozat felépítése}{1}{section.1.4}\protected@file@percent }
|
|
||||||
\@setckpt{content/introduction}{
|
\@setckpt{content/introduction}{
|
||||||
\setcounter{page}{2}
|
\setcounter{page}{3}
|
||||||
\setcounter{equation}{0}
|
\setcounter{equation}{0}
|
||||||
\setcounter{enumi}{0}
|
\setcounter{enumi}{0}
|
||||||
\setcounter{enumii}{0}
|
\setcounter{enumii}{0}
|
||||||
@ -18,7 +17,7 @@
|
|||||||
\setcounter{mpfootnote}{0}
|
\setcounter{mpfootnote}{0}
|
||||||
\setcounter{part}{0}
|
\setcounter{part}{0}
|
||||||
\setcounter{chapter}{1}
|
\setcounter{chapter}{1}
|
||||||
\setcounter{section}{4}
|
\setcounter{section}{3}
|
||||||
\setcounter{subsection}{0}
|
\setcounter{subsection}{0}
|
||||||
\setcounter{subsubsection}{0}
|
\setcounter{subsubsection}{0}
|
||||||
\setcounter{paragraph}{0}
|
\setcounter{paragraph}{0}
|
||||||
@ -30,7 +29,7 @@
|
|||||||
\setcounter{parentequation}{0}
|
\setcounter{parentequation}{0}
|
||||||
\setcounter{Item}{0}
|
\setcounter{Item}{0}
|
||||||
\setcounter{Hfootnote}{0}
|
\setcounter{Hfootnote}{0}
|
||||||
\setcounter{bookmark@seq@number}{7}
|
\setcounter{bookmark@seq@number}{6}
|
||||||
\setcounter{lstnumber}{1}
|
\setcounter{lstnumber}{1}
|
||||||
\setcounter{endNonectr}{2}
|
\setcounter{endNonectr}{2}
|
||||||
\setcounter{currNonectr}{0}
|
\setcounter{currNonectr}{0}
|
||||||
@ -48,5 +47,5 @@
|
|||||||
\setcounter{theorem}{0}
|
\setcounter{theorem}{0}
|
||||||
\setcounter{section@level}{1}
|
\setcounter{section@level}{1}
|
||||||
\setcounter{lstlisting}{0}
|
\setcounter{lstlisting}{0}
|
||||||
\setcounter{romanPage}{3}
|
\setcounter{romanPage}{4}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
%----------------------------------------------------------------------------
|
%----------------------------------------------------------------------------
|
||||||
\chapter{\bevezetes}
|
\chapter{\bevezetes}
|
||||||
%----------------------------------------------------------------------------
|
%----------------------------------------------------------------------------
|
||||||
A tanszéken diáktársaim készítettek egy felhő alapú konténerizált rendszert, a Birdnetes-t
|
Szőlőtulajdonosoknak éves szinten jelentős kárt okoznak a seregélyek, akik előszeretettel választják táplálékul a megtermelt szőlőt.
|
||||||
|
Erre a problémára dolgoztak ki a tanszéken diáktársaim egy felhő alapú konténerizált rendszert, a Birdnetes-t
|
||||||
mely a természetben elkelyezett eszközökkel kommunikál, azokat vezérli.
|
mely a természetben elkelyezett eszközökkel kommunikál, azokat vezérli.
|
||||||
Az eszközök bizonyos időközönként hangfelvételt készítenek a környezetükről,
|
Az eszközök bizonyos időközönként hangfelvételt készítenek a környezetükről,
|
||||||
majd valamilyen formában elküldik ezeket a felvételeket a központi rendszernek,
|
majd valamilyen formában elküldik ezeket a felvételeket a központi rendszernek,
|
||||||
amely egy erre a célra kifejlesztett mesterséges intelligenciát használva eldönti
|
amely egy erre a célra kifejlesztett mesterséges intelligenciát használva eldönti
|
||||||
a felvételről, hogy azon található-e madár, konkrétan seregély hang vagy sem.
|
a felvételről, hogy azon található-e seregély hang vagy sem.
|
||||||
Ha igen akkor jelez a felvételt küldő eszköznek, hogy szólaltassa meg a riasztó
|
Ha igen akkor jelez a felvételt küldő eszköznek, hogy szólaltassa meg a riasztó
|
||||||
rendszerét, hogy elijessze a seregélyt.
|
berendezését, hogy elijessze a madarakat.
|
||||||
|
|
||||||
%----------------------------------------------------------------------------
|
%----------------------------------------------------------------------------
|
||||||
\section{A probléma}
|
\section{A probléma}
|
||||||
@ -16,19 +17,22 @@ rendszerét, hogy elijessze a seregélyt.
|
|||||||
A jelen rendszer használata során nincs vizuális visszacsatolás az esetleges riasztásokról azok gyakoriságáról
|
A jelen rendszer használata során nincs vizuális visszacsatolás az esetleges riasztásokról azok gyakoriságáról
|
||||||
és a rendszer állapotáról sem. Különböző diagnosztikai eszközök ugyan implementálva lettek mint például
|
és a rendszer állapotáról sem. Különböző diagnosztikai eszközök ugyan implementálva lettek mint például
|
||||||
a logolás vagy a hiba bejelentés, de ezek használata nehézkes, nem kézenfekvő.
|
a logolás vagy a hiba bejelentés, de ezek használata nehézkes, nem kézenfekvő.
|
||||||
Szükség van valamire amivel egy helyen és egyszerűen lehet kezelni és használni a rendszer egyes elemeit.
|
Szükség van valamire amivel egy helyen és egyszerűen lehet kezelni és felügyelni a rendszer egyes elemeit.
|
||||||
|
|
||||||
%----------------------------------------------------------------------------
|
%----------------------------------------------------------------------------
|
||||||
\section{A megoldás}
|
\section{A megoldás}
|
||||||
%----------------------------------------------------------------------------
|
%----------------------------------------------------------------------------
|
||||||
A jelen szakdolgozat egy olyan webes rendszer elkészítését dokumentálja, melyel a felhasználók képesek
|
A jelen szakdolgozat egy olyan webes alkalmazás elkészítését dokumentálja, melyel a felhasználók képesek
|
||||||
a természetben elhelyezett eszközök állapotát vizsgálni, azokat akár ki és bekapcsolni igény szerint.
|
a természetben elhelyezett eszközök állapotát vizsgálni, azokat akár ki és bekapcsolni igény szerint.
|
||||||
Az egyes rendszer eseményeket vizsgálva a szoftver statisztikákat készít, melyeket különböző diagrammokon ábrázolok.
|
Az egyes rendszer eseményeket vizsgálva a szoftver statisztikákat készít, melyeket különböző diagrammokon ábrázolok.
|
||||||
Ilyen statisztikák például, hogy időben melyik eszköz mikor észlelt madár hangot, vagy hogy hány hang üzenet érkezik
|
Ilyen statisztikák például, hogy időben melyik eszköz mikor észlelt madár hangot, vagy hogy hány hang üzenet érkezik
|
||||||
az eszközöktől másodpercenként.
|
az eszközöktől másodpercenként.
|
||||||
|
|
||||||
|
|
||||||
%----------------------------------------------------------------------------
|
%----------------------------------------------------------------------------
|
||||||
\section{A szakdolgozat felépítése}
|
\section{A szakdolgozat felépítése}
|
||||||
%----------------------------------------------------------------------------
|
%----------------------------------------------------------------------------
|
||||||
A szakdolgozatom első részében bemutatom a Birdnetes
|
A szakdolgozatom első részében, a \ref{chapt:birdnetes-introduction}. fejezetben, bemutatom a Birdnetes felépítését, az egyes komponensek közötti kapcsolatokat és a technológiát, amire épült.
|
||||||
|
A 3. fejezetben ismertetem a jelenleg az iparban is használt mikroszolgáltatás működését vizualizáló alternatívákat, majd a saját megoldásom tervezetét, az arra vonatkozó elvárásokat.
|
||||||
|
A 4. fejezetben az alkalmazásom által használt technológiákat mutatom be, ezzel előkészítve az 5. és 6. fejezetet, ahol ismertetem a szerver- és kliensalkalmazások felépítését.
|
||||||
|
A 7. és 8. fejezet az alkalmazás teszteléséről és telepítéséről szól.
|
||||||
|
Az utolsó fejezetben értékelem a munkám eredményét, levonom a tapasztalatokat és bemutatok néhány továbbfejlesztési lehetőséget.
|
BIN
docs/thesis/figures/architecture-redesigned.png
Normal file
BIN
docs/thesis/figures/architecture-redesigned.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
3
docs/thesis/figures/architecture-redesigned.svg
Normal file
3
docs/thesis/figures/architecture-redesigned.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 45 KiB |
BIN
docs/thesis/figures/trello-cropped.png
Normal file
BIN
docs/thesis/figures/trello-cropped.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
\usepackage[hang]{caption}
|
\usepackage[hang]{caption}
|
||||||
|
|
||||||
\singlespacing
|
\onehalfspacing
|
||||||
|
|
||||||
\newcommand{\selecthungarian}{
|
\newcommand{\selecthungarian}{
|
||||||
\selectlanguage{magyar}
|
\selectlanguage{magyar}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
\relax
|
\relax
|
||||||
\providecommand\hyper@newdestlabel[2]{}
|
\providecommand\hyper@newdestlabel[2]{}
|
||||||
\@setckpt{include/titlepage}{
|
\@setckpt{include/titlepage}{
|
||||||
\setcounter{page}{1}
|
\setcounter{page}{2}
|
||||||
\setcounter{equation}{0}
|
\setcounter{equation}{0}
|
||||||
\setcounter{enumi}{0}
|
\setcounter{enumi}{0}
|
||||||
\setcounter{enumii}{0}
|
\setcounter{enumii}{0}
|
||||||
|
Binary file not shown.
@ -2,8 +2,8 @@
|
|||||||
% !TeX encoding = UTF-8
|
% !TeX encoding = UTF-8
|
||||||
% !TeX program = xelatex
|
% !TeX program = xelatex
|
||||||
% TODO Change language to en_GB (recommended) or en_US for English documents
|
% TODO Change language to en_GB (recommended) or en_US for English documents
|
||||||
\documentclass[12pt,a4paper,oneside]{report} % Single-side
|
%\documentclass[11pt,a4paper,oneside]{report} % Single-side
|
||||||
%\documentclass[11pt,a4paper,twoside,openright]{report} % Duplex
|
\documentclass[11pt,a4paper,twoside,openright]{report} % Duplex
|
||||||
|
|
||||||
\input{include/packages}
|
\input{include/packages}
|
||||||
|
|
||||||
@ -77,6 +77,7 @@
|
|||||||
|
|
||||||
%TODO import your own content
|
%TODO import your own content
|
||||||
\include{content/introduction}
|
\include{content/introduction}
|
||||||
|
\include{content/birdnetes-introduction}
|
||||||
|
|
||||||
% List of Figures, Tables
|
% List of Figures, Tables
|
||||||
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Loading…
Reference in New Issue
Block a user