# Internet of Things Platforms for Academic Research and Development: A Critical Review
## 2 Internet of Things Platforms
### Open Source Platforms
Apps can be executed once, periodically or as a reaction to a new message being written on a channel, and allow to process the data, visualize them by generating graphs, or distribute them on other channels or on the internet by posting them on web pages and social networks. The built-in support for Matlab scripts and functions within apps in the cloud is extremely appealing, given the widespread use of Matlab in the academic environment, that leads in fact to an easier porting of new data processing and analysis algorithms from simulation environments to experimental testbeds. This peculiar characteristic of Thing5 peak was taken advantage of in the design of an indoor positioning platform for IoT devices in [51]. However, such features are not available in local server installations, that provide basic visualization capabilities through time series charts and Google Gauges in the platform web interface, and data processing by means of Javascript-based plugins. Integration with external services is possible by exporting data in JSON, CSV and XML formats, or by adopting the ThingHTTP protocol. Finally, security in Thing5 peak is guaranteed by supporting end-to-end encryption with TLS. Thing5 peak can be installed locally by cloning the Github repository available at [52]. A rich documentation is provided on the platform website, although it is mostly focused on the cloud-based version of the platform. The characteristics of the above platforms are summarized in Table 2, allowing a comparison-at-a-glance of the platforms. \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Platform** & **Comm. Protocols** & **Data Processing** & **Data Visualization** & **Integration** & **Security** & **Installation Procedure** & **Documentation** \\ \hline Eclipse & & & no built in & & REST APIs, & & demo & & \\ Kapua [33] & MQTT & no built in & no built in & & WebSockets, & access control, & installation & & \\ Eclipse & MQTT & processing & visualization & & NoSQL & SSL & & \\ Kapua [33] & & capabilities & capabilities & persistent & authentication & & & \\  & & & storage & & & & \\  & & & & storage & & & \\ \hline  & & & & LWM2M over & & & & \\  & & & & CoaP, JSON or & & & & \\ FIWARE [36] & HTTP, MQTT, & Generic & Different & & UltraLight & Private & demo & \\  & LoRaWAN, & Generic & Generic & Generic & Over & & & \\  & OPC-UA & Enablers & Enablers in & HTTP/MQTT & & authentication, & & \\  & & & & or OPC-UA, & & & & \\  & & & & API & & & \\ \hline  & & & & & & Sandbox-ready & & \\  & & & & & for execution & & \\  & & & & & in a & & \\  & & & & & & prepackaged & & \\ Kaa 0.X [39] & HTTP, MQTT, & no built -in & no built in & Oracle, Apache & & virtual & & \\  & & processing & visualization & and MongoDB & & & machine; local & \\  & & capabilities & capabilities & & databases, & & installation & \\  & & & & AWS & & & using binary & \\  & & & & & & packages; & \\  & & & & & & installation & & \\  & & & & & & from sources & \\  & & & & & & using Maven & \\ \hline  & & & & & & & installation & \\  & & & & & & & using docker & \\  & & & & processing & & WebSockets, & & containers; & \\  & & & & & & & \\  & & & & & & & \\  & & & & & & & \\  & & & & & & & \\  & & & & & & & \\ OpenMTC [42] & HTTP, HTTPS, & & & no built-in & & REST API, & & \\  & & & & JSON & & TLS & & \\  & & & & & &