Commits

Konstantinos Aravanis committed f8714f1

Maybe Final

Comments (0)

Files changed (2)

thesis_summary.pdf

Binary file modified.

thesis_summary.tex

 
 Το \en picoPnP \el πρόκειται για ένα πρωτόκολλο, το οποίο κατόπιν μελέτης και έρευνας πάνω στα προβλήματα δικτύωσης των ασύρματων κόμβων αισθητήρων και ενεργοποιητών, και μελετώντας τις μέχρι τώρα υλοποιήσεις, προτείνει έναν εύκολο τρόπο δημιουργίας εφαρμογών. Αυτό που προσφέρει είναι μία αρχιτεκτονική που παρέχει τις βασικές διαδικασίες, δηλαδή αυτές της σύνδεσης των κόμβων, της οργάνωσης του δικτύου, καθώς και την παροχής εργαλείων για την διαχείριση του, προσφέροντας ταυτόχρονα την ευελιξία στη συγγραφή απλών προγραμμάτων για τους κόμβους του δικτύου.
 
-Η συμβολή της παρούσας διπλωματικής είναι η βελτίωση των παραπάνω διαδικασιών του πρωτοκόλλου και η διόρθωση κάποιων προβλημάτων με στόχο την καλύτερη θωράκιση του. 
+Η συμβολή της παρούσας διπλωματικής είναι η βελτίωση των παραπάνω διαδικασιών του πρωτοκόλλου και η διόρθωση κάποιων προβλημάτων με στόχο την καλύτερη θωράκιση αυτού. 
 
-To πρωτόκολλο αυτό πρόκειται για μία παραλλαγή των βασικών ιδεών του \en UPnP \el προσαρμοσμένη έτσι ώστε να λειτουργεί λαμβάνοντας υπόψη τις περιορισμένες υπολογιστικές δυνατότητες αλλά και τα μικρά αποθέματα ενέργειας των συσκευών που απαρτίζουν ένα \en WSAN\el. Για αυτό μάλιστα γίνεται χρήση και του πρωτοκόλλου $802.15.4$ για την ασύρματη διασύνδεση.
+Το πρωτόκολλο αυτό πρόκειται για μία παραλλαγή των βασικών ιδεών του \en UPnP \el προσαρμοσμένη έτσι ώστε να λειτουργεί λαμβάνοντας υπόψη τις περιορισμένες υπολογιστικές δυνατότητες αλλά και τα μικρά αποθέματα ενέργειας των συσκευών που απαρτίζουν ένα \en WSAN\el. Για αυτό μάλιστα γίνεται χρήση και του πρωτοκόλλου $802.15.4$ για την ασύρματη διασύνδεση.
 
-Για το σκποπό αυτό της ανάπτυξης του πρωτοκόλλου χρησιμοποιήθηκαν οι σσυσκευές των \en Sun SPOT \el των \en Sun Labs\el.
+Για το σκοπό αυτό της ανάπτυξης του πρωτοκόλλου χρησιμοποιήθηκαν οι συσκευές \en Sun SPOT \el των \en Sun Labs\el.
 
 \section{Ελεγκτές και συσκευές}
 
-Το \en picoPnP \el αποτελείται από τρία είδη κόμβων, τους αισθητήρες, τους ενεργοποιητές και του ελεγκτές. Οι αισθητήρες και οι ενεργοποιητές αναφέρονται και ως συσκευές. Οι ελεγκτές (\en basestations\el) αποτελούν τους κόμβους εκείνους που είναι υπεύθυνοι για τον καθορισμό της λειτουργίας του δικτύου, δηλαδή της συσχέτισης των διαφόρων αισθητήρων με τους κατάλληλους ενεργοποιητές, ώστε να επηρεάζουν κατάλληλα το περιβάλλον τους. Θα πρέπει να τονιστεί ότι ο ρόλος του ελεγκτή είναι αποκλειστικά αυτός. Κάθε συσκευή περιγράφεται από τα βασικά της χαρακτηριστικά και τις υπηρεσίες που μπορεί να προσφέρει.
+Το \en picoPnP \el αποτελείται από τρία είδη κόμβων, τους αισθητήρες, τους ενεργοποιητές και του ελεγκτές. Οι αισθητήρες και οι ενεργοποιητές αναφέρονται και ως συσκευές. Οι ελεγκτές (\en basestations\el) αποτελούν τους κόμβους εκείνους που είναι υπεύθυνοι για τον καθορισμό της λειτουργίας του δικτύου, δηλαδή της συσχέτισης των διαφόρων αισθητήρων με τους κατάλληλους ενεργοποιητές, ώστε να επηρεάζουν κατάλληλα το περιβάλλον τους. Θα πρέπει να τονιστεί ότι ο ρόλος του ελεγκτή είναι αποκλειστικά αυτός. Κάθε συσκευή περιγράφεται από τα βασικά της χαρακτηριστικά και τις υπηρεσίες που μπορεί να προσφέρει. Συσκευές και ελεγκτές διασυνδέονται με μία αυτοματοποιημένη αρχιτεκτονική.
 
 
 \subsection{Υλοποίηση συσκευών και υπηρεσιών}\label{devices-services}
 
 Για την δημιουργία ενός αισθητήρα ή ενός ενεργοποιητή διατίθενται δύο \en abstract \el κλάσεις, μία για κάθε τύπο συσκευής (ενεργοποιητής ή αισθητήρας) που επεκτεινόμενες από τον προγραμματιστή με τρόπο προκαθορισμένο δημιουργούνται οι αντίστοιχες συσκευές. Ο προγραμματιστής καλείται να κληρονομήσει αυτές τις κλάσεις και να δηλώσει την βασική περιγραφή της συσκευής. Δηλαδή το όνομα της, το πλήθος των \en hops \el στο οποίο η συσκευή θα μπορεί να επικοινωνεί στο δίκτυο, τον χρόνο ζωής της, τη στάθμη της μπαταρίας της και τη διεύθυνσή της.
 
-Όσον αφορά τις υπηρεσίες, η διαδικασία είναι λίγο πιο περίπλοκη αλλά η ίδια σε γενικές γραμμές. Και εδώ υπάρχουν δύο \en abstract \el κλάσεις πάλι ανάλογα με τον τύπο της συσκευής υλοποιεί την αντίστοιχη υπηρεσία αίσθησης ή ενέργειας. Όταν επεκτείνει αυτές τις κλάσεις ο προγραμματιστής για να υλοποιήσει τις υπηρεσίες που θέλει δηλώνει όλες εκείνες τις απαραίτητες πληροφορίες για μία υπηρεσία. Δηλαδή το αναγνωριστικό της (\en ID\el), το όνομα της, κάποιες πληροφορίες που την περιγράφουν και τον πίνακα παραμέτρων της.
+Όσον αφορά τις υπηρεσίες, η διαδικασία είναι λίγο πιο περίπλοκη αλλά η ίδια σε γενικές γραμμές. Και εδώ υπάρχουν δύο \en abstract \el κλάσεις πάλι ανάλογα με τον τύπο της συσκευής υλοποιεί την αντίστοιχη υπηρεσία αίσθησης ή ενέργειας. Όταν επεκτείνει αυτές τις κλάσεις ο προγραμματιστής, για να υλοποιήσει τις υπηρεσίες που θέλει, δηλώνει όλες εκείνες τις απαραίτητες πληροφορίες για μία υπηρεσία. Δηλαδή το αναγνωριστικό της (\en ID\el), το όνομα της, κάποιες πληροφορίες που την περιγράφουν και τον πίνακα παραμέτρων της.
 
 Τα παραπάνω όμως δεν αρκούν στην περίπτωση των υπηρεσιών. Όταν η προς υλοποίηση υπηρεσία είναι αυτή ενός αισθητήρα μέσα σε αυτή θα πρέπει να υλοποιηθεί και μία συνάρτηση η οποία θα εκκινεί την υπηρεσία και μία που θα είναι υπεύθυνη για την ενημέρωση των ενεργοποιητών όταν ένα συμβάν διαπιστωθεί. Αντίστοιχα ο προγραμματιστής θα πρέπει να υλοποιήσει και για τις υπηρεσίες του ενεργοποιητή μία συνάρτηση που θα υλοποιεί το κομμάτι του κώδικα εκείνου που θα είναι υπεύθυνο για την εκτέλεση κάποιας ενέργειας από τον ενεργοποιητή, ανάλογα με την παράμετρο που του έχει δοθεί ως όρισμα.
 
-Αφού ορίσει ο προγραμματιστής τις συσκευές και τις υπηρεσίες τους και προγραμματίσει τα \en Sun SPOT \el το δίκτυο είναι έτοιμο να λειτουργήσει. 
+Αφού ορίσει ο προγραμματιστής τις συσκευές και τις υπηρεσίες τους και προγραμματίσει τα \en Sun SPOT \el το δίκτυο είναι έτοιμο να λειτουργήσει χρησιμοποιώντας το \en picoPnP\el. 
 
 \section{Διαχειριστές}
-Το πρωτόκολλο \en picoPnp \el χωρίζεται σε επιμέρους διαχειριστές ο καθένας εκ των οποίων αναλαμβάνει ένα κομμάτι της λειτουργίας του δικτίου.
+Το πρωτόκολλο \en picoPnP \el χωρίζεται σε επιμέρους διαχειριστές ο καθένας εκ των οποίων αναλαμβάνει ένα κομμάτι της λειτουργίας της δικτύωσης.
 
 
 \subsection{Διαχειριστής Ανακάλυψης}
 
 \subsection{Διαχειριστής Περιγραφής} 
 
-Το επόμενο βήμα μετά την ανακάλυψη των συσκευών είναι οι ελεγκτές να ζητήσουν από τις συσκευές μία πιο εκτενή περιγραφή τους και συγκεκριμένα την περιγραφή των διαθέσιμων υπηρεσιών τους όπως αναφέρθήκαμε και στην ενότητα \ref{devices-services}.
+Το επόμενο βήμα μετά την ανακάλυψη των συσκευών είναι οι ελεγκτές να ζητήσουν από τις συσκευές μία πιο εκτενή περιγραφή τους και συγκεκριμένα την περιγραφή των διαθέσιμων υπηρεσιών τους όπως αναφερθήκαμε και στην ενότητα \ref{devices-services}.
 
 
 \subsection{Διαχειριστής Συσχετίσεων}
 
-Ο χρήστης τώρα μέσω του ελεγκτή που έχει στη διάθεση του γνωρίζει όλες τις απαραίτητες πληροφορίες για τις συσκευές του δικτύου.
+Ο χρήστης τώρα μέσω του ελεγκτή που έχει στη διάθεση του, γνωρίζει όλες τις απαραίτητες πληροφορίες για τις συσκευές του δικτύου.
 
-Με τον Διαχειριστή Συσχετίσεων παρέχονται στο χρήστη τα κατάλληλα εργαλεία να επιτελέσει τη σημαντικότερη λειτουργία για την οποία το πρωτόκολλο δημιουργήθηκε. Η λειτουργία αυτή είναι η συσχέτιση των υπηρεσιών ενός αισθητήρα με τις υπηρεσίες ενός ενεργοποιητή με στόχο τον έλεγχο του περιβάλλοντος και την κατάλληλη δράση πάνω σε αυτό.
+Μέσα από την γραφική διεπαφή του ελεγκτή και την χρήση του Διαχειριστή Συσχετίσεων δίνεται εύκολα η δυνατότητα στον χρήστη να δημιουργεί συσχετίσεις τις οποίες αποστέλλει μέσω του αυτού στις κατάλληλες συσκευές με στόχο την εγκαθίδρυση μίας μεταξύ τους συνεργασίας.
 
-Μέσα από αυτήν την γραφική διεπαφή δίνεται η δυνατότητα στον χρήστη να δημιουργεί συσχετίσεις τις οποίες αποστέλλει μέσω του ελεγκτή στις κατάλληλες συσκευές με στόχο την εγκαθίδρυση μίας μεταξύ τους συνεργασίας.
+Επίσης ο χρήστης μπορεί να ανανεώνει τις παραμέτρους της όποιας υπάρχουσας συσχέτισης, να ανακτά τις συσχετίσεις μιας συσκευής στους ελεγκτές και να διαγράφει την όποια ανεπιθύμητη συσχέτιση.
 
-Επίσης δίνεται η δυνατότητα στο χρήστη να ανανέωση της παραμέτρων της όποιας υπάρχουσας συσχέτισης, να ανάκτηση της συσχετίσης μιας συσκευής στους ελεγκτές και να διαγράψει την όποια ανεπιθύμιτη συσχέτιση.
-
-Ακόμα οι συσχετίσεις που δημιουργούνται μεταξύ των αισθητήρων και των ενεργοποιητών αποθηκεύονται από τις συσκευές έτσι ώστε σε περίπτωση επανεκκίνησης τους να συνεχίσουν από την προηγούμενη κατάσταση τους.
+Ακόμα οι συσχετίσεις που δημιουργούνται μεταξύ των αισθητήρων και των ενεργοποιητών αποθηκεύονται από τις συσκευές έτσι ώστε σε περίπτωση επανεκκίνησής τους να συνεχίσουν από την προηγούμενη κατάσταση τους.
 
 
 \subsection{Διαχειριστής Γεγονότων}
 
-Όταν ένας αισθητήρας αντιλαμβάνεται ένα συμβάν μέσω κάποιας υπηρεσίας του, αναζητά αν στο πίνακα συσχετίσεων του έχει συσχετιστεί αυτή η υπηρεσία με την υπηρεσία κάποιου ενεργοποιητή. Αν διαπιστωθεί κάτι τέτοιο τότε ενημερώνει τον ενδιαφερόμενο ενεργοποιητή μέσω ενός κατάλληλου μηνύματος. Το μήνυμα αυτό είναι διαμορφομένο έτσι ώστε να εξασφαλίζει την εγκυρότητα του και το χρόνο αντίληψης του γεγονότος.
+Όταν ένας αισθητήρας αντιλαμβάνεται ένα συμβάν μέσω κάποιας υπηρεσίας του, αναζητά αν στο πίνακα συσχετίσεων του έχει συσχετιστεί αυτή η υπηρεσία με την υπηρεσία κάποιου ενεργοποιητή. Αν διαπιστωθεί κάτι τέτοιο τότε ενημερώνει τον ενδιαφερόμενο ενεργοποιητή μέσω ενός κατάλληλου μηνύματος. Το μήνυμα αυτό είναι διαμορφωμένο έτσι ώστε να εξασφαλίζει την εγκυρότητα του και το χρόνο διαπίστωσης του γεγονότος.
 
-Με τη σειρά του ο ενεργοποιητής όταν το λάβει ελέγχει το μήνυμα αυτό με βάση και τις δικές του συσχετίσης και αν κριθεί ορθό τότε προβαίνει στην εκτέλεση της κατάλληλης ενέργειας.
+Με τη σειρά του ο ενεργοποιητής όταν το λάβει ελέγχει το μήνυμα αυτό με βάση και τις δικές του συσχετίσεις και αν κριθεί ορθό τότε προβαίνει στην εκτέλεση της κατάλληλης ενέργειας.
 
-Όσο ευχάριστη για τον χρήστη μπορεί να είναι η αυτοματοποίηση της εκτέλεσης πολλών ενεργειών, πολλές φορές ο ίδιος θέλει να παρεμβαίνει και προσωρινά να αλλάζει το περιβάλλον με την χρήση άλλων κανόνων. Για το λόγο αυτόν κρίθηκε απαραίτητη η δυνατότητα δημιουργίας μίας επιπλέον λειτουργίας. Η λειτουργία αυτή είναι η δυνατότητα του ελεγκτή να μπορεί να ελέγχει άμεσα τους ενεργοποιητές του δικτύου στέλνοντας τους γεγονότα εκτέλεσης συγκεκριμένων λειτουργιών.
+Ακόμα μέσα από τον ίδιο Διαχειριστή δίνεται η δυνατότητα στον ελεγκτή να μπορεί να ελέγχει άμεσα τους ενεργοποιητές του δικτύου στέλνοντας τους γεγονότα εκτέλεσης συγκεκριμένων λειτουργιών. Αυτό γίνεται σε περίπτωση που ο χρήστης θέλει να παρεμβαίνει στη λειτουργία του δικτύου με τρόπο διαφορετικό από τον αυτοματοποιημένο.
 
 
-\subsection{ιαχειριστής Καταγραφών}
+\subsection{Διαχειριστής Καταγραφών}
 
-Σε δίκτυα όπως αυτά των \en WSAN\el, είναι φανερή η ανάγκη για ένα σύστημα καταγραφής, ανάλυσης και παρουσίασης της πορείας των διαφόρων εργασιών που λαμβάνουν χώρο στο δίκτυο. Μέσα από την ανάλυση των δεδομένων αυτών ο προγραμματιστής θα είναι σε θέση να βελτιώσει την δομή και την ανάπτυξη του πρωτοκόλλου που μελετάται, εντοπίζοντας τις όποιες αδυναμίες του. Επίσης με την σειρά του ο χρήστης, που αποτελεί και τον κύριο λόγο δημιουργίας αυτού του \emph{Διαχειριστή Καταγραφών}, θα μπορεί να ελέγχει περιοδικά το δίκτυο για την σωστή συνεργασία των διαφόρων συσκευών βελτιώνοντας την δόμηση αυτού. 
+Σε δίκτυα όπως αυτά των \en WSAN\el, είναι φανερή η ανάγκη για ένα σύστημα καταγραφής, ανάλυσης και παρουσίασης της πορείας των διαφόρων εργασιών που λαμβάνουν χώρο στο δίκτυο. Μέσα από την ανάλυση των δεδομένων αυτών ο προγραμματιστής θα είναι σε θέση να βελτιώσει την δομή και την ανάπτυξη του πρωτοκόλλου που μελετάται, εντοπίζοντας τις όποιες αδυναμίες του. Επίσης με την σειρά του ο χρήστης, που αποτελεί και τον κύριο λόγο δημιουργίας αυτού του Διαχειριστή Καταγραφών, θα μπορεί να ελέγχει περιοδικά το δίκτυο για την σωστή συνεργασία των διαφόρων συσκευών βελτιώνοντας την δόμηση αυτού. 
 
-Στο κεφάλαιο αυτό μελετάμε την δημιουργία ενός \emph{Διαχειριστή Καταγραφών} ο οποίος θα είναι σε θέση να καταγράφει τα διάφορα γεγονότα που αισθάνονται οι αισθητήρες και με βάση τα οποία δρουν οι ενεργοποιητές στο δίκτυο καθώς και τα όποια λάθη μπορεί να συμβαίνουν μεταξύ των συσκευών και των ελεγκτών στις διάφορες προσπάθειες επικοινωνίας τους. Επίσης από τις συσκευές καταγράφεται περιοδικά και το επίπεδο της μπαταρίας τους. 
+Τα δεδομένα που καταγράφονται μέσα από τον διαχειριστή αυτόν είναι τα γεγονότα που συμβαίνουν, τα σφάλματα επικοινωνίας, και τα επίπεδα μπαταρίας των συσκευών. Αυτά αποθηκεύονται τοπικά στη \en flash \el της κάθε συσκευής, ενώ ο χρήστης μπορεί να επιλέξει ποια από τα παραπάνω θα ήθελε να καταγράφονται.
 
-- Καταγραφή ∆εδοµένων
--- Καταγραφή γεγονότων
--- Καταγραφή σφαλµάτων επικοινωνίας
--- Καταγραφή στάθµης µπαταρίας
--- Επιλογή των δεδοµένων προς καταγραφή
-- Ανάκτηση καταγραφών
-- ∆ιαγραφή καταγραφών
-- Αποθήκευση καταγραφών
+Επίσης μέσα από τον ελεγκτή δίνεται η δυνατότητα ανάκτησης των καταγραφών αυτών και παρουσίασης τους καθώς επίσης και η δυνατότητα διαγραφής τους.
 
 
-\subsection{ιαχειριστής \en Sun SPOT \el}
+\subsection{Διαχειριστής \en Sun SPOT \el}
 
-Μερικοί από τους λόγους για τον επαναπρογραμματισμό των συσκευών ενός ασύρματου δικτύου αισθητήρων και ενεργοποιητών είναι η διόρθωση λαθών και κενών ασφαλείας, η τροποποίηση των καθηκόντων ορισμένων κόμβων ή και ολόκληρου του δικτύου και η επέκταση της λειτουργικότητάς και της χρησιμότητας του δικτύου. Κατά την ανάπτυξη των εφαρμογών δεν είναι δυνατή η πλήρης γνώση του περιβάλλοντος με αποτέλεσμα η πρόβλεψη ολόκληρου του συνόλου των ενεργειών πριν τον επαναπρογραμματισμό να είναι αδύνατη. 
+Το τελευταίο κομμάτι που απαρτίζει το \en picoPnP \el είναι ο Διαχειριστής των \en Sun SPOT\el. Πρόκειται για το μέσο εκείνο το οποίου δίνει την δυνατότητα στο χρήστη να αναζητά τα διαθέσιμα \en Sun SPOT \el στο χώρο με στόχο τον προγραμματισμό και αποπρογραμματισμό τους και την επανεκκίνησή τους σε περίπτωση κάποιου σφάλματος.
 
-Συνήθως για τον επαναπρογραμματισμό των κόμβων ενός \en WSAN \el, ο διαχειριστής του δικτύου πρέπει να συνδέσει ενσύρματα το κάθε κόμβο ξεχωριστά με έναν υπολογιστή που διαθέτει το καινούργιο εκτελέσιμο. Με την χρήση κατάλληλων εντολών το εκτελέσιμο μεταφέρεται από τον υπολογιστή στον κόμβο και αντικαθίσταται η παλιά εφαρμογή από την καινούργια. Η παραπάνω διαδικασία δεν είναι και τόσο εύχρηστη καθώς το δίκτυο μας το πιθανότερο να αποτελείται από εκατοντάδες ή και χιλιάδες κόμβους και μία τέτοια διαδικασία χρονικά έχει τεράστιο κόστος. Γίνεται λοιπόν φανερή η ανάγκη της ανάπτυξης ενός πιο αυτοματοποιημένου μηχανισμού. Άλλος ένας λόγος που τονίζει το πρόβλημα αυτό, είναι ότι κατά την φάση της ανάπτυξης των εφαρμογών και της αποσφαλμάτωσης τους ο προγραμματιστής θα χρειαστεί να εφαρμόσει πολλές φορές τον καινούργιο κώδικα του στους κόμβους ώστε να ελέγχει την ορθότητα των διαφόρων λειτουργιών που αναπτύσσει. 
-
-Με άλλα λόγια η χρήση καλωδίων για την μεταφορά των νέων εκτελέσιμων είναι αδύνατη σε δίκτυα τέτοιου μεγέθους. Η δημιουργία ασύρματων δικτύων αισθητήρων και ενεργοποιητών με καλώδια για τον επαναπρογραμματισμό τους είναι κάπως ειρωνική. Επομένως η μεταφορά των εκτελέσιμων θα πρέπει να γίνεται ασύρματα. Ένας ακόμα λόγος για τον ασύρματο επαναπρογραμματισμό είναι ότι πολλές φορές είναι δύσκολη ή και αδύνατη η φυσική επαφή με τον ανθρώπου. Φανταστείτε για παράδειγμα αισθητήρες που βρίσκονται στο εσωτερικό ενός ηφαίστειου για την καταμέτρηση του όγκου των δηλητηριωδών αερίων που απελευθερώνονται.
-- Αναζήτηση των διαθέσιµων Sun SPOT στο δίκτυο
-- Ασύρµατος προγραµµατισµός και αποπρογραµµατισµός των SunSPOT
-- Αποµακρυσµένη επανεκκίνηση των Sun SPOT
-- Αναβόσβηµα των Sun SPOT για εντοπισµό τους στο χώρο
-- Μετονοµασία των Sun SPOT
-
+Μερικοί από τους λόγους για τον επαναπρογραμματισμό των συσκευών ενός ασύρματου δικτύου αισθητήρων και ενεργοποιητών είναι η διόρθωση λαθών και κενών ασφαλείας, η τροποποίηση των καθηκόντων ορισμένων κόμβων ή και ολόκληρου του δικτύου και η επέκταση της λειτουργικότητάς και της χρησιμότητας του δικτύου. Κατά την ανάπτυξη των εφαρμογών δεν είναι δυνατή η πλήρης γνώση του περιβάλλοντος με αποτέλεσμα η πρόβλεψη ολόκληρου του συνόλου των ενεργειών πριν τον επαναπρογραμματισμό να είναι αδύνατη.
 \end{document}