IoT is a big mess… or is it?
Whether you call it IoT, AIoT, OT+IT, Industrial Metaverse or anything else, it is a complex landscape we are evolving into, no doubt about it. But is it really a big random mess?
I have spent most of my 20+ years’ career in this wide landscape spanning from Embedded devices all the way up to Cloud IoT platforms, wearing various hats that always allowed me to dive deep into its various technologies. I like to believe that I am a seasoned IoT generalist (even though the imposter syndrome kicks in from time to time), but I still feel like I have only been scratching the surface of IoT as every single day I discover something new (and exciting) about it. And usually it’s not just something new, it’s something that promises to “transform the IoT landscape”.
At the risk of starting a never-ending debate, I’d like to make the following statement:
“IoT is not a big mess, but rather it's like the universe: an ever-expanding organized chaos.”
Let me explain.
To start with (and as for each article out there trying to discuss IoT) and especially if you are new to this, here is a short definition of what this IoT landscape is about: The Internet of Things (IoT) is a term that encompasses a vast and diverse range of technologies, applications, and use cases. From smart home devices to industrial automation, from wearable sensors to autonomous vehicles, from environmental monitoring to healthcare, IoT promises to connect everything and everyone in a seamless and intelligent way.
The IoT landscape: a complex puzzle
If you are new to the IoT field, or even if you are an experienced developer or engineer, you might feel overwhelmed by the sheer number of options and choices that you must make when designing, developing, deploying, and maintaining an IoT solution. The IoT landscape is not a monolithic or standardized domain, but rather a dynamic and heterogeneous collection of technologies that evolves rapidly and constantly.
Some of the aspects that you must consider when working with IoT are:
Embedded devices technologies: This includes the hardware components (chips, modules, boards, etc.) that enable the physical devices to sense, actuate, communicate, and compute. Depending on your application requirements, you might need to choose between different architectures (ARM, x86, RISC-V, etc.), form factors (SOMs, SBCs, MCUs, etc.), operating systems (Linux, RTOS, bare metal, etc.), and development environments.
IoT devices connectivity: This refers to the wireless or wired technologies that allow the devices to connect to each other and to the internet. Depending on your application requirements, you might need to choose between different protocols (Wi-Fi, Bluetooth, Zigbee, LoRaWAN, NB-IoT, etc.), standards (IEEE 802.11, IEEE 802.15.4, 3GPP, etc.), frequencies (2.4 GHz, 5 GHz, sub-GHz, etc.), topologies (star, mesh, point-to-point, etc.), and more.
Communication protocols: This relates to the data formats and rules that govern the exchange of information between the devices and the cloud or edge platforms. Depending on your application requirements, you might need to choose between different protocols (MQTT, CoAP, HTTP, AMQP, etc.), data models (JSON, XML, CBOR, etc.), security mechanisms (TLS, DTLS, PSK, etc.), and quality of service levels (QoS 0, QoS 1, QoS 2, etc.).
IoT data normalization: This involves the process of transforming the raw data collected by the devices into a common and consistent format that can be easily consumed by the cloud or edge platforms. Depending on your application requirements, you might need to choose between different techniques (data cleaning, data validation, data conversion, data aggregation, etc.), tools (Node-RED, Apache NiFi, AWS IoT Core, etc.), standards (OMA LwM2M, oneM2M, Open Connectivity Foundation, etc.), and where the normalization happens (Cloud, Edge, both).
Edge compute: This refers to the ability to perform data processing and analytics at the edge of the network, closer to the devices, instead of sending all the data to the cloud. Depending on your application requirements, you might need to choose between different architectures (fog computing, cloudlet computing, mist computing, etc.), platforms (AWS Greengrass, Azure IoT Edge, Google Cloud IoT Edge, etc.), frameworks (TensorFlow Lite, PyTorch Mobile, OpenVINO Toolkit, etc.), and use cases (data filtering, data compression, data fusion, machine learning inference, etc.).
IoT cloud platforms: This encompasses the services and solutions that provide scalable and secure cloud infrastructure for IoT applications. Depending on your application requirements, you might need to choose between different providers (AWS IoT Services, Azure IoT Services, Google Cloud IoT Services, etc.), features (device management, device provisioning, device authentication, device configuration, device monitoring, device diagnostics, device updates, etc.), integrations (databases, analytics, machine learning, serverless, streaming, visualization, etc.), and pricing models (pay-as-you-go, subscription, freemium, etc.).
Digital twins: This refers to the virtual representations of physical devices or systems that mirror their state and behavior in real time. Depending on your application requirements, you might need to choose between different concepts (device twins, asset twins, system twins, process twins, etc.), technologies (graph databases, semantic web, ontologies, etc.), and applications (simulation, optimization, prediction, visualization, etc.).
The Industrial Metaverse: This is an emerging concept that envisions a shared and immersive digital space that connects the physical and virtual worlds, enabling new forms of collaboration, innovation, and value creation. Depending on your application requirements, you might need to choose between different platforms (Microsoft Mesh, Facebook Horizon, Spatial, etc.), devices (HoloLens, Oculus Quest, Magic Leap, etc.), and scenarios (remote assistance, virtual training, digital twins visualization, etc.).
And these are only some of the many puzzle pieces you need to assemble to implement an IoT solution.
The Chaos Theory applies to IoT
The Chaos Theory suggests that within the apparent randomness of chaotic systems, which the IoT landscape qualifies as based on the above, there are underlying patterns, feedback loops, self-organization, and attractors that can emerge and influence the behavior of the system.
IoT is a collection of enabler technologies allowing businesses to digitally transform, optimize processes, and at the end of the day create value. I would even dare say that IoT has become the backbone of the digital transformation that many if not most businesses are going through by necessity to survive in tomorrow’s world. And because there is such a need to digitally transform rapidly, there are many technologies that are being developed, often addressing similar problem spaces. And this proliferation of technology does generate this apparent IoT chaos.
But at the same time, there definitively are patterns and attractors that define themselves. Here are some examples:
Most IoT platforms out there have now embraced MQTT as the de facto low-level protocol for IoT devices communication allowing a simplified integration of devices from various manufactures and aggregation of their data.
The development of Matter is helping the integration between various home and building automation solutions that used to be developed as walled gardens.
We are seeing a common architecture pattern in most IoT solutions: Device-Edge-Cloud Platform-Business apps. This allows the use of similar technologies across industries. For example, the same containers technologies are used to distribute workloads at the Edge in Manufacturing, Retail or Healthcare scenarios.
The tools, languages, OSs, frameworks used to build code for devices are evolving to democratize device development, making it more accessible to all kinds of developers from various backgrounds
We are seeing data normalization solutions appear both at the Edge and in the Cloud, addressing the need to make sense of data coming from various types of devices exposing their data in different formats.
At the end of the day, IoT collection of technologies can and will fall into place if we can identify and embrace the patterns and attractors, even though things look chaotic to begin with and much works needs to be done to address areas that are still complex and problematic.
We are the ones overcomplicating things and most often the simpler solution is the right one
The key words in each of the aspects to consider when working with IoT listed above is “Depending on your application requirements” and this is important for my following argument.
I have seen IoT projects fail right out of the gates way too often because they were trying to do too much too soon or were using the wrong technologies or architectures. The temptation to jump on the bright new object and to drink the Kool-Aid and adopt yet another new IoT platform is hard to resist. The typical problems customers face when implementing an IoT solution are scalability and security. They pick the wrong level of complexity, over-think, try and solve problems they don’t have and forget to focus on why they are doing it. Let me use one of my friend’s quote here:
“The complexity of IoT is the enemy of security and scalability. Keep it simple.” – Rob Tiffany
When deciding to implement an IoT solution, you need to be very clear on what you are trying to achieve and sharply define what your “application requirements” are. If you do this work correctly, then the choices you will make in picking the right hardware, the right embedded OS, the right communication technology, the right Cloud platform… will be simpler and the risk of not achieving your goal will be lower. If you “just” need to remotely monitor the temperature of a single industrial oven, you might not need an IoT platform at all. If you “just” need to track your fleet of golf carts on your campus, there might be some turn-key solution you can subscribe to, and you don’t need to rebuild the whole thing yourself. If you “just” need to implement predictive maintenance on a conveyer belt, you might not need 5 separate smart cameras and a rack of servers to run inferencing on high definition 120 fps video feed while a couple vibration sensors with an Edge Impulse model running on a simple device might do the job.
The IoT landscape: a rich opportunity and a rich ecosystem
As you can see, the IoT landscape is indeed a big mess… or is it? While it might seem daunting and confusing at first glance, it is also a comprehensive and rich collection of technologies that offers endless possibilities and opportunities for innovation and value creation.
The IoT landscape is not a static or fixed domain, but rather a dynamic and evolving one that adapts to the changing needs and challenges of the real world.
The IoT landscape is not a closed or isolated domain, but rather an open and interconnected one that leverages the synergies and complementarities of different technologies and domains.
The IoT landscape is not a problem to be solved, but rather a puzzle to be explored.
The IoT landscape is not a mess to be avoided, but rather an opportunity to be seized.
The IoT landscape is not a barrier to overcome, but rather a frontier to be pushed.
The IoT landscape is an ever-expanding organized chaos.
But fear not as you are not alone to navigate this organized chaos. There is an entire ecosystem of experts, integrators, solution vendors, platform and services providers out there, ready to help you!