Web proxy service for the Web of ThingsWeb proxy service for the Web of ThingsΥπηρεσία εκπροσώπου για το διαδίκτυο των πραγμάτων Διπλωματική Εργασία Diploma Work 2022-12-272022enNowadays, devices have become part of people’s daily lives in a variety of fields such as healthcare, transportation, agriculture, education, environmental purposes, monitoring, physical exercise and many other application domains. Smart cities, smart buildings and smart factories are based on Internet of Things (IoT) devices and companies constantly develop IoT applications. WoT is a relatively new concept. There is no universal application layer protocol to enable Things and services to communicate. The interconnection of Things is commonly supported by sensor-specific protocols (e.g. Bluetooth, ZigBee, etc.) rather than by HTTP directly. The Web of Things approach by W3C and other investigators suggests that the interconnection of Things does not depend on peculiarities of IoT protocols that would require an extra layer of complexity in an implementation. Ideally, the Web of Things approach requires that Things receive (each one) an IPv6 address and have a Web server installed. However, this is not always possible, especially for resource-constrained devices. A workaround to this problem is to deploy a Web proxy on a server (or on a gateway) that keeps the virtual image of each Thing (e.g. a JSON representation). Web proxy implements a directory (e.g. a database) with all Things (i.e. instances, their types, descriptions and services supported). Things become part of the Web and can be accessed via their Web Proxy (i.e. they can be published, consumed, aggregated, updated and searched for). Web services exposed by Things can then be discovered by users or other services. Therefore, Thing descriptions become an important component of any architecture intended for the WoT so that devices and their APIs become discoverable. The focus of this work is on designing and implementing a Web Proxy service (Nexus) for exposing Things / Applications on the Web that decouples the Thing’s functionality and its management. OpenAPI is a universal language that can be used to accurately and completely describe Things / Applications in a universal way that is understandable by both humans and machines. In this proposed architecture, we consider that all Things / Applications are described by an OpenAPI description.Στις μέρες μας, οι συσκευές έχουν γίνει μέρος της καθημερινότητας των ανθρώπων σε διάφορα πεδία όπως του συστήματος υγείας, της μεταφορά, των αγροτικών εργασιών, της εκπαίδευσης, των περιβαλλοντικών σκοπών, του ελέγχου, της φυσικής άσκησης και πολλών άλλων. Οι έξυπνες πόλεις, τα έξυπνα κτίρια και τα έξυπνα εργοστάσια βασίζονται στο διαδίκτυο των πραγμάτων και επιχειρήσεις συνεχώς δημιουργούν εφαρμογές του διαδικτύου των πραγμάτων. Ο Ιστός των Πραγμάτων είναι μια σχετικά καινούρια ίδεα. Δεν υπάρχει ένα γενικό πρωτόκολλο επικοινωνίας μεταξύ συσκευών και υπηρεσιών. Η διασύνδεση των Πραγμάτων συνήθως υποστηρίζεται από πρωτόκολλα συγκεκριμένα για κάθε συσκευή (π.χ. Bluetooth, ZigBee, etc.) αντί για HTTP απευθείας. Η προσέγγιση του Ιστού των Πραγμάτων της W3C και άλλων ερευνητών προτείνει ότι η διασύνδεση των Πραγμάτων δεν πρέπει να εξαρτάται από τις ιδιαιτερότητες των πρωτοκόλλων του Διαδικτύου των Πραγμάτων καθώς αυτό θα πρόσθετε ένα επιπλέον επίπεδο πολυπλοκότητας στην υλοποίηση. Ιδανικά, στην προσέγγιση του Ιστού των Πραγμάτων κάθε Πράγμα έχει μια IPv6 διεύθυνση και έχει εγκατεστημένο ένα σέρβερ. Αυτό όμως δεν είναι πάντα εφικτό, ειδικά στις συσκευές με περιορισμένους πόρους. Μια λύση σε αυτό το πρόβλημα είναι η χρήση ενός σέρβερ εκπροσώπου που θα κρατάει την ψηφιακή απεικόνιση του κάθε Πράγματος (π.χ. μια JSON απεικόνιση). Ο διαδικτυακός εκπρόσωπος υλοποιεί ένα ευρετήριο (π.χ. μια βάση δεδομένων) με όλα τα πράγματα (όπως τους τύπους τους, τις περιγραφές τους και τις υπηρεσίες που υποστηρίζουν). Τα πράγματα γίνονται μέρος του Παγκόσμιου Ιστού και ο Εκπρόσωπος παρέχει πρόσβαση σε αυτά (δηλαδή μπορούν να δημοσιευθούν, να ερωτηθούν, να αναβαθμιστούν και να αναζητηθούν). Υπηρεσίες που εκθέτονται από τα Πράγματα μπορούν να ανακαλυφθούν από χρήστες ή άλλες υπηρεσίες. Συνεπώς, οι περιγραφές των Πραγμάτων είναι πολύ συμαντικό κομμάτι οποιασδήποτε αρχιτεκτονικής που προορίζεται για τον Ιστό των Πραγμάτων ώστε η λειτουργικότητα των συσκευών να μπορεί να ανακαλυφθεί. Ο στόχος αυτής της δουλείας είναι ο σχεδιασμός και η υλοποίηση μιας υπηρεσίας εκπροσώπου (Nexus) για έκθεση Πραγμάτων / Εφαρμογών στο Παγκόσμιο Ιστό που αποσυνδέει τη διαχείριση του Πράγματος από τη λειτουργικότητά του. Το OpenAPI είναι μια γλώσσα περιγραφής που μπορεί να περιγράψει με ακρίβεια και πληρότητα τα Πράγματα και τις Εφαρμογές με ένα τρόπο κατανοητό και από ανθρώπους και από μηχανές. Στην προτεινόμενη αρχιτεκτονική θεωρούμε πως όλα τα Πράγματα και οι Εφαρμογές έχουν μια OpenAPI περιγραφή.http://creativecommons.org/licenses/by/4.0/Πολυτεχνείο Κρήτης::Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών ΥπολογιστώνPaterakis_Isidoros_Dip_2022.pdfChania [Greece]Library of TUC2022-12-27application/pdf2.6 MBfree Paterakis Isidoros Πατερακης Ισιδωρος Petrakis Evripidis Πετρακης Ευριπιδης Lagoudakis Michail Λαγουδακης Μιχαηλ Samoladas Vasilis Σαμολαδας Βασιλης Πολυτεχνείο Κρήτης Technical University of Crete Web of Things Internet of Things