In Internet of Things (IoT), a massive number of devices or sensors communicate with each other without any human intervention and can generate a large amount of data. This means a lot of new possibilities and challenges for researchers. But how to choose the best IoT platform to analyse and make sense of data generated? Together with my colleagues of SURF and the Netherlands eScience Center I investigated possible IoT platforms for researchers and wrote our findings in a technical note. We looked at different features offered by cloud and self-maintained platforms. The choice for a suitable platform depends on the applications (use cases) researchers are trying to serve.
Choosing the best IoT platform
An IoT platform allows you to monitor, manage, and control tens to hundreds of connected devices in a scalable manner. There exist a number of solutions, architectures and platforms supporting co-creation of IoT eco-systems. The diversity and heterogeneity of technological solutions, application segments, requirements, and use cases make it difficult to identify which platform is the best suitable. The challenge is not only to select a platform that solves the interoperability and unification problem of existing IoT technologies and applications, but also the ones not yet foreseen.
We meet a lot of researchers investigating IoT technologies, platforms and features. For us a reason to investigate different platforms and describe and compare our findings in a study to guide and recommend interesting platforms to our research communities. But there are still questions about how to set up access to these platforms and how to secure such an architecture.
Architecture of IoT platform
To make a choice for a good IoT platform it’s important to understand the general architecture of the platform without getting into too many specifics…yet. Because each use case usually has a specialised data workflow and set of feature requirements, this can take time to identify features that can serve multiple use cases and user scenarios. A careful approach to the architectural design can ensure proper scalability and integration of a larger variety of applications. In our study (https://doi.org/10.5281/zenodo.1296528), we describe individual components of a generic IoT platform (figure 1), and discuss different options for realizing each component.
We started this study with the aim to develop a prototype of an IoT platform that works with a wide range of IoT applications—for example, mobility data, and/or water management. We were looking for a scalable solution with minimal changes to a platform design, especially with respect to features and interfaces. To this end, we identified two categories of open-source IoT platforms, cloud-centric and self-maintained.
Comparison of cloud-centric a self-maintained IoT platforms
There are advantages and disadvantages for using cloud-centric or self-maintained solutions. The self-maintained platform requires the presence of dedicated servers and an administrator maintaining the setup, connection, and is responsible for the backup. Finding a good hosting platform for the self-maintained systems is also a challenge. When arranging this on-premise, inside the academic institution, this will require collaboration with the centralized ICT services in the institute. Since the platform has strong requirements for the external network availability and access, centralized ICT might be hesitant in supporting it. External hosting providers will bring additional costs and risks concerning data security and availability.
In contrast, a cloud-centric solution comes with the cost determined by the service provider but will fully bypass the aforementioned issues. However, this type of solution means a full dependency on the service provider, including any changes to the API and service costs.
Read our complete study to find a description and comparison most promising open-source IoT platforms.
If you have questions or remarks on our study, please contact us:
Mary Hester: firstname.lastname@example.org
Rena Bakhshi: email@example.com