|
Chaos Testing of the Strimzi Project Using the Litmus Platform
Zrnčík, Henrich ; Smrčka, Aleš (referee) ; Vojnar, Tomáš (advisor)
Posledná dekáda v poli softwarového inžinierstva sa niesla v duchu automatizácie a abstrakcie. Vzostup nového spôsobu písania a menežovania softwaru (taktiež známeho ako architektúra mikroslužieb) so sebou taktiež priniesol nové výzvy v rámci zaručovania kvality softwaru. Beh systému v cloudovom prostredí s množstvom komponentov, ktoré sú roztrúsene po rôznych uzloch vyžaduje uvažovanie o závislostiach medzi týmito komponentami a dodatočné testovanie ktoré potvrdí odolnosť systému. Riešením je chaos inžinierstvo, často považované za logický krok po testovaní systému ako celku. Táto práca sa zaoberá riešením problému nedostatočných možností pre aplikáciu chaosu (a to prostredníctvom projektu Litmus) do produktu Apache Kafka, ktorý je nasadený na Kubernetes platforme ako súčasť projektu Strimzi. Inými slovami, aby sme mohli aplikovať chaos na projekte Strimzi, či iných systémoch ktoré ho používajú, musíme vytvoriť úplne nové časti Litmusu. Čo sa samotnej aplikácie chaosu týka, fakt že Strimzi je systém sám o sebe, avšak často súčasť iných systémov, znamená že budeme potrebovať vytvoriť rozšírenejšie riešenia. Práca je zavŕšená výslednými experimentami a potvrdením odolnosťi projektu v reálnom nasadení.
|
|
Application for Demonstration of Synchronization Mechanisms in Distributed Systems
Klimčíková, Lenka ; Veigend, Petr (referee) ; Zbořil, František (advisor)
The aim of this thesis is to design and create a web application for the demonstration of selected synchronization mechanisms in distributed systems. The algorithms communicate by means of message-passing to ensure mutual exclusion of the processes in an effort to access the critical section. Implemented are Lamport's algorithm, Maekawa's algorithm, Raymond's algorithm and Suzuki-Kasami broadcasting algorithm. The application is implemented in Java programming language with the use of Spring Boot framework for listening on different endpoints. Thymeleaf template engine is used to exchange the necessary data between backend and frontend of the application. HTML + JavaScript language are used for dynamic rendering of sent messages to the screen. The algorithms are implemented in separate libraries, which are then used by the web application. The application illustratively demonstrates function of each algorithm with loads of different examples for the best possible understanding. It's primarily intended for students of Faculty of Information Technology, Brno University of Technology
|
|
Configurable Parallel Execution of System Tests within the Strimzi Project
Orsák, Maroš ; Rogalewicz, Adam (referee) ; Češka, Milan (advisor)
V poslednych rokoch mnoho spolocnosti prijalo Kubernetes a architekturu mikrosluzieb, ktoru umoznuje. Tato technologia otvorila nove moznosti nielen pre velke spolocnosti, ale aj pre malych vyvojarov softveru. Kubernetes je system riadenia kontajnerov a nedavno sa objavil novy koncept, ako efektivnejsie organizovat kontajnery - vzor operatora. Jeden takyto operator je vyvinuty a udrziavany v ramci open-source projektu s nazvom Strimzi. Projekt Strimzi spaja niekolko nastrojov, ktore sa staraju o nasadenie Apache Kafka na Kubernetes. Kedze Kafka je komplexny, horizontalne skalovatelny, distribuovany system, viete si predstavit, ze jeho instalacia je pomerne zlozita akcia. Preto jednou z najvacsich vyziev pouzivania Kubernetes je, ako efektivne a rychlo otestovat projekty ako Kafka a Strimzi a zaroven overit integraciu s inymi podobnymi produktmi. Zdroje, ktore potrebuje Kubernetes, su ovela narocnejsie v porovnani s nasadenim Kafka na virtualne stroje alebo typicke instancie kontajnerov. Aby sme tento problem vyriesili, prijali sme principy par- alelneho vykonavania a vytvorili mechanizmus v ramci systemovych testov Strimzi, ktory paralelne spusta testy iba proti jedinemu klastru Kubernetes. Okrem toho sme navrhli uplne novu architekturu pre end-to-end testy. Vylepsenia su zamerane na skalovatelnost a skratenie casu vykonavania . Prostrednictvom niekolkych experimentov tato praca ukazuje, ze navrhovany mechanizmus s roznymi konfiguraciami klastra Kubernetes (vratane pocet uzlov Kubernetes , pocet paralelne vykonavanych testov a sad ) vyrazne urychlil vykonavanie testov.
|
|
The library for working with sensors allowing distributed processing in FORTH language
Kudela, Kryštof ; Valach, Soběslav (referee) ; Jirgl, Miroslav (advisor)
This semestral work is about programming language Forth, variation of operating systems, analysis of microcontroller unit, definition of intelligent sensors and distributed systems and distributed computing. The purpose of this work is introduce the reader to entire Forth development platform, where first chapter is learning how to program in Forth, then there are informations about the FlashForth and AmForth operating systems. The MCU chapter describes the microcontroller unit, where they are used and its division. Next chapters are about definition of smart sensors and theoretical introduction to distributed systems and distributed computing, which contain also a multitasking solution in Forth. A network is created in Forth that allows remote control using a wireless module.
|
|
Dynamic Software Architectures for Distributed Embedded Control Systems
Richta, Tomáš ; Kavička, Antonín (referee) ; Sawa, Zdeněk (referee) ; Janoušek, Vladimír (advisor)
Tato prace se zabyva dynamickou rekonfigurovatelnosti distribuovanych ridicich systemu. Vzhledem k charakteristice techto systemu je pro definici jejich behu pouzit formalismus Petriho siti. Tyto jsou transformovany do proveditelne podoby a nasledne pak interpretovany specializovanym software nainstalovanym na jednotlivych uzlech systemu. Diky vlastnostem pouziteho formalismu je mozne jednotlive casti systemu nahrazovat novymi variantami. Stejne tak je mozne generovat formalni specifikace dilcich casti systemu z abstraktnejsich workflow modelu a popisu ve forme domenove specifickych jazyku.
|
|
Biometric System Security Using Blockchain Technology
Žiška, Marek ; Drahanský, Martin (referee) ; Malaník, Petr (advisor)
Táto práca analyzuje existujúce protokoly používané na dosiahnutie konsenzu v blockchain technológiách, popisuje koncepty biometrických systémov, identifikuje ich bezpečnostné hrozby, predstavuje existujúce riešenia zabezpečenia biometrických systémov. Na základe týchto zistení navrhuje decentralizovanú verziu biometrického systému, ktorý využíva váhovaný protokol PBFT a blockchain na zlepšenie bezpečnosti ``Feature Extractor'' a ``Matcher'' modulov klasického biometrického systému. Blockchain je charakterizovaný ako systém zaznamenávania informácií, ktorý zaisťuje bezpečnosť, nemennosť a transparentnosť v distribuovanej sieti. Priame využitie blockchainu na zabezpečenie citlivých údajov, akými sú aj biometrické údaje, sa nepredpokladá ako najvhodnejšie využitie, no jeho integrácia v rámci procesov jednotlivých komponentov biometrických systémov sa javí ako dobrá možnosť. Nášmu návrhu sa podarilo zmierniť priame útoky na zabezpečované komponenty a útoky na kanály, ktoré ich spájajú, a na kanál, ktorý spája ``Matcher'' s externou aplikáciou.
|
|
Chaos Testing of the Strimzi Project Using the Litmus Platform
Zrnčík, Henrich ; Smrčka, Aleš (referee) ; Vojnar, Tomáš (advisor)
Posledná dekáda v poli softwarového inžinierstva sa niesla v duchu automatizácie a abstrakcie. Vzostup nového spôsobu písania a menežovania softwaru (taktiež známeho ako architektúra mikroslužieb) so sebou taktiež priniesol nové výzvy v rámci zaručovania kvality softwaru. Beh systému v cloudovom prostredí s množstvom komponentov, ktoré sú roztrúsene po rôznych uzloch vyžaduje uvažovanie o závislostiach medzi týmito komponentami a dodatočné testovanie ktoré potvrdí odolnosť systému. Riešením je chaos inžinierstvo, často považované za logický krok po testovaní systému ako celku. Táto práca sa zaoberá riešením problému nedostatočných možností pre aplikáciu chaosu (a to prostredníctvom projektu Litmus) do produktu Apache Kafka, ktorý je nasadený na Kubernetes platforme ako súčasť projektu Strimzi. Inými slovami, aby sme mohli aplikovať chaos na projekte Strimzi, či iných systémoch ktoré ho používajú, musíme vytvoriť úplne nové časti Litmusu. Čo sa samotnej aplikácie chaosu týka, fakt že Strimzi je systém sám o sebe, avšak často súčasť iných systémov, znamená že budeme potrebovať vytvoriť rozšírenejšie riešenia. Práca je zavŕšená výslednými experimentami a potvrdením odolnosťi projektu v reálnom nasadení.
|
|
Configurable Parallel Execution of System Tests within the Strimzi Project
Orsák, Maroš ; Rogalewicz, Adam (referee) ; Češka, Milan (advisor)
V poslednych rokoch mnoho spolocnosti prijalo Kubernetes a architekturu mikrosluzieb, ktoru umoznuje. Tato technologia otvorila nove moznosti nielen pre velke spolocnosti, ale aj pre malych vyvojarov softveru. Kubernetes je system riadenia kontajnerov a nedavno sa objavil novy koncept, ako efektivnejsie organizovat kontajnery - vzor operatora. Jeden takyto operator je vyvinuty a udrziavany v ramci open-source projektu s nazvom Strimzi. Projekt Strimzi spaja niekolko nastrojov, ktore sa staraju o nasadenie Apache Kafka na Kubernetes. Kedze Kafka je komplexny, horizontalne skalovatelny, distribuovany system, viete si predstavit, ze jeho instalacia je pomerne zlozita akcia. Preto jednou z najvacsich vyziev pouzivania Kubernetes je, ako efektivne a rychlo otestovat projekty ako Kafka a Strimzi a zaroven overit integraciu s inymi podobnymi produktmi. Zdroje, ktore potrebuje Kubernetes, su ovela narocnejsie v porovnani s nasadenim Kafka na virtualne stroje alebo typicke instancie kontajnerov. Aby sme tento problem vyriesili, prijali sme principy par- alelneho vykonavania a vytvorili mechanizmus v ramci systemovych testov Strimzi, ktory paralelne spusta testy iba proti jedinemu klastru Kubernetes. Okrem toho sme navrhli uplne novu architekturu pre end-to-end testy. Vylepsenia su zamerane na skalovatelnost a skratenie casu vykonavania . Prostrednictvom niekolkych experimentov tato praca ukazuje, ze navrhovany mechanizmus s roznymi konfiguraciami klastra Kubernetes (vratane pocet uzlov Kubernetes , pocet paralelne vykonavanych testov a sad ) vyrazne urychlil vykonavanie testov.
|
|
Application for Demonstration of Synchronization Mechanisms in Distributed Systems
Klimčíková, Lenka ; Veigend, Petr (referee) ; Zbořil, František (advisor)
The aim of this thesis is to design and create a web application for the demonstration of selected synchronization mechanisms in distributed systems. The algorithms communicate by means of message-passing to ensure mutual exclusion of the processes in an effort to access the critical section. Implemented are Lamport's algorithm, Maekawa's algorithm, Raymond's algorithm and Suzuki-Kasami broadcasting algorithm. The application is implemented in Java programming language with the use of Spring Boot framework for listening on different endpoints. Thymeleaf template engine is used to exchange the necessary data between backend and frontend of the application. HTML + JavaScript language are used for dynamic rendering of sent messages to the screen. The algorithms are implemented in separate libraries, which are then used by the web application. The application illustratively demonstrates function of each algorithm with loads of different examples for the best possible understanding. It's primarily intended for students of Faculty of Information Technology, Brno University of Technology
|
|
Dynamic reconfiguration in SOFA 2 component system
Babka, David ; Bureš, Tomáš (advisor) ; Pop, Tomáš (referee)
SOFA 2 is a component system employing hierarchically composed components in distributed environment. It contains concepts, which allow for specifying dynamic reconfigurations of component architectures at runtime, which is essential for virtually any real-life application. The dynamic reconfigurations comprise creating/disposing components and creating/disposing connections between components. In contrast to majority of component systems, SOFA 2 is able to specify possible architectural reconfigurations in the application architecture at design time. This allows SOFA 2 runtime to follow the dynamic behavior of the application and reflect the behavior in architectural reconfigurations. The goal of this thesis is to reify these concepts of dynamic reconfigurations in the implementation of SOFA 2 and demonstrate their usage on a demo application.
|