Pervasive computing is an important trend today. It concerns devices and services in a smart space that interact with users in a simple, natural, and harmonious way. Many problems in this domain have been studied from different perspectives in various projects. However, one important characteristic of pervasive computing, which is how to make it non-intrusive so that users can focus on their tasks, has received little formal attention. Nowadays, many computing entities including smart devices, and software components, are involved in our daily lives, and users need to deal with them as well as with other people. Besides, people are easy to reach with multiple devices. We believe there should be a systematic way to help users avoid intrusive ones. We propose a model for posing and answering two questions: will an interaction intrude on its receiver if delivered, and given that the interaction is deliverable, how can it be delivered effectively and not too overtly? With this model, the intrusion problem is analyzed and the essential factors are identified. A quantitative approach is used, so that factors have quantitative values for comparison and computation. We also apply context to refine them in order to achieve better results. We then illustrate how to materialize the model and build a system whose design is inspired by the Jabber framework that includes a collection of standards, technologies, and projects for instant messaging. The discussion is at a general level that does not depend on Jabber. However, by choosing Jabber in implementation, we reuse existing software and technologies, and benefit from Jabber/XMPP standardization, its low entry barrier for application developers, and its rich community support. The main contributions of our work are two-fold. First, we propose a model for intrusiveness in pervasive computing. Second, we address the problem at the system level by designing and realizing it. We also make use of standardized instant-messaging technologies, more precisely Jabber, in the system instantiation to reuse existing software, making the system more flexible and extensible.