almost there

This commit is contained in:
Pünkösd Marcell 2021-12-19 01:06:13 +01:00
parent a30824b7e3
commit 6ceed8ed9a
8 changed files with 43 additions and 34 deletions

View File

@ -2,12 +2,12 @@
%----------------------------------------------------------------------------
\chapter*{\koszonetnyilvanitas}\addcontentsline{toc}{chapter}{\koszonetnyilvanitas}
%----------------------------------------------------------------------------
Szeretném köszönetemet kifejezni konzulensemnek, Dr.~Maliosz~Markosznak, amiért lehetővé tette, hogy egy ilyen remek témán dolgozzak és emellett a rengeteg segítséget, amit Dr.~Simon~Csabával közösen adtak munkám során.
Szeretném köszönetemet kifejezni konzulensemnek, Dr.~Maliosz~Markosznak, tiszteletre méltó türelméért és amiért lehetővé tette, hogy egy ilyen remek témán dolgozzak és emellett a rengeteg segítséget és támogatást, amit Dr.~Simon~Csabával közösen adtak munkám során.
Emellett köszönettel tartozom a Távközlési és Médiainformatikai Tanszék Nagysebességű Hálózatok Laboratóriumának (HSN LAB) és a Schönherz Kollégiumban található Schönherz Elektronikai Műhelynek (SEM), hogy biztosították számomra az eszközöket, szerszámokat és helyszínt a munkámhoz.
Külön szeretném megköszönni Torma~Kristófnak, amiért anno segített elindulni a \textit{Kubernetes} rendszerek üzemeltetésének és használatának rögös útján. Így kellő tapasztalattal tudtam belevágni feladatom megoldásába.
Emellett szeretném megköszönni családomnak és barátaimnak a végtelen támogatást amit kaptam.
Külön szeretném megköszönni a Schönherz kollégiumban működő Kollégiumi~Számítástechnikai~Kör egykori és jelenleg aktív tagjainak támogatását. A körben eltöltött éveim során elképesztő mennyiségű szakmai tudásra tettem szert, rengeteget fejlődtem és mindemellett sok barátságot szereztem.
Kiemelném Rafael~László és Majthényi-Wass~Józsué nevét: nélkülük minden bizonnyal mérésre alkalmas hardver erőforrás hiányában maradtam volna a dolgozatom egyik legfontosabb pontján.
% lackó, Josh, kszk
% kszk
Emellett szeretném megköszönni barátnőmnek Alexának, családomnak és barátaimnak a végtelen támogatást amit tőlük kaptam.

View File

@ -62,7 +62,7 @@ Az előszűrés által adott sávszélesség megtakarítást nehéz megbecsülni
Eredeti Tanító minta részlet & 190 & 152 & 80.0\% \\
Erdei hangfelvétel madárcsiripeléssel & 1000 & 288 & 28.8\% \\
Erdő, kevés madárcsiripeléssel & 316 & 53 & 16.7\% \\
Erdőszél, este & 1500 & ? & ?\% \\ %TODO: Ezt ne felejtsem el kitölteni
Éjszaka, havazás & 1500 & 1 & 0.06\% \\
\hline
\end{tabular}
\caption{Első fázisú \acrshort{mi} áteresztésének vizsgálata különböző hangmintákra}

View File

@ -3,20 +3,27 @@
\chapter{Konklúzió}
%----------------------------------------------------------------------------
% TODO: Ez az egész fos mert a dipterv1 végére íródott
\section{Összefoglalás}
A %féléves
munkám első részében a felhő és peremhálózati számítástechnika alkalmazási területeit, jellemző felhasználási módjait tekintettem át. Megvizsgáltam több keretrendszert is, az ezek mögött rejlő ötleteket és megoldásokat.
A munkám első részében a felhő és peremhálózati számítástechnika alkalmazási területeit, jellemző felhasználási módjait tekintettem át. Megvizsgáltam több keretrendszert is, az ezek mögött rejlő ötleteket és megoldásokat és kiválasztottam az ideális környezetet a feladatom megvalósításához..
Az irodalomkutatás során szerzett ismeretek alapján olyan alkalmazásokat kerestem, amelyek működéséhez előnyösen járul hozzá a peremhálózati rendszerek alkalmazása. Kutatásaim során kettő alkalmazást is találtam, amelyek egyenként különböző előnyeit képesek kihasználni a felhő és peremhálózati rendszerek együttes alkalmazásának. Az alkalmazásokat részletesen tanulmányoztam és bemutattam.
% TODO
% átalakítottam, hogy jó legyen edge-be
% kimértem, hogy jó lett
Ezek után megvizsgáltam a dinamikus átütemezés előnyeit és megvalósítási lehetőségeit a választott alkalmazásaim kontextusában.
Megterveztem és felállítottam egy tesztkörnyezetet az átalakított alkalmazások tesztelésére. Ez a tesztkörnyezet megfelelő modelljét adta egy éles peremhálózati és felhő rendszernek.
Ezek után az elkészített tesztkörnyezetben demonstráltam a dinamikus komponens mozgatást működését és hatásait felhő és peremhálózati infrastruktúrák közt.
\section{Jövőbeni tervek}
% TODO: Big todo
Az elkészült ütemező rendszert tekintve érdekes fejlesztési irány lenne megvizsgálni annak a lehetősségét, hogy miként lehetne általánossá tenni a működését annak érdekében, hogy könnyen lehessen újabb illeszteni hozzá. Jelenleg a rendszer elkészítése során csak az általam vizsgált alkalmazások igényeit és működését vettem figyelembe. Úgy vélem egy általános megoldás mindenképpen hiánypótló lenne jelenleg az iparban.
Mint ahogy \aref{sec:birbnetes-evaluation}.\ alfejezetben is említettem, a peremhálózaton futó hangminta előszűrés áteresztő képessége szinte csalódáskeltően alacsony. Mindenképpen meg kell vizsgálni annak a lehetőségét, hogy miként lehet a dinamikus ütemezés kontextusában a skálázást is megvalósítani.
A robotkarok vezérlését megvalósító alkalmazás dinamikus ütemezésénél egy erős megkötés volt, hogy a közvetlen vezérlést megvalósító szolgáltatások belső állapottal rendelkeznek, így preemptív átütemezésük szinte megoldhatatlan. Úgy vélem, hogy megoldható lenne a vezérlési komponenseket állapotmentessé tenni illetve megoldani a biztonságos átütemezését az egyes komponenseknek miközben egy \textit{program} épp fut. Ezzel tovább lehet növelni az alkalmazás flexibilitását és ellenállását a bekövetkező hálózati változásoknak, ezzel is javítva a teljesítőképességét és megbízhatóságát a felhő alapú robotvezérlésnek.
Implementációs szempontból úgy vélem hasznos ötlet lenne a várakozási sorok kiszervezése az egyes előszűrő szolgáltatásokból és egy közös várakozási sort fenntartani minden adatközpontban ahol a feldolgozó egység fut. Ennek az apró változtatásnak hála a skálázás megvalósításával sokkal hatékonyabb lenne az alkalmazás működése, hiszen az újonnan induló komponensek a korábban felgyűlt mintákon is tudnának dolgozni. Emellett egy-egy feldolgozó szolgáltatás kiesése nem járna adatvesztéssel.
% közös queue/site

View File

@ -11,7 +11,7 @@ Ezekre a problémákra adhat megoldást, ha a felhőt kiterjesztjük az eddig me
\section{A dolgozat célja}
Munkám célja, hogy alapos áttekintést adjak a felhő és a peremhálózati számítástechnika jelenlegi állapotáról, alkalmazásának előnyeiről és kihívásairól. Munkámat konkrét alkalmazások segítségével mutatom be és eredményeimet mérésekkel fogom alátámasztani.
Munkám célja, hogy alapos áttekintést adjak a felhő és a peremhálózati számítástechnika jelenlegi állapotáról, alkalmazásának előnyeiről és kihívásairól. Munkámat konkrét alkalmazások segítségével mutatom be és eredményeimet mérésekkel támasztom alá.
\section{Fejezetek áttekintése}
@ -19,10 +19,12 @@ Az első fejezet bemutatja a feladatot és a kutatás hátterét.
A második fejezetben részletesen bemutatom a felhő és a peremhálózati számítástechnikát és az azt megvalósító keretrendszereket.
A harmadik fejezet egy korábbi felhő és \acrshort{iot} alapú projektet mutat be, amely a szőlővidékek kártevővédelmére lett kifejlesztve. Emellett megvizsgálja a peremhálózati rendszerek alkalmazásának lehetőségét.
A harmadik fejezet egy felhő és \acrshort{iot} alapú projektet mutat be, amely a szőlővidékek kártevővédelmére lett kifejlesztve. Emellett megvizsgálja a peremhálózati rendszerek alkalmazásának lehetőségét. És bemutatja annak tervezését és implementációját.
A negyedik fejezet egy gyártósori szcenáriót mutat be, ahol szintén körbejárja a peremhálózati rendszerek alkalmazásának lehetőségét, majd bemutatja az átalakítás tervezési és implementálási folyamatát.
Az ötödik fejezet a végeszközöket kiszolgáló komponensek dinamikus mozgatásával foglalkozik a felhő adatközpont és a peremhálózati rendszerek között.
Az ötödik fejezet a végeszközöket kiszolgáló komponensek dinamikus mozgatásával foglalkozik a felhő adatközpont és a peremhálózati rendszerek viszonylatában.
A hatodik fejezet egy teszt környezet tervezésével és kialakításával foglalkozik, majd a hetedik fejezet a korábban ismertetett két alkalmazás tesztelését mutatja be ebben a környezetben.
Ezután munkám eredményét a nyolcadik fejezetben foglalom össze.

View File

@ -12,7 +12,7 @@ A peremhálózati adatközpontok lehetőségeinek dinamikus kihasználásra felk
\subsection{Környezet}
Az alkalmazás teszteléséhez feltelepítettem az alkalmazást a felhő adatközpontot szimbolizáló klaszterbe. Ugyanebbe a klaszterbe telepítettem \aref{sec:scheduler}.\ szekcióban ismertetett ütemező szoftvert is.
Az alkalmazás teszteléséhez feltelepítettem az alkalmazást a felhő adatközpontot szimbolizáló klaszterbe. Ugyanebbe a klaszterbe telepítettem \aref{sec:scheduler}.\ alfejezetben ismertetett ütemező szoftvert is.
Az alkalmazás működésének teszteléséhez egy olyan forgatókönyvet állítottam össze, amelyben az ütemező számára mind a három adatközpont potenciális jelölt lehet az előszűrő szolgáltatás beütemezésére. Ehhez az alábbi prioritási sorrendet állítottam fel:
\begin{enumerate}
@ -21,7 +21,7 @@ Az alkalmazás működésének teszteléséhez egy olyan forgatókönyvet állí
\item \texttt{cloud}
\end{enumerate}
A mérés elvégezéséhez szükségem volt arra, hogy a klienseket emuláló virtuális gép képes legyen több \acrshort{iot} eszköz emulálására. \Aref{sec:birbnetes_short_desc}.\ szekcióban ismertetett kétrétegű szoftver architektúra miatt ez könnyen kivitelezhető volt. Egy új platform illesztő szoftver komponenst implementáltam, amely az \acrshort{iot} eszközön lévő hardverelemeket emulálja. A mikrofon emulációja egy fixen felvett hangfájl tartalmát szolgálja ki a logikai résznek, a többi hardver elem működése pedig csak naplózásra kerül.
A mérés elvégezéséhez szükségem volt arra, hogy a klienseket emuláló virtuális gép képes legyen több \acrshort{iot} eszköz emulálására. \Aref{sec:birbnetes_short_desc}.\ alfejezetben ismertetett kétrétegű szoftver architektúra miatt ez könnyen kivitelezhető volt. Egy új platform illesztő szoftver komponenst implementáltam, amely az \acrshort{iot} eszközön lévő hardverelemeket emulálja. A mikrofon emulációja egy fixen felvett hangfájl tartalmát szolgálja ki a logikai résznek, a többi hardver elem működése pedig csak naplózásra kerül.
Miután ez megvolt egy egyszerű szkriptet készítettem, amely konfigurálható számú \acrshort{iot} hardver emulációját indítja el és felel az életciklusuk kezeléséért. Ennek segítségével a mérések során tetszőleges számú eszközt tudtam emulálni.
@ -44,6 +44,7 @@ Egy eszköz átütemezése nem orvosolta még a problémát, ezért átütemezet
\subsection{Értékelés}
\label{sec:birbnetes-evaluation}
A tesztek eredménye jól demonstrálja, az ütemező algoritmus és az átalakított alkalmazások helyes működését.
@ -57,9 +58,9 @@ Emellett feltűnő volt, hogy a rendszer nagyon lassan reagál a terhelésre és
\subsection{Környezet}
Az alkalmazás teszteléséhez feltelepítettem az alkalmazást a felhő adatközpontot szimbolizáló klaszterbe. Ugyanebbe a klaszterbe telepítettem \aref{sec:scheduler}.\ szekcióban ismertetett ütemező szoftvert metrika gyűjtő komponenseit is, mivel itt nem volt szükség az ott ismertetett ütemező futtatására.
Az alkalmazás teszteléséhez feltelepítettem az alkalmazást a felhő adatközpontot szimbolizáló klaszterbe. Ugyanebbe a klaszterbe telepítettem \aref{sec:scheduler}.\ alfejezetben ismertetett ütemező szoftvert metrika gyűjtő komponenseit is, mivel itt nem volt szükség az ott ismertetett ütemező futtatására.
A robotkarok szimulálására \aref{sec:ursim_simulator}.\ szekcióban ismertetett \textit{DockURSim} szoftvert futtattam két példányban. Mivel a vezérlő szolgáltatások \acrshort{ip} cím alapján kapcsolódnak az egyes robotkarokhoz, így a klienseket emuláló virtuális gépnek felvettem két \acrshort{ip} címet, az egyik szimulátor portjait az egyik címhez a másikat a másikhoz rendeltem. Így képes voltam két robotkar szimulálására.
A robotkarok szimulálására \aref{sec:ursim_simulator}.\ alfejezetben ismertetett \textit{DockURSim} szoftvert futtattam két példányban. Mivel a vezérlő szolgáltatások \acrshort{ip} cím alapján kapcsolódnak az egyes robotkarokhoz, így a klienseket emuláló virtuális gépnek felvettem két \acrshort{ip} címet, az egyik szimulátor portjait az egyik címhez a másikat a másikhoz rendeltem. Így képes voltam két robotkar szimulálására.
A méréshez növeltem a kliens és az egyes adatközpontok közötti linkek késleltetését úgy, hogy a következő értékeket érjék el:
\begin{itemize}

View File

@ -257,4 +257,4 @@ Népszerűségének köszönhetően sok dokumentáció, leírás és egyéb seg
% TODO: Még lehetne írni jókat erről
\textbf{A feladatom megoldásához én ezt a keretrendszert választottam}, ennek okát \aref{sec:cloud_framework}.\ szekcióban részletezem.
\textbf{A feladatom megoldásához én ezt a keretrendszert választottam}, ennek okát \aref{sec:cloud_framework}.\ alfejezetben részletezem.

View File

@ -4,8 +4,7 @@
\label{chapter:dynamic_scheduling}
%----------------------------------------------------------------------------
Az előző fejezetekben ismertetett, átalakított alkalmazások jól ki tudják használni a peremhálózati informatikai infrastruktúra adta lehetőségeket. Mint azt a \aref{sec:peremhalozati_rendszerek}.\ %szekcióban
alfejezetben is ismertettem, a peremhálózati rendszerek és a hagyományos adatközpontok több dologban különböznek. Egyik ilyen különbség a telepítésük sűrűsége. Ez a tulajdonság lehetővé teszi, hogy a megvalósított alkalmazás szempontjából bizonyos szolgáltatásokat a felhasználókhoz \enquote{közel} futtasson. Ennek a \enquote{közelségnek} önmagában számos előnye tud lenni, mint például a csökkentett hálózati késleltetés és terhelés. Tipikusan a peremhálózati infrastruktúrákra jellemző, hogy a felhő végtelennek tűnő számítási kapacitásához képest erősen limitált erőforrások állnak rendelkezésre.
Az előző fejezetekben ismertetett, átalakított alkalmazások jól ki tudják használni a peremhálózati informatikai infrastruktúra adta lehetőségeket. Mint azt a \aref{sec:peremhalozati_rendszerek}.\ alfejezetben is ismertettem, a peremhálózati rendszerek és a hagyományos adatközpontok több dologban különböznek. Egyik ilyen különbség a telepítésük sűrűsége. Ez a tulajdonság lehetővé teszi, hogy a megvalósított alkalmazás szempontjából bizonyos szolgáltatásokat a felhasználókhoz \enquote{közel} futtasson. Ennek a \enquote{közelségnek} önmagában számos előnye tud lenni, mint például a csökkentett hálózati késleltetés és terhelés. Tipikusan a peremhálózati infrastruktúrákra jellemző, hogy a felhő végtelennek tűnő számítási kapacitásához képest erősen limitált erőforrások állnak rendelkezésre.
Könnyen beláthatjuk ezekből adódóan, hogy fontos szerepe van annak a kérdésnek, hogy egyes szolgáltatásokat mikor és melyik peremhálózati rendszeren futtatunk, vagy hogy megéri-e kihelyezni őket a felhő által nyújtott futtatókörnyezetből. Egy rosszul megválasztott szolgáltatás elhelyezés könnyen lehet, hogy az előnyök teljes ellentétét idézi elő megnövekedett költségek mellett. Mivel a peremhálózati rendszerek sokkal nagyobb számban állnak rendelkezésre és a helyes elhelyezés is kockázatos feladat, ezért az elhelyezési feladatokat minden esetben \enquote{kézzel} megoldani jelentős kihívást tud jelenteni.
@ -189,14 +188,14 @@ Ennek a szolgáltatásnak a feladata, hogy számontartsa az egyes eszközök jel
Ha a szolgáltatásból egy eddig ismeretlen eszköz kéri le az ütemezését, akkor azt egy dinamikusan megválasztott \enquote{alapértelmezett} adatközponthoz rendeli. Ezután ezt az ütemezési döntést elmenti és innentől kezdve ugyanúgy van kezelve az új eszköz is, mint az összes többi.
A kiszolgált adatokat egy kulcs-érték adatbázisban tárolja. Ehhez \textit{Redis} adatbázist használtam, ennek oka az, hogy a \textit{Redis} támogatja az értékekhez lejárati idő rendelését. A lejárai idő leteltével az értékeket automatikusan törli. Ennek a segítségével számos funkcionalitást könnyebb volt implementálni. A \textit{Redis} támogatja továbbá az osztott memóriaként való funkcionalitást, amelyet kihasználva \aref{sec:birb-scheduler}.\ szekcióban ismertetett szolgáltatással való kommunikációt megoldottam.
A kiszolgált adatokat egy kulcs-érték adatbázisban tárolja. Ehhez \textit{Redis} adatbázist használtam, ennek oka az, hogy a \textit{Redis} támogatja az értékekhez lejárati idő rendelését. A lejárai idő leteltével az értékeket automatikusan törli. Ennek a segítségével számos funkcionalitást könnyebb volt implementálni. A \textit{Redis} támogatja továbbá az osztott memóriaként való funkcionalitást, amelyet kihasználva \aref{sec:birb-scheduler}.\ alfejezetben ismertetett szolgáltatással való kommunikációt megoldottam.
\subsubsection{Dinamikus újra-ütemező}
\label{sec:birb-scheduler}
\Aref{sec:birb-scheduler-teller}.\ szekcióban ismertetett szolgáltatás csak egy statikus hozzárendelést valósít meg az új eszközök és az adatközpontok között. Viszont ezek után nem változtatja meg a döntését. Ezeknek a döntéseknek a felülvizsgálatára és az \enquote{alapértelmezett} adatközpont dinamikus megváltoztatására szolgál ez a szolgáltatás.
\Aref{sec:birb-scheduler-teller}.\ alfejezetben ismertetett szolgáltatás csak egy statikus hozzárendelést valósít meg az új eszközök és az adatközpontok között. Viszont ezek után nem változtatja meg a döntését. Ezeknek a döntéseknek a felülvizsgálatára és az \enquote{alapértelmezett} adatközpont dinamikus megváltoztatására szolgál ez a szolgáltatás.
Ez a szolgáltatás valósítja meg \aref{sec:scheduling-algo}.\ szekcióban vázolt periodikusan futó ütemező algoritmust.
Ez a szolgáltatás valósítja meg \aref{sec:scheduling-algo}.\ alfejezetben vázolt periodikusan futó ütemező algoritmust.
Futása során a kiértékelt metrikákat lekérdezi a \textit{Mérés kezelő} szolgáltatásból. Majd ezek alapján és az osztott \textit{Redis} adatbázisban tárolt információk alapján meghozza az ütemezési döntést. Szükség esetén \textit{Kubernetes} \acrshort{api} hívásokkal elindítja a \textit{KubeFed} által kezelt szolgáltatást a megfelelő adatközpontban majd ezek után az ütemezési döntést rögzíti a az adatbázisban. így legközelebb amikor az eszköz frissíti a konfigurációját már az újonnan indított szolgáltatáshoz küldi az információkat, ezzel megvalósítva a dinamikus átütemezést.
@ -208,7 +207,7 @@ A szolgáltatás azt is ellenőrzi, hogy a kijelölt \enquote{alapértelmezett}
A robotkarokat vezérlő alkalmazás számára szükség van arra az információra, hogy az egyes adatközpontokkal milyen minőségű a link összeköttetése.
Ennek a megvalósítására egy egyszerű szkriptet készítettem, amely leméri az összes adatközponttal szembeni késleltetést, majd ezeket elküldi \aref{sec:birb-latency-collector}.\ szekcióban ismertetett szolgáltatás számára, amely így képes arról kiértékelést készíteni.
Ennek a megvalósítására egy egyszerű szkriptet készítettem, amely leméri az összes adatközponttal szembeni késleltetést, majd ezeket elküldi \aref{sec:birb-latency-collector}.\ alfejezetben ismertetett szolgáltatás számára, amely így képes arról kiértékelést készíteni.
A késleltetés mérésére kézenfekvő megoldás lehet a hagyományos \acrfull{icmp} által biztosított \textit{Ping} kérésekkel mérni a körülfordulási időt. De ez csak egy nagyon limitált eredményt ad egy konkrét végponthoz.

View File

@ -155,11 +155,11 @@ Az adatok gyűjtése nem késleltetés érzékeny, ezért nem okoz problémát,
\subsection{Peremhálózati szolgáltatások} % Peremhálózati rendszer basically
\label{sec:single_robot_contoller_plans}
\Aref{sec:edge_layer_plans}.\ szekcióban ismertetettek alapján terveztem meg a peremhálózati rendszerben futó mikroszolgáltatás halmazt. Jelenleg ez egyetlen egy mikroszolgáltatásból áll, ez a szolgáltatás a \textit{program}ok futtatását valósítja meg.
\Aref{sec:edge_layer_plans}.\ alfejezetben ismertetettek alapján terveztem meg a peremhálózati rendszerben futó mikroszolgáltatás halmazt. Jelenleg ez egyetlen egy mikroszolgáltatásból áll, ez a szolgáltatás a \textit{program}ok futtatását valósítja meg.
Egy program egyszerre csak egy robotkar működését írja le, így egy ilyen komponens egyszerre csak egy robotkarhoz kapcsolódik. A demonstráció végrehajtásához két komponensnek kell kapcsolódnia.
Emellett meg kell oldania olyan problémákat is, amelyek \aref{sec:ursim_demo_control}.\ szekcióban ismertetett programnál adottak -- vagy legalábbis közel-triviálisan megoldhatóak -- voltak.
Emellett meg kell oldania olyan problémákat is, amelyek \aref{sec:ursim_demo_control}.\ alfejezetben ismertetett programnál adottak -- vagy legalábbis közel-triviálisan megoldhatóak -- voltak.
\subsubsection{Végrehajtási keretrendszer}
\label{sec:ursim_execution_framework}
@ -225,7 +225,7 @@ A \textit{plugin}ek további funkcionalitást regisztrálhatnak, amiket az \acrs
\subsubsection{\textit{Program Service}}
Az architektúra, melyet \aref{sec:edge_layer_plans}.\ szekcióban bemutattam lehetővé teszi, hogy a felhőben futó komponensek bármilyen programot adjanak a peremhálózati réteg számára, legyen az automatikusan vagy részben automatikusan generált.
Az architektúra, melyet \aref{sec:edge_layer_plans}.\ alfejezetben bemutattam lehetővé teszi, hogy a felhőben futó komponensek bármilyen programot adjanak a peremhálózati réteg számára, legyen az automatikusan vagy részben automatikusan generált.
Mivel sem a demonstráció, sem a dolgozatom szempontjából nem lényeges, hogy milyen módon keletkeznek a \textit{program}ok magas szinten, ezért itt csak egy egyszerű, előre elkészített programokat tároló szolgáltatást terveztem.
@ -255,7 +255,7 @@ Az összes általam választott szolgáltatást \gls{python} nyelven implementá
\subsection{Mikroszolgáltatások}
Mint ahogy \aref{fig:usrsim_services_plan-clean}.\ ábra is mutatja, \aref{sec:single_robot_contoller_plans}.\ és \aref{sec:cloud_layer_plans}.\ szekciókban ismertetett mikroszolgáltatásokat implementáltam.
Mint ahogy \aref{fig:usrsim_services_plan-clean}.\ ábra is mutatja, \aref{sec:single_robot_contoller_plans}.\ és \aref{sec:cloud_layer_plans}.\ alfejezetben ismertetett mikroszolgáltatásokat implementáltam.
\begin{figure}[h!]
\centering
@ -297,7 +297,7 @@ Minden \textit{plugin} egy különálló osztályban van megvalósítva. Ennek p
A beregisztrált utasítás osztályok lényegében egy \textit{factory} mintát valósítanak meg. Amikor a szolgáltatás betölt egy \textit{programot} akkor először minden lépését értelmezi azzal, hogy ezekkel a \textit{factory} osztályokkal példányosítja a konkrét utasítás objektumot. Ezen a ponton lehetőség van a bevitt adatok helyességének ellenőrzésére, hogy ez ne a futtatáskor történjen meg, ezzel futtatás közben spórolva a \acrshort{cpu} ciklusokkal és \textit{fail-early} megközelítés szerint még az előtt kiderülnek a problémák, hogy a program futtatásra kerülne.
Az értelmezett utasításokat listába szervezve készíti elő a futtatható \textit{program}ot a szolgáltatás. Ezek a példányosított utasítások implementálják \aref{sec:ursim_execution_framework}.\ szekcióban említett három fő funkciót: \texttt{execute}, \texttt{abort} és \texttt{describe}. Az egyes paraméterek összerendelése ebben a lépésben történik meg az utasításokhoz.
Az értelmezett utasításokat listába szervezve készíti elő a futtatható \textit{program}ot a szolgáltatás. Ezek a példányosított utasítások implementálják \aref{sec:ursim_execution_framework}.\ alfejezetben említett három fő funkciót: \texttt{execute}, \texttt{abort} és \texttt{describe}. Az egyes paraméterek összerendelése ebben a lépésben történik meg az utasításokhoz.
Amikor egy program futtatásra kerül, akkor a komponens egyesével lépkedve a listán minden elemnek meghívja az \texttt{execute} függvényét. Ha meg kell szakítani a futást, akkor az éppen futó lépes \texttt{abort} függvényét meghívva, leállítja azt, és a következő parancsot már nem hajtja végre.
@ -311,7 +311,7 @@ A \textit{plugin} inicializációjakor kapcsolódik a \textit{Redis} adatbázish
Az általa szolgáltatott utasításnak két paramétere van, az egyik a szinkronizációs pont neve, a második pedig a komponensek száma, amelyek ugyanezen a ponton várakoznak. Annak érdekében, hogy ez egyedi legyen, és két különálló lefutása a programnak ne befolyásolja az adatbázis tartalmát, ezáltal ne legyen hatással a program lefutására, így az adatbázisban tárolt kulcsok nevéhez a futtatási azonosítót is hozzáfűzi.
Amikor a program futása erre a pontra érkezik, akkor az várakozni fog egészen addig, amíg az összes többi komponens által futtatott program egy ugyan ilyen nevű szinkronizációs pontra nem ér. Ezután \aref{sec:ursim_snyc_proto}.\ szekcióban ismertetettek szerint \enquote{egyeztetett} időpontban halad tovább.
Amikor a program futása erre a pontra érkezik, akkor az várakozni fog egészen addig, amíg az összes többi komponens által futtatott program egy ugyan ilyen nevű szinkronizációs pontra nem ér. Ezután \aref{sec:ursim_snyc_proto}.\ alfejezetben ismertetettek szerint \enquote{egyeztetett} időpontban halad tovább.
\subsubsection{\textit{UR-RTDE Plugin}}