Σχεδίαση και υλοποίηση κατανεμημένου συστήματος για την αυτόματη αξιολόγηση προγραμματιστικών ασκήσεων - Τσιαμήτρος, Νικόλαος (Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών, 2015)
Τα κατανεμημένα συστήματα έδωσαν τη δυνατότητα σχεδιασμού γρήγορων, αποκρίσιμων και ανθεκτικών στις αποτυχίες εφαρμογών. Τρέχοντας σε περισσότερα από ένα μηχανήματα κάθε στιγμή, μπορούν να χωρίσουν το συνολικό φορτίο σε κομμάτια και να τα μοιράσουν σε διαφορετικούς κόμβους, ελαχιστοποιώντας έτσι τον χρόνο που απαιτείται για να ολοκληρωθεί μια εργασία ή ένα σύνολο από εργασίες που διαφορετικά θα εκτελούνταν ακολουθιακά. Μια τέτοια εφαρμογή, αν σχεδιαστεί σωστά, μπορεί ιδανικά να εξυπηρετήσει τις αιτήσεις όλων των πελατών που δυνητικά μπορεί να έχει, χωρίς να ανησυχεί ποτέ για τον πραγματικό τους αριθμό ή για τον όγκο εργασίας που απαιτούν οι αιτήσεις τους. Η ανάγκη για μια παρόμοια κατανεμημένη εφαρμογή που μπορεί να κλιμακώνει, ώστε να αναλαμβάνει μεγάλα φορτία με αποτελεσματικό τρόπο, είναι το κίνητρο πίσω από τη συγκεκριμένη διπλωματική εργασία. Αρχίσαμε δουλεύοντας με ένα υπάρχον σύστημα, το οποίο χρησιμοποιείται σε διάφορα μαθήματα του πολυτεχνείου και στον Πανελλήνιο Διαγωνισμό Πληροφορικής, για να λαμβάνει και να αξιολογεί προγράμματα, που υποβάλλονται ως λύσεις σε προκαθορισμένα προβλήματα. Στόχος μας ήταν να επεκτείνουμε το σύστημα για να το καταστήσουμε κλιμακώσιμο καθώς και να παρέχουμε τις ικανότητές του ως μια δημόσια διαθέσιμη υπηρεσία. Για να πετύχουμε αυτούς τους σκοπούς, σχεδιάσαμε μια κατανεμημένη αρχιτεκτονική, η οποία κατανέμει τις εισερχόμενες αιτήσεις για αξιολόγηση σε πολλαπλούς εργάτες αξιολόγησης και παρέχει μια κατάλληλη διεπαφή για να υπάρχει απομακρυσμένη πρόσβαση στις δυνατότητες αυτές. Στη συνέχεια, υλοποιήσαμε την αρχιτεκτονική μας, στην οποία ενσωματώσαμε το αρχικό σύστημα, το οποίο δρα ως εργάτης αξιολόγησης (ή απλά εργάτης). Έπειτα, δοκιμάσαμε το σύστημα για να επαληθεύσουμε την αποτελεσματικότητά του και διαπιστώσαμε ότι η αναμενόμενη επιτάχυνση στη διαδικασία αξιολόγησης επιτυγχάνεται.