The IoT middleware is defined as software technology that serves communication interface among IoT devices. In other words, the IoT middleware is an enabling software strategy that promotes different application enhancements. The IoT middleware is fundamental for developing, managing, and integrating heterogeneous smart, intelligent IoT devices and diverse application scenarios. The middleware hides the networking data from applications and accomplishes data management, distribution, mobility, heterogeneity, and interoperability. The fundamental elements of IoT middleware are the gateway, sensors, actuators, and devices. The gateway acts as an interface that connects the communication protocols and technologies using the internet. The sensors have the ability to access the data from the physical IoT environment. The actuator is a hardware component that performs the physical actions by receiving the electric signals from the connected smart IoT devices. Finally, the device comprises a processor and storage to offer interconnection between sensors and actuators. The IoT middleware platform is classified into four categories that are publicly traded, open-source, developer-friendly, and end-to-end connectivity. The main criteria selection of the IoT middleware is availability, deployment type, pricing model, necessitate hardware support, employed storage and technologies, security requirements, support of various communication protocols, and type of analytics supported.