LoRaWare: A service oriented architecture for interconnecting LoRa devices with the CloudLoRaWare: A service oriented architecture for interconnecting LoRa devices with the CloudLoRaWare: Μία υπηρεσιοκεντρική αρχιτεκτονική για τη διασύνδεση LoRa συσκευών με το υπολογιστικό νέφος Διπλωματική Εργασία Diploma Work 2018-07-122018enΣε αυτή την εργασία, παρουσιάζουμε πως τα πλεονεκτήματα ενός χαμηλής κατανάλωσης και ευρείας περιοχής δικτύου(LPWAN) πρωτοκόλλου μπορούν να εκμεταλλευθούν για να υποστηρίξουν μεγαλύτερη διαθεσιμότητα και χρησιμότητα εφαρμογών του διαδικτύου των πραγμάτων (IoT). Η βασική ιδέα είναι να δείξουμε πως τα LPWAN δίκτυα μπορούν να διασυνδεθούν με το Νέφος όπου τα IoT δεδομένα μπορούν να μεταφερθούν με ασφάλεια για μόνιμη αποθήκευση και επιπλέον επεξεργασία. Για να αποδείξουμε τη γενική ιδέα, πειραματιστήκαμε με την τεχνολογία LoRa και το LoRaWAN, το τελευταίο αντιπροσωπευτικό από τα LPWAN πρωτόκολλα. Το LoRaWAN πρωτόκολλο χαρακτηρίζεται από μεγάλη εμβέλεια, χαμηλή ισχύ και χαμηλό ρυθμό μετάδοσης των δεδομένων. Εφαρμόσαμε μία τυπική πειραματική εγκατάσταση με LoRa περιβαλλοντικούς αισθητήρες που μεταδίδουν μετρήσεις σε μία μεγάλη απόσταση χρησιμοποιώντας το LoRa πρωτόκολλο μέχρι τα gateways και από εκεί στο Νέφος. Το σενάριό μας είναι ανεξάρτητο από τους τύπους των αισθητήρων και δεν χρειάζεται να γνωρίζει το είδος των πραγματικών IoT μετρήσεων. Το πλεονέκτημα αυτού του σεναρίου είναι ότι ολόκληρες πόλεις μπορούν να καλυφθούν με ένα μικρό αριθμό πυλών δικτύου(gateways) όπου κάθε μία είναι ικανή να εξυπηρετήσει μέχρι και χιλιάδες αισθητήρες. Οι LoRa κόμβοι μεταδίδουν πακέτα ραδιοσυχνοτήτων με διαμόρφωση LoRa τα οποία συλλαμβάνονται από μία ή περισσότερες πύλες. Κάθε πύλη λαμβάνει τα LoRa πακέτα από εξ αποστάσεως αισθητήρες και αναμεταδίδει αυτά στο Νέφος μέσω του διαδικτύου χρησιμοποιώντας ένα IP πρωτόκολλο (δηλ. κάποιο συνηθισμένο όπως το UDP). Σε αυτή την εργασία χρησιμοποιήσαμε το MQTT ένα πιο λεπτομερές ελαφρύ publish-subscribe IP πρωτόκολλο που προσφέρει προχωρημένη ασφάλεια, καλύτερο έλεγχο δρομολόγησης και παρακολούθησης της επικοινωνίας (δηλαδή καλύτερο χειρισμό και έλεγχο των πακέτων). Το επίκεντρο αυτής της εργασίας είναι η διασύνδεση των πυλών δικτύου με το Νέφος. Αναπτύξαμε έναν εξυπηρετητή δικτύου , μία λύση η οποία τρέχει ως υπηρεσία στο Νέφος και που σκοπός της είναι (α) να λαμβάνει LoRa πακέτα από τις πύλες δικτύου (b) να αποκωδικοποιεί το περιεχόμενό τους από χαρακτήρες ASCII σε bits (base64 κωδικοποίηση) (c) να κρατάει ένα μοναδικό πακέτο αν λαμβάνεται από περισσότερες από μία πύλες δικτύου (d) να αποκρυπτογραφεί το περιεχόμενο (AES 128 bit κρυπτογράφηση εφαρμόζεται από το LoRa) και (e) να κάνει τα δεδομένα διαθέσιμα στις υπηρεσίες του Νέφους σε NGSI-JSON μορφή. Για τα πακέτα που βγαίνουν έξω από το Νέφος η ίδια λύση εφαρμόζεται σε αντίστροφη σειρά: τα πακέτα κρυπτογραφούνται, κωδικοποιούνται και μεταδίδονται σε στοχευόμενες πύλες (υποστηρίζεται από το LoRaWare με κάποιες πρόσθετες τροποποιήσεις-δεν έχει δοκιμαστεί). Η υπηρεσία έχει αναπτυχθεί για το Fiware Cloud , μία πανευρωπαϊκή υποδομή νέφους που υποστηρίζεται από την Ευρωπαϊκή Ένωση. Το NGSI πρωτόκολλο χρησιμοποιείται από κάθε Generic Enabler του Fiware οικοσυστήματος ως ένα μοντέλο ανταλλαγής δεδομένων. Ένας από αυτούς είναι και ο Publish/Subscribe Context Broker ο οποίος μεσολαβεί μεταξύ συσκευών και εφαρμογών. Η αρχιτεκτονική μας, αναφέρεται ως LoRaWare, επιτρέπει στους IoT developers να βελτιώσουν τις δυνατότητες των εφαρμογών LoRa χρησιμοποιώντας προχωρημένες υπηρεσίες του Fiware που υποστηρίζουν μόνιμη αποθήκευση, ανάλυση δεδομένων, σύνθεση δεδομένων και υπηρεσιών με Mashups κτλπ. Στο παράδειγμα της υλοποίησής μας, παρακολουθούνται μετρήσεις υγρασίας και θερμοκρασίας σε πραγματικό χρόνο στο Νέφος ενώ ταυτόχρονα αποθηκεύονται οι τιμές στο ιστορικό σε μία MySQL βάση δεδομένων. Εκτελούμε ένα εξαντλητικό σύνολο πειραμάτων χρησιμοποιώντας πραγματικά δεδομένα προσομοίωσης ώστε να μελετήσουμε τον χρόνο απόκρισης του συστήματος και την επεκτασιμότητα του. Αναφέρουμε το μέσο χρόνο επεξεργασίας από άκρο σε άκρο (δηλαδή από τη στιγμή που τα IoT δεδομένα λαμβάνονται από τον εξυπηρετητή δικτύου μέχρι τη στιγμή που αποθηκεύονται στη βάση δεδομένων) και επίσης τον μέσο χρόνο που δαπανάται σε κάθε υπηρεσία στην ακολουθία της επεξεργασίας. Για να μελετήσουμε την επεκτασιμότητα του συστήματος στρεσάραμε το σύστημα με ένα τεράστιο (πραγματικό) φορτίο προσομοιωμένο με 2000 αιτήματα (πακέτα δεδομένων) που λαμβάνονται από τον εξυπηρετητή δικτύου και επεξεργάζονται στο Νέφος. Τα πειραματικά μας αποτελέσματα δείχνουν ότι το σύστημα μας είναι ικανό να αποδίδει σε πραγματικό χρόνο ή κοντά σε πραγματικό χρόνο για πολλά χιλιάδες ταυτόχρονα αιτήματα. Σε ένα διαφορετικό πείραμα, μελετήσαμε το πρακτικό εύρος της LoRa μετάδοσης σε ένα πραγματικό αστικό περιβάλλον (στην πόλη των Χανίων) με δύο πύλες δικτύου που τοποθετήθηκαν μακριά η μία από την άλλη. Τα πειραματικά αποτελέσματα που προέκυψαν αποκαλύπτουν ότι ο ρυθμός των λαμβανόμενων πακέτων για κάθε μία από τις πύλες δικτύου μειώνεται δραστικά σε σχέση με την απόσταση των αισθητήρων σε όλες τις περιπτώσεις.In this work, we show how the advantages of a Low Power Wide Area Network (LPWAN) protocol can be exploited to support greater availability and usability of Internet of Things (IoT) applications. The main idea is to show how LPWAN networks can be interconnected with the Cloud where IoT data can be transferred securely for persistent storage and further processing. To show proof of concept, we experimented with LoRa technology and LoRaWAN, the latest successful representative of LPWAN protocols. The LoRaWAN protocol is characterized by long range, low power and low data rate transmission. We applied a typical experimental setup with LoRa environmental sensors transmitting measurements over long distances using LoRa protocol to gateways and from there to the cloud. Our scenario is application agnostic (as it is independent of sensor types and need not be aware of the actual IoT measurements). The advantage of this scenario is that whole cities can be covered with a small number of gateways where, each gateway is capable of dealing with even thousands of sensors. The LoRa Nodes transmit RF packets with LoRa modulation which are captured by one or more Gateways. The Gateway receives LoRa packets from sensors in range and re-transmits them to the cloud over internet using an IP protocol (e.g. a basic one such as UDP). In this work we opt for MQTT a more elaborate lightweight publish-subscribe IP protocol offering advance security, better routing control and visibility of the communication (i.e. easier handling and control of data packets). The focus of this work is on interconnecting the gateways with the cloud. We develop the Network Server, a solution that runs as a service on the cloud and whose purpose is to (a) receive LoRa packets from gateways (b) decode their payload from ASCII characters to bits (base 64 encoding) (c) dedublicate packets received from more than one gateways (d) decrypt the payload (AES 128 bit encryptions is applied by LoRA) and (e) make data available to the cloud services in NGSI - JSON format. For outgoing packets the same solution is applied in reverse order: packets are encrypted, encoded and transmitted to target gateways (is supported by the LoRaWare with some additional configurations-haven’t been tested). The service is developed for FIWARE cloud, a pan-European cloud infrastructure which is supported by the EU. NGSI is the protocol which is used by every Generic Enabler of Fiware ecosystem as a data exchange model. One of them is the Publish/Subscribe Context Broker which mediates between devices and applications. Our architecture ,referred to as LoRaWare, allows IoT developers to enhance the capabilities of LoRa enabled applications using advanced FIWARE services supporting persistent storage and data analytics, service synthesis using Mashups etc. In our example implementation, humidity and temperature measurements are monitored in real - time on the cloud while historical values are stored in MySQL database. We run an exhaustive set of experiments using real and simulated (but realistic) data in order to study the system response time and system scalability. We report average end-to-end processing times (i.e. from the moment IoT data are received by the network server to the time they are stored in the database) and also average time spent on each service in the processing sequence. To study system scalability we stressed the system with a large synthetic (but realistic) payload simulating up to 2.000 requests (i.e. data packets) received by the Network server and processed on the cloud. Our experimental results demonstrate that our system is still capable of performing real - time or close to real time for many thousands of concurrent requests. In a different experiment, we study the practical range of LoRa transmission in a real urban environment (in the city of Chania) with two gateways placed apart from each other. The experimental results reveal that the rate of packages captured by any of the two gateways decreases drastically with the distance from the sensors in all cases.http://creativecommons.org/licenses/by/4.0/Πολυτεχνείο Κρήτης::Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών ΥπολογιστώνTsakos_Konstantinos_Dip_2018.pdfChania [Greece]Library of TUC2018-07-12application/pdf4.2 MBfree Tsakos Konstantinos Τσακος Κωνσταντινος Petrakis Evripidis Πετρακης Ευριπιδης Deligiannakis Antonios Δεληγιαννακης Αντωνιος Sotiriadis Stelios Σωτηριαδης Στελιος Πολυτεχνείο Κρήτης Technical University of Crete LoRa Cloud