The development of cloud computing platforms, ubiquitous networking and embedded/mobile systems has enabled the connection of various devices and appliances to the internet and the deployment of related services. Such systems where, tenths, hundreds or thousands of devices are connected to the internet are known as “Internet of Things” (IoT).
Of course, each individual project can assemble embedded sensors and actuators, develop its own communication protocols and security systems, setup specific databases and develop ad hoc services. This approach, which has been used and is still used in many projects, does not recognize the fact that there is a common pattern to all projects: each distributed “thing” feature a data model made up of measurement values, configuration parameters, status.
The vision of the cloud.iO project has been launched is to “industrialize” IoT systems deployment. To concrete this vision, the following options were considered in the design of cloud.iO:
- The cloud.iO IoT platform is operated as SaaS (Software as a Service) and is meant to host multiple projects.
- cloud.iO applications dispose of a syntactically uniform access to so-called data points in distributed embedded systems.
- cloud.io does not impose any semantics for data model. Individual projects can either define their own semantics or use a free data model.
- cloud.iO keeps a history all read and write operations and provides an access to the history logs.
- cloud.iO manages a searchable directory with the current status of all connected “things”.
- cloud.iO defines secure connection rules for embedded devices as well as for applications.
- cloud.iO provides APIs (Application Programming Interfaces) for the software development of embedded devices as well as for the development of cloud applications.
- cloud.iO design philosophy is the following: reuse field proven open source software components and make minimum custom developments around them..
- A provisioning system is responsible for the supervision of IoT devices and for triggering alarms when a problem is detected. cloud.iO provides a component letting individual projects define their own provisioning rules.
- cloud.iO provides an interface for devices, applications and user management.
- cloud.iO supports the plug and play deployment of large amounts of devices.
In its current status, many options listed above are not implemented, but the architecture does not put any barrier to possible future development of the not yet implemented options.
- a low-level IoT framework allowing supervision and control of distributed systems.
- suitable for integration either directly into end devices as well as into gateways.
- based on proven open source technologies like MQTT, AMQP, RabbitMQ, Spring framework.
- modular, it’s micro-service architecture allows customisation to the finest granularity.
- scalable by design.
- very simple to use from the endpoint side (client).
- in an early state of development.
cloud.iO is NOT:
- extremely lightweight, you will need at least a complete TCP/IP stack supporting TLS encryption and x509 certificate authentication and an implementation of the MQTT 3.1.1 protocol.
- a high-level semantic data analysis tool, cloud.iO just offers the raw data a such a system could be build on.
- a solution to any IoT problematic.
- simple to deploy on the server side.
cloud.iO can be operated in two modes:
- Private mode: A cloud.io framework is deployed for an IoT project.
- Public mode: Several projects share a unique cloud.iO infrastructure.