Ανάπτυξη εφαρμογής που ενσωματώνει τεχνολογία blockchain με χρήση reactive microservices
Application development incorporating blockchain technology using reactive microservices
Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Microservices ; Blockchain ; Reactive programming ; Java ; Spring boot ; Webflux ; Project reactorΠερίληψη
Η παρούσα μεταπτυχιακή διατριβή αναπτύχθηκε στο πλαίσιο του Προγράμματος Μεταπτυχιακών Σπουδών “Προηγμένα Συστήματα Πληροφορικής - Ανάπτυξη Λογισμικού και Τεχνητής Νοημοσύνης” του Πανεπιστημίου Πειραιώς και έχει ως στόχο την υλοποίηση 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, η εφαρμογή αναπτύσσεται μέσα σε λίγα λεπτά.