Περίληψη: | Αντικείμενο αυτής της διδακτορικής διατριβής είναι η μελέτη και η υλοποίηση ενός ολοκληρωμένου κατανεμημένου συστήματος διανομής δεδομένων σε πραγματικό χρόνο. Η ταχεία ανάπτυξη του Διαδικτύου και η πολυπλοκότητα των υπηρεσιών που προσφέρονται μέσα από αυτό έχει εξαντλήσει τα περιθώρια- όρια της κλασικής αρχιτεκτονικής του εξυπηρετητή και του πελάτη , καθώς, ο συνεχώς αυξανόμενος αριθμός χρηστών που ζητούν διάφορες υπηρεσίες δημιουργούν ένα τεράστιο φορτίο στους εξυπηρετητές, το οποίο δεν είναι σε θέση πια να ικανοποιήσουν. Η αρχιτεκτονική των διομότιμων συστημάτων αποτελεί σήμερα τον πιο υποσχόμενο αντικαταστάτη της αρχιτεκτονικής του εξυπηρετητή-πελάτη για την παροχή υπηρεσιών μέσω του Διαδικτύου. Η υπόθεση αυτή δικαιολογείται, αφού αξιοποιώντας τους πόρους των ίδιων των χρηστών, που αποτελούν πλέον ενεργό κομμάτι του συστήματος, η συγκεκριμένη αρχιτεκτονική μπορεί να εξασφαλίσει κλιμάκωση των συστημάτων αυτών σε αριθμό χρηστών αλλά και σε πόρους, του οποίους και αυτό-διαχειρίζονται για την παροχή οποιασδήποτε υπηρεσίας. Η ανάπτυξη, όμως, διομότιμων συστημάτων προϋποθέτει την επίλυση ενός συνόλου προβλημάτων που προκύπτουν από την κατανεμημένη φύση τους και την πολυπλοκότητα τους. Τα τελευταία χρόνια, η επιστημονική κοινότητα έχει ασχοληθεί εκτενώς με τα συστήματα αυτά και έχει προτείνει τρόπους επίλυσης των προβλημάτων που εμφανίζουν, οι οποίες όμως επικεντρώνονται σε συγκεκριμένες πτυχές τους, με αποτέλεσμα να μην προσφέρουν ακόμα δυνατότητες επαρκούς αξιοποίησης των πλεονεκτημάτων τους.
Στην παρούσα διδακτορική διατριβή μελετήθηκαν η ανάπτυξη και η υλοποίηση ενός ολοκληρωμένου κατανεμημένου συστήματος διαμοιρασμού δεδομένων σε πραγματικό χρόνο. Το σύστημα αυτό αποτελείται από τρία διακριτά υποσυστήματα:
1. Ένα διομότιμο σύστημα για το διαμοιρασμό δεδομένων σε πραγματικό χρόνο. Το υποσύστημα αυτό αποτελείται από το γράφο διασύνδεσης των κόμβων που το συγκροτούν και το χρονοπρογραμματιστή που εκτελείται σε κάθε κόμβο.
2. Ένα σύστημα υποστήριξης, το οποίο είναι υπεύθυνο για την παρακολούθηση της λειτουργίας του υποσυστήματος διαμοιρασμού και την παροχή επιπλέον εύρους ζώνης, στην περίπτωση που δεν επαρκούν οι πόροι του πρώτου.
3. Ένα διομότιμο σύστημα για την αποθήκευση και την εύρεση των αντικειμένων που είναι διαθέσιμα προς διανομή μέσω του πρώτου υποσυστήματος.
Για την ανάπτυξη του πρώτου υποσυστήματος, αρχικά διερευνήθηκε η φύση της εφαρμογής και ορίστηκαν τα επιθυμητά χαρακτηριστικά. Αυτά είναι ο μικρός χρόνος στησίματος, η ανοχή του σε δυναμικά φαινόμενα, όπως είναι η δυναμική συμπεριφορά των χρηστών και του φυσικού δικτύου, η ικανότητα κλιμάκωσης ως προς τον αριθμό των κόμβων και η ικανότητα για διαμοιρασμό δεδομένων με το μεγαλύτερο δυνατό ρυθμό υπό τον περιορισμό του μέσου εύρους ζώνης των κόμβων που αποτελούν το σύστημα. Στη συνέχεια ακολούθησε η μοντελοποίηση της λειτουργίας των συστημάτων κατανεμημένου διαμοιρασμού μέσα από την οποία προέκυψε η κατάλληλη αρχιτεκτονική ενός τέτοιου συστήματος που εγγυάται τη βέλτιστη εκπλήρωση των παραπάνω χαρακτηριστικών. Η προσφορά της παρούσας διατριβής στην έρευνα του επιστημονικού πεδίου των διομότιμων συστημάτων διαμοιρασμού δεδομένων σε πραγματικό χρόνο συνοψίζεται στα παρακάτω σημεία/συμπεράσματα :
• Αντίθετα με τη μέχρι τώρα πρακτική που εφαρμόζεται στα συστήματα κατανεμημένου διαμοιρασμού, είναι αναγκαία η παράλληλη ανάπτυξη του γράφου διασύνδεσης και του χρονοπρογραμματιστή έτσι ώστε να μπορεί το κάθε υποσύστημα να χρησιμοποιήσει με βέλτιστο τρόπο τα χαρακτηριστικά του άλλου.
• Ο γράφος διασύνδεσης πρέπει να αντικατοπτρίζει τη θέση των κόμβων στο φυσικό υποδίκτυο και να μπορεί να αυτό-οργανώνεται στις δυναμικές αλλαγές του δικτύου ή του πληθυσμού των κόμβων.
• Η λειτουργία του χρονοπρογραμματιστή γίνεται πιο αποτελεσματική όταν διαχωρίζεται σε τρεις διαφορετικούς μηχανισμούς. Στο μηχανισμό δημιουργίας κουπονιών, στο μηχανισμό προ-ενεργής αίτησης πακέτου και στο μηχανισμό απόφασης επόμενου κόμβου προς αποστολή πακέτου.
Τέλος, υλοποιήθηκαν κατανεμημένοι αλγόριθμοι για τη δημιουργία και την αυτό-οργάνωση του γράφου διασύνδεσης καθώς και οι απαραίτητοι αλγόριθμοι για την υλοποίηση του χρονοπρογραμματιστή. Οι αλγόριθμοι αυτοί σχεδιάστηκαν με τέτοιο τρόπο έτσι ώστε να χρησιμοποιούν ένα ελάχιστο ποσοστό του εύρους ζώνης των κόμβων χωρίς να συμβιβάζουν την αποτελεσματικότητα και την ταχύτητα σύγκλισής τους.
Το δεύτερο ζήτημα που μελετήθηκε είναι η βοηθητική χρήση εξυπηρετητών με στόχο την αδιάλειπτη διάθεση απαραίτητων δικτυακών πόρων (εύρος ζώνης) που απαιτούνται από το σύστημα για τον πλήρη και συνεχή διαμοιρασμό του αντικειμένου. Αναλυτικότερα, ο σύγχρονος διαμοιρασμός βίντεο μέσω διομότιμων συστημάτων απαιτεί τη συνεχή ύπαρξη μέσου εύρους ζώνης συμμετεχόντων κόμβων μεγαλύτερο από το ρυθμό αναπαραγωγής του αντικειμένου που διαμοιράζεται. Αντιθέτως, λόγω της δυναμικής συμπεριφοράς των χρηστών και του απρόβλεπτου μέσου όρου εύρους ζώνης που διατίθεται από τους κόμβους οδηγούμαστε συχνά στη μη ομαλή λειτουργία του συστήματος ή/και στο διαμοιρασμό ενός αντικειμένου με μικρό ρυθμό αναπαραγωγής.
Η επίλυση αυτού του προβλήματος απαιτεί την εξασφάλιση του ακριβούς και σε πραγματικό χρόνο υπολογισμού των διαθέσιμων πόρων του συστήματος. Επιπλέον, προϋποθέτει το σχεδιασμό μιας αρχιτεκτονικής που είναι κλιμακούμενη, δηλαδή επιτρέπει την παρακολούθηση συστημάτων στα οποία συμμετέχει πολύ μεγάλος αριθμός χρηστών. Παράλληλα, το προτεινόμενο σύστημα παρακολούθησης και ελέγχου του εύρους ζώνης πρέπει να εισάγει στο σύστημα όσο το δυνατόν μικρότερη κατανάλωση πόρων. Ομοίως, το εύρος ζώνης που συνεισφέρουν οι εξυπηρετητές πρέπει να ελαχιστοποιείται με στόχο την ελαχιστοποίηση του κόστους λειτουργίας. Τέλος, οι συνδέσεις που δημιουργούνται μεταξύ εξυπηρετητών και κόμβων πρέπει να εισάγουν με τη σειρά τους ελάχιστο φορτίο στο δίκτυο του προτεινόμενου συστήματος.
Εκμεταλλευόμενοι, λοιπόν, τις ιδιότητες του χρονοπρογραμματιστή που αναπτύχθηκε είμαστε σε θέση μετρώντας ένα μικρό μόνο υποσύνολο κόμβων να εκτιμήσουμε γρήγορα και με ακρίβεια το συνολικό διαθέσιμο εύρος ζώνης του συστήματος. Επιπλέον, μετρώντας κάποιες παραμέτρους του χρονοπρογραμματιστή ανταλλαγής μπλοκ εκτιμούμε δυναμικά το φορτίο που αυτός εισάγει για διαμοιρασμό ανάλογα με τις επικρατούσες συνθήκες. Ο αριθμός των κόμβων αυτών είναι αρκετά μικρός και ανεξάρτητος από τον αριθμό των συμμετεχόντων κόμβων καθιστώντας το προτεινόμενο σύστημα ικανό για εξαιρετική κλιμάκωση. Με τις μετρήσεις αυτές γίνεται εφικτός ο υπολογισμός του εύρους ζώνης που απαιτείται από τους εξυπηρετητές για την ομαλή λειτουργία του συστήματος διαμοιρασμού. Τέλος, με τη βοήθεια ενός δυναμικά προσαρμόσιμου στο δίκτυο γράφου διασύνδεσης επιτυγχάνεται η μέγιστη εκμετάλλευση του εύρους ζώνης που συνεισφέρουν οι εξυπηρετητές και ο διαμοιρασμός του σε κόμβους με τη μικρότερη δυνατή δικτυακή καθυστέρηση.
Το προτεινόμενο σύστημα αξιολογήθηκε σε κάθε είδους κατάσταση όπως: αυξομειούμενο μέσο εύρος ζώνης, γρήγορες μεταβολές στο μέσο εύρος ζώνης, μέσο εύρος ζώνης μεγαλύτερο και μικρότερο από το ρυθμό αναπαραγωγής. Η αξιολόγηση απέδειξε ότι ο πλήρης διαμοιρασμός του αντικειμένου, η ελαχιστοποίηση του εύρους ζώνης που συνεισφέρουν οι εξυπηρετητές μέσω της ακριβούς εκτίμησης των διαθέσιμων πόρων και η δυνατότητα εκτίμησης μέσω ενός μικρού υποσυνόλου συμμετεχόντων κόμβων είναι εφικτά κάτω από οποιεσδήποτε συνθήκες.
Ο τρίτος στόχος που επιδιώξαμε να εκπληρώσουμε είναι η δημιουργία ενός κατανεμημένου συστήματος αποθήκευσης δεδομένων. Αυτό το σύστημα βασίστηκε στους Κατανεμημένους Πίνακες Κατακερματισμού (ΚΠΚ). Σκοπός αυτού του συστήματος είναι η δημιουργία ενός κατανεμημένου αποθηκευτικού χώρου, αποτελούμενου από πόρους των συμμετεχόντων κόμβων, για την αποθήκευση και ανάκτηση δεδομένων που πρόκειται να διαμοιραστούν. Οι απαιτήσεις ενός τέτοιου συστήματος περιλαμβάνουν την γρήγορη αναζήτηση δεδομένων, τη χρησιμοποίηση του μικρότερου δυνατού ποσοστού εύρος ζώνης για τη δρομολόγηση των αναζητήσεων, τη δυνατότητα εκτέλεσης σύνθετων αναζητήσεων και τη συμμέτοχη των κόμβων στο σύστημα ανάλογα με τους διαθέσιμους πόρους τους. Οι παραπάνω απαιτήσεις είναι αδύνατον να ικανοποιηθούν από έναν μόνο γράφο διασύνδεσης, καθώς προϋποθέτουν ετερόκλητα χαρακτηριστικά από το γράφο. Προκειμένου να είναι εφικτή η γρήγορη δρομολόγηση ο γράφος πρέπει να αντανακλά τη θέση των κόμβων στο φυσικό δίκτυο συνεπώς η εισαγωγή των κόμβων στον γράφο πρέπει επίσης να βασίζεται σε αυτό το χαρακτηριστικό. Η δυνατότητα για σύνθετες αναζητήσεις και η συμμετοχή των κόμβων ανάλογα με τους διαθέσιμους πόρους τους προϋποθέτει την μη ομοιόμορφη κατανομή των δεδομένων στο γράφο καθώς και επίσης και την εισαγωγή των κόμβων σε αυτόν ανάλογα με τους πόρους τους και τα δεδομένα που επιθυμούν να αποθηκεύσουν στο δίκτυο.
Στα πλαίσια αυτής της διδακτορικής διατριβής προτείνεται ένα σύστημα κατανεμημένης αποθήκευσης το οποίο αποτελείται από δύο συνδεόμενους γράφους διασύνδεσης και μπορεί να ικανοποιήσει τις απαιτήσεις που έχουν τεθεί. Αυτοί οι δύο γράφοι είναι:
• Ο γράφος διασύνδεσης και δρομολόγησης ο οποίος είναι υπεύθυνος για τη δρομολόγηση των αιτήσεων αναζήτησης. Οι κόμβοι εισέρχονται σε αυτόν ανάλογα με τη θέση τους στο φυσικό δίκτυο. Η παραπάνω συνθήκη συντελεί στην ταχύτατη δρομολόγηση των αιτήσεων αναζήτησης και τη χρησιμοποίηση ελάχιστου εύρους ζώνης για την εκτέλεσή τους. Για τη δημιουργία αυτού του γράφου αναπτύχτηκαν/σχεδιάστηκαν δύο κατανεμημένοι αλγόριθμοι. Ο πρώτος είναι υπεύθυνος για την εισαγωγή ενός κόμβου στο γράφο ανάλογα με τη θέση του στο φυσικό δίκτυο. Ο δεύτερος είναι υπεύθυνος για τη βελτιστοποίηση και προσαρμοστικότητα του γράφου στις δυναμικές αλλαγές των ιδιοτήτων του φυσικού δικτύου ή του πληθυσμού των συμμετεχόντων κόμβων.
• Ο γράφος αποθήκευσης δεδομένων. Αυτός ο γράφος είναι υπεύθυνος για την αποθήκευση των δεδομένων στους κόμβους του συστήματος με τέτοιο τρόπο ώστε να είναι δυνατή η σύνθετη αναζήτησή τους καθώς επίσης και η αποθήκευσή τους ανάλογα με τους διαθέσιμους πόρους κάθε κόμβου.
Η αξιολόγηση του συστήματος αυτού απέδειξε ότι ο διαχωρισμός της διαδικασίας δρομολόγησης από τη διαδικασία αποθήκευσης δεδομένων με την δημιουργία δύο ξεχωριστών γράφων διασύνδεσης εξασφαλίζει την εκπλήρωση όλων των απαιτήσεων ενός τέτοιου συστήματος.
|