Mobile computing is an innovative field gaining increasing attention as many new systems are designed towards that direction. Among these systems, many are desired to be context-aware, with the aim of optimizing and automating their offered services. Such systems provide components whose main feature is to manage the context information, which is communicated between sensors, actuators and applications. In these systems the use of middleware is a solution to the need for detecting and adapting to the changing context. In mobile Computing, factors such as scalability, support for distribution, self-adaptivity, support for mobility and modularity/plugability are of particular interest. Many attempts have been documented in the literature concerning systems aiming to address some or all of these requirements and which are used for the implementation of context-aware systems. The scope of this chapter is to study and present the current state of the art in context-aware system architectures. These are evaluated and compared, based on a set of characteristics such as support for distribution, privacy, mobility or fault tolerance. Finally, we document our current results and initial decisions concerning the design of a context management middleware system enabling the design and deployment of adaptive applications in mobile and ubiquitous computing environments.