Commits

Konstantinos Aravanis committed 54b74d0

Draft 2

Comments (0)

Files changed (2)

thesis_summary.pdf

Binary file modified.

thesis_summary.tex

 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-Η παρούσα διπλωματική εργασία μελετά τα προβλήματα των Ασυρμάτων Δικτύων Αισθητήρων και Ενεργοποιητών (\en WSAN - Wireless Sensorn and Actuator Networks \el). 
-
-Ένα από τα μεγαλύτερα προβλήματα των \en WSAN \el είναι το κομμάτι της υλοποίησης εφαρμογών. Κάθε φορά οι τεχνικές που χρησιμοποιούνται για την υλοποίηση εφαρμογών είναι διαφορετικές ανάλογα με τον εξοπλισμό που χρησιμοποιείται και τη λειτουργία που καλούνται να εξυπηρετήσουν. Μέχρι σήμερα δεν έχει δοθεί μία ικανοποιητική πρόταση που να προσφέρει έναν ενιαίο τρόπο υλοποίησης εφαρμογών, ο οποίος θα είναι απλός και παράλληλα αρκετά ευέλικτος. 
+\section{Εισαγωγή στο \en picoPnP \en}
+Ένα από τα μεγαλύτερα προβλήματα των Ασυρμάτων Δικτύων Αισθητήρων και Ενεργοποιητών (\en WSAN - Wireless Sensors and Actuators Networks\el) είναι το κομμάτι της υλοποίησης εφαρμογών. Κάθε φορά οι τεχνικές που χρησιμοποιούνται για την υλοποίηση εφαρμογών είναι διαφορετικές ανάλογα με τον εξοπλισμό που χρησιμοποιείται και τη λειτουργία που καλούνται να εξυπηρετήσουν. Μέχρι σήμερα δεν έχει δοθεί μία ικανοποιητική πρόταση που να προσφέρει έναν ενιαίο τρόπο υλοποίησης εφαρμογών, ο οποίος θα είναι απλός και παράλληλα αρκετά ευέλικτος. 
 
 Το \en picoPnP \el πρόκειται για ένα πρωτόκολλο, το οποίο κατόπιν μελέτης και έρευνας πάνω στα προβλήματα δικτύωσης των ασύρματων κόμβων αισθητήρων και ενεργοποιητών, και μελετώντας τις μέχρι τώρα υλοποιήσεις, προτείνει έναν εύκολο τρόπο δημιουργίας εφαρμογών. Αυτό που προσφέρει είναι μία αρχιτεκτονική που παρέχει τις βασικές διαδικασίες, δηλαδή αυτές της σύνδεσης των κόμβων, της οργάνωσης του δικτύου, καθώς και την παροχής εργαλείων για την διαχείριση του, προσφέροντας ταυτόχρονα την ευελιξία στη συγγραφή απλών προγραμμάτων για τους κόμβους του δικτύου.
 
-Η συμβολή της παρούσας διπλωματικής είναι η βελτίωση των παραπάνω διαδικασιών του πρωτοκόλλου και η διόρθωση κάποιων προβλημάτων με στόχο την καλύτερη θωράκιση του. Επίσης αναπτύχθηκε ένα σύστημα απομακρυσμένου ελέγχου και προγραμματισμού των συσκευών με στόχο την ευκολότερη διαχείριση μεγάλων δικτύων. Τέλος υλοποιήθηκε και ένα σύστημα καταγραφής ιστορικών για τον εντοπισμό τυχόν δυσλειτουργιών του δικτύου και την παρακολούθηση της πορείας των εργασιών. Το τελευταίο αυτό σύστημα, με μικρές επεκτάσεις, θα μπορεί μελλοντικά να μας παρέχει πληροφορίες σχετικά με την ενεργειακή απόδοση του δικτύου αλλά και την τοπολογία του.
+Η συμβολή της παρούσας διπλωματικής είναι η βελτίωση των παραπάνω διαδικασιών του πρωτοκόλλου και η διόρθωση κάποιων προβλημάτων με στόχο την καλύτερη θωράκιση του. 
 
-UPnP
+To πρωτόκολλο αυτό πρόκειται για μία παραλλαγή των βασικών ιδεών του \en UPnP \el προσαρμοσμένη έτσι ώστε να λειτουργεί λαμβάνοντας υπόψη τις περιορισμένες υπολογιστικές δυνατότητες αλλά και τα μικρά αποθέματα ενέργειας των συσκευών που απαρτίζουν ένα \en WSAN\el.
 
-Ελεγκτής - Συσκευή
 
-- Ανακάλυψη συσκευών
-- Περιγραφή συσκευών 
-- Συσχέτιση συσκευών
-- Γεγονότα και ενέργειες 
+\section{Ελεγκτές και συσκευές}
 
-Υλοποίηση συσκευών και υπηρεσιών
+Το \en picoPnP \el αποτελείται από τρία είδη κόμβων, τους αισθητήρες, τους ενεργοποιητές και του ελεγκτές. Οι αισθητήρες και οι ενεργοποιητές αναφέρονται και ως συσκευές. Οι ελεγκτές αποτελούν τους κόμβους εκείνους που είναι υπεύθυνοι για τον καθορισμό της λειτουργίας του δικτύου, δηλαδή της συσχέτισης των διαφόρων αισθητήρων με τους κατάλληλους ενεργοποιητές, ώστε να επηρεάζουν κατάλληλα το περιβάλλον τους. Θα πρέπει να τονιστεί ότι ο ρόλος του ελεγκτή είναι αποκλειστικά αυτός. Κάθε συσκευή περιγράφεται από τα βασικά της χαρακτηριστικά και τις υπηρεσίες που μπορεί να προσφέρει.
 
-Λόγοι ασύρµατου επαναπρογραµµατισµού 
 
-∆ιαχειριστής Sun SPOT
-- Αναζήτηση των διαθέσιµων Sun SPOT στο δίκτυο
-- Ασύρµατος προγραµµατισµός και αποπρογραµµατισµός των SunSPOT
-- Αποµακρυσµένη επανεκκίνηση των Sun SPOT
-- Αναβόσβηµα των Sun SPOT για εντοπισµό τους στο χώρο
-- Μετονοµασία των Sun SPOT
+\subsection{Υλοποίηση συσκευών και υπηρεσιών}
 
-∆ιαχειριστής Καταγραφών
+Για την δημιουργία ενός αισθητήρα ή ενός ενεργοποιητή διατίθενται δύο \en\ttfamily abstract \rmfamily\el κλάσεις \en\ttfamily Sensor \rmfamily\el και \en\ttfamily Actor \rmfamily\el αντίστοιχα, που επεκτεινόμενες από τον προγραμματιστή δημιουργούνται οι αντίστοιχες συσκευές. Ο προγραμματιστής καλείται να κληρονομήσει αυτές τις κλάσεις και να δηλώσει την βασική περιγραφή της συσκευής. Δηλαδή το όνομα της, το πλήθος των \en hops \el στο οποίο η συσκευή θα μπορεί να επικοινωνεί στο δίκτυο και τον χρόνο ζωής της. Η στάθμη της μπαταρίας της και η διεύθυνσή της παρέχονται από της βιβλιοθήκες του \en Sun SPOT \el ενώ ο τύπος της (Αισθητήρας ή Ενεργοποιητής) καθορίζεται από την κλάση που κληρονομείται (\en\ttfamily Sensor \rmfamily\el ή \en\ttfamily Actor\rmfamily\el).
+
+Όσον αφορά τις υπηρεσίες, η διαδικασία είναι λίγο πιο περίπλοκη αλλά η ίδια σε γενικές γραμμές. Και εδώ υπάρχουν δύο \en\ttfamily abstract \rmfamily\el κλάσεις, η κλάση \en\ttfamily Sense \rmfamily\el που υλοποιεί μία υπηρεσία αισθητήρα και η κλάση \en\ttfamily Act \rmfamily\el που υλοποιεί μία υπηρεσία ενεργοποιητή. Όταν επεκτείνει αυτές τις κλάσεις ο προγραμματιστής για να υλοποιήσει τις υπηρεσίες που θέλει δηλώνει όλες εκείνες τις απαραίτητες πληροφορίες για μία υπηρεσία. Δηλαδή το αναγνωριστικό της (\en ID\el), το όνομα της, κάποιες πληροφορίες που την περιγράφουν και τον πίνακα παραμέτρων της.
+
+Τα παραπάνω όμως δεν αρκούν στην περίπτωση των υπηρεσιών. Όταν η προς υλοποίηση υπηρεσία είναι αυτή ενός αισθητήρα μέσα σε αυτή θα πρέπει να υλοποιηθεί και μία συνάρτηση \en\ttfamily start() \rmfamily\el η οποία θα εκκινεί την υπηρεσία και μία \en\ttfamily notifyActors(int param) \rmfamily\el που θα είναι υπεύθυνη για την ενημέρωση των ενεργοποιητών όταν ένα συμβάν διαπιστωθεί. Και οι δύο αυτές συναρτήσεις είναι \en\ttfamily abstract \rmfamily\el συναρτήσεις της \en\ttfamily abstract \rmfamily\el κλάσης \en\ttfamily Sense\rmfamily\el. Αντίστοιχα ο προγραμματιστής θα πρέπει να υλοποιήσει και για τις υπηρεσίες του ενεργοποιητή μία συνάρτηση, την \en\ttfamily act(int param) \rmfamily\el η οποία θα κληρονομείται από την κλάση \en\ttfamily Act \rmfamily\el και θα υλοποιεί το κομμάτι του κώδικα εκείνου που θα είναι υπεύθυνο για την εκτέλεση κάποιας ενέργειας από τον ενεργοποιητή, ανάλογα με την παράμετρο που του έχει δοθεί ως όρισμα.
+
+Αφού ορίσει ο προγραμματιστής τις συσκευές και τις υπηρεσίες τους και προγραμματίσει τα \en Sun SPOT \el το δίκτυο είναι έτοιμο να λειτουργήσει. 
+
+
+\section{Διαχειριστής Ανακάλυψης}
+
+Η ανακάλυψη των συσκευών πρόκειται για το πρώτο βήμα του \en picoPnP\el. Πρόκειται για τη φάση αυτήν κατά την οποία:
+\begin{enumerate}
+\item Όταν μία συσκευή ενεργοποιείται, ανακοινώνει την παρουσία της στους ελεγκτές που βρίσκονται γύρω της.
+
+\item Όταν ένας ελεγκτής ενεργοποιείται, αναζητά τις συσκευές που βρίσκονται γύρω του και ζητά να μάθει περισσότερα για αυτές.
+
+\item Οι ελεγκτές είναι σε θέση να βρίσκονται σε διαρκή ενημέρωση για την κατάσταση και τη διαθεσιμότητα των συσκευών στο δίκτυο, το ίδιο και οι συσκευές για τους ελεγκτές.
+
+\item Όταν μία συσκευή ή ελεγκτής απενεργοποιείται, εξασφαλίζεται η ομαλή αποχώρηση του από το δίκτυο.
+\end{enumerate}
+
+
+\section{Διαχειριστής Περιγραφής} 
+
+Το επόμενο βήμα μετά την ανακάλυψη των συσκευών είναι οι ελεγκτές να ζητήσουν από τις συσκευές μία πιο εκτενή περιγραφή τους και συγκεκριμένα την περιγραφή των διαθέσιμων υπηρεσιών τους.
+
+
+\section{Διαχειριστής Συσχετίσεων}
+Τώρα το \en picoPnP \el είναι σε θέση να δώσει την δυνατότητα στον χρήστη παρέχοντας του τα κατάλληλα εργαλεία να επιτελέσει τη σημαντικότερη λειτουργία για την οποία αυτό δημιουργήθηκε. Η λειτουργία αυτή είναι η συσχέτιση των υπηρεσιών ενός αισθητήρα με τις υπηρεσίες ενός ενεργοποιητή με στόχο τον έλεγχο του περιβάλλοντος και την κατάλληλη δράση πάνω σε αυτό.
+
+Μέσα από αυτήν την γραφική διεπαφή δίνεται η δυνατότητα στον χρήστη να δημιουργεί συσχετίσεις τις οποίες αποστέλλει μέσω του ελεγκτή στις κατάλληλες συσκευές με στόχο την εγκαθίδρυση μίας μεταξύ τους συνεργασίας.
+
+Ανανέωση παραμέτρων υπάρχουσας συσχέτισης
+
+Ανάκτηση συσχετίσεων στους ελεγκτές
+
+Διαγραφή συσχέτισης από τις συσκευές
+
+Αποθήκευση συσχετίσεων στις συσκευές.
+
+
+\section{Διαχειριστής Γεγονότων}
+Όταν ένας αισθητήρας αντιλαμβάνεται ένα συμβάν μέσω κάποιας υπηρεσίας του, αναζητά αν στο πίνακα συσχετίσεων του έχει συσχετιστεί αυτή η υπηρεσία με την υπηρεσία κάποιου ενεργοποιητή. Αν διαπιστωθεί κάτι τέτοιο τότε ενημερώνει τον ενδιαφερόμενο ενεργοποιητή αναφέροντας του το γεγονός αυτό μέσω ενός μηνύματος \en EVENT\_REPORT \el. Το μήνυμα αυτό είναι τις μορφής του σχήματος  -->χρόνος, μοναδικότητα-εγκυρο
+
+ Όσο ευχάριστη για τον χρήστη μπορεί να είναι η αυτοματοποίηση της εκτέλεσης πολλών ενεργειών, πολλές φορές ο ίδιος θέλει να παρεμβαίνει και προσωρινά να αλλάζει το περιβάλλον με την χρήση άλλων κανόνων. Είτε επειδή στη παρούσα φάση μπορεί να κάνει για παράδειγμα μία συγκεκριμένη δουλειά, που απαιτεί παραπάνω φωτισμό από ότι συνήθως, είτε για την παρέμβαση σε οποιαδήποτε άλλη συνεργασία αισθητήρων με τους ενεργοποιητές.
+
+Για το λόγο αυτόν κρίθηκε απαραίτητη η δυνατότητα δημιουργίας μίας επιπλέον λειτουργίας. Η λειτουργία αυτή είναι η δυνατότητα του ελεγκτή να μπορεί να ελέγχει άμεσα τους ενεργοποιητές του δικτύου στέλνοντας τους γεγονότα εκτέλεσης συγκεκριμένων λειτουργιών. Στο κεφάλαιο αυτό μελετάται η επέκταση του \emph{Διαχειριστή Γεγονότων} με στόχο την ενσωμάτωσή του και στους ελεγκτές, επεκτείνοντας την λειτουργικότητα του ώστε να μπορούν οι ελεγκτές να παρεμβαίνουν απευθείας και να καθορίζουν τις ενέργειες των ενεργοποιητών.
+
+
+\section{∆ιαχειριστής Καταγραφών}
+Σε δίκτυα όπως αυτά των \en WSAN\el, είναι φανερή η ανάγκη για ένα σύστημα καταγραφής, ανάλυσης και παρουσίασης της πορείας των διαφόρων εργασιών που λαμβάνουν χώρο στο δίκτυο. Μέσα από την ανάλυση των δεδομένων αυτών ο προγραμματιστής θα είναι σε θέση να βελτιώσει την δομή και την ανάπτυξη του πρωτοκόλλου που μελετάται, εντοπίζοντας τις όποιες αδυναμίες του. Επίσης με την σειρά του ο χρήστης, που αποτελεί και τον κύριο λόγο δημιουργίας αυτού του \emph{Διαχειριστή Καταγραφών}, θα μπορεί να ελέγχει περιοδικά το δίκτυο για την σωστή συνεργασία των διαφόρων συσκευών βελτιώνοντας την δόμηση αυτού. 
+
+Στο κεφάλαιο αυτό μελετάμε την δημιουργία ενός \emph{Διαχειριστή Καταγραφών} ο οποίος θα είναι σε θέση να καταγράφει τα διάφορα γεγονότα που αισθάνονται οι αισθητήρες και με βάση τα οποία δρουν οι ενεργοποιητές στο δίκτυο καθώς και τα όποια λάθη μπορεί να συμβαίνουν μεταξύ των συσκευών και των ελεγκτών στις διάφορες προσπάθειες επικοινωνίας τους. Επίσης από τις συσκευές καταγράφεται περιοδικά και το επίπεδο της μπαταρίας τους. 
+
 - Καταγραφή ∆εδοµένων
 -- Καταγραφή γεγονότων
 -- Καταγραφή σφαλµάτων επικοινωνίας
 - ∆ιαγραφή καταγραφών
 - Αποθήκευση καταγραφών
 
-Επέκταση ∆ιαχειριστή Γεγονότων
-- Απευθείας εκτέλεση ενεργειών από τον ελεγκτή
+
+\section{∆ιαχειριστής \en Sun SPOT \el}
+Μερικοί από τους λόγους για τον επαναπρογραμματισμό των συσκευών ενός ασύρματου δικτύου αισθητήρων και ενεργοποιητών είναι η διόρθωση λαθών και κενών ασφαλείας, η τροποποίηση των καθηκόντων ορισμένων κόμβων ή και ολόκληρου του δικτύου και η επέκταση της λειτουργικότητάς και της χρησιμότητας του δικτύου. Κατά την ανάπτυξη των εφαρμογών δεν είναι δυνατή η πλήρης γνώση του περιβάλλοντος με αποτέλεσμα η πρόβλεψη ολόκληρου του συνόλου των ενεργειών πριν τον επαναπρογραμματισμό να είναι αδύνατη. 
+
+Συνήθως για τον επαναπρογραμματισμό των κόμβων ενός \en WSAN \el, ο διαχειριστής του δικτύου πρέπει να συνδέσει ενσύρματα το κάθε κόμβο ξεχωριστά με έναν υπολογιστή που διαθέτει το καινούργιο εκτελέσιμο. Με την χρήση κατάλληλων εντολών το εκτελέσιμο μεταφέρεται από τον υπολογιστή στον κόμβο και αντικαθίσταται η παλιά εφαρμογή από την καινούργια. Η παραπάνω διαδικασία δεν είναι και τόσο εύχρηστη καθώς το δίκτυο μας το πιθανότερο να αποτελείται από εκατοντάδες ή και χιλιάδες κόμβους και μία τέτοια διαδικασία χρονικά έχει τεράστιο κόστος. Γίνεται λοιπόν φανερή η ανάγκη της ανάπτυξης ενός πιο αυτοματοποιημένου μηχανισμού. Άλλος ένας λόγος που τονίζει το πρόβλημα αυτό, είναι ότι κατά την φάση της ανάπτυξης των εφαρμογών και της αποσφαλμάτωσης τους ο προγραμματιστής θα χρειαστεί να εφαρμόσει πολλές φορές τον καινούργιο κώδικα του στους κόμβους ώστε να ελέγχει την ορθότητα των διαφόρων λειτουργιών που αναπτύσσει. 
+
+Με άλλα λόγια η χρήση καλωδίων για την μεταφορά των νέων εκτελέσιμων είναι αδύνατη σε δίκτυα τέτοιου μεγέθους. Η δημιουργία ασύρματων δικτύων αισθητήρων και ενεργοποιητών με καλώδια για τον επαναπρογραμματισμό τους είναι κάπως ειρωνική. Επομένως η μεταφορά των εκτελέσιμων θα πρέπει να γίνεται ασύρματα. Ένας ακόμα λόγος για τον ασύρματο επαναπρογραμματισμό είναι ότι πολλές φορές είναι δύσκολη ή και αδύνατη η φυσική επαφή με τον ανθρώπου. Φανταστείτε για παράδειγμα αισθητήρες που βρίσκονται στο εσωτερικό ενός ηφαίστειου για την καταμέτρηση του όγκου των δηλητηριωδών αερίων που απελευθερώνονται.
+- Αναζήτηση των διαθέσιµων Sun SPOT στο δίκτυο
+- Ασύρµατος προγραµµατισµός και αποπρογραµµατισµός των SunSPOT
+- Αποµακρυσµένη επανεκκίνηση των Sun SPOT
+- Αναβόσβηµα των Sun SPOT για εντοπισµό τους στο χώρο
+- Μετονοµασία των Sun SPOT
+
 \end{document}