A common way to describe an IT architecture is to use abstraction layers. A layer hides away implementation details of a subsystem, allowing separation of concerns 1. In other words, a layer is only aware of its sub-layer (but without knowing the inner working details or further sub-layers) and does not know anything about layers above.
Many attempts have been made to model an IoT architecture using layers. Depending on what specific challenge a model tries to solve, the focus can be on different viewpoints, for example, functional features versus data processing.
In the following diagram I bring two common models together.
On the left we have the three layer functional model defined by the ETSI Standards group 2.
- The basis is sensors and physical devices
- A sensor has to send data over a network, which is the layer above the sensors
- Finally, data gets processed by some kind of application, the top layer
This model is mainly used in the context of machine-to-machine (M2M) communication.
In the middle model, we split data storage from the application layer.
On the right we reach the 7 layer model defined by the IoT World Forum 3.
- The network is further separated into a communcations and edge processing layer
- Data storage is divided into data accumulation (raw data storage) and data abstraction (data post-processing).
- Finally, the application layer is the basis for another layer of standardised collaboration and processes.
Another viewpoint is to look at where data is processed (credit to the excellent IoT fundamentals course available on O’Reilly4 which goes into more detail about models mentioned here): at cloud, fog or mist level5.
This introduces a different viewpoint focussing on data processing. At the mist level, data processing occurs right where sensors are located. The fog level lies below cloud where the infrastructure connects end devices with the central server. The cloud is the final destination.