QoS-aware middleware for ubiquitous computing