Connecto Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Άγγελος Σφακιανάκης Επιφάνεια Άμεσης Σύνδεσης
Περιγραφή Συστήματος
Προβλήματα μικρή αυτονομία μπαταρίας χρεώσεις δεδομένων πολλαπλοί λογαριασμοί => δυσκολότερη διαχείριση αδυναμία μόνιμης σύνδεσης στο Διαδίκτυο => συνήθως απαιτείται συνεννόηση δύσκολο για λιγότερο εξοικειωμένους
Περιγραφή Εφαρμογής αμιγώς P2P Messaging εφαρμογή δεν υπάρχει κανένας Server τρέχει σε κινητά τηλέφωνα (Smartphones) χρησιμοποεί πολλαπλά δίκτυα Mobile Network (3G, 4G κ.λπ.) WiFi Bluetooth SMS και κλήσεις χρήση Αριθμού Τηλεφώνου ως μοναδικό αναγνωριστικό χρήστη
User Interface Group Users & Connection Status 1 2 3 Other Objects Videocalls, Photos, Music, Videos, Shared Files etc. discussion Menu View & Manage User Groups Profile Change Username & Picture me
Λεπτομέρειες δεν απαιτείται δημιουργία Λογαριασμού ομάδες δύο ή περισσότερων χρηστών αυτόματη επιλογή βέλτιστου δικτύου ίδια Δικαιώματα & Υποχρεώσεις χρήση SMS για προετοιμασία σύνδεσης όλα σε ένα σημείο
Σχετικές Εργασίες
Κριτήρια Σύγκρισης φιλικότητα προς το χρήστη απαραίτητη υποδομή fault tolerance network utilization διάρκεια ζωής μπαταρίας
Facebook Messenger PROS: ευρεία αποδοχή παρόμοιες δυνατότητες CONS: απαιτείται εγγραφή κεντρικός Server συνεχής σύνδεση όχι εναλλακτικά δίκτυα
Viber PROS: ευρεία αποδοχή παρόμοιες δυνατότητες ενσωμάτωση αριθμού τηλεφώνου CONS: απαιτείται εγγραφή κεντρικός Server συνεχής σύνδεση όχι εναλλακτικά δίκτυα
WhatsApp PROS: ευρεία αποδοχή παρόμοιες δυνατότητες ομάδες απλό προφίλ CONS: απαιτείται εγγραφή κεντρικός Server συνεχής σύνδεση όχι εναλλακτικά δίκτυα
Skype PROS: ευρεία αποδοχή παρόμοιες δυνατότητες κατά βάση P2P CONS: απαιτείται εγγραφή υπάρχουν Servers συνεχής σύνδεση όχι εναλλακτικά δίκτυα
Πλήθος Εφαρμογών etc.
Πλεονεκτήματα Ιδέας φιλικότερη προς το χρήστη (αυτόματα) χωρίς εγγραφή λίγα μονάχα στοιχεία (όνομα, εικόνα) καθαρά P2P εφαρμογή δεν υπάρχει Server χωρίς υποδομή => εύκολη διάδοση ανοχή σε σφάλματα και επιθέσεις χρήση εναλλακτικών δικτύων αυτόματη σύνδεση/αποσύνδεση εξοικονόμηση ενέργειας λιγότερες χρεώσεις δεδομένων
Αρχιτεκτονική Συστήματος
Γενικά όχι Server, μόνο Client πρωτόκολλο για διαχείριση συνδέσεων σχεδίαση για Android ή ios χρήση Java & έτοιμων APIs
Βάση Δεδομένων δύο σχέσεις Επαφές Ομάδες δυναμική ανανέωση με την επίτευξη επικοινωνίας ανανέωση κατά την επεξεργασία ομάδας Σχέση Επαφών Τηλέφωνο Όνομα Εικόνα Σχέση Ομάδων Ομάδα Τηλέφωνο
Έναρξη Επικοινωνίας δημιουργία ομάδας προσθήκη επαφών εύρεση IP κάθε επαφής για σύνδεση ακούμε σε προκαθοριμένο Port δημιουργία σύνδεσης TCP με συσκευές χρήση σύνδεσης UDP για βιντεοκλήση αριθμός πακέτου & δεδομένα
Σύνδεση σύνδεση στην προηγούμενη IP του χρήστη εύρεση IP με ερώτηση των υπολοίπων εάν έχουμε συνδεθεί ήδη με άλλα μέλη της ομάδας εύρεση IP μέσω SMS ρωτάμε το χρήστη με SMS για την IP του, εάν οι υπόλοιποι τρόποι αποτύχουν
Εύρεση IP με Ερώτηση connected 3 1 connected 2
Εύρεση IP με Ερώτηση TCP/IP - where is 2? 3 1 connected 2
Εύρεση IP με Ερώτηση 3 1 TCP/IP - IP:Port of 2 connected 2
Εύρεση IP με Ερώτηση connected 3 1 connected TCP/IP - connect 2
Εύρεση IP με Ερώτηση connected 3 1 connected TCP/IP - response 2
Εύρεση IP με Ερώτηση connected 3 1 connected connected 2
Εύρεση IP μέσω SMS SMS - connect
Εύρεση IP μέσω SMS TCP/IP - response
Πρόβλημα NAT NAT NAT
Πρόβλημα NAT NAT NAT TCP/IP - who am I?
Πρόβλημα NAT NAT NAT TCP/IP - IP:Port TCP/IP - IP:Port
Πρόβλημα NAT NAT NAT establish connection
Πρόβλημα NAT (oops) NAT NAT now what?
Πρόβλημα NAT (oops) NAT NAT TCP/IP - who am I? TCP/IP - IP:Port TCP/IP - IP:Port
Σύνδεση Bluetooth εντός εμβέλειας οι χρήστες επιλέγουν Σύνδεση Bluetooth εμφανίζονται Barcodes στην οθόνη ανάγνωση Barcodes δεδομένα όπως MAC & PIN σύνδεση & αποστολή ονόματος και αριθμού τηλεφώνου
Αυτόματη Επανασύνδεση αιτίες προσωρινής αποσύνδεσης εκτός εμβέλειας WiFi απώλεια σήματος κινητού τηλεφώνου μετακίνηση μεταξύ Cell Towers (+) επανασύνδεση με ομάδα αποστολή νέας IP σε όλους
Ανάλυση Απόδοσης
Χρήση Δεδομένων αναφερόμαστε σε κινητά τηλέφωνα ισχύουν επιπλέον χρεώσεις Δεδομένων γράφουμε ένα μετρητή χρήσης Δεδομένων που μας στέλνει στατιστικά χρησιμοποιούμε μεγάλο δείγμα χρηστών χρησιμοποιούν τη δική μας εφαρμογή χρησιμοποιούν άλλες εφαρμογές βλέπουμε εάν επιτυγχάνεται εξοικονόμηση
Διάρκεια Μπαταρίας φορητές συσκευές => μπαταρία ανάγκη για λιγότερη κατανάλωση η εφαρμογή δεν απαιτεί συνεχή σύνδεση γράφουμε πάλι μετρητή και τον διανέμουμε σε χρήστες συγκρίνουμε μέση κατανάλωση (battery_full - battery_depleted) / time κατηγοριοποιούμε όμοιες συσκευές
Ποιότητα Επικοινωνίας η εφαρμογή αλλάζει αυτόματα δίκτυα ο χρήστης δεν πρέπει να το καταλαβαίνει γράφουμε επιπλέον κώδικα στις συναρτήσεις που κάνουν την επανασύνδεση μετράμε το χρόνο χωρίς σύνδεση μικρότερα νούμερα = καλύτερη εμπειρία τα συμπεράσματα είναι υποκειμενικά
Σχεδόν Τελειώσαμε...
Πηγές http://alternativeto.net/software/viber/ http://en.wikipedia.org/wiki/viber http://en.wikipedia.org/wiki/skype http://en.wikipedia.org/wiki/whatsapp http://en.wikipedia.org/wiki/google_hangouts http://gamedev.stackexchange.com/questions/11738/howdoes-the-3g-network-assign-ip-to-smartphones http://linux.die.net/man/2/send http://en.wikipedia.org/wiki/network_address_translation Περισσότερες λεπτομέρειες υπάρχουν στην αναφορά...
Ευχαριστώ!