System support for the fault tolerance, testing and orchestration of drone applications
Authors: Γρηγορόπουλος Αθανάσιος 
Published: May 2022

Οι συνεχείς τεχνολογικές εξελίξεις σε ενσωματωμένες πλατφόρμες και συστήματα ελέγχου έχουν καταστήσει τα μη επανδρωμένα εναέρια οχήματα (drones) αφενός πιο αυτόνομα στη λειτουργία τους, συνδυάζοντας υπολογιστικές δυνατότητες, προηγμένα συστήματα πλοήγησης και συστήματα αποφυγής εμποδίων, και αφετέρου πιο προσιτά από οικονομικής άποψης, διευρύνοντας το πεδίο χρήσης τους σε διάφορους τομείς εφαρμογών, όπως η επιτήρηση, η παρακολούθηση και η μεταφορά-παράδοση φορτίων/αγαθών. Αν και τα drones μπορούν πλέον να ελέγχονται προγραμματιστικά μέσω εντολών υψηλού επιπέδου, η ομαλή ενσωμάτωσή τους στην υπάρχουσα κυβερνο-φυσική υποδομή παρεμποδίζεται από διάφορους παράγοντες, όπως είναι οι εγγενείς ανησυχίες σχετικά με τους κινδύνους ασφαλείας και τη προστασία της ιδιωτικότητας καθώς και η έλλειψη αυτοματισμού στον (πλήρη) κύκλο λειτουργίας του drone. Για την αντιμετώπιση των ανωτέρω ζητημάτων, σε αυτή τη διατριβή παρουσιάζουμε μηχανισμούς σε επίπεδο συστήματος για την ενίσχυση της αξιοπιστίας/ευρωστίας των εφαρμογών drone και την προώθηση μιας πιο δομημένης, ελεγχόμενης και αυτοματοποιημένης προσέγγισης ανάπτυξης και εγκατάστασης εφαρμογών, η οποία θα είναι αρμονικά συνδεδεμένη με τα υπολογιστικά πρότυπα που ακολουθούνται στο υπολογιστικό νέφος (cloud) και στα άκρα του δικτύου (edge). Στο πρώτο μέρος της διατριβής, εστιάζουμε στην ανοχή σφαλμάτων κρίσιμων για την πρόοδο της αποστολής σε σενάρια εφαρμογών όπου μια κεντρική υπολογιστική οντότητα ελεγκτή αποστολής είναι υπεύθυνη για την εκτέλεση της λογικής της εφαρμογής συντονίζοντας μια ομάδα drones μέσω εντολών υψηλού επιπέδου. Προτείνουμε ένα σχήμα ενεργού πλεονασμού (active replication) σε συνδυασμό με τεχνικές αποθήκευσης σημείων ελέγχου της κατάστασης του συστήματος (checkpointing) και καταγραφής πληροφοριών επικοινωνίας (logging), με σκοπό την ανοχή βλαβών αποτυχίας-σταματήματος (fail-stop failures), όπου ο ελεγκτής απλώς σταματά τη λειτουργία του. Δείχνουμε ότι σε περίπτωση ντετερμινιστικών προγραμμάτων εφαρμογής, η λύση μας εισάγει επιβάρυνση μόνο σε περίπτωση που παρουσιάσει βλάβη κάποιο drone και εξαρτάται από το μέγεθος των αρχείων καταγραφής που πρέπει να ανταλλαχθούν μεταξύ των αντιγράφων του ελεγκτή. Η λύση μας υποστηρίζει επίσης μη ντετερμινιστικές εφαρμογές μέσω μιας προσέγγισης ημι-ενεργού πλεονασμού, όπου το κόστος είναι ανάλογο με το μέγεθος της κατάστασης εκτέλεσης που παράγεται κατά τις μη ντετερμινιστικές λειτουργίες. Στη συνέχεια, χρησιμοποιούμε την ενεργή αναπαραγωγή με ένα πρωτόκολλο συμφωνίας για την αντιμετώπιση Βυζαντινών βλαβών (Byzantine failures), του πιο γενικού τύπου αστοχιών, όπου ο ελεγκτής μπορεί να συμπεριφέρεται αυθαίρετα λόγω κακόβουλων επιθέσεων ή σφαλμάτων υλικού και λογισμικού. Η προσέγγισή μας βασίζεται σε υποθέσεις σύγχρονης επικοινωνία με υπογεγραμμένα μηνύματα και απαιτεί N = 2f + 1 αντίγραφα για την ανοχή έως και f βλαβών. Δείχνουμε ότι το εισαγόμενο συνολικό κόστος προέρχεται κυρίως από το πρωτόκολλο συμφωνίας και μπορεί να μειωθεί σημαντικά χρησιμοποιώντας ένα ταχύτερο δίκτυο για την επικοινωνία μεταξύ των αντιγράφων του συντονιστή - κάτι το οποίο αποτελεί μια ρεαλιστική υπόθεση. Επίσης, ενώ το κόστος για τυπικές συνθήκες/ρυθμίσεις είναι σχετικά υψηλό, στο εύρος των δεκάδων χιλιοστών του δευτερολέπτου, δεν είναι απαγορευτικό δεδομένου ότι ο ελεγκτής αποστολής δεν εμπλέκεται σε χαμηλού επιπέδου βρόχους ελέγχου σχετιζόμενους με την πτητική λειτουργία του drone. Στο δεύτερο μέρος της διατριβής, εξετάζουμε τρόπους και τεχνικές που θα βοηθήσουν τους προγραμματιστές και τους χρήστες εφαρμογών για drone στις διαδικασίες ανάπτυξης, παρακολούθησης και δοκιμής των εφαρμογών, διασφαλίζοντας παράλληλα ότι δεν παραβιάζονται συγκεκριμένοι περιορισμοί ασφάλειας και ιδιωτικότητας. Για να αντιμετωπίσουμε αυτές τις ανάγκες με έναν οικονομικά αποδοτικό/βιώσιμο τρόπο, υιοθετούμε την προσέγγιση της πλατφόρμας ως υπηρεσία (PaaS) που χρησιμοποιείται στο cloud και αντιμετωπίζουμε τα drones ως άλλον έναν υπολογιστικό πόρο στον οποίο μπορεί κάποιος να έχει πρόσβαση μέσω μιας κοινόχρηστης υποδομής. Αρχικά, παρουσιάζουμε μια ολιστική προσέγγιση για την υποστήριξη της πιο αξιόπιστης και ελεγχόμενης λειτουργίας «μονοσυστατικών» εφαρμογών για drones μέσω μιας πλατφόρμας λογισμικού που φροντίζει για την αυτοματοποιημένη εγκατάσταση και την ελεγχόμενη εκτέλεσή τους, σε συνδυασμό με την παροχή κατάλληλης υποστήριξης προσομοίωσης και τεχνολογίας ψηφιακών διδύμων. Σε αντίθεση με άλλες προσπάθειες, οι μηχανισμοί παρακολούθησης δεν αφορούν μόνο το «πού» επιτρέπεται να λειτουργούν τα drones, αλλά λαμβάνουν επιπλέον υπόψη το «πώς» χρησιμοποιείται ο εξοπλισμός αισθητήρων και ενεργοποιητών που διαθέτουν. Επιδεικνύουμε την παρεχόμενη λειτουργικότητα μέσω αντιπροσωπευτικών παραδειγμάτων χρήσης χρησιμοποιώντας τόσο το περιβάλλον προσομοίωσης όπου εκτελούμε ένα εύρος δοκιμών πριν από την εγκατάσταση της εφαρμογής, όσο και των ψηφιακών διδύμων όπου μια εικονική αναπαράσταση του drone εκτελείται παράλληλα με την εφαρμογή στον πραγματικό κόσμο, παρέχοντας τη δυνατότητα αξιολόγησης, επαλήθευσης αλλά και πρόβλεψης της συμπεριφοράς του συστήματος. Στη συνέχεια, επεκτείνουμε διάφορες διαστάσεις αυτής της γενικής ιδέας σε κατανεμημένες εφαρμογές που αποτελούνται από πολλαπλά τμήματα τα οποία μπορούν να εγκατασταθούν σε ολόκληρο το συνεχές των υπολογιστικών συστημάτων, συμπεριλαμβανομένων drones, κόμβων στο edge και του cloud. Παρουσιάζουμε ένα πλαίσιο ενορχήστρωσης που επιτρέπει την περιγραφή υψηλού επιπέδου των απαιτήσεων της εφαρμογής μέσω κατάλληλων προδιαγραφών που συνοδεύουν τον κώδικα των τμημάτων της εφαρμογής, υποστηρίζει την εγκατάσταση των τμημάτων της εφαρμογής λαμβάνοντας υπόψη την αποστολή του drone, προάγει την αποτελεσματική επικοινωνία μεταξύ αλληλεπιδρώντων τμημάτων αξιοποιώντας τεχνολογίες ασύρματης δικτύωσης για άμεση επικοινωνία με διαφανή τρόπο και διασφαλίζει τη διατήρηση της ασφάλειας και την προστασία της ιδιωτικότητας μέσω της πρόσβασης των εφαρμογών σε υπηρεσίες κινητικότητας και αισθητήρων βάσει πολιτικών. Επιδεικνύουμε την παρεχόμενη λειτουργικότητα τόσο μέσω δοκιμών στο πεδίο όσο και μέσω του περιβάλλοντος προσομοίωσης. Επιπλέον, μέσω εκτεταμένης αξιολόγησης απόδοσης, δείχνουμε ότι η υλοποίησή μας έχει αποδεκτές υπολογιστικές απαιτήσεις, καθιστώντας την κατάλληλη ακόμη και για τις περιορισμένων δυνατοτήτων υπολογιστικές πλατφόρμες που συναντώνται σε drones και σε κόμβους στο edge.