Ubiquitous Computing assumes that users and their computing devices are highly mobile. Because it is unlikely that mobile networks will be equally available in the same quality everywhere, there may be varying levels of connectivity, ranging from full network availability through low-bandwidth connectivity, to no connection at all. As a consequence, software components in the system cannot assume that the connections between them are static and always available. The event-based style is essential for ubiquitous computing, since it offers a good decoupling of the communicating entities in terms of space, time, and program flow. This chapter starts with an introduction to the different interaction models found in distributed systems. Next, a classification of publish/subscribe-systems is presented. We then describe a formal data and filter model that allows us to precisely define the semantics of event filters. Based on this model, we discuss different routing algorithms for the efficient distribution of event notifications in a network. Finally, a number of examples for publish/subscribe systems are presented.