Atlas: A Service-Oriented Sensor Platform Hardware and Middleware to Enable Programmable Pervasive Spaces Jeffrey King, Raja Bose, Hen-I Yang, Steven Pickles, Abdelsalam Helal Mobile & Pervasive Computing Laboratory, CISE Department University of Florida, Gainesville, FL 32611, USA, http://www.icta.ufl.edu {jck, rbose, hyang, spickles, helal}@cise.ufl.edu Abstract Pervasive computing environments such as smart spaces require a mechanism to easily integrate, manage and use numerous, heterogeneous sensors and actuators into the system. However, available sensor network platforms are inadequate for this task. The goals are requirements for a smart space are very different from the typical sensor network application. Specifically, we found that the manual integration of devices must be replaced by a scalable, plug-and-play mechanism. The space should be assembled programmatically by software developers, not hardwired by engineers and system integrators. This allows for cost-effective development, enables extensibility, and simplifies change management. We found that in a smart space, computation and power are readily available and connectivity is stable and rarely ad-hoc. Our deployment of a smart house (an assistive environment for seniors) guided us to designing Atlas, a new, commercially available service-oriented sensor and actuator platform that enables self-integrative, programmable pervasive spaces. We present the design and implementation of the Atlas hardware and middleware components, its salient characteristics, and several case studies of projects using Atlas. 1. Introduction The UF Mobile and Pervasive Computing Lab is dedicated to applied research on assistive environments for seniors and the disabled. Our largest project is the Gator Tech Smart House [1] (GTSH), a 2500 sq. ft. pervasive computing environment located in the Oak Hammock retirement community in Gainesville, Florida. The GTSH showcases many technologies and services designed to assist both elderly residents and local or remote caregivers. While using the GTSH as a showcase is useful, its main benefit is as a test-bed for the fundamental components and practices that turn a normal space into a pervasive computing smart space. Most first-generation pervasive space prototypes in existence now are the result of massive ad-hoc system integration. Introducing a new device to the environment is a laborious process. After the initial decision over which particular component to purchase, the smart space developers must research the device’s characteristics and operation, determining how to configure it and interface with it. The device must then somehow be connected and physically integrated into the space. Any applications using the new device must be written with knowledge of the resources assigned to connect the device, signals to query and control the device, and the meaning of any signals returned. Finally, tedious and repeated testing is required to guard against errors or indeterminate behavior that could occur if, for example, applications make conflicting requests of devices, or if devices or connection resources themselves conflict. Any change in deployed devices or applications requires repeating the process. This is the problem with integrated pervasive spaces. The goal of the Pervasive Computing Lab at the University of Florida is to develop models, methodologies, and processes for creating programmable pervasive spaces [2]. This is a concept in which a smart space exists, in addition to its physical entity, as a runtime environment and a software library [3]. Service discovery and gateway protocols and frameworks (such as OSGi [4,5]) automatically integrate system components using a generic middleware that maintains a service definition for each sensor and actuator in the space. Programmers assemble services into composite applications using various programming models [6], tools, and features of the middleware. The Atlas sensor platform described in this paper is the basic building block for programmable pervasive spaces. Atlas provides physical nodes for connecting various heterogeneous devices, a system for translating those devices into software services, a system for maintaining a library of device services and their