Middleware for Application Development: Adaptation and Agents - Mobile Computing