=== Practical Courses Framework : Get Started with YoIoT Gateway === Middleware are Software Enablers to develop, deploy and run software application on IoT architecture. Like explained, Iot Architecture distinguishes three main layers : * Iot Devices * Edge Equipments * Cloud Services This is kind of approach is sometimes called Fog approach, probably when //"Cloud is closed to the field"//. Generally : * used communication protocols by IoT devices are adapted to the constraints of the device (ex. LPWAN for Sensors because of low power consumption and 4G for the Connected car because of mobility ...). * Cloud approaches are mainly using classical distributed software approaches, so web services The key in an IoT architecture is then Edge Nodes. They are gateways when they only manage communication protocols, but they can also store, process data and provide new functionalities locally. The purpose is then to build a typical Gateway allowing like that {{ :cours:yoiot_typical_gateway.png?direct&600 |}} Main installation is then based on docker and [[https://nodered.org/docs/platforms/docker|Node-Red under Docker]]. For more explanation see sections here : == Docker Practice == //Docker is used to run software packages called "containers". Containers are isolated from each other and bundle their own application[8], tools, libraries and configuration files; they can communicate with each other through well-defined channels. All containers are run by a single operating system kernel and are thus more lightweight than virtual machines. Containers are created from "images" that specify their precise contents. Images are often created by combining and modifying standard images downloaded from public repositories.// [[https://docs.docker.com/|Get Docker and Get Started]] {{ :cours:nodered.png?direct&50|}} == Node-Red Practice == [[ https://nodered.org/|Node-Red Website]] Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette. Node-RED provides a browser-based flow editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single click. The light-weight runtime is built on Node.js, taking full advantage of its event-driven, non-blocking model. [[http://noderedguide.com/|Node-Red Programming Guide]] {{ :cours:docker.png?direct&50|}} === Exercices === ||| [[ https://arxiv.org/ftp/arxiv/papers/1611/1611.09193.pdf |What is a Fog Node? A Tutorial on Current Concepts towards a Common Definition Eva Marín Tordera, Xavi Masip-Bruin, Jordi García-Almiñana, Admela Jukan Guang-Jie Ren, Jiafeng Zhu, Josep Farré, Universitat Politècnica de Catalunya-Advanced Network Architectures Lab, UPC-CRAAX, Spain, Technische Universität Braunschweig, Germany, IBM, Almaden Research Center, USA, Huawei, Santa Clara, USA, Neàpolis Center, Spain.]] * Question : What is Fog comparing to Cloud, Edge and IoT Devices trilogy ? * Question : In the following schema, can you locate Fog ?