To interface the IoT devices or other related data sources to the Private Cloud implementation of Agent as a software “driver” is required. Agents are software components that enable a centralized perspective on all aspects of the IoT network and central operation of the IoT network.
The Web of Things (WoT) is a term used to describe approaches, software architectural styles and programming patterns that allow real-world objects to be part of the World Wide Web. Similarly to what the Web (Application Layer) is to the Internet (Network Layer), the Web of Things provides an Application Layer that simplifies the creation of Internet of Things applications.
Web of Things relies exclusively on application-level protocols and tools (OSI layer 7). Mapping any device into a Web mindset makes the Web of Things agnostic to the physical and transport layer protocols used by devices. In the Web of Things, devices and their services are fully integrated in the Web because they use the same standards and techniques as traditional Web sites. This means that can be written applications that interact with embedded devices in the same way as would interact with any other Web service that uses Web APIs and using RESTful architectures.
At a device level, RoboFuse is an enabled Web Of Things, and accepts all the data in dual mode – M2M or WoT. Because the M2M (machine to machine) devices are implementing different protocols (i.e. low-level serial links to IT protocols like web services) for communication, connectivity plus other parameters need a common layer – that is represented by the wotAgent. Deployment of the IoT can be realized around the wotAgent (Web of Things Agent) that can be implemented at different levels as shown in the image bellow.
- On the private cloud – then sensors must be technically able to send data to the cloud wotAgent
- At the level of sensors network – then the wotAgent will be implemented on a local gateway device
- On mobile device – the mobile device is responsible to acquire data from other specialized sensors or devices and the mobile wotAgent is transferring data to the cloud
Main functions of the wotAgent are:
- Translate the device specific interface protocol into a reference protocol
- The configuration of parameters, readings, events and other information are either send to an wotAgent (“push”) or queried by an wotAgent (“pull”) through a device-specific protocol on one side. It will also receive device control commands from RoboFuse (“switch off that relay”) and translate these into a kind of protocol the device requires
- Translate the specific domain model of the device into a reference domain model.
- The Configuration parameters, readings, events, they all have their device-specific name (and possibly units).
- Enable secure remote communication using various network architectures.
- Devices can provide a protocol that is unsuitable for secure remote communication with RoboFuse environment. 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, a wotAgent can be co-located to the device and provide a secure, internet-enabled link to the remote RoboFuse.
wotAgent Lifecycle
Agents are located at the roots of the communication hierarchy. Below each agent, the topology of the sub-network that the agent manages is reflected.
- The first step that wotAgent must do is to verify the sensors network attached that is going to manage – the inventory. It can manage sensors or can manage other wotAgents.
- The second step: check / load the configuration information and if is the case to send to other wotAgent that are managed. This configuration information is determined by the type of agent and the connected devices. It contains, for example, polling intervals for measurements.
- The third step is to check the server connectivity to know if it has access to the Cloud services.
Receiving data and commands
Applications can send operations to devices and the wotAgent is responsible to implement the operations intended for its devices. If an operation was sent to an wotAgent device, the wotAgent will translate the operation into the device-specific representation and run the operation for the specific device.
Finally, the wotAgent acknowledges the execution of the operation and it would update the result (i.e. the state of the switch).
Sending sensors reading, events and audit logs
Main task of agents is to transmit data from sensors and these data can vary as defined by the device and can be categorized on:
- Measurements – Measurements are produced by reading sensor values. Data can be acquired based on a predefined “static” intervals and sent to the cloud platform (e.g., temperature sensors) as soon as the wotAgent have Internet connection. The data can be acquired /read on demand or at irregular intervals (e.g., health devices such as weight scales). Regardless what kind of protocol the device supports, the wotAgent is responsible for converting it into a “push” protocol by uploading data to cloud. The wotAgent library simplifies regular polling of sensors through a scheduler.
- Events – Events that need to be processed in real-time by IoT applications, e.g., notifications from a motion detector or transactions from a vending machine.
- Alarms – Alarms are events that require human intervention, e.g., CO2 detector.
- Audit logs – Audit logs are events that are recorded for risk management purposes, e.g., login failures.
wotAgent Configuration
wotAgent library enables the integration of a smart device to the cloud. Cloud wotAgents or server-side agents run continuously in the Cloud, accepting connections from the device types that they support. The device / sensor is using a communication protocol that is secured and Internet enabled.
wotAgent can accept communication using next protocols from device side over Internet connection (HTTPS):
- API call’s – to send data to the cloud as a JSON payload
- MQTT messages to predefined queues
Configuration library to connect the device to the Cloud wotAgent
To enable a device to send data to the wotAgent the device must be aware of:
- Internet Address of the wotAgent
- API end points
- MQTT message queues where to post data
JSON Configuration parameters that device need to maintain.