|
Modular Architecture of Distributed Applications
Musil, Jiří ; Hrubý, Martin (referee) ; Hanáček, Petr (advisor)
Traditional architectures of software systems are in heterogenous environment of today's computer networks too heavy-footed. One of principles, which tries to solve this problem is service-oriented architecture (SOA). Practical way of its implementation is represented by web services (WS) built upon protocols like SOAP or XML-RPC. This diploma thesis focuses problem of providing contextual information to mobile devices and its solution based on SOA principles. The thesis introduces design and implementation of web service providing contextual information to mobile devices and prototype of modular inverse SOAP proxy server allowing its effective monitoring and management.
|
|
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.
|
|
Distributed Network Traffic Processing
Letavay, Viliam ; Ryšavý, Ondřej (referee) ; Pluskal, Jan (advisor)
Expansion of computer networks and availability of internet connection enables our society to grow faster then ever before. However, at the same time it opens up a new opportunuties for a cybercrime activities. That's why there is an increasing need of security administrators and law enforcing agencies for existence of a tools to analyze the captured data flows. This master thesis deals with ways of analysis of captured network traffic in a distributed environment, which would allow scaling of available analysis power and therefore adapt to ever increasing volumes of data transmitted over the computer networks.
|
|
Web Interface for Image Processing
Beran, Milan ; Mlích, Jozef (referee) ; Beran, Vítězslav (advisor)
This paper concerns design and implementation of a system which provides easier control of digital image processing console applications. The work is based on threes information technology domains: distributed systems, image processing and web technologies. The system consist of number of separated components communicating with each other in order of processing desired tasks. Control interface and the task daemon are implemented in PHP language. Image processing programs are implemented in C language using OpenCV graphic library. Control of the system is carried out through web graphical interface using dynamic control components implemented in Javascript language, jQuery library and jQueryUI interface. Part of the work is also a description of employment of the system in practical use in two environments, experiments concerning system performance and web interface user acceptance testing.
|
|
Application Development Framework for Peer-to-Peer Collaboration
Hrdina, Jan ; Očenášek, Pavel (referee) ; Rychlý, Marek (advisor)
The thesis deals with the design and implementation of the application framework for the creation of collaborative web editors that enable peer-to-peer collaboration in real time. The thesis summarizes existing approaches for data replication, from which M. Kleppmann's CRDT (conflict-free replicated data type) for JSON is chosen as the most suitable. Using the resulting framework, the created content can be safely shared in groups of peers, where each member can be assigned different permissions. Own communication protocols based on WebRTC, WebSocket and WebCrypto are designed and implemented for P2P connection establishment and subsequent communication. The framework allows to resolve conflicts and work independently without an Internet connection. For a consistent user experience, the library includes a set of user interface elements for managing friends, groups, and other common tasks. The framework is implemented using functional design patterns implemented in the ReasonML language. The functionality of the result is verified by creating an example application of the mind map editor.
|
|
Distributed Systems on the .NET Framework Platform
Vítek, Martin ; Makáň, Florian (referee) ; Cvrk, Lubomír (referee) ; Herman, Ivo (advisor)
With the expansion of the Internet communication and related availability of increasing number of services built on different technologies, distributed systems represent a solution to integrate these network services and provide them to users in a coherent form. The .NET Framework which provides an environment for application development in a highly distributed environment of Internet and intranet can be used to achieve this goal. This PhD thesis deals with access to shared resources in the context of distributed systems using the .NET platform. The first part of the work is devoted to describing the basic principles of distributed systems and .NET platform techniques, which can be used for implementation of the principles. For the purposes of request processing having asynchronous nature not only in distributed systems a universal interface for the description of asynchronous operations was designed and implemented. The interface extends standard asynchronous techniques on the .NET platform. In order to address the issue of access to shared resources model was designed based on the principles of object-oriented programming, along with basic algorithm to avoid deadlock in the case of use resources by multiple processes (threads) simultaneously. This extendable model has been successfully implemented and its functionality verified in basic scenarios of access to shared resources. After the definition of resources and their dependencies the implemented model allows working with resources as with any other objects on .NET platform. The synchronization processes proceed transparently in background.
|
|
Distributed Systems Simulation
Ďuriš, Anton ; Šeda, Miloš (referee) ; Matoušek, Radomil (advisor)
This thesis is focused on distributed systems modeling using Petri nets. Distributed systems are increasingly being implemented in applications and computing systems, where their task is to ensure sufficient performance and stability for a large number of its users. When modeling a distributed systems, stochastic behavior of Petri nets is important, which will provide more realistic simulations. Therefore, this thesis focuses mainly on timed Petri nets. The theoretical part of this thesis summarizes distributed systems, their properties, types and available architectures, as well as Petri nets, their representation, types and the principle of an operation. In the practical part, two models were implemented, namely a horizontally scaled web application divided into several services with a distributed database and a large grid computing system, more precisely the BOINC platform with the Folding@home project. Both models were implemented using the PetNetSim library of Python. The goal of this thesis is to perform simulations on the created models for different scenarios of their behavior.
|
|
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.
|