slider

Τρίτη 17 Ιανουαρίου 2012


An android c3i system over well known wireless networks




                          Κοκόλη Κυριακή                              Σκόνδρας Εμμανουήλ                   Μπεκιάρης Γεώργιος        




Περιγραφή


Η εργασία πραγματεύεται ένα c3i (command, control, communication and intelligence) σύστημα που υλοποιείται πάνω από την πλατφόρμα του Android.Ένα peer to peer (p2p) δίκτυο δημιουργείται ανάμεσα στις Android συσκευές που συμμετέχουν στο σύστημα. Πραγματοποιείται επικοινωνία μεταξύ των εμπλεκόμενων κινητών συσκευών με σκοπό την συνεργασία τους και την ανταλλαγή χρήσιμων δεδομένων ανά περίπτωση. Η εκάστοτε συσκευή γνωρίζει τη θέση της στο χώρο μέσω GPS και πληροφορείται τη θέση των υπόλοιπων συσκευών. Κατόπιν, μπορούν να λάβουν χώρα ένα σύνολο από διαφορετικές λειτουργίες, οι οποίες περιγράφονται παρακάτω. Η διαχείριση ασυρμάτων δικτύων (wireless network manipulation) είναι μία από τις βασικές λειτουργίες του συστήματος. Αφορά τη μέτρηση ενός πλήθους παραμέτρων που σχετίζονται με τα διαθέσιμα WiFi, WiMAX και UMTS (3G) δίκτυα. Σε συνδυασμό με το προαναφερθέν σύστημα προσδιορισμού θέσης των συσκευών, το εργαλείο διαχείρισης ασυρμάτων δικτύων (wireless network manipulation component) παρέχει πληροφορίες στους χρήστες του συστήματος, ώστε να γίνει εφικτή η επιλογή του καταλληλότερο δικτύου WiFi, WiMAX ή UMTS που είναι διαθέσιμο στην ευρύτερη περιοχή. Επίσης, ως αποτέλεσμα αυτής της πληροφόρησης, παρέχεται η δυνατότητα εντοπισμού της καταλληλότερης τοποθεσίας στην περιοχή για την αποτελεσματικότερη εξυπηρέτηση του εκάστοτε χρήστη. Δηλαδή, με τη χρήση του συστήματος προσδιορισμού θέσης των συσκευών, του εργαλείου διαχείρισης ασυρμάτων δικτύων και της επικοινωνίας μεταξύ των ομότιμων συσκευών, είμαστε σε θέση να βγάλουμε χρήσιμα συμπεράσματα σχετικά με τα πλεονεκτήματα και τα μειονεκτήματα της θέσης της κάθε συσκευής στο χώρο. Για παράδειγμα, ένα τέτοιο συμπέρασμα έχει να κάνει με το από ποιά θέση έχει καλύτερη αποδοτικότητα η κάθε WiFi/WiMAX/UMTS σύνδεση. Επιπρόσθετα, παρέχεται διαγραμματική αναπαράσταση των αποτελεσμάτων απόδοσης των WiFi/WiMAX/UMTS συνδέσεων. Πέρα από όλα τα παραπάνω το σύστημα μας υλοποιεί και λειτουργικότητα MESH. Ως εκ τούτου, μία κινητή συσκευή έχει τη δυνατότητα να επικοινωνήσει με κάποιο δίκτυο είτε άμεσα, είτε μέσω μίας άλλης ή άλλων συσκευών. Ολοκληρώνοντας αυτήν τη σύντομη περιγραφή, αξίζει να αναφερθεί ότι οι εμπλεκόμενες στο σύστημα συσκευές, έχουν τη δυνατότητα να επικοινωνούν μεταξύ τους χρησιμοποιώντας κρυπτογραφημένα μηνύματα κειμένου και εικόνας. Πέρα όμως από τα εν λόγω μηνύματα κειμένου και εικόνας, όλα τα μηνύματα που ανταλλάσσονται μεταξύ των συσκευών είναι κρυπτογραφημένα με τον αλγόριθμο κρυπτογράφησης 3DES.


Πρόβλημα/Κίνητρο

           
Πολλοί ήταν οι λόγοι που μας οδήγησαν στη δημιουργία ενός τέτοιου συστήματος. Καταρχήν, ψάχνοντας στην εν λόγω "αγορά", καταλήξαμε στο συμπέρασμα ότι δεν υπάρχει κάποιο σύστημα που να συνδυάζει διαχείριση ασυρμάτων δικτύων με p2p επικοινωνία μεταξύ των end-users. Θεωρήσαμε δε ενδιαφέρον να "παίξουν" κινητές συσκευές το ρόλο των peers, καθώς και το να υλοποιηθεί το όλο σύστημα πάνω από την πλατφόρμα του Android. Ύστερα από έρευνα που πραγματοποιήσαμε, διαπιστώσαμε ότι η εν λόγω πλατφόρμα είναι ότι πιο επίκαιρο στο χώρο των κινητών πλατφόρμων-λειτουργικών συστημάτων. Επίσης, με τη μελέτη εκτός του WiFi και άλλων ειδών ασυρμάτων δικτύων, όπως τα WiMAX και UMTS, αποκτήσαμε χρήσιμες γνώσεις σχετικά με τις ιδιαιτερότητες του εκάστοτε είδους αλλά και για τον τρόπο συνύπαρξής τους. Επιπλέον, διαπιστώσαμε τις ιδιαίτερες προδιαγραφές που πρέπει να ικανοποιούν οι κινητές συσκευές ώστε να είναι σε θέση να συνεργαστούν απρόσκοπτα με κάθε έναν από του εν λόγω τύπους ασυρμάτων δικτύων. Το αποτέλεσμα ήταν να επιτευχθεί ο αρχικός μας στόχος που είχε να κάνει με την υλοποίηση από τη μία ενός κατανεμημένου διαχειριστή-εξομοιωτή ασυρμάτων δικτύων (distributed network manager-emulator) και από την άλλη ενός βασικού c3i συστήματος πάνω από κινητές συσκευές Android.
            Θεωρούμε το project μας ενδιαφέρον και επίκαιρο λόγω του ότι συνδυάζει μεθοδολογίες από πολλούς διαφορετικούς τομείς, πολλοί από τους οποίους συναντώνται κυρίως σε λύσεις υψηλής τεχνολογίας.


Μεθοδολογία και Υλοποίηση


Αρχικός μας στόχος ήταν η υλοποίηση να πραγματοποιηθεί με χρήση τόσο desktop και laptop υπολογιστών, όσο και Android συσκευών. Λόγω όμως διαφόρων δυσκολιών που προέκυψαν στην πορεία, εργαστήκαμε αποκλειστικά με υπολογιστές desktops και laptops με εγκατεστημένο τον Android emulator. Τα λειτουργικά συστήματα πάνω από τα οποία έλαβε χώρα η ανάπτυξη και αντίστοιχα η δοκιμή του συστήματος είναι τα Windows 7, Ubuntu 10.10, Ubuntu 11.04, Android 2.1 και Android 2.2. Για την ανάπτυξη χρησιμοποιήθηκε το Eclipse (εκδόσεις Galileo και Indigo) σε συνδυασμό με το Android SDK plugin που υπάρχει για αυτό. Παράλληλα, μελετήθηκαν σε βάθος τα ειδικά χαρακτηριστικά των δικτύων WiFi, WiMAX και UMTS.



Λειτουργίες


Συνοπτικά οι λειτουργίες του συστήματος είναι οι ακόλουθες:

•       Διαχείριση δικτύων WiFi, WiMAX και UMTS
•       Προσδιορισμός θέσης και ενημέρωση των υπολοίπων ομότιμων για αυτήν
•       Αρχιτεκτονική p2p
•       Ανταλλαγή μηνυμάτων κειμένου και εικόνας (Instant Messaging)
•       Μετρήσεις χαρακτηριστικών δικτύων και εξαγωγή γραφικών παραστάσεων με στατιστικά
•       Διαχείριση τακτικής πληροφορίας (Tactical Information)
•       Λειτουργικότητα MESH

Να σημειωθεί ότι όλα τα μηνύματα που αποστέλλονται μεταξύ των peers κρυπτογραφούνται με τον αλγόριθμο κρυπτογράφησης 3DES.


Σημείωση: Οι παραπάνω λειτουργίες, είναι απαραίτητες ώστε να μπορεί το σύστημα να χαρακτηριστεί c3i.

Ειδικές απαιτήσεις – Δυσκολίες


Οι δυσκολίες που είχαμε να αντιμετωπίσουμε εστιάζονται κυρίως στην έλλειψη κατάλληλου hardware εξοπλισμού. Πιο συγκεκριμένα, είχαμε έλλειψη απαιτούμενου πλήθους συσκευών, με τις απαιτούμενες μάλιστα προδιαγραφές (Android λειτουργικό σύστημα, υποστήριξη WiMAX κτλ), ενώ δεν είχαμε και αρκετά διαθέσιμα (γνωστά και ξεκλείδωτα) WiFi, WiMAX και UMTS δίκτυα ώστε να πραγματοποιήσουμε τις μετρήσεις μας. Ειδικά για το WiMAX, στην Ελλάδα υπάρχει διαθέσιμο δίκτυο προς το κοινό (και μόνο πολωτικά μέχρι στιγμής) μόνο στο αεροδρόμιο Ελ.Βενιζέλος.


Αρχιτεκτονική

Η παρακάτω εικόνα παρέχει μία γραφική απεικόνιση της αρχιτεκτονική που αναπτύξαμε:
          Παρατηρώντας την αρχιτεκτονική από κάτω προς τα επάνω, στο πρώτο επίπεδο έχουμε τους Αndroid emulators. Κάθε ένας emulator εξομοιώνει και από μία συσκευή Android. Στο ενδιάμεσο επίπεδο έχουμε το plugin που αναπτύξαμε ώστε ο Android emulator να παρέχει υποστήριξη για WiFi, WiMAX και UMTS δίκτυα. Συγκεκριμένα, το εν λόγω επίπεδο εξομοιώνει τα απαραίτητα δίκτυα, αντιμετωπίζοντας κατά αυτόν τον τρόπο το πρόβλημα με την έλλειψη των απαραίτητου πλήθους ελεύθερων δικτύων που προαναφέρθηκε. Παρατηρούμε ότι το ενδιάμεσο επίπεδο είναι κοινό για όλους τους emulators, κάτι το οποίο ήταν και το ζητούμενο με το σκεπτικό ότι ο χώρος στον οποίο κινούνται οι κινητές συσκευές είναι κοινός με την ευρύτερη έννοια του όρου. Ουσιαστικά, μέσα στον εν λόγω χώρο εξομοιώνονται οι διάφοροι routers και σταθμοί βάσης όπως ακριβώς συμβαίνει και στον πραγματικό κόσμο. Τέλος, στο πάνω επίπεδο έχουμε τους peers του συστήματος μας. Παρατηρούμε ότι υπάρχει ένας peer ανά (emulated) συσκευή Android.


Παρουσίαση λειτουργιών μέσω screenshots


         Στις παρακάτω εικόνες παρουσιάζεται ένα περιβάλλον με τρεις Android συσκευές που «τρέχουν» την εφαρμογή. Αρχικά, η πρώτη συσκευή φαίνεται ως super peer, ενώ οι άλλες ως peers. Αυτό συμβαίνει για να υπάρχει μία στοιχειώδης οργάνωση των συσκευών μέσω του super peer κυρίως κατά την εκκίνηση του συστήματος (πίνακες γειτνίασης κτλ.). Πρόκειται δηλαδή για ένα κεντρικοποιημένο p2p σύστημα.
        Παρακάτω παρατίθενται τα διάφορα tabs της εφαρμογής, με σύντομη επεξήγηση για κάθε μία από τις λειτουργίες που επιτελεί το κάθε ένα από αυτά:


       Το Network tab (συνδέσεις WiFi):
     
       Παρατηρούμε ο ένας από τους τρεις peers έχει ρόλο super peer, ο οποίος όπως προαναφέρθηκε διαπράττει τις απαραίτητες ενέργειες ώστε να υπάρχει μία στοιχειώδης οργάνωση των συσκευών κυρίως κατά την εκκίνηση του συστήματος. Στο πεδίο κειμένου που υπάρχει διαθέσιμο στο παρόν tab, εισάγεται ένα μοναδικό όνομα για τον κάθε peer. Στο τρέχον σενάριο τους ονομάζουμε first, second και third. Τέλος, επιλέγοντας το αντίστοιχο tab για να το είδος του ασύρματου δικτύου που θέλουμε, βλέπουμε ποια WiFi, WiMAX και UMTS δίκτυα είναι διαθέσιμα, καθώς και κάποιες πληροφορίες για αυτά (όπως signal strength level κτλ.). Μπορούμε να συνδεθούμε ή να κάνουμε ping σε οποιοδήποτε δίκτυο βρίσκεται στην εμβέλεια της εκάστοτε συσκευής (βλ. παρακάτω). Επιπλέον, παρέχεται πληροφορία σχετικά με την θέση του κάθε peer στο χώρο (στο παρακάτω screenshot το κείμενο κάτω από το πεδίο του ονόματος του peer). Για παράδειγμα, στο συγκεκριμένο ο peer "first" βρίσκεται στη θέση 25-30 σε ότι αφορά το σύστημα συντεταγμένων που προσφέρει το GPS κα την εν λόγω πληροφορία την γνωρίζουν όλοι οι εμπλεκόμενοι στο σύστημα peers.
Network tab (συνδέσεις WiΜΑΧ):



    Network tab (συνδέσεις UMTS)



 
         Στα επόμενα 3 screenshots, η κάθε συσκευή "βλέπει" ποια δίκτυα WiFi, WiMAX και UMTS υπάρχουν στην εμβέλεια των υπολοίπων  συσκευών καθώς και διάφορα χαρακτηριστικά για αυτά τα δίκτυα.


   Διαθέσιμα δίκτυα WiFi σε όλους τους peers:

 Διαθέσιμα δίκτυα WiMAX σε όλους τους peers:

       Διαθέσιμα δίκτυα UMTS σε όλους τους peers:

       Συνδεμένοι peers στο κάθε δίκτυο:
     
        Σε αυτό το tab γίνεται μία γραφική απεικόνιση του πόσοι peers είναι συνδεδεμένοι σε κάθε δίκτυο. Στον άξονα x υπάρχει ένας μοναδικός αναγνωριστικός κωδικός για το κάθε δίκτυο. Αντίστοιχα, στον άξονα y υπάρχουν οι αριθμοί που σχετίζονται με το πόσοι peers είναι συνδεδεμένοι στο εκάστοτε δίκτυο.


       Χρόνοι μεταφοράς αρχείου από το κάθε δίκτυο:
        Άλλη μια δυνατότητα γραφικής απεικόνισης, που δείχνει το χρόνο (άξονας y σε sec) που απαιτείται ώστε να μεταφερθεί ένα αρχείο μεγέθους 15ΜΒ σε κάθε ένα από τα διαθέσιμα δίκτυα (άξονας x).



Παρατηρούμε ότι στις δύο παραπάνω εικόνες, όλες οι συσκευές "βλέπουν" την ίδια πληροφορία, κάτι το οποίο είναι και το ζητούμενο. Μία συσκευή "βλέπει" δίκτυα που είναι στην εμβέλεια κάποιας άλλης συσκευής, ακόμα κι αν αυτά τα δίκτυα δεν βρίσκονται στην δική της εμβέλεια. Ουσιαστικά, τα βλέπει μέσω τις άλλης συσκευής!

       Οι θέσεις των peers στο χώρο:

-Αυτόματο zoom στο χάρτη ανάλογα με την διασπορά των peers

       Επικοινωνία μεταξύ των peers με γραπτά μηνύματα:
  
          Αρχικά επιλέγουμε σε ποιον peer θα στείλουμε γραπτό μήνυμα και αφού το συνθέσουμε πατάμε στο κουμπί "send text". Στον κάθε peer πράσινο χρώμα εμφανίζονται τα μηνύματα που αυτός έστειλε, με μαύρο τα μηνύματα που έλαβε και προορίζονταν για πολλούς (broadcast και multicast) και με μωβ τα μηνύματα που έλαβε και είχαν ως παραλήπτη μόνο αυτόν (unicast).



      •       Ανταλλαγή εικόνων μεταξύ των peers:



       Ping σε ένα δίκτυο:

       Ping σε ένα δίκτυο μέσω ενός άλλου peer (Λειτουργικότητα MESH) – Στη συγκεκριμένη περίπτωση ο peerthird” κάνει ping στο δίκτυο AthensWiMAX μέσω του peersecond”. Το δίκτυο AthensWiMAX θα μπορούσε να μην είναι στην εμβέλεια του peerthird”.





ΠΑΡΑΡΤΗΜΑ

Διαδικασία εγκατάστασης και εκτέλεσης:

Αρχικά τοποθετούμε στην κάθε συσκευή το αρχείο που περιγράφει τα βασικά χαρακτηριστικά για τα δίκτυα που εξομοιώνουμε καθώς και τις θέσεις των BSs στο χώρο (network.xml), μέσω του Eclipse.

Στη συνέχεια, ανοίγουμε κάποια emulator instances. Σε κάποια από αυτά εκτελούμε την εφαρμογή του super peer και στα υπόλοιπα την εφαρμογή peer. Για κάθε συσκευή ανοιγούμε αντίστοιχα μία command line, κάνουμε telnet καθώς επίσης και τα απαραίτητα redirections στα ports των emulators. Διευκρινίζουμε ότι τα redirections είναι απαραίτητα για την επικοινωνία των peers, διότι ο εκάστoτε emulator λειτουργεί σαν Network Access Translator (NAT). Η όλη διαδικασία απεικονίζεται στα παρακάτω screeshots.












Τέλος, εισάγουμε τα δεδομένα για το GPS της κάθε συσκευής, μέσω της εντολής "geo fix [latitude] [longitude] [altitude]", όπως παρουσιάζεται στην παρακάτω εικόνα. Έτσι, η κάθε συσκευή μαθαίνει τη θέση της στο χώρο, μέσω του GPS που αυτή διαθέτει, καθώς επίσης και τις θέσεις των υπόλοιπων συσκευών. Σημειώνουμε ότι κατά τη διάρκεια λειτουργίας του συστήματος, οι εν λόγω θέσεις μεταβάλλονται, καθώς οι συσκευές μετακινούνται στο χώρο.