The main characteristic of devices in a pervasive (or ubiquitous) computing system is their context awareness which allows them to provide proactively adapted services to user and to applications according to the global context. In order to support the development and to ease the implementation of context-aware systems, many architectures were proposed with characteristics related to the application domain and techniques used. A survey of such architectures that makes comparison between them and evaluates them is strongly recommended. Proposed surveys are either restricted to a limited number of architectures or do not offer a good comparison or their evaluation is not based on appropriate criteria which keep them as simple descriptions. Our aim is to make a survey of relevant architectures which mark the evolution of context-aware systems based on criteria related to pervasive computing. This survey will serve as a guide to developers of context-aware systems and help them to make architectural choices.