Mobile applications running on personal devices, like smartphones, PDAs, or laptop computers, create a fascinating market for many new mobile services. Mobile commerce, location-based services, multimedia messaging, or mobile gaming are expected to constitute a main drivingforce for technological advancements, creating a new source of revenue for infrastructure providers and developers. Based on what we observe today, the logical next steps lead to integrated infrastructures and applications supporting "pervasive computing". Whatever this future will look like, the basic cornerstones will be: (i) highly nomadic users, (ii) personalized devices running smart applications, (iii) pevasive smart infrastructures, and (iv) efficient communication for end-to-end integration of all building blocks. This book introduces the amazing world of pervasive computing, leads step-by-step through the new design challenges for pervasive computing applications and identifies the key challenges for engineering middleware supporting pervasive applications. Based on the wellknown publish/subscribe paradigm it demonstrates how middleware systems can be designed to explicitly make use of "context" of users and applications. It then shows how context information can be leveraged for optimizing the efficiency of communication inside a notification service. The book addresses developers of middleware, mobile application designers, as well as interested individuals who want to learn more about the challenges of next generation pervasive and mobile systems.