| dc.contributor.advisor | Αλέπης, Ευθύμιος | |
| dc.contributor.author | Σαφελάς, Ανδρέας | |
| dc.date.accessioned | 2026-07-06T05:57:32Z | |
| dc.date.available | 2026-07-06T05:57:32Z | |
| dc.date.issued | 2026-06 | |
| dc.identifier.uri | https://dione.lib.unipi.gr/xmlui/handle/unipi/19498 | |
| dc.description.abstract | Η παρούσα μεταπτυχιακή διατριβή παρουσιάζει τον σχεδιασμό και την υλοποίηση ενός συστήματος συγκέντρωσης μικροϋπηρεσιών (microservice aggregator), με βασικό στόχο την εμπειρική αξιολόγηση της αρχιτεκτονικής αλλαγής που εισήγαγε το Project Loom της Java 21. Συγκεκριμένα, η έρευνα επικεντρώνεται στη σύγκριση της απόδοσης μεταξύ της παλαιάς αρχιτεκτονικής των Νημάτων Πλατφόρμας (Platform Threads - Μοντέλο 1:1) και του σύγχρονου παραδείγματος της Δομημένης Ταυτόχρονης Εκτέλεσης μέσω Εικονικών Νημάτων (Virtual Threads - Μοντέλο M:N). Η αρχιτεκτονική του συστήματος βασίζεται σε ένα ασφαλές RESTful API που υλοποιήθηκε με Spring Boot 3, ενώ η παρατηρησιμότητα (observability) των δεδομένων τηλεμετρίας σε πραγματικό χρόνο επιτυγχάνεται μέσω ενός πίνακα ελέγχου (dashboard) ανεπτυγμένου με React. Ένα από τα βασικά τεχνικά χαρακτηριστικά της εργασίας είναι η χρήση του Java Microbenchmark Harness (JMH) για τη διεξαγωγή στατιστικά αυστηρών δοκιμών αντοχής (stress tests) στο επίπεδο της Εικονικής Μηχανής Java (JVM), απομονώνοντας τον θόρυβο του δικτύου και μετρώντας με ακρίβεια τη διακίνηση (throughput), την καθυστέρηση (latency) και την επιβάρυνση στη συλλογή απορριμμάτων (GC allocation rate). Τα εμπειρικά αποτελέσματα αποδεικνύουν ότι τα Εικονικά Νήματα εξαλείφουν πλήρως το σημείο συμφόρησης της έλλειψης νημάτων (thread starvation), προσφέροντας 16,8x μεγαλύτερη διακίνηση υπό συνθήκες μαζικού ταυτόχρονου φορτίου I/O, χωρίς καμία αναβάθμιση υλικού. Ωστόσο, η έρευνα αποκαλύπτει επίσης ότι η ακραία αποδοτικότητα της JVM μετατοπίζει αναπόφευκτα το σημείο συμφόρησης στο Επίπεδο Μεταφοράς (Transport Layer), οδηγώντας σε εξάντληση των εφήμερων θυρών TCP του λειτουργικού συστήματος, γεγονός που καθιστά αναγκαία τη χρήση δεξαμενών συνδέσεων (connection pooling) σε πραγματικά επιχειρησιακά περιβάλλοντα. | el |
| dc.format.extent | 53 | 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 | Συγκριτική αξιολόγηση απόδοσης νημάτων πλατφόρμας και εικονικών νημάτων της Java 21 σε αρχιτεκτονικές μικρουπηρεσιών | el |
| dc.title.alternative | Comparative performance evaluation of platform threads and virtual threads of Java 21 in microservice architectures | el |
| dc.type | Master Thesis | el |
| dc.contributor.department | Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών. Τμήμα Πληροφορικής | el |
| dc.description.abstractEN | This master’s thesis presents the design and implementation of a microservice aggregator, with the primary objective of empirically evaluating the architectural shift introduced by Java 21’s Project Loom. Specifically, the research focuses on comparing the performance of the legacy Platform Thread architecture (1:1 Model) against the modern paradigm of Structured Concurrency via Virtual Threads (M:N Model). The system's architecture is based on a secure RESTful API implemented with Spring Boot 3, while real-time observability of telemetry data is achieved through a dashboard developed with React. A key technical feature of this work is the utilization of the Java Microbenchmark Harness (JMH) to conduct statistically rigorous stress tests at the Java Virtual Machine (JVM) level, isolating network noise and accurately measuring throughput, latency, and Garbage Collection allocation rates. The empirical results demonstrate that Virtual Threads completely eliminate the JVM-level bottleneck of thread starvation, delivering a 15.8x increase in throughput under massive concurrent I/O load without requiring hardware upgrades. However, the research also reveals that the extreme efficiency of the JVM inevitably shifts the bottleneck to the Transport Layer, leading to the exhaustion of the operating system's ephemeral TCP ports. This finding highlights the absolute necessity of utilizing connection pooling in real-world enterprise environments. | el |
| dc.contributor.master | Προηγμένα Συστήματα Πληροφορικής - Ανάπτυξη Λογισμικού και Τεχνητής Νοημοσύνης | el |
| dc.subject.keyword | Java 21 | el |
| dc.subject.keyword | Project Loom | el |
| dc.subject.keyword | Virtual threads | el |
| dc.subject.keyword | Spring Boot | el |
| dc.subject.keyword | React | el |
| dc.subject.keyword | JMH benchmarking | el |
| dc.subject.keyword | Microservices | el |
| dc.subject.keyword | Platform threads | el |
| dc.date.defense | 2026-06 | |