Internet of Things (IoT), smart cities, context-awareness, software architecture