# IoT Middleware Platforms for Smart Energy Systems: An Empirical Expert Survey
## 2 Background
### Non-Functional Requirements and Challenges of IoT Platforms  
Non-Functional Requirements (NFRs) can be defined as the system attributes, which are not directly related to the offered functionalities, but are related to the emerging properties of the system. The importance of NFRs of the IoT middleware platform changes based on the perspective, the system domain and the end-users, and they provide a number of restrictions and challenges that the platform needs to address. Hence, when considering the smart cities and smart buildings domain, NFRs define the following challenges:  
* _Interoperability:_ Different components of the IoT system must be able to connect and contact to each other. Historically, the building automation domain has always had interoperability issues, especially due to the segmented building process, leading to contractors offering trade-specific devices which are often incapable of communicating with devices from other trades. According to the economic research, up to 60% of the value that IoT systems might reveal is now locked by a lack of interoperability. Considering this, the IoT offers a great chance to actually improve interoperability by integrating and standardizing different components within the IoT platform [71]. The interoperability challenge combines three elements: 1. Device and connectivity: the starting point of the IoT architecture, which includes device capabilities and protocols. 2. Data: several problems may arise when trying to combine data from different sources for different needs. 3. Services/applications: these problems occur in the case of using data generated by a specific IoT device, in another application. * _Scalability:_ Device scalability defines its ability to adapt to the new changes in the environment, which is an essential feature for the growing IoT systems. Reliable IoT middleware needs to provide similar functionalities and similar quality of service (QoS) in small-scale and in large-scale environments [72]. * _Flexibility and Openness_[73]: Any IoT system needs to be flexible enough to support future technologies. Manufacturers typically create specialized hardware which gives optimal performance, while on the other hand, limiting the hardware's ability to track new updates and features. This introduces one of the most challenging problems for the IoT frameworks: vendor locking. Hence, a balance between software features and specialized hardware capabilities is one approach that must be considered in order to achieve the necessary flexibility of the system. The need for hardware-independence introduces the need for open IoT platforms, open standards, open APIs and open data. In particular, openness in smart cities and buildings services is critical, since such systems usually include humans, which in turn increases the importance of having a flexible, resilient and open platforms, which allows all possible users actions such as the data exchange. * _Energy Efficiency_[74]: Energy conservation and consumption is one of the major challenges to be addressed by IoT systems, especially in smart cities where the devices are used everywhere in the environment and closely to the nature and to the humans. Accordingly, the energy challenge of the IoT platforms includes: battery lifetime and power consumption of the sensors and devices which depend on the sensing time; bandwidth/data range/throughput/latency; and the application range. Possible solutions include using the suitable communication technologies that are convenient for the needed covered range by the IoT application, such as using the Low-Power Local Networks for the short-range solutions and the Low-Power Wide Area Networks for communications that exceed 1000 m.
* _Security_[73;75]: Since a large number of \"things\" are connected together in one heterogeneous system, the security feature is fundamental in any system and includes all the
different components.