# Internet of Things Platforms for Academic Research and Development: A Critical Review
## 2 Internet of Things Platforms
### Open Source Platforms
Additional converters can be defined taking advantage of the open source nature of the platform. However, support for some technologies, includingSigFox, NB-IoT and LoraWAN as well as major enterprise IoT platforms such as AWS, IBM Watson and Microsoft Azure, are only available using the platform integration feature in the professional edition. ThingsBoard also provides a powerful mechanism for data visualization. Dashboards can be created and used to visualize data using widgets; widgets can be also used to send commands to devices using the RPC protocol. ThingsBoard enables analytics by means of Kafka Streams that can be generated based on device data and sent to external analytics platforms. On board advanced analytics tools are available in the professional edition through the Trendz Analytics component. Finally, security in ThingsBoard is guaranteed by the support of the HTTPS protocol, as well as the use of access tokens compliant to the OAuth 2.0 protocol over all supported communication protocols. ThingsBoard offers a wide range of installation and deployment options. The platform can be deployed using either docker containers, or installation packages for all major desktop operative systems. Installation from sources can be performed by cloning the project Github repository and using the Maven building tool. The documentation is provided on the platform website, and includes detailed step-by-step deployment and installation guides, as well as a rich set of tutorials and examples covering all key platform features. The ThingBox [48] is a platform based on the Node-Red visual editor [49] released by IBM to develop IoT applications. The ThingBox adopts an approach rather different from the other open source platforms reviewed in this section. Rather than providing a middleware or a back-end running in the cloud, this platform provides device support and processing capabilities based on \"nodes\" made available in the Node-Red editor, each node corresponding to a specific feature (e.g., support for a specific hardware or software platform). The ThingBox is designed to be a \"local\" IoT implementation, with nodes typically deployed on Raspberry Pi devices, that can operate simultaneously but do not interact. The ThingBox can be installed from sources, by cloning the project github repository. Since the platform website is no longer reachable the only available documentation is given by the package descriptions in the Github repository. As in the case of of Lelylan, the platform did not receive any updates in the last few years, and can be assumed to be out of development. ThingSpeak [50] shares with most of the platforms described so far an architecture based on an open source central server, that can be installed locally or run in the cloud. The server provides visualization, processing and analysis tools, and is complemented by software libraries that enable interaction with IoT devices. The key feature in ThingSpeak is the support of the Matlab IDE in the cloud deployment, including graphic output and several Matlab toolboxes, that provides access to Matlab commands for data processing and visualization. It should be noted that not all features are available in all deployments. In particular, free Matlab support is only available when using the public cloud platform but not in local installations. In addition, access to toolboxes requires a paid license. Thingspeak supports both the HTTP and MQTT communication protocols to communicate with all major IoT hardware platforms, such as Arduino, Raspberry Pi, Electric Imp, Particle Photon and ESP8266, as well mobile and desktop OSes. Thing5 peak relies on two key concepts for data exchange and storage: channels and messages. Both devices and applications read data from and write data to channels by means of messages exchanged with the central server. In its cloud-based deployment ThingSpeak provides rich data processing and visualization capabilities by means of ThingSpeak apps.