Software Architecture for Extensible Context-aware Systems Jongmyung Choi Dept. of Computer Eng, School of Information Eng., Mokpo National University, 61 Cheonggye, Muan-gun, Jeonnam, 534-729, Korea jmchoi@mokpo.ac.kr Abstract This paper is about a software architecture, named WCAM (Watcher, Controller, Action, and Model), which reduces the complexity of context-aware systems by decoupling of concerns. We first introduce general requirements of context-aware systems. Next, we present our architecture pattern, WCAM. Watcher perceives external environment, and Controller manages the cooperation between Watcher and Model. Model gathers contextual information, interpret the information, and generate contexts for system. Action manages services that are related with contexts. 1. Introduction The software architecture is very important in system development because it is the backbone of software systems. It influences all over the parts of a system, and it costs a lot when the architecture is changed after design or implementation. Therefore, it is important to determine software architecture carefully. In the industry and the academia, they expect that context-aware systems are going to be popular because they provide usefulness and easiness in usage to end- users. These systems perceive the change on external environment or internal state, understand the current context, and provide services that are in accordance with the context. Context-aware systems are user- friendly because they understand a user’s situation, intention, and preference. Context-aware systems are much more complex than traditional systems. Context-aware systems should be modular to reduce complexity of the systems and to increase extensibility. As the systems are user- friendly, they should support dynamic configurability and extensibility. It is because users’ preference and intension change over time. For these needs, we propose a modular, extensible, and dynamically configurable software architecture. It is WCAM (Watcher, Controller, Action, and Model) architecture. It decomposes a context-aware system into four different and independent components. Watcher perceives the external environment, and Controller manages the cooperation between Watcher and Model. Model gathers contextual information, interpret the information, and generate contexts for system. Action is a set of services and context adapters. The remainder of the paper is organized as follows. In Section 2, we discuss other works that are closely related to our work. Then we introduce general requirements of context-aware systems in Section 3. After that, in Section 4 we present our WCAM architecture and its subcomponents. In Section 5, we show how we apply WCAM architecture to MyGuide system. Finally, we reveal the conclusions of our work in Section 6. 2. Related Works There have been researches on software architecture and design patterns [5] for context-aware systems. The representatives are ECA (Event-Control-Action) architecture [1], Multi-agent architecture [2], Broker architecture [3], and Blackboard architecture [4]. ECA architecture [1] reduces the complexity by decoupling the concerns of context and services triggered by the events. It is good for event-driven systems. Harry Chen [3] proposes the broker architecture for context-aware systems. The context broker provides “a centralized model of context that can be shared by all devices, services, and agents in the space. “ It gathers contextual information, interprets the information, and detects and resolves inconsistent knowledge. Terry Winograd [4] proposes the blackboard architecture for context-aware systems. This architecture focuses on the data rather than the process. International Conference on Convergence and Hybrid Information Technology 2008 978-0-7695-3328-5/08 $25.00 © 2008 IEEE DOI 10.1109/ICHIT.83 811 International Conference on Convergence and Hybrid Information Technology 2008 978-0-7695-3328-5/08 $25.00 © 2008 IEEE DOI 10.1109/ICHIT.2008.236 811