title: Flow-Based programming support with OpenAPI in the Web of Things

title: Υποστήριξη προγραμματισμού ροής στον Ιστό των Πραγμάτων με OpenAPI
Creators: name: Παπαδοπουλος Βασιλειος
Publisher: name: Technical University of Crete
Year: 2022

description: In the Internet of Things (IoT) people, devices and other physical objects are connected to a common network, providing services and exchanging data with one another. However, the IoT brings in complexities that stem from the fact that different protocols and standards coexist in the network, as the number of the connected Things increases. The Web of Things, or WoT, aims to extend the Internet of Things by eliminating the difficulty in communication and management of all different objects. In this paradigm, each resource exposes its functionalities as a Web service, therefore making Things a part of the web. Using standards such as REST, HTTP and URIs, the WoT concept attempts to deal with the fragmentation of technologies in the IoT and facilitate the interoperability between Things. In this work a system is proposed called Mashup of OpenAPI Nodes (MoON). MoON suggests a way of overcoming the difficulties in communication and compatibility utilizing OpenAPI. Using the OpenAPI Specification (OAS), Things in a WoT or IoT architecture can be described in detail and become readable and accessible by both humans and other Things. Due to the fact that every Thing is described according to the OAS, a uniform representation for all Things is achieved. Furthermore, in order to combine Things in a way that allows application composition, an efficient platform that will utilize the OpenAPI descriptions is necessary. MoON includes a mashup service for a Web of Things environment. Mashup is defined as a way to compose a new service from existing services. In this architecture, every object is described using OpenAPI. The result is an application that consists of a set of objects. A mechanism is introduced to generate OpenAPI descriptions for the produced applications, containing information about all Things that comprise them. The application creation process is based on Flow Based Programming tools, such as Node-RED. The generated OpenAPI Description of the applications adds additional flexibility in the application creation process, since all services, things and applications are uniformly represented using OAS and, additionally, they can be combined in any meaningful way to form new applications. This description can, also, be an input to a more complex application of a bigger scale. For instance, a smart neighbourhood’s OpenAPI can be a part of a smart city application. The process is facilitated by incorporating the visual representation and code generation tool of OpenAPI with those of a flow programming engine (i.e Node Red).
description: Στο Διαδίκτυο των Πραγμάτων (ΔτΠ) οι άνθρωποι, οι συσκευές και άλλα αντικείμενα, είναι συνδεδεμένα σε ένα κοινό δίκτυο, παρέχοντας υπηρεσίες και ανταλλάσσοντας δεδομένα μεταξύ τους. Το ΔτΠ, επιφέρει πολυπλοκότητα, η οποία προκύπτει από τα διάφορα πρωτόκολλα και τους τρόπους επικοινωνίας, καθώς ο αριθμός των συνδεδεμένων συσκευών αυξάνεται. Ο Ιστός των Πραγμάτων (ΙτΠ), επεκτείνει το Διαδίκτυο των Πραγμάτων, εκμηδενίζοντας τις δυσκολίες όσον αφορά την επικοινωνία των συσκευών και τη διαχείριση των διαφόρων αντικειμένων. Σε αυτό το μοντέλο, οι πόροι αποκαλύπτουν τις ιδιότητές τους ως υπηρεσίες ιστού, ενσωματώνοντας, έτσι, τα Πράγματα στον ιστό. Χρησιμοποιώντας τεχνολογίες όπως REST, HTTP και URIs, ο Ιστός των Πραγμάτων στοχεύει στην αντιμετώπιση της ετερογένειας του Διαδικτύου των Πραγμάτων και στην διευκόλυνση της διαλειτουργικότητας. Η συγκεκριμένη εργασία, προτείνει ένα σύστημα που ονομάζεται Mashup of OpenAPI Nodes (MoON). Το MoON παρουσιάζει έναν τρόπο να ξεπεραστούν οι δυσκολίες που αφορούν την επικοινωνία και τη συμβατότητα αξιοποιώντας το OpenAPI. Χρησιμοποιώντας το OpenAPI Specification (OAS), τα πράγματα μίας αρχιτεκτονικής ΔτΠ ή ΙτΠ, μπορούν να περιγραφούν λεπτομερώς και εξασφαλίζεται η κατανόηση και η αλληλεπίδραση τόσο από ανθρώπους, όσο και από άλλα Πράγματα. Εξαιτίας του γεγονότος ότι κάθε Πράγμα περιγράφεται σύμφωνα με το OAS , μπορεί να επιτευχθεί ομοιομορφία κατά την αναπαράστασή τους. Προκύπτει, ακόμα, η ανάγκη για μία αποτελεσματική πλατφόρμα, στην οποία αξιοποιούνται οι περιγραφές OpenAPI για το συνδυασμό Πραγμάτων με τέτοιο τρόπο ώστε να συνθέτονται εφαρμογές. Στην παρούσα εργασία, παρουσιάζεται μια αρχιτεκτονική ενός συστήματος σύνθεσης εφαρμογών στο περιβάλλον του Ιστού των Πραγμάτων. Ως σύνθεση εφαρμογών ορίζεται η διαδικασία κατά την οποία ο συνδυασμός υπαρχόντων αντικειμένων ή υπηρεσιών (Πραγμάτων), έχει ως αποτέλεσμα τη δημιουργία νέων. Στη συγκεκριμμένη αρχιτεκτονική, κάθε Πράγμα συνοδεύεται απο την αντίστοιχη περιγραφή OpenAPI. Το αποτέλεσμα της διαδικασίας αυτής είναι μια εφαρμογή η οποία αποτελείται από ένα σύνολο αντικειμένων. Επιπρόσθετα, παρουσιάζεται ένας μηχανισμός, με τον ποίο
μπορεί να παραχθεί περιγραφή OpenAPI για κάθε νέα εφαρμογή που συντίθεται και περιέχει πληροφορία που αφορά όλα τα Πράγματα που την αποτελούν. Η σύνθεση εφαρμογών βασίζεται σε εργαλεία Προγραμματισμού Ροής, όπως το Node-RED. Η παραγόμενη περιγραφή OpenAPI των εφαρμογών έχει στόχο την αύξηση της ευελιξίας δημιουργίας τους και την κατανόηση της λειτουργεικότητας τους, μέσω των διαφόρων εργαλείων που παρέχει το OpenAPI. Η περιγραφή αυτή μπορεί, επίσης, να χρησιμοποιηθεί ως είσοδος και να αποτελέσει ένα μέρος μίας πιο σύνθετης εφαρμογής μεγαλύτερης κλίμακας. Για παράδειγμα, η περιγραφή OpenAPI μίας έξυπνης γειτονιάς μπορεί να είναι μέρος μίας εφαρμογής που αφορά την έξυπνη πόλη.