What this book covers
Chapter 1, IoT and Edge Computing Definition and Use Cases. We begin this book with an overall understanding of the IoT and edge market and separate hype from reality. We define IoT and edge computing and then uncover various use cases for enterprise, commercial, and industrial IoT solutions. We end the chapter with a case study to provide a full system architectural understanding and breakdown of a typical IoT system, from hardware to software to cloud.
Chapter 2, IoT Architecture and Core IoT Modules. This chapter provides a high-level view and the breadth of the components and interconnects required to build an IoT or edge system. It will illustrate how the various components are interconnected and what roles they play. Additionally, this chapter will uncover how IoT deployments should be modeled from a value and monetization point of view.
Chapter 3, Sensors, Endpoints, and Power Systems. Data begins its journey in IoT and edge computing at the sensors and physical devices. Here, we teach the various types of sensors and the physics that govern their abilities. We will show how sensors capture data and images and how they are powered when constant power sources are not available.
Chapter 4, Communications and Information Theory. To understand many of the constraints and capabilities of wireless communication, we begin with the theory of communication and wireless radio signaling. We explore concepts such as path loss, RF interference, the Shannon-Hartley theorem, and bit-rate limits. We also look at RF spectrum governance and distribution.
Chapter 5, Non-IP Based WPAN. Personal area networks include devices and systems that are near-range and have short distances between transmitters and receivers. This chapter goes into the breadth and depth of various protocols such as Bluetooth 5.1, Bluetooth beaconing, direction-finding technologies, and Bluetooth 5.0 mesh networking. We also explore other 802.15.4 protocols such as Zigbee and end with a treatment of Z-Wave.
Chapter 6, IP-Based WPAN and WLAN. This chapter explores the use of TCP/IP-based communication for near-range and long-range communication. We explore architectures such as 6LoWPAN, Thread, and various 802.11 Wi-Fi protocols such as 802.11ac, 802.11p, and 802.11ah.
Chapter 7, Long-Range Communication Systems and Protocols (WAN). Long-range communication is a prerequisite for moving data from the remote edge to where data centers, customers, and consumers are located. This chapter presents a thorough knowledge of long-range protocols, including the 4G LTE cellular and the new 5G cellular standards. We also explore alternative long-rang technologies such as CBRS, LoRa, Sigfox, and Multefire. We dive deep into how the technologies work and the features they offer in building a system.
Chapter 8, Edge Computing. This chapter analyzes the hardware and software components needed to build edge-level computing infrastructures. This includes a deep understanding of hardware resources: processor architecture, memory, storage, physical enclosures, environmental hardening, and interconnects. It also examines software frameworks, operating systems, and middleware. Additionally, we study the use of virtualization and containers for edge management (including examples of Microsoft Azure IoT Edge).
Chapter 9, Edge Routing and Networking. A common use of an edge system is to provide gateway, routing, and network security functions. This chapter teaches the methods of PAN-to-WAN bridging, cellular gateway functions, routing and traffic shaping, as well as security aspects such as software-defined networking and VPNs.
Chapter 10, Edge to Cloud Protocols. This chapter explores the various methods and features of edge to cloud protocols over wide area networks such as MQTT 5, CoAP, AMQP, and HTTP as standard methods for data transport.
Chapter 11, Cloud and Fog Topologies. There are many ways to architect and partition a problem between cloud systems and edge systems. This chapter presents the reader with various edge frameworks such as EdgeX and OpenFog, as well as lambda architectures, to build a more robust system.
Chapter 12, Data Analytics and Machine Learning in the Cloud and Edge. This chapter provides the architect with an understanding of how to extract meaningful data from sensors and IoT systems. Data without understanding is useless. Here, we explore edge and cloud-based analytics using rules engines, statistical analysis, and various artificial intelligence and machine learning techniques. We explore where the correct analytics apply to the problem and dive deep into the mechanics of these tools.
Chapter 13, IoT and Edge Security. Security is paramount to a robust enterprise and industrial IoT and edge solution. We examine security from a holistic point of view in this chapter. We look at physical, network, and data security from sensor to cloud.
Chapter 14, Consortiums and Communities. Industry consortiums and professional societies provide many of the standards and guidelines that are necessary to bridge IoT and edge systems together. This chapter captures many relevant industry groups to consider following and joining when designing a system. We also present a list of recommended and commercially deployed sensor, hardware, and software systems that have proven to meet the requirements of commercial, enterprise, and industrial IoT.
To get the most out of this book
This book includes various degrees of technical depth and breadth. While you may have significant experience in one or more areas, perhaps you have gaps in others. Don't be discouraged. The book attempts to provide overviews of technologies as well as go technically deep in areas that may be relevant.
We carefully selected areas to go significantly deep in. These areas are aspects of IoT and edge systems that have been problematic and prone to design challenges that necessitate a good deal of depth and understanding.
While it is fine to read the book from cover to cover, you can skip between various chapters. There is little dependency on order.
Understand that the book moves from sensors to near-range communication to long-range communication. It then migrates to edge and cloud systems. We attempt to emulate how data moves along the path from sensor to cloud.
Download the color images
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://static.packt-cdn.com/downloads/9781839214806_ColorImages.pdf.
Conventions used
There are a number of text conventions used throughout this book.
CodeInText
: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. For example: "Simply sending a GET
request to /.well-known/core
will disclose a list of known resources on the device."
A block of code is set as follows:
def set_content(self, content):
#Apply padding
self.content = content
while len(self.content) <= 1024:
self.content = self.content + b"0123456789\n"
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
def set_content(self, content):
#Apply padding
self.content = content
while len(self.content) <= 1024:
self.content = self.content + b"0123456789\n"
Any command-line input or output is written as follows:
$ openstack server create --image 8a9a114e-71e1-aa7e-4181-92cc41c72721 \
--flavor 1 --hint query='[">=","$vcpus_used",16]' IoT_16
Bold: Indicates a new term, an important word, or words that you see on screen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "The protocol is unique as it is first tailored for machine-to-machine (M2M) communication between edge nodes."
Screen Text: Indicates text that appears on a screen.
Warnings or important notes appear like this.
Tips and tricks appear like this.