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 the state-of-the-art solutions for the related problems. In addition, the book also includes an authoritative reference list. The material has been successfully used in several thematic training schools organized by the ESF MiNEMA (Middleware for Network Eccentric and Mobile Applications) program, and the book's organization and presentation is ideal for an advanced course on middleware.