# IoT Middleware Platforms for Smart Energy Systems: An Empirical Expert Survey
## 3 Literature Review
#### Middleware Platforms in Smart Energy Systems  
_Apache Kafka_[86] is an open-source, distributed publish-subscribe messaging system. It focuses on collecting data from high-throughput streams into persistent storage. Apache Kafka clients and clusters communicate via binary TCP connections. These connections are comparatively complex to establish and maintain. In a setting where large numbers of IoT devices communicate through unstable, unreliable networks, the overhead might be prohibitive. It is, however, possible to extend Apache Kafka with MQTT connectivity, circumventing this issue. On the other end of a stream, Kafka can interface with a number of platforms, such as Java,.NET, PHP, Ruby and Python; and visualization services such as Grafana. _Aidon Gateway_[87] provides a service package for Advanced Metering Infrastructure (AMI) management and assessment, including Aidon Gateware Head-End System (HES) which manages the head-end systems communications. The IoT communication in Geteware is provided using three parts: Aidon Linkware for interfaces integration to the Distribution System Operators (DSO)'s information systems; Aidon Gateware for management and execution of various AMM tasks based on scheduling using a graphical user interface; and Aidon Meteringware for data collection and storage from the smart devices. _Amazon Web Services (AWS)_[88] is a suite of commercial, cloud-based, on-demand computing platforms. AWS IoT is a middleware solution that connects IoT devices with each other and to cloud services offered by AWS. It supports four communication protocols: MQTT, MQTT over secure web sockets, HTTP and LoRaWAN. AWS SDKs provide language-specific wrappers for the HTTP/HTTPs API to connect with custom applications on various platforms and with various languages, including Android, iOS, Python, Java, JavaScript and C++. Amazon provides seamless integration between device software, connection and management software (control services) and data analysis services. _Cisco Kinetic_[89] offers a wide portfolio of commercial end-to-end IoT solutions ranging from network connectivity to cyber security. The Cisco Kinetic IoT platform consists of three modules, gateway management, edge and fog computing and data control. IoT devices can be connected via AMMP or MQTT. Application can be developed from pre-built functions in a proprietary SDK. The platform components can be used on a subscription-based license with optional visualization service components. _CO4 Cloud_[90] is an energy management tool which provides an overview of the important energy, room and system data to the user. The provided features include energy monitoring and data visualization, data aggregation from the individual room to the portfolio, energy management, optimization and automation functions, energy accounting and billing, meter integration, virtual meters and data points, reports and data export, notifications, alerts and a ticket system. _EDP Remote Energy Dynamics (Redy)_[91] is an IoT service developed by EDP commercial. Re:dy connects and integrates the energy sources at home to be managed by the user. This platform needs a set of hardware devices in order to operate, which includes: Re:dy Box, Re:dy Plug, Re:dy Meter, Re:dy Switch and Re:dy plug A/C--an application in the EDP servers where the service is configured and a set of mobile applications for remote access. _Element IoT_[92] is an IoT platform developed by ZENNER IoT Solutions GmbH in Hamburg. Element IoT includes a LoRaWAN network server, device and gateway management, and a number of data management functions. It provides solutions to improve the flexibility, interoperability and security of the system by supporting various communication protocols, such as LoRaWAN, NB-IoT, MQTT, HTTP, Sigfox, MS Azure and AWS; and supporting different integration technologies, such as REST, Websockets, MS Azure and AWS. _Siemens_[93;94] is a global leader in power and utilities management.