Provision of adaptive and context-aware service discovery for the Internet of Things