IoT Architecture: Understanding the Essentials