The Internet of Things (IoT) is a paradigm shift. With computers growing from workstations to powerful cloud systems capable of performing huge operations, the IoT has given to such systems the feeling of the physical world. Attaching sensors to a computing system that, in turn, may actuate on devices (that is, changing the world’s physical state) facilitated the creation of complex systems that are widely used in daily life. Examples of pervasive IoT systems include applications related to building automation and climatization; complex supply and production chains, for example, Industry 4.0 (the so-called Industrial IoT); and medical devices.
However, designing such systems is complex. As they can affect the environment and our lives (think about a compromised IoT sensor in a electricity distribution grid), understanding their concepts and design is crucial for any stakeholder, from the architect to the system operator. Securing such systems is also crucial. IoT systems are usually unattended, and thus basic security operations such as patching, rebooting, and detecting intrusions are cumbersome and error prone. Most security attacks on IoT exploit such weaknesses (see, for example, the Mirai malware). The author thoroughly presents the security aspect.
IoT also defines a new computing paradigm, that is, a shift from the common client-server to the elasticity that typical cloud environments provide. Industry users can install sensors and actuators on a controlled network that can be segmented and segregated, but also fully exploits 4G and 5G connections directly to a cloud. In this case, several design patterns exist: edge computing and fog computing. It is also worth noting that sending sensor readings to such a big and potentially infinite space as the cloud dramatically enhances the way artificial intelligence (AI) works. By using adaptors, cloud functions, or simply processors, data can be classified into a meaningful set to be used to train and exploit artificial neural networks, enabling the creation of applications whose scope is not yet fully exploited. Understanding all the possible implications of one design with respect to another is discussed in several chapters.
But the success of IoT applications strongly depends on how the data is sent and understood. It is important to define syntactic and semantic interoperability, including the data model. Defining the right transport protocol in relation to the functionalities (MQTT, CoAP, and so on), data format (JSON, CSV), and quality of the measures and their units is a task that each IoT system architect has to take into account. Unfortunately, there is no standard yet that fits all these needs. They are both horizontal (like WoT, Haystack) and vertical for each domain (for example, Continua Alliance). Data modeling and interoperability are also well described.
The book gives a comprehensive overview of IoT systems that includes such aspects as security, privacy, data models, interoperability, and protocols, and ends with a real-world example: a personal office energy monitor. It is a must-read for practitioners in the field who want a bigger picture, as well as anyone who wants to enter the field of IoT and understand its concepts and implications.