The vision of the Internet of Things is enabling self-controlled and decentralized environments, in which hardware devices, equipped with sensors and actuators communicate with each other trough standardized internet protocols to reach common goals. The device-to-device communication should be decentralized and should not necessarily require human interaction. However, enabling such complex IoT applications, e.g., connected cars, is a big challenge, since many requirements need to be fulfilled. These requirements include, for example, security, privacy, timely data processing, uniform communication standards, or location-awareness. Based on an intensive literature review, in this overview paper, we define requirements for such environments and, in addition, we discuss whether they are fulfilled by state-of-the-art approaches or whether there still has to be work done in the future. We conclude this paper by illustrating research gaps that have to be filled in order to realize the IoT vision.