This thesis deals with the problem of guaranteeing heterogeneous quality of service (QoS) requirements for Internet of Things (IoT) communications in terms of urgency and reliability. Various solutions are proposed towards achieving this goal in LoRa Wide Area Networks (LoRaWAN). First, we implement network slicing over LoRa standard architecture and evaluate its impact using various static and dynamic strategies. Simulation Results performed over NS3 proved the efficiency of network slicing in isolating physical resources for each slice and serving delay critical communications. Motivated by these results, a slice-based optimization is proposed next to improve the dynamic slicing strategy by investigating more LoRa parameters at the physical layer. The proposed method finds for each device the best parameters configuration that potentially improves the performance of its slice in terms of QoS, reliability and energy efficiency. Moreover, we also looked towards meeting upcoming challenges in future IoT networks that comes from the increasing number of IoT devices. Even with network slicing, LoRa scalability remained as a big challenge that should be carefully considered especially due to the lack of flexibility in managing current wireless networks. Therefore, to meet the global objective in guaranteeing QoS in large scale IoT deployments, software defined networking (SDN) and network slicing are adopted as backbone technologies for a distributed virtualized architecture and slicing strategy. The latter proposition is based on game theory and adapts faster to the changes in a congested IoT environment by leveraging slicing decision making closer to the edge.