Pervasive Computing Using Smartphones


Of late there has been increasing interest in devising device-centric solutions that treat user and devices as first class citizens. Instead of designing solutions in abstract space, solutions are designed keeping the available devices in mind. Such solutions are easy to evaluate and deploy in realistic settings. Smart Phone is one device that holds great promise in realizing the pervasive computing vision. Goals of this project include: (1). Designing middleware and protocols for service provisioning on Smart Phones (2). Designing middleware to support augmented reality applications on Smart Phones (3). Characterizing energy usage of Smart Phone applications and developing energy optimization techniques



We have designed and implemented SDIPP, a protocol for service provisioning on Smart Phones. SDIPP stands for Service Discovery, Interaction and Payment Protocol.

Discovery Model

Interaction Protocol

Payment Protocol

We have also designed and implemented Smart Message Architecture on Smart Phones for discovering and executing mobile services.

Portable Smart Message Architecture


Indoor Localization

Indoor localization has long been a goal of pervasive computing research. We are exploring the possibility of determining user's location based on the camera images received from a smart phone. In our system, the smart phone is worn by the user as a pendant and images are periodically captured and transmitted over GPRS to a web server. The web server returns the location of the user by comparing the received images with images stored in a database. We tested our system inside the Computer Science department building. Preliminary results show that user's location can be determined correctly with more than 80\% probability of success. As opposed to earlier solutions for indoor localization, this approach does not have any infrastructure requirements. The only cost is that of building an image database.

Indoor Localization Application
Left: User wearing the phone as a pendant, Right: Snapshots of the client running on the phone



Undergraduate students are involved in developing applications. We have implemented the following applications:


Context-aware Battery Management

In the future, smart phones will run a number of background applications that would compete for limited battery lifetime. There is a need to manage battery as a resource across these applications. We have designed a system for context-aware battery management based on two key observations. First, it is necessary to create an energy budget for different applications in order to prevent low priority applications (such as background tasks) from affecting the availability of high priority applications (such as telephony). Second, the knowledge of when the user will recharge the phone next is crucial to managing battery lifetime on phones. This is because the knowledge of when the next recharge will happen determines the total battery lifetime available to applications.

At the heart of the battery management system are algorithms that predict: (1) when the next charging opportunity will be available, (2) how much call-time will be required by the user in the interim, and (3) how long the battery will last if the current set of applications continue to execute. The algorithms process user's location traces and call-logs for making some of these predictions. We have also developed a technique to predict battery consumption of applications accurately. Experimental results obtained with real user traces demonstrate the feasibility of our approach."

Battery Management System Architecture




The following applications are available in source code and binary formats. Please contact us if you are interested in obtaining copies.

Door Application
Enables a person to open a Bluetooth enabled door with their Smart Phone. Please check the README file for a better description.

Authors: Nishkam Ravi, Peter Stern*, Niket Desai*, and Liviu Iftode
Start discovery. Doors found.

Processing request for opening a door.

Door opened.
We're in!
The control circuit for supplying and controlling power to the door.


Profile Application
Continuously trades personal information input by the user to other SmartPhones in the vicinity. Please check the README file for a better description.

Authors: Niket Desai*, Nishkam Ravi and Liviu Iftode
Main menu. Manual or auto search. Search for keyword eg. "Doctor" or a friend's name.

Found a profile.

The profile found.


Bill Payment Application
Implementation of the PPDC protocol. Using a variation of the Millicent Scrip protocol, pays bills electronically from a SmartPhone. Please check the README file for a better description.

Authors: Peter Stern*, Nishkam Ravi and Liviu Iftode
Choose the vendor to pay. Vendor inputs bill amount.

Split the bill with your friends?

Select which friends to split the bill with. The friend enters how much he would like to contribute. A receipt of the transaction is generated on both devices.
The bill is paid and a receipt is generated.
The broker's record of the transaction.

*Student research sponsored by the NSF through an REU supplement for the ITR grant ANI 0121416.





Liviu Iftode

Graduate Students

Lu Han, Pravin Shankar


Peter Stern, Niket Desai, Cristian Borcea, Nishkam Ravi




Last modified: Feb 2008.