The goal of the MAIS system is to provide support for flexible and adaptive execution of applications in a distributed, multichannel, mobile information system. In such a system, a fundamental requirement is an ability to describe the continuously evolving execution environment and user characteristics. Service requests are therefore satisfied by considering both the request itself and its provisioning environment. The first part of this chapter presents the general architecture of the MAIS system. The MAIS architecture allows us to define a set of "pluggable" modules which can be composed to provide adaptivity at different levels in the MAIS system. The main architectural components are introduced in Sect. 2.2; more details of the componen...