BraceForce: A Middleware to Enable Sensing Integration in Mobile Applications for Novice Programmers Xi Zheng, Dewayne E. Perry, Christine Julien The Center for Advanced Research in Software Engineering Mobile and Pervasive Computing Lab The University of Texas at Austin jameszhengxi@utexas.edu,perry@mail.utexas.edu,c.julien@utexas.edu ABSTRACT Even as the use of sensor networks to support mobile ap- plications grows, our ability to seamlessly and efficiently in- corporate sensor network capabilities into our mobile ap- plications remains astoundingly difficult. Today, accessing remote sensing data and integrating this data into the adap- tive behavior of a dynamic user-facing mobile application re- quires interacting with multiple platforms, languages, data formats, and communication paradigms. We present Brace- Force, an open and extensible middleware that allows de- velopers to access the myriad remote sensing capabilities inherent to today’s mobile computing spaces (where mo- bile devices and sensors are closely integrated) using very minimal code. Further, BraceForce incorporates event- and model-driven data acquisition as first-class concepts to pro- vide efficient access to sensing while retaining expressiveness and flexibility for applications. We present the BraceForce architecture and key abstractions, describe their implemen- tations, and provide an empirical study using BraceForce to support mobile applications integrating sensing. 1. INTRODUCTION Developing and deploying mobile applications integrating sensing involves a large amount of low-level programming that requires interacting with different (often proprietary) data formats, languages, and operating systems. In prac- tice, applications are built for specific sensor platforms with little potential for portability or integration with other sen- sors. Debugging mobile applications that integrate with a physical environment requires not only integrating the appli- cation with sensing but also the use of a testing harness that, at debugging time, accesses sensed data about the physical environment for the purposes of validating the actions of the application. Integrating sensing for mobile applications and debugging support in a way that is easy, flexible, and portable is essential for supporting current mobile applica- tion development. In general, research in this space has been focused on Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Copyright 20XX ACM X-XXXXX-XX-X/XX/XX ...$15.00. demonstrating the feasibility of applications, the develop- ment of support services such as routing protocols or energy- saving algorithms, or on advancement of hardware platforms and operating systems. Little focus has been applied to ef- fective development support for applications that integrate the capabilities of networked sensing platforms in easy to use and extensible ways. In addition to the variety of data for- mats, communication technologies, and programming plat- forms a developer must tackle, mobile applications also re- quire handling network dynamics and energy constraints. This paper introduces BraceForce, a middleware for mo- bile application development that simplifies the development, deployment, and debugging of mobile applications. Brace- Force targets novice developers, by which we refer to pro- grammers who have a good understanding of programming in general but have limited prior experience in program- ming sensor devices. For development, BraceForce sepa- rates the application developer from the low-level interac- tions between the platform and sensors. For deployment, BraceForce also allows the developer to connect the appli- cation to sensing assets in the deployment environment. Fi- nally, when applied to debugging tasks, BraceForce can mon- itor a test environment using capabilities that may not be available in the deployment environment. Architecturally, BraceForce defines functional tiers that encapsulate related aspects but coordinate in such a way that the tiers’ deploy- ment to particular physical assets is flexible. Different tiers can be deployed on user-facing devices or on sensing devices with limited capabilities, directly addressing and leveraging the specific capabilities and intentions of each device. Brace- Force provides auto-discovery of new sensing and computing assets, allowing easy integration of new capabilities into ex- isting applications or automatic and seamless extension of a debugging environment. Instead of using a proprietary programming language (e.g., nesC [9]), supporting a single hardware platform (e.g., ODK [5]), or creating a new standard (e.g., Dandelion [19] or DASH [7]), BraceForce presents a simple Java programming interface for integrating new sensing capabilities. To add a new sensor to BraceForce, a developer just needs to implement a sim- ple sensor driver interface that provides essential commands (e.g., open, close, query) and configuration. The driver im- plementation can be specific to the particular sensor but basically translates raw data into meaningful BraceForce sensor data constructs, guided by the provided BraceForce interfaces. BraceForce handles issues such as thread man- agement, networking, remote procedure call, etc. BraceForce supports both pull- and push-based interac-