The anatomy of an IoT solution: Three layers to success
The pace of new technology becoming available is coming at organisations fast – and it’s only going to get quicker. IT leaders are under pressure to not only get up to speed on what new technology is best for the business but to also ramp it up into operations.
In this data-driven age, innovation often means incorporating new technologies like blockchain, the Internet of Things (IoT) and machine learning. Specifically for IoT, McKinsey estimates that IoT could generate $11.1 trillion a year in economic value by 2025. This is motivating IT and business leaders to explore the potential of implementing IoT solutions into their business.
To successfully develop and deploy an IoT application, it’s important to establish the right architecture. This is imperative to outline because IoT solutions merge the physical world of Operations Technology (OT) with sensors, actuators and communication devices, and the digital world of Information Technology (IT) with data, analytics, workflows, and applications.
To help you structure your approach to developing an IoT solution, here is an outline of the different layors of technology needed for an IoT solution. The layers include physical options to software to innovative applications.
The three layers of IoT solutions
There is a level of commonality across use cases that can illustrate the anatomy of IoT solutions. Describing the anatomy in layers helps identify relevant services and technologies from IoT endpoints to IoT apps.
Layer 1: IoT endpoints
This layer covers the physical world and operational technology required to connect things and communicate:
- Actuators: control the physical or logical state of a product through signals they get from IoT apps or other systems, like opening a valve, or turning on a camera, motor or light on/off. This includes commands sent to embedded software e.g. to reboot or update configurations.
- Agents: Components that serve as intermediaries between IoT devices, and act as a bridge between the actuators and the cloud to decide what data to send and when. They can also process commands and updates coming from the cloud.
- Communication: For IoT device communication, the physical layer and communication protocols are distinguished. As far as the physical layer is concerned, gateways, mobile devices, mesh networks, and direct- or broadcast device communication are alternatives that may or may not be suitable depending on the use case. The choice for the physical layer will determine which communication protocols are most suitable (e.g. MQTT, COAP, HPPT(S), AMQP, ZigBee, Z-Wave, etc.)
- Edge computing device: A distributed architecture in which IoT data is processed at the edge of the network. Given how transmitting raw data over a network can put tremendous load on network resources, it is often much more efficient to process data near its source and send only the data that has value over the network to the cloud.
- Sensors: Collect and report data on the actual status of things to which they’re connected. Sensors monitor temperature, pressure, light, motion, location, etc.
- Things: The real endpoint for IoT is obviously the thing that should be connected, whether physical products like cars, or other ‘things’ like crops or livestock.
Layer 2: IoT software
The next layer, the (cloud) platform, brings essential IoT software services together to manage the IoT endpoints securely, represent the ‘digital twin’ of connected things, process and analyze data, and provide APIs to consume and expose services:
- Analytics / machine learning: Analytics services perform statistical analysis and apply machine learning to detect patterns on a device instance or class level for predictive maintenance, making recommendations, triggering engineering changes, etc.
- API management: provides openness on all layers in the IoT platform for device communication, data-, service-, and backend integration, and application development.
- Device management: Simplifies the process of configuring, provisioning, and operating the endpoint devices. It supports monitoring, testing, updating software, and troubleshooting connected devices.
- Digital twin management: For many IoT use cases, particularly in industrial IoT, it’s valuable to define a digital twin of the connected thing. This could be as simple as a 1:1 mapping of the physical things to logical identifiers in the IoT Platform, or as sophisticated as mapping an engineering view of an asset with a hierarchical structure of components / systems to the physical devices representing that asset on an instance and class level.
- Event and data processing: Event Processing deals with event streams coming from connected devices, filtering, and monitoring. In addition, services for data aggregation, data storage, and management are required.
- Security management: Ensures that IoT endpoints do not expose security threats due to the increased attack surface IoT creates. Security services should include (certificate-based) device attestation, network connectivity, software upgrades, authentication, identity and access management, and data loss prevention.
Layer 3: IoT apps
The final layer, the apps layer, is where IoT solutions are brought to life, turning complex data into actionable insights that can be harnessed by business users and customers. This is the layer where integrations with existing back-ends and 3rd party services are established and workflows are defined to act upon insight. Core services in the apps layer include:
- Deployment: Staged deployment to target environments and automated provisioning of application resources (web server, OS, database, file storage) helps DevOps engineers to efficiently manage IoT apps. Ideally, there’s flexibility to deploy on a cloud of choice—for instance, close to where core IoT services that the application uses are running.
- Integrated Development Environment (IDE): A design time environment is required to develop IoT apps. This could be a traditional IDE for coding in a specific language or a model-driven environment for collaborative, visual development of IoT apps. In addition, core services for software configuration management and branching & merging are needed for development teams to commit their work, and create builds and application packages. Finally, the IDE should guide developers to apply the right patterns and best practices for IoT app development.
- Integration: The lifeblood of IoT apps. Apps should have access to IoT endpoints (via the digital twin) for reading the full history of a ‘thing’ after receiving an alert, or triggering an actuator. They should be able to leverage various IoT software services (e.g. time series data and machine learning algorithms) and weave these services into IoT apps. Last but not least, integration with enterprise back-ends and 3rd party services is needed for managing workflows and making IoT apps contextual e.g. by creating a dashboard for a service engineer, enhanced with engineering and customer support data.
- Management: User management, application management, monitoring, and self-service options for horizontal / vertical scaling and configuring high-availability are important to manage IoT apps. Specifically, support for elasticity backed by a stateless application architecture is essential to deal with variable load and volume.
- Multi-channel apps: In today’s world of web and mobile apps, the IDE ideally supports development of cross-platform, responsive and multi-channel apps, optimized for specific form factors, using device features and supporting gestures with minimal overhead.
- Security: Like for the IoT platform layer, security on an app level is vital. This concerns both the application runtime environment and the security settings for the apps themselves (e.g. access and authentication).
- Testing: Testing and quality assurance are essential disciplines in IoT app development projects. Test automation on various levels (unit test, integration, functional test) helps minimize the test burden relative to (iterative) development cycles.
Breaking down the anatomy of an IoT application can help to harness the power and potential of IoT solutions. To determine how many of the elements and services are needed, it comes down to the type and level of sophistication of the IoT solution. Adopting platforms for the IoT software and IoT apps layer will significantly simplify the process of connecting, managing, getting insight from, and building apps for IoT-enabled products and services.
- » Building a mobility strategy: How to drive adoption
- » iOS 11 is coming: Start planning now to drive efficiencies and streamline operations
- » New study warns of management risks as enterprise mobile devices become more pervasive
- » Analysis: Microsoft showcases its AI leadership at London event
- » Microsoft moving EMS to Azure Portal helps company ‘blow past’ customer usage metrics