Context-aware applications are applications that are aware of the user's context (e.g., personal preferences, characteristics, agenda) and environment (e.g., people, places and things in the user's vicinity). By leveraging this kind of information, they provide the user with an improved user experience.