| dc.contributor.advisor | Alepis, Efthimios | |
| dc.contributor.advisor | Αλέπης, Ευθύμιος | |
| dc.contributor.author | Papakostas, Panagiotis | |
| dc.contributor.author | Παπακώστας, Παναγιώτης | |
| dc.date.accessioned | 2026-01-19T11:25:07Z | |
| dc.date.available | 2026-01-19T11:25:07Z | |
| dc.date.issued | 2025-12 | |
| dc.identifier.uri | https://dione.lib.unipi.gr/xmlui/handle/unipi/18788 | |
| dc.description.abstract | Η παρούσα διπλωματική εργασία παρουσιάζει τον σχεδιασμό και την υλοποίηση ενός Δυναμικού
Συστήματος Προσθηκών, το οποίο επιτρέπει την επέκταση μιας εφαρμογής κατά τη διάρκεια της
λειτουργίας της, χωρίς να απαιτείται επανεκκίνηση. Το σύστημα υποστηρίζει τη φόρτωση,
ενεργοποίηση, απενεργοποίηση και εκτέλεση προσθηκών μέσα από μια διεπαφή χρήστη
υλοποιημένη με Angular.
Για την επίτευξη αυτής της λειτουργικότητας αξιοποιείται το Java Reflection API, σε συνδυασμό
με custom annotations και μηχανισμούς δυναμικής φόρτωσης κλάσεων, ώστε να εντοπίζονται και να
εκτελούνται οι μέθοδοι κάθε προσθήκης. Στο backend, η Spring Boot εφαρμογή διαχειρίζεται τα
μεταδεδομένα των προσθηκών, τον μηχανισμό αυθεντικοποίησης και τα REST endpoints που
απαιτούνται για την εκτέλεσή τους. Στο frontend, η Angular εφαρμογή επιτρέπει στους χρήστες να
ανεβάζουν νέες προσθήκες και να καλούν τις διαθέσιμες μεθόδους τους σε πραγματικό χρόνο.
Η εργασία αναλύει τις αρχιτεκτονικές αποφάσεις που απαιτούνται για να επιτευχθεί μια
ισορροπία ανάμεσα στην ευελιξία, την ασφάλεια και την απόδοση, ενώ παράλληλα παρουσιάζει ένα
λειτουργικό παράδειγμα αρθρωτού σχεδιασμού. Τα αποτελέσματα δείχνουν ότι η δυναμική φόρτωση
μέσω reflection μπορεί να υποστηρίξει επεκτάσεις με ασφαλή και συντηρήσιμο τρόπο, όταν
συνδυάζεται με dependency injection και μηχανισμούς ασφαλούς εκτέλεσης. | el |
| dc.format.extent | 43 | el |
| dc.language.iso | en | el |
| dc.publisher | Πανεπιστήμιο Πειραιώς | el |
| dc.rights | Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ | * |
| dc.title | Design and implementation of a dynamic plugin framework using Java Reflection | el |
| dc.title.alternative | Σχεδίαση και υλοποίηση ενός δυναμικού συστήματος προσθηκών μέσω Java Reflection | el |
| dc.type | Master Thesis | el |
| dc.contributor.department | Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών. Τμήμα Πληροφορικής | el |
| dc.description.abstractEN | This dissertation presents the design and implementation of a Dynamic Plugin Framework in Java,
developed to enable runtime extensibility through reflection and Spring Boot integration.
The framework allows new functionalities to be added to a running application without recompilation,
supporting plugin upload, activation, deactivation, and execution directly through a web interface built
with Angular.
The system demonstrates the use of Java Reflection APIs, custom annotations, and dynamic
class loading to load and execute plugin methods. On the backend, a Spring Boot application
manages plugin metadata, handles authentication, and exposes REST endpoints for execution. On
the frontend, an Angular interface enables users to upload plugins, invoke methods, and visualize
outputs in real time.
This research explores the architectural decisions that balance flexibility, security, and
performance, while providing a practical demonstration of modular software design. The resulting
system validates that reflection-based dynamic loading can achieve maintainable extensibility without
compromising safety, especially when combined with dependency injection and safe invocation
mechanisms. | el |
| dc.contributor.master | Προηγμένα Συστήματα Πληροφορικής - Ανάπτυξη Λογισμικού και Τεχνητής Νοημοσύνης | el |
| dc.subject.keyword | Java | el |
| dc.subject.keyword | Reflection | el |
| dc.subject.keyword | Plugin | el |
| dc.date.defense | 2025-12-10 | |