Commits

Konstantinos Aravanis committed f8fb950

Draft 3

Comments (0)

Files changed (2)

thesis_summary.pdf

Binary file modified.

thesis_summary.tex

 \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
 
 \begin{document}
-\title{Μελέτη, Σχεδιασμός \& Ανάπτυξη \\Συστήματος Διαχείρισης \\Ασυρμάτων Δικτύων Αισθητήρων και Ενεργοποιητών}
+\title{\LARGE Μελέτη, Σχεδιασμός \& Ανάπτυξη Συστήματος Διαχείρισης \\Ασυρμάτων Δικτύων Αισθητήρων και Ενεργοποιητών}
 
-\author{Περίληψη Διπλωματικής Εργασίας\\Αραβανής~Α.~Κωνσταντίνος \textlatin{<\url{arabanis@ceid.upatras.gr}>}\\Τμήμα Μηχανικών Η/Υ \& Πληροφορικής, Πανεπιστήμιο Πατρών}
+\author{\normalsize \it Περίληψη Διπλωματικής Εργασίας\\\largeΑραβανής~Α.~Κωνσταντίνος \textlatin{<\url{arabanis@ceid.upatras.gr}>}\\\normalsizeΤμήμα Μηχανικών Η/Υ \& Πληροφορικής, Πανεπιστήμιο Πατρών}
 
 \maketitle
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \section{Εισαγωγή στο \en picoPnP \en}
 Ένα από τα μεγαλύτερα προβλήματα των Ασυρμάτων Δικτύων Αισθητήρων και Ενεργοποιητών (\en WSAN - Wireless Sensors and Actuators Networks\el) είναι το κομμάτι της υλοποίησης εφαρμογών. Κάθε φορά οι τεχνικές που χρησιμοποιούνται για την υλοποίηση εφαρμογών είναι διαφορετικές ανάλογα με τον εξοπλισμό που χρησιμοποιείται και τη λειτουργία που καλούνται να εξυπηρετήσουν. Μέχρι σήμερα δεν έχει δοθεί μία ικανοποιητική πρόταση που να προσφέρει έναν ενιαίο τρόπο υλοποίησης εφαρμογών, ο οποίος θα είναι απλός και παράλληλα αρκετά ευέλικτος. 
 
 Η συμβολή της παρούσας διπλωματικής είναι η βελτίωση των παραπάνω διαδικασιών του πρωτοκόλλου και η διόρθωση κάποιων προβλημάτων με στόχο την καλύτερη θωράκιση του. 
 
-To πρωτόκολλο αυτό πρόκειται για μία παραλλαγή των βασικών ιδεών του \en UPnP \el προσαρμοσμένη έτσι ώστε να λειτουργεί λαμβάνοντας υπόψη τις περιορισμένες υπολογιστικές δυνατότητες αλλά και τα μικρά αποθέματα ενέργειας των συσκευών που απαρτίζουν ένα \en WSAN\el.
+To πρωτόκολλο αυτό πρόκειται για μία παραλλαγή των βασικών ιδεών του \en UPnP \el προσαρμοσμένη έτσι ώστε να λειτουργεί λαμβάνοντας υπόψη τις περιορισμένες υπολογιστικές δυνατότητες αλλά και τα μικρά αποθέματα ενέργειας των συσκευών που απαρτίζουν ένα \en WSAN\el. Για αυτό μάλιστα γίνεται χρήση και του πρωτοκόλλου $802.15.4$ για την ασύρματη διασύνδεση.
 
+Για το σκποπό αυτό της ανάπτυξης του πρωτοκόλλου χρησιμοποιήθηκαν οι σσυσκευές των \en Sun SPOT \el των \en Sun Labs\el.
 
 \section{Ελεγκτές και συσκευές}
 
-Το \en picoPnP \el αποτελείται από τρία είδη κόμβων, τους αισθητήρες, τους ενεργοποιητές και του ελεγκτές. Οι αισθητήρες και οι ενεργοποιητές αναφέρονται και ως συσκευές. Οι ελεγκτές αποτελούν τους κόμβους εκείνους που είναι υπεύθυνοι για τον καθορισμό της λειτουργίας του δικτύου, δηλαδή της συσχέτισης των διαφόρων αισθητήρων με τους κατάλληλους ενεργοποιητές, ώστε να επηρεάζουν κατάλληλα το περιβάλλον τους. Θα πρέπει να τονιστεί ότι ο ρόλος του ελεγκτή είναι αποκλειστικά αυτός. Κάθε συσκευή περιγράφεται από τα βασικά της χαρακτηριστικά και τις υπηρεσίες που μπορεί να προσφέρει.
+Το \en picoPnP \el αποτελείται από τρία είδη κόμβων, τους αισθητήρες, τους ενεργοποιητές και του ελεγκτές. Οι αισθητήρες και οι ενεργοποιητές αναφέρονται και ως συσκευές. Οι ελεγκτές (\en basestations\el) αποτελούν τους κόμβους εκείνους που είναι υπεύθυνοι για τον καθορισμό της λειτουργίας του δικτύου, δηλαδή της συσχέτισης των διαφόρων αισθητήρων με τους κατάλληλους ενεργοποιητές, ώστε να επηρεάζουν κατάλληλα το περιβάλλον τους. Θα πρέπει να τονιστεί ότι ο ρόλος του ελεγκτή είναι αποκλειστικά αυτός. Κάθε συσκευή περιγράφεται από τα βασικά της χαρακτηριστικά και τις υπηρεσίες που μπορεί να προσφέρει.
 
 
-\subsection{Υλοποίηση συσκευών και υπηρεσιών}
+\subsection{Υλοποίηση συσκευών και υπηρεσιών}\label{devices-services}
 
-Για την δημιουργία ενός αισθητήρα ή ενός ενεργοποιητή διατίθενται δύο \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 abstract \el κλάσεις, μία για κάθε τύπο συσκευής (ενεργοποιητής ή αισθητήρας) που επεκτεινόμενες από τον προγραμματιστή με τρόπο προκαθορισμένο δημιουργούνται οι αντίστοιχες συσκευές. Ο προγραμματιστής καλείται να κληρονομήσει αυτές τις κλάσεις και να δηλώσει την βασική περιγραφή της συσκευής. Δηλαδή το όνομα της, το πλήθος των \en hops \el στο οποίο η συσκευή θα μπορεί να επικοινωνεί στο δίκτυο, τον χρόνο ζωής της, τη στάθμη της μπαταρίας της και τη διεύθυνσή της.
 
-Όσον αφορά τις υπηρεσίες, η διαδικασία είναι λίγο πιο περίπλοκη αλλά η ίδια σε γενικές γραμμές. Και εδώ υπάρχουν δύο \en\ttfamily abstract \rmfamily\el κλάσεις, η κλάση \en\ttfamily Sense \rmfamily\el που υλοποιεί μία υπηρεσία αισθητήρα και η κλάση \en\ttfamily Act \rmfamily\el που υλοποιεί μία υπηρεσία ενεργοποιητή. Όταν επεκτείνει αυτές τις κλάσεις ο προγραμματιστής για να υλοποιήσει τις υπηρεσίες που θέλει δηλώνει όλες εκείνες τις απαραίτητες πληροφορίες για μία υπηρεσία. Δηλαδή το αναγνωριστικό της (\en ID\el), το όνομα της, κάποιες πληροφορίες που την περιγράφουν και τον πίνακα παραμέτρων της.
+Όσον αφορά τις υπηρεσίες, η διαδικασία είναι λίγο πιο περίπλοκη αλλά η ίδια σε γενικές γραμμές. Και εδώ υπάρχουν δύο \en abstract \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 χωρίζεται σε επιμέρους διαχειριστές ο καθένας εκ των οποίων αναλαμβάνει ένα κομμάτι της λειτουργίας του δικτίου.
 
-\section{Διαχειριστής Ανακάλυψης}
+
+\subsection{Διαχειριστής Ανακάλυψης}
 
 Η ανακάλυψη των συσκευών πρόκειται για το πρώτο βήμα του \en picoPnP\el. Πρόκειται για τη φάση αυτήν κατά την οποία:
 \begin{enumerate}
-\item Όταν μία συσκευή ενεργοποιείται, ανακοινώνει την παρουσία της στους ελεγκτές που βρίσκονται γύρω της.
-
-\item Όταν ένας ελεγκτής ενεργοποιείται, αναζητά τις συσκευές που βρίσκονται γύρω του και ζητά να μάθει περισσότερα για αυτές.
-
-\item Οι ελεγκτές είναι σε θέση να βρίσκονται σε διαρκή ενημέρωση για την κατάσταση και τη διαθεσιμότητα των συσκευών στο δίκτυο, το ίδιο και οι συσκευές για τους ελεγκτές.
-
-\item Όταν μία συσκευή ή ελεγκτής απενεργοποιείται, εξασφαλίζεται η ομαλή αποχώρηση του από το δίκτυο.
+    \item Όταν μία συσκευή ενεργοποιείται, ανακοινώνει την παρουσία της στους ελεγκτές που βρίσκονται γύρω της.
+    \item Όταν ένας ελεγκτής ενεργοποιείται, αναζητά τις συσκευές που βρίσκονται γύρω του και ζητά να μάθει περισσότερα για αυτές.
+    \item Οι ελεγκτές είναι σε θέση να βρίσκονται σε διαρκή ενημέρωση για την κατάσταση και τη διαθεσιμότητα των συσκευών στο δίκτυο, το ίδιο και οι συσκευές για τους ελεγκτές.
+    \item Όταν μία συσκευή ή ελεγκτής απενεργοποιείται, εξασφαλίζεται η ομαλή αποχώρηση του από το δίκτυο.
 \end{enumerate}
 
 
-\section{Διαχειριστής Περιγραφής} 
+\subsection{Διαχειριστής Περιγραφής} 
 
-Το επόμενο βήμα μετά την ανακάλυψη των συσκευών είναι οι ελεγκτές να ζητήσουν από τις συσκευές μία πιο εκτενή περιγραφή τους και συγκεκριμένα την περιγραφή των διαθέσιμων υπηρεσιών τους.
+Το επόμενο βήμα μετά την ανακάλυψη των συσκευών είναι οι ελεγκτές να ζητήσουν από τις συσκευές μία πιο εκτενή περιγραφή τους και συγκεκριμένα την περιγραφή των διαθέσιμων υπηρεσιών τους όπως αναφέρθήκαμε και στην ενότητα \ref{devices-services}.
 
 
-\section{Διαχειριστής Συσχετίσεων}
-Τώρα το \en picoPnP \el είναι σε θέση να δώσει την δυνατότητα στον χρήστη παρέχοντας του τα κατάλληλα εργαλεία να επιτελέσει τη σημαντικότερη λειτουργία για την οποία αυτό δημιουργήθηκε. Η λειτουργία αυτή είναι η συσχέτιση των υπηρεσιών ενός αισθητήρα με τις υπηρεσίες ενός ενεργοποιητή με στόχο τον έλεγχο του περιβάλλοντος και την κατάλληλη δράση πάνω σε αυτό.
+\subsection{Διαχειριστής Συσχετίσεων}
+
+Ο χρήστης τώρα μέσω του ελεγκτή που έχει στη διάθεση του γνωρίζει όλες τις απαραίτητες πληροφορίες για τις συσκευές του δικτύου.
+
+Με τον Διαχειριστή Συσχετίσεων παρέχονται στο χρήστη τα κατάλληλα εργαλεία να επιτελέσει τη σημαντικότερη λειτουργία για την οποία το πρωτόκολλο δημιουργήθηκε. Η λειτουργία αυτή είναι η συσχέτιση των υπηρεσιών ενός αισθητήρα με τις υπηρεσίες ενός ενεργοποιητή με στόχο τον έλεγχο του περιβάλλοντος και την κατάλληλη δράση πάνω σε αυτό.
 
 Μέσα από αυτήν την γραφική διεπαφή δίνεται η δυνατότητα στον χρήστη να δημιουργεί συσχετίσεις τις οποίες αποστέλλει μέσω του ελεγκτή στις κατάλληλες συσκευές με στόχο την εγκαθίδρυση μίας μεταξύ τους συνεργασίας.
 
-Ανανέωση παραμέτρων υπάρχουσας συσχέτισης
+Επίσης δίνεται η δυνατότητα στο χρήστη να ανανέωση της παραμέτρων της όποιας υπάρχουσας συσχέτισης, να ανάκτηση της συσχετίσης μιας συσκευής στους ελεγκτές και να διαγράψει την όποια ανεπιθύμιτη συσχέτιση.
 
-Ανάκτηση συσχετίσεων στους ελεγκτές
+Ακόμα οι συσχετίσεις που δημιουργούνται μεταξύ των αισθητήρων και των ενεργοποιητών αποθηκεύονται από τις συσκευές έτσι ώστε σε περίπτωση επανεκκίνησης τους να συνεχίσουν από την προηγούμενη κατάσταση τους.
 
-Διαγραφή συσχέτισης από τις συσκευές
 
-Αποθήκευση συσχετίσεων στις συσκευές.
+\subsection{Διαχειριστής Γεγονότων}
 
+Όταν ένας αισθητήρας αντιλαμβάνεται ένα συμβάν μέσω κάποιας υπηρεσίας του, αναζητά αν στο πίνακα συσχετίσεων του έχει συσχετιστεί αυτή η υπηρεσία με την υπηρεσία κάποιου ενεργοποιητή. Αν διαπιστωθεί κάτι τέτοιο τότε ενημερώνει τον ενδιαφερόμενο ενεργοποιητή μέσω ενός κατάλληλου μηνύματος. Το μήνυμα αυτό είναι διαμορφομένο έτσι ώστε να εξασφαλίζει την εγκυρότητα του και το χρόνο αντίληψης του γεγονότος.
 
-\section{Διαχειριστής Γεγονότων}
-Όταν ένας αισθητήρας αντιλαμβάνεται ένα συμβάν μέσω κάποιας υπηρεσίας του, αναζητά αν στο πίνακα συσχετίσεων του έχει συσχετιστεί αυτή η υπηρεσία με την υπηρεσία κάποιου ενεργοποιητή. Αν διαπιστωθεί κάτι τέτοιο τότε ενημερώνει τον ενδιαφερόμενο ενεργοποιητή αναφέροντας του το γεγονός αυτό μέσω ενός μηνύματος \en EVENT\_REPORT \el. Το μήνυμα αυτό είναι τις μορφής του σχήματος  -->χρόνος, μοναδικότητα-εγκυρο
+Με τη σειρά του ο ενεργοποιητής όταν το λάβει ελέγχει το μήνυμα αυτό με βάση και τις δικές του συσχετίσης και αν κριθεί ορθό τότε προβαίνει στην εκτέλεση της κατάλληλης ενέργειας.
 
- Όσο ευχάριστη για τον χρήστη μπορεί να είναι η αυτοματοποίηση της εκτέλεσης πολλών ενεργειών, πολλές φορές ο ίδιος θέλει να παρεμβαίνει και προσωρινά να αλλάζει το περιβάλλον με την χρήση άλλων κανόνων. Είτε επειδή στη παρούσα φάση μπορεί να κάνει για παράδειγμα μία συγκεκριμένη δουλειά, που απαιτεί παραπάνω φωτισμό από ότι συνήθως, είτε για την παρέμβαση σε οποιαδήποτε άλλη συνεργασία αισθητήρων με τους ενεργοποιητές.
+Όσο ευχάριστη για τον χρήστη μπορεί να είναι η αυτοματοποίηση της εκτέλεσης πολλών ενεργειών, πολλές φορές ο ίδιος θέλει να παρεμβαίνει και προσωρινά να αλλάζει το περιβάλλον με την χρήση άλλων κανόνων. Για το λόγο αυτόν κρίθηκε απαραίτητη η δυνατότητα δημιουργίας μίας επιπλέον λειτουργίας. Η λειτουργία αυτή είναι η δυνατότητα του ελεγκτή να μπορεί να ελέγχει άμεσα τους ενεργοποιητές του δικτύου στέλνοντας τους γεγονότα εκτέλεσης συγκεκριμένων λειτουργιών.
 
-Για το λόγο αυτόν κρίθηκε απαραίτητη η δυνατότητα δημιουργίας μίας επιπλέον λειτουργίας. Η λειτουργία αυτή είναι η δυνατότητα του ελεγκτή να μπορεί να ελέγχει άμεσα τους ενεργοποιητές του δικτύου στέλνοντας τους γεγονότα εκτέλεσης συγκεκριμένων λειτουργιών. Στο κεφάλαιο αυτό μελετάται η επέκταση του \emph{Διαχειριστή Γεγονότων} με στόχο την ενσωμάτωσή του και στους ελεγκτές, επεκτείνοντας την λειτουργικότητα του ώστε να μπορούν οι ελεγκτές να παρεμβαίνουν απευθείας και να καθορίζουν τις ενέργειες των ενεργοποιητών.
 
+\subsection{∆ιαχειριστής Καταγραφών}
 
-\section{∆ιαχειριστής Καταγραφών}
 Σε δίκτυα όπως αυτά των \en WSAN\el, είναι φανερή η ανάγκη για ένα σύστημα καταγραφής, ανάλυσης και παρουσίασης της πορείας των διαφόρων εργασιών που λαμβάνουν χώρο στο δίκτυο. Μέσα από την ανάλυση των δεδομένων αυτών ο προγραμματιστής θα είναι σε θέση να βελτιώσει την δομή και την ανάπτυξη του πρωτοκόλλου που μελετάται, εντοπίζοντας τις όποιες αδυναμίες του. Επίσης με την σειρά του ο χρήστης, που αποτελεί και τον κύριο λόγο δημιουργίας αυτού του \emph{Διαχειριστή Καταγραφών}, θα μπορεί να ελέγχει περιοδικά το δίκτυο για την σωστή συνεργασία των διαφόρων συσκευών βελτιώνοντας την δόμηση αυτού. 
 
 Στο κεφάλαιο αυτό μελετάμε την δημιουργία ενός \emph{Διαχειριστή Καταγραφών} ο οποίος θα είναι σε θέση να καταγράφει τα διάφορα γεγονότα που αισθάνονται οι αισθητήρες και με βάση τα οποία δρουν οι ενεργοποιητές στο δίκτυο καθώς και τα όποια λάθη μπορεί να συμβαίνουν μεταξύ των συσκευών και των ελεγκτών στις διάφορες προσπάθειες επικοινωνίας τους. Επίσης από τις συσκευές καταγράφεται περιοδικά και το επίπεδο της μπαταρίας τους. 
 - Αποθήκευση καταγραφών
 
 
-\section{∆ιαχειριστής \en Sun SPOT \el}
+\subsection{∆ιαχειριστής \en Sun SPOT \el}
+
 Μερικοί από τους λόγους για τον επαναπρογραμματισμό των συσκευών ενός ασύρματου δικτύου αισθητήρων και ενεργοποιητών είναι η διόρθωση λαθών και κενών ασφαλείας, η τροποποίηση των καθηκόντων ορισμένων κόμβων ή και ολόκληρου του δικτύου και η επέκταση της λειτουργικότητάς και της χρησιμότητας του δικτύου. Κατά την ανάπτυξη των εφαρμογών δεν είναι δυνατή η πλήρης γνώση του περιβάλλοντος με αποτέλεσμα η πρόβλεψη ολόκληρου του συνόλου των ενεργειών πριν τον επαναπρογραμματισμό να είναι αδύνατη. 
 
 Συνήθως για τον επαναπρογραμματισμό των κόμβων ενός \en WSAN \el, ο διαχειριστής του δικτύου πρέπει να συνδέσει ενσύρματα το κάθε κόμβο ξεχωριστά με έναν υπολογιστή που διαθέτει το καινούργιο εκτελέσιμο. Με την χρήση κατάλληλων εντολών το εκτελέσιμο μεταφέρεται από τον υπολογιστή στον κόμβο και αντικαθίσταται η παλιά εφαρμογή από την καινούργια. Η παραπάνω διαδικασία δεν είναι και τόσο εύχρηστη καθώς το δίκτυο μας το πιθανότερο να αποτελείται από εκατοντάδες ή και χιλιάδες κόμβους και μία τέτοια διαδικασία χρονικά έχει τεράστιο κόστος. Γίνεται λοιπόν φανερή η ανάγκη της ανάπτυξης ενός πιο αυτοματοποιημένου μηχανισμού. Άλλος ένας λόγος που τονίζει το πρόβλημα αυτό, είναι ότι κατά την φάση της ανάπτυξης των εφαρμογών και της αποσφαλμάτωσης τους ο προγραμματιστής θα χρειαστεί να εφαρμόσει πολλές φορές τον καινούργιο κώδικα του στους κόμβους ώστε να ελέγχει την ορθότητα των διαφόρων λειτουργιών που αναπτύσσει.