# Internet of Things Platforms for Academic Research and Development: A Critical Review
## 1 Introduction  
Internet of Things (IoT) is one of the fastest growing markets in the telecommunications industry. Recent reports estimated an IoT technology market of about 384.5 billion dollars in 2021, expected to reach a figure ranging between 600 [1] and 1800 [2] Billion dollars by 2027-2028, with over 40 Billion devices connected worldwide [3]; the market growth will encompass both consumer applications and industry business-to-business (B2B) applications, with a growing interest in the so-called Industrial Internet of Things (IIoT) [4]. The growing interest in IoT applications and services in both consumer and industrial markets led, in turn, to the introduction of a plethora of IoT hardware and software elements, spanning an extremely wide range of architectures, features, and business models. According to [5], five key building blocks can be identified in IoT: (1) applications, (2) software back-ends, (3) communications, (4) hardware, and (5) security: an IoT software platform (in the following: IoT platform) should support the functions carried out by each of these blocks, and enable their interaction. A market study in 2015 identified over 300 IoT platforms providing support for IoT to some extent [5], while more recent estimates place this number beyond 450 [6]. Given such a wide availability, the selection of the correct IoT platform, which is a key preliminary step in the design and deployment of an IoT application, can be a daunting task. As a consequence, several works were recently published that identify a set of keycharacteristics defining an IoT platform and/or review existing IoT platforms, aiming at providing a tool for the selection of the platform that best suits a specific application. In [6] a classification of software platforms based on the following five categories is proposed:  
* IoT application enablement platforms, which are identified in [6] as the only proper IoT platforms;
* connectivity/machine-to-machine (M2M) platforms, mainly focusing on connectivity, rather than data storage and processing;
* infrastructure-as-a-service backends, focusing on hosting and processing services, both for general purpose applications and IoT applications;
* hardware-specific software platforms, typically developed by hardware companies in order to support their own products; and
* consumer/enterprise software extensions, introduced in software and operative systems predating the IoT era in order to integrate IoT devices. In the same work, eight building blocks that an IoT platform should include are also identified as follows: external interfaces, analytics, data visualization, processing and action management, device management, connectivity and (data) normalization, database and additional tools (e.g., app prototyping and reporting tools). The work does not map however existing IoT platforms neither on the proposed classification nor on the proposed set of building blocks. In [7] a review of both hardware IoT devices and IoT platforms is carried out. Nine IoT devices are compared in terms of computing capabilities, development environments and supported operative systems, and connectivity features; no ranking among the devices is however provided, suggesting that the choice should be based on the specific target IoT applications. Regarding IoT platforms, [PERSON] and [PERSON] [7] adopt, with minor modifications, the classification categories and the IoT platform building blocks proposed in [6], and considers 11 different IoT platforms; the platforms are however not classified according to the 5 categories proposed in [6], and furthermore the comparison between platforms, carried out taking into account only a subset of the 8 building blocks, does not result in a critical ranking of the platforms. The paper provides, however, an interesting comparative insight in the capabilities of the considered platforms.