dc.contributor.advisor | Αλέπης, Ευθύμιος | |
dc.contributor.author | Παπανικολάου, Ηλίας | |
dc.date.accessioned | 2022-07-14T06:55:19Z | |
dc.date.available | 2022-07-14T06:55:19Z | |
dc.date.issued | 2022-07 | |
dc.identifier.uri | https://dione.lib.unipi.gr/xmlui/handle/unipi/14457 | |
dc.identifier.uri | http://dx.doi.org/10.26267/unipi_dione/1880 | |
dc.description.abstract | Η παρούσα μεταπτυχιακή διατριβή αναπτύχθηκε στο πλαίσιο του Προγράμματος Μεταπτυχιακών Σπουδών “Προηγμένα Συστήματα Πληροφορικής - Ανάπτυξη Λογισμικού και Τεχνητής Νοημοσύνης” του Πανεπιστημίου Πειραιώς και έχει ως στόχο την υλοποίηση web εφαρμογής, που ενσωματώνει τεχνολογία Blockchain, σε αρχιτεκτονική μικροϋπηρεσιών με χρήση reactive programming.
Η τεχνική του reactive programming αφορά στη non-blocking επικοινωνία μεταξύ των στοιχείων που αποτελούν την εφαρμογή, με αποτέλεσμα την κατά πολύ καλύτερη αξιοποίηση των πόρων υλικού των συστημάτων που φιλοξενούν τις μικροϋπηρεσίες. Το Java framework που χρησιμοποιήθηκε για την δημιουργία των μικροϋπηρεσιών είναι το Spring Boot 2.0, καθώς διαθέτει ενσωματωμένη υποστήριξη στην ανάπτυξη εφαρμογών με reactive programming, εισάγοντας ένα νέο web framework, το Spring WebFlux.
Η εφαρμογή αφορά στη διασφάλιση της γνησιότητας εγγράφων ενός εκπαιδευτικού ιδρύματος, αξιοποιώντας την τεχνολογία blockchain. Ο σχεδιασμός και η υλοποίηση της εφαρμογής έχει βασιστεί σε βέλτιστες πρακτικές και μοτίβα σχεδίασης μικροϋπηρεσιών, όπως η χρήση ασύγχρονων μηνυμάτων μέσω του RabbitMQ message broker, εξισορρόπηση φόρτου, service discovery, api gateway, distributed tracing και token relay.
Ένα από τα ζητήματα που έχει δοθεί ιδιαίτερη έμφαση, καθώς αποτελεί πρόκληση στις μικροϋπηρεσίες, είναι η ασφάλεια και η εξουσιοδότηση χρηστών που αφορά στη πρόσβαση, τόσο στους διακομιστές πόρων μέσω των διεπαφών (APIs), όσο και στις τοποθεσίες της frontend εφαρμογής, με χρήση των προτύπων OAuth2.0 και OpenID Connect.
Για την ανάπτυξη (deployment) της εφαρμογής, χρησιμοποιήθηκε η τεχνολογία Docker. Οι μικροϋπηρεσίες τοποθετούνται σε docker images και στη συνέχεια μεταφορτώνονται στο αποθετήριο DockerHub. Με τη δημιουργία κατάλληλου αρχείου docker-compose.yml, η εφαρμογή αναπτύσσεται μέσα σε λίγα λεπτά. | el |
dc.format.extent | 80 | el |
dc.language.iso | el | el |
dc.publisher | Πανεπιστήμιο Πειραιώς | el |
dc.rights | Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ | * |
dc.title | Ανάπτυξη εφαρμογής που ενσωματώνει τεχνολογία blockchain με χρήση reactive microservices | el |
dc.title.alternative | Application development incorporating blockchain technology using reactive microservices | el |
dc.type | Master Thesis | el |
dc.contributor.department | Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών. Τμήμα Πληροφορικής | el |
dc.description.abstractEN | This master’s thesis was developed in the scope of the MSc Program "Advanced Informatics and Computing Systems - Software Development and Artificial Intelligence" of the University of Piraeus and aims to implement a web application development, incorporating Blockchain technology, in microservices architecture using reactive programming.
The reactive programming technique refers to the non-blocking communication between the components of the application, resulting in a much better utilization of the hardware resources of the systems hosting the microservices. The Java framework used to create the microservices is Spring Boot 2.0, as it has built-in support for developing applications with reactive programming, introducing a new web framework, the Spring WebFlux.
The application is about ensuring the authenticity of documents of an educational institution, leveraging blockchain technology. The design and implementation of the application is based on best practices and microservices design patterns, such as the use of asynchronous messaging via the RabbitMQ message broker, load balancing, service discovery, api gateway, distributed tracing, and token relay.
One of the topics that has been given special emphasis, as it consists of a challenge in microservices, is security and user authorization regarding access, both to the resource servers through the interfaces (APIs), and to the frontend application sites, using the OAuth2.0 and OpenID Connect standards.
For the development of the application, Docker technology was used. Microservices are put into docker images and then uploaded to the DockerHub repository. By creating a suitable docker-compose.yml file, the application is deployed in minutes. | el |
dc.contributor.master | Προηγμένα Συστήματα Πληροφορικής - Ανάπτυξη Λογισμικού και Τεχνητής Νοημοσύνης | el |
dc.subject.keyword | Microservices | el |
dc.subject.keyword | Blockchain | el |
dc.subject.keyword | Reactive programming | el |
dc.subject.keyword | Java | el |
dc.subject.keyword | Spring boot | el |
dc.subject.keyword | Webflux | el |
dc.subject.keyword | Project reactor | el |
dc.date.defense | 2022-07-06 | |