Rover: A Context-Aware Architecture and PlatformUniversity of Maryland, College Park - Maryland Information and Network Dynamics LaboratoryLed by Professor Ashok K. Agrawala and Dr. Christian B. Almazan. Applications Developed by Countless Talented People, with Special Thanks to Vinay Gangadhar, Thomas Krug, Saurabh Kulkarni, and Ankur Oberoi. Thanks to all participants at the 2008, 2009, and 2010 Maryland Day Events.
The main topic of my doctoral dissertation, Rover aims to be a context-aware framework which manages entity context effectively on a Rover server. Entities can be the Rover server itself, any variety of client devices, and services (including databases) connected to a Rover server. At its core, a Rover server (written using Python and Twisted) effectively receives messages, retrieves information from a variety of services, and can push information to any entity connected to it. Rover servers have been tested in multiple environments (Linux and Windows) over multiple communication mechanisms (WiFi and WiMAX). Entities connect via any number of interfaces (including TCP, TLS, RPC, HTTP, and HTTPS) and must be authenticated with a Rover server and the server has a pluggable authentication scheme.
Entities can communicate with each other through the messaging calls, either directly or broadcasting messages based on context (such as sending a message to everyone whose context indicates they are in a particular building). Any number of services can be provided to entities, including external web services. Rover stores active context as provided by entities. All calls to the Rover server are actively recorded into a database, including requests and responses to external servers.
An important aspect of my work has also focused on defining entity spaces called a Rover ecosystem. Related entities should communicate with each other and nothing more. For instance, in a campus environment, Users (such as students) communicate with each other. If we consider an emergency scenario, Rover can be used to communicate with public safety personnel. A Dispatcher can pickup requests for assistance from Users in a Campus Rover ecosystem and forward them to First Responders in an Emergency Personnel Rover ecosystem, thereby separating the two. In this case, the Dispatcher acts as an intermediary to manage the flow of information between the two Rover ecosystems, but this process can be automated. This separation allows a clean separation of domains and aids in preparing any security considerations which must be put in place.
Rover has been used as the basis of two applications: MyeVyu and V911. Both of these applications received a fair amount of press and we actively collaborate with other university departments and efforts. These two applications have been described below.
MyeVyu: Improving the Quality of Life in Campus EnvironmentsCollaboration with the Office of Information Technology and the Mobility Initiative.
MyeVyu has been developed with one goal in mind: enhancing the quality-of-life of individuals and groups who use it. This application uses context provided by users to enhance services which have been integrated into a particular Rover server. These services include real-time transit information, dining services, and localized weather information, all available on the web and on mobile devices.
V911: Next-Generation 9-1-1Collaboration with the Department of Public Safety.
As it stands today (in 2010), 9-1-1 response mechanisms do not take into account the rise of connectivity and technology people carry around with them today. Although the Apple iPhone revolutionized the way people connect to the Internet in 2007, 9-1-1 public safety answering points and first responders do not utilize mobile devices to their fullest. Recently, I witnessed a tragic 9-1-1 medical call dialed from an Apple iPhone in which the context (location) and capabilities (audio and video) did not transmit to the appropriate individuals and groups.
Horus: Location Determination through Analyzing Signal StrengthUniversity of Maryland, College Park - Maryland Information and Network Dynamics LaboratoryWith Professor Ashok K. Agrawala, Dr. Moustafa Youssef (his Ph.D. dissertation), Dr. Chuck Rieger, and Matthew Mah.
One of the two actively developed indoor and outdoor location determination technologies developed at the MIND Lab (the other called PinPoint, based on time-of-flight measurements), Horus uses signal strength sensor information gathered from wireless devices. Horus uses two phases: an offline phase in which signal strengths are collected at various points on a map and then an online phase in which collected signal strength is actively fed to an algorithm, based on Bayesian probability and the signal strengths collected in the offline phase, which computes the location of a wireless device. The picture illustrates the offline phase with blue dots and the estimated location during the online phase with a purple dot.
Distributed Coalitions (DisCo)New York University - Parallel and Distributed Systems GroupEfforts led by Dr. Vijay Karamcheti and Dr. Eric Freudenthal.
I assisted in the development of a toolkit, written in Java, used in the Distributed Coalitions (DisCo) project. The project as a whole included tools which expressed access rights (Distributed Role-Based Access Control, dRBAC), a modular and secure communication stack (Switchboard), locality-aware service discovery, and component deployment using the three other tools to machines which may lose privileges in an instant. For instance, if a person has been compromised, the system needs to reflect this. This influenced general thinking in the future in which my thesis which focused on a broad area using context to influence decisions that go beyond just security.