The creation of service front ends able to adapt to the context of use involves a wide spectrum of aspects to be considered by developers and designers. A context-aware adaptation enabled application needs a simultaneous management of very different application functionalities, such as the context sensing, identifying different given situations, determining the appropriate reactions and the execution of the adaptation effects. In this paper we describe an adaptation architecture for tackling this complexity and we present a set of languages that address the definition of the various aspects of an adaptive application