IoT Architecture - Essential Elements
Updated: Jul 7, 2020

Image by Gerd Altmann from Pixabay
Internet of Things (IoT) architecture refers to the structure of an IoT system that comprises of various components and services and their inter-relationships to satisfy functional and non-functional requirements. IoT essentially involves sensors that gather information from objects and equipment which is then aggregated in field gateways and transmitted over the air to backend services. These services ingest this data, act on it and extract meaning out of it. Such inferences help organizations take decisions to improve operational efficiency, cost optimization and process improvements.
Data Flow
If I begin to make a visual representation of this story, it looks something like this:

As depicted above, the Capture phase is where the data from devices is acquired by the gateway and streamed to an IoT platform. This platform which encapsulates the four phases of Process, Store, Analyze and Visualize.
Once the stream data is ingested through a message bus onto the platform, it goes through stream analytics for any hot path processing. This data is eventually stored in a database, RDBMS or a NoSQL datastore based on data structure or the lack of it. This data finally rests in some data lake or a Big Data store where advanced analytics can be performed for deriving meaningful inferences. The processed data is then shared across apps, portals and other external systems for further consumption.
All in all, an IoT platform is essentially a device management and a data processing platform with features that creates a Smart ecosystem.
Functional Architecture
Now, let’s dive a little deeper to understand all the functions needed to design an Enterprise grade IoT Solution. Below is a detailed functional IoT architecture which is technology agnostic.

In my view, most of the IoT solutions that exist in the enterprise world today are variations of this basic architecture. Let’s go through each function in a bit of detail:
Architecture Components
IoT Gateway - is a point of aggregation for all data that comes from connected devices. These field gateways not only receive data from devices, they also filter, aggregate and perform edge analytics near the data source. IoT Edge offers benefits like low latency compute and storage, reduced network bandwidth consumption, offline or limited availability and machine learning inference.
Connectivity - includes all communication technologies like Wifi, Cellular, NB-IoT, BLE etc. It also refers to communication mechanisms like bi-directional communication, asynchronous method, push/pull etc.
Data Ingestion - has at its core a data broker, generally an MQTT broker that is capable of ingesting high velocity data streams. It also encapsulates a Things shadow or Device Twin which is a virtual representation of a physical device.
Stream Processing - involves receiving data from message broker, normalizing the data and then applying certain stream analytics rules like threshold check and windowing functions to identify alarming situations and raise notifications.
Data Storage - is used to persist device telemetry data, events and alarms, device metadata and application logs. It may also include software/firmware upgrade files in some kind of file storage. Most often, the device data is generally moved to a data lake either in cloud or on-premises.
Business Services - are crux of business domain logic including services like weather service, location service, parking service, water flow service, etc. These are generally implemented as microservices using a platform provided framework.
Platform services - encompass core services that all kinds of IoT solutions need. These are mostly related to Device Management like Device Provisioning, Device Health, Command and Control and Software/Firmware upgrades.
Data Analytics - here refers to cold path analytics on the data when it's at rest in the database. Depending on the need, there can be simply analytics functions or more advanced algorithms like those of Machine Learning or Artificial Intelligence.
Shared Services - are common services needed by any enterprise software systems like secure key management, log analytics and notifications. These are some examples but there could be more depending on the IoT system being built.
Marketplace - is a self serve concept. It may not be needed in all implementations but I have observed that lately a lot of organizations have it in their roadmap. It's like an app store with a common core platform and multiple solutions available as independent deployment units for customers to purchase and provision. Some of the functions needed to implement a marketplace are catalog management, subscription management, billing and payment etc.
Enterprise/External Integration - includes technologies needed to integrate with, well, enterprise and external systems. Typically, it includes API gateways, service bus and custom connectors for specific systems like SAP, ERP, Salesforce etc. Sometimes email and sms integration may be required for some systems.
Visualization - refers to an Operational Dashboard and Admin Portal to view the health of devices, display events and alarms from devices and also analytics on telemetry data in near real time. Software/firmware upgrade of devices can be accomplished from Admin Portal as well. It also includes a Business dashboard to display key performance indicators for the connected system. Third party mobile and Augmented Reality/Virtual Reality apps also enhance the user interaction with the solution.
Conclusion
There are as many types of IoT architectures as there are problems to be solved. The generic reference architecture presented here is kind of a super set of a lot of functions that are needed in most of the IoT solutions. Further, the non-functional requirements also govern the choice of the components picked to architect the most optimal solution architecture.
What is the kind of architecture you have built to design and define IoT solutions?