What is Cumulocity IoT?
Cumulocity IoT is a Software AG product that connects and manages your devices and assets efficiently and can control them remotely.
Before exploring the Cumulocity product any further, let’s understand IoT: The Internet of Things (IoT) refers to a system of interrelated, internet-connected devices/sensors/actuators capable of collecting and transmitting data over a wireless network and also receiving the instructions wirelessly.
Figure A is an example of an IoT flow:
- A temperature sensor detects heat and reads the temperature of its surroundings.
- A device sends the detected temperature to the Control Center.
- The Control Center receives this data and runs it through logic to decide on the operation to be executed.
- As the Control Center identifies that the temperature is above the threshold and a necessary action/operation is required, the command is sent to the Actuator. In the example below, the “turn on the sprinkler” command is sent to the Actuator.
- The Actuator (IoT) receives this command from the Control Center and executes the sprinkler system to turn it ON.
As we saw in the example above, the Control Center plays a vital role in a typical IoT flow. This is where devices’ data is received, processed, and necessary instructions (data) are sent to the devices. The control center also acts like a single-window where we can manage/control all the connected devices.
Cumulocity IoT – A Control Center
The above diagram is a typical flow of IoT connectivity; Software AG’s Cumulocity primarily addresses the Control Center’s functionality.
Cumulocity provides a robust independent device and application management IoT platform. It connects and manages devices and assets efficiently and controls them remotely.
The advantages of Cumulocity IoT are:
- It can connect to the devices and assets over any network/protocol.
- Monitor for the conditions and generate real-time analytics.
- It can react immediately to conditions or situations.
Cumulocity IoT – Domain Model
To manage and control IoT systems through the platform, Cumulocity provides a domain model. The domain model comprises of the following –
- The inventory stores all master data related to a device, such as their configuration and connections. It also contains all related assets (like vehicles, machines, buildings) and their structure.
- Measurements contain numerical data produced by sensors (like temperature readings) or calculated data based on devices’ information (service availability of a device). We can say the measurements are like inputs into the Cumulocity IoT.
- Events contain other real-time information from the sensor network, such as the triggering of a door sensor. Events can also be alarms. The system user or operator may have to take action to resolve the alarm (like a power outage). Also, security-related events are shown as audit logs.
- Operations relate to data that is sent to devices for execution or processing, such as switching a relay in a power meter or sending credit to a vending machine. We can say the operations are like outputs from the Cumulocity IoT.
This model to example the following functionality:
- Central representation of IoT devices, networks, and assets in the inventory – stores devices and assets as business objects/managed objects with their metadata.
- Device Configuration – Use to configure and updates devices
- Reading of sensors – measures the values read by the IoT devices
- Control Manipulation – manipulates the data and processes it through the business logic while taking the necessary actions like issuing a command to the device.
- Real-time Events Handling – All events are captured, streamed, analyzed, and processed in real-time
Cumulocity IoT – Interfacing Devices
When connecting to the various devices and sensors (irrespective of manufacturers), Cumulocity IoT provides agents to an interface.
Below is the sample workflow for sending operations to devices
- The application creates the operation in Cumulocity IoT. Cumulocity IoT then queues the execution operation and returns control to the application immediately.
- The agent responsible for the device will receive the operations that are queued. The agent will execute the functions on the devices that it manages
- The agent updates the Cumulocity IoT with the results of the execution.
- Finally, the application can query the results of the operation.
Cumulocity IoT – Agent architecture
We see that the Cumulocity IoT platform decouples agents from connecting to underlying devices and sensors from the flow above. It achieves this connectivity through:
Device-side agents and Server-side agents
Device-side agents run on devices in the sensor network. These agents perform any run-time environment the device supports. The agents will directly query connected sensors and manipulate connected controls. These agents form a simple architecture for the IoT flow and fewer maintenance efforts as the agents are decoupled and maintained at the source devices themselves. Agents which can be embedded into PCB close to the sensors are termed to be device-side agents.
Server-side agents run on the cloud, hosted on Cumulocity IoT as microservices. Devices are connected to server-side agents using a device-specific protocol. This option is used only when the device is “closed”, i.e., it is not programmable and supports only one particular, predefined protocol to communicate with the outside world.
Let’s dive into why Agents were introduced and their role in the Cumulocity IoT platform’s connectivity.
Machine-to-machine (M2M) devices and sensors come with various protocols, parameters, and network connectivity options for connecting to the network. Machine-to-machine applications -that need the measurements from these devices should be communicating with protocol/parameters/options as enforced by the devices. This approach would tightly bind the devices with the applications.
To make the applications and devices loosely coupled and shield machine-to-machine applications from the number of access options, Cumulocity IoT uses agents.
The main function of agents is to translate the device-specific interface protocol into a single reference protocol. The agent will convert these messages into the protocol that Cumulocity IoT requires. Cumulocity IoT uses a secure and straightforward reference protocol based on REST (i.e. HTTPS) and JSON, which can be used for various programming environments down to small embedded systems. The other function that agent play is to translate the specific domain model into a reference domain model. An agent for a particular device will transform this device-specific model to the Cumulocity IoT reference model. For example, an electricity meter provides the main reading as a parameter “Received Wh”, so the agent will transform this reading into a reference “Total active energy” in kWh.
Devices can also provide a protocol that is unsuitable for secure remote communication. The protocol only supports local networking and does not pass through firewalls and proxies, and it can contain sensitive data in clear text form. To avoid security issues like these, an agent can be co-located to the device and provide a secure, internet-enabled link to the remote device via Cumulocity IoT.
Cumulocity IoT – Applications
While understanding agents’ roles, we reference applications for accessing, viewing, controlling the devices, and issuing commands. Cumulocity gives us the flexibility to build our own IoT applications.
Cumulocity applications can be of two forms; web applications and microservices.
The Web applications are HTML5 single-page applications that appear in the Cumulocity IoT application switcher and are hosted in the Cumulocity IoT platform.
The Microservices are Docker containers hosted by Cumulocity IoT and exposed as a REST API. Cumulocity IoT provides the hosting of the microservice. This way, developers can focus on business logic and leave scaling, security, high availability, and monitoring to Cumulocity IoT(Figure F). Microservices can be built on top of the API exposed by the Cumulocity IoT platform.
Cumulocity IoT is a configuration and management tool to monitor and control a wide range of IoT devices. It also provides the flexibility to build custom applications. Cumulocity is complete for IoT management products, which can easily scale to meet future organizational needs.