Programming Ubiquitous and Mobile Computing Applications with TOTA Middleware.