Middleware is a critical foundation needed to leverage the development of a wide range of mobile and ubiquitous applications. Intrinsic challenges when building such middleware require the combination of expertise from areas like distributed systems, networking, software engineering, and application development. This textbook provides a comprehensive introduction to the main fundamental problems, technologies, paradigms, and solutions of concern to developers of middleware for mobile environments. The contributions are grouped into four parts, on networking and programming issues, communication models, middleware issues, and application issues. Each chapter is structured as a self-contained tutorial, presenting an overview of a specific topic and th...