System Architecture or Software Architecture for IoT is an evolving story as it covers heterogeneous devices and use cases from closed loop near real time process control, automotive to sporadic SmartCity pollution measurements and very dense urban deployment of Smartdevices for electric grid and street lighting etc.There are many proposed reference architecture for IoT. They vary by purpose ( Analytics Dash-boarding, Device management,M2M Standard bodies) and scope (Cloud or SmartCity).
Architecture is broadly about two ideas
- The components of a system that provide the function being delivered. This is a structural view and may involve many layers with each component have a similar blowup
- The interaction, protocols and evolution of the individual components in the usage of the system. This may also be a normative or presciptive specification using standards
The UML specifies component, package, deployment and interaction views among others.
IoT system components use constrained devices with much less functionality then computers. IEEE and other standards use many terms and this is a quick layman's intro to some of them. IoT Devices fall into Full Function Device (FFD) like a Linux based TV Set top box or CCTV device, Reduced Function Device (RFD) like a pollution sensor which does not do ISO layer 2 routing and Limited Function device(LFD) which are motes or smart dust of the wireless sensor network (WSN). IoT Lite-OS like Contiki run on micrcontrollers with full UDP stack under 32Kb of memory.
- Motes<ref>https://computer.howstuffworks.com/mote.htm</ref> are limited function devices (LFD) with sensors and/or actuators and very small memory (32 Kb ) and small compute capacity ( 8 or 16 bit micro controller) and may use energy harvesting techniques( Solar etc) or be passive (RFID) or be battery powered typically for a year or more.
- Gateway or Hubs
- These take part in packet routing and typically are Linux based devices. Android based smartphones are also emerging as a option. Hubs are used in mesh networks and route packets using same radio and protocols as they receive . 802.15.4based Zigbee and new Bluetooth 5 use mesh approach. Gateway typically connect to the Internet on one side(north side) and may connect to non internet based networks on the other (south ) side.
A vast range of methods and protocols are used to connect endpoints. The academic literature call them capillary networks and other terms like proximity networks or field networks and south side networks are also used. In this note we use the newer term IoTNetwork. Some examples of the over 200
- WiFi and extensions like HaLow
- IEEE 802.15.4 based Zigbee, 6LowPAN based Thread
- (Wireless HART)
- Cellular (M2M) covering 1G, 2G ,3G
- Middelware & Data Formats
The data formats range from fixed field records (Modbus) to XML style ( HTML, XMPP) over Rest API calls and binary JSON over MQTT.
A component tightly coupled with the gateway and managing south side IoTNetworks and devices and interfacing with north side Internet and cloud See IoTPlatform
IoT assume machine to machine communication (M2M). A variety of touchpoints from HTML pages, voice (Amazon Alexa), SMS , email, twitter and whatsApp based interaction, chatbots and API based machine interaction are expected.
- Server Applications
Typically in modern system the application provides a user interface (UI) over HTML or a front end Smartphone App. These require a micro-service based server side or user interface less applications. There are new concerns of authentication and authorization and security in this scenario and bots and devices must have thier own identity in the software. The concept of Digital Twin is emerging as a paradigm.
In the old non IoT world we have over 2 decades seen some experimentation from local single user or host based computing to client server , flirted with thin computing and the current dominance of web based. The web approach seems to be a good partioning between roles and capability with presentation being delgated to endpoint devices and server managing data and logic.
The IoT paradigm intially built on the web application concept ( Traditional IoT) but has splintered into variations.Terms are not standerdized but here is one representation.
- Autonomus drones inspecting the chimmeny of a steel plant or a robot checking a nuclear plant operate in hostile environment. They may work semi autonomously with no connectivty and a pre planned mission. This is "EndPoint Computing". When the gateway can host the application and complete the transaction we have an example of Edge computing.In these cases the local gateway and /or device can complete the application processing. Fog computing implies multiple places where computing happens and may be on gateway, on premise servers as well as cloud servers.
Broadly significant work is being taken away from cloud or back-end server application to IoTPlatforms or to gateways. Fog computing is being seen in many scenarios.
The telco world has long broken functionality and features as
Operations System Support covering the network provisioning and management and uptime support
- Business System Support covering billing etc
in IoT systems a similar differentiation has not yet become common and depending on purpose we see fluid intermixing of physical components, software functionality (Modules or sub systems) and horizontal concerns like security and trust.
Context in IoT
Infoq has a deep apporach to building context for intelligent devices
Anatomy of IoT
Jonas Berge focuses on Industrial IoT and interoperability and talks about a data diode controlling control plane and providing security.
Enterprise IoT Architecture
Naveen Balani at Accenture has proposed an Enterprise IoT Architecture
Eurotech Everywhere device cloud uses data aggregation layer
Functional IoT Architecture
- IBM Data Analytics has a niche architecture for IoT based analytics
IBM distinguishes by IoTNetwork ( proximity network) , Public Internet and Provider on premise network.
The Cosultancy Zinnov has a CXO level view of IoT Architecture
Eclipse 3 layer
Linux EdegeX Foundry for gateways .
The proposed edJe for constrained devices ( 32bit,32KB RAM,128KB Flash device) uses light weight virtual container approach. The Eclipse Jaxenter project is among a number of Open Source projects underway. They explcitly support WeMo Lifx, HomeKIt at Router, south bound field Protocol for devices, northbound Internet MQTT etc.
This trend sees IoTPlatform functionality of bridging several different networks migrating to the gateway and the cloud IoT platform like Amazon AWS and Microsft Azure can concentrate on Digital Twin based functionality.
A deployment oriented architecture from a multi vendor mix and match approach for SmartCity etc. Distinguishes application from touch-points and gateway less use cases where device connects directly to (cloud) application.
The many different use-cases with different requirements and constraints lead to many different way to slice and dice the system A nice visualization of options is provided by ExoSite
- Do not let the fog hide the clouds in the Internet of Things
- Fog Computing
- 2413-2019 - IEEE Approved Draft Standard for an Architectural Framework for the Internet of Things (IoT)
- Reference Architecture - Industrial Internet Consortium
- [https://www.etsi.org/technologies/internet-of-things ETSI IoT M2M Standards
- IoT Standards and Protocols
- India Enterprise Architecure IndEA
- Digital Twin