ABSTRACT Context awareness is an integral aspect of ubiquitous and pervasive computing. A context aware system provides relevant services to the user according to the environment. The challenges in developing context aware systems are due to the complexity in collecting, representing, aggregating and inferring context information from heterogeneous sources and at the same time maintaining privacy and security. Although multiple solutions exist with different architectures, design principles and context modeling mechanisms, there are no standard, reusable solutions due to lack of software engineering efforts and adoption of a structured methodology. Design patterns encapsulate expert knowledge to solve recurring software problems. The design pattern approach will enable the context aware solution to be flexible, reusable and based only on software structures. In this paper, we have proposed a service oriented context aware architecture based on design patterns. The usage of design patterns and the corresponding pattern language will enable a faster and efficient development of a context aware system.