Key Abstractions for IoT-Oriented Software Engineering