Rover Technology Documentation
Rover Technology Documentation
INTRODUCTION
1.1 BACKGROUND
Location-aware computing involves the automatic tailoring of information and services based on the
current location of the user. We have designed and implemented Rover, a system that enables
location-based services, as well as the traditional time-aware, user-aware and device-aware services.
To achieve system scalability to very large client sets, Rover servers are implemented in an “action-
based” concurrent software architecture that enables fine-grained application-specific scheduling of
tasks. We have demonstrated feasibility through implementations for both outdoor and indoor
environments on multiple platforms.
A user is shopping in a mall. On entering a store, he pulls out a PDA and browses through detailed
information about the products on display. Satisfied with the information, through the PDA, he makes
an online purchase of the items of interest that will be subsequently shipped to his home directly. As
he walks on to the next store, which happens to be a video rental store, information on newly-released
movies in his favorite categories are downloaded automatically into his PDA, along with their
availability information. He chooses a couple of these movies and indicates that he will pick them up
at the storefront. His membership discounts are applied to the
bill, and he confirms the charge to his credit card. The intriguing aspect of this scenario is the automatic
tailoring of information and services based on the current location of the user. We refer to this
paradigm as location- aware computing. The different technology components needed to realize
location-aware computing are present today, powered by the increasing capabilities of mobile
personal computing devices and the increasing deployment of wireless connectivity (IEEE
802.11 wireless LANs [7], Bluetooth [1], Infra-red [2], Cellular services, etc.) What has hindered its
ubiquitous deployment is the lack of system-wide integration of these components in a manner that
scales with large user populations. In this paper, we describe the design and initial implementation
experience of such a system, which we call Rover, and discuss the impact such a system can have
on the next generation of applications, devices, and users.
Available via a variety of wireless access technologies (IEEE 802.11 wireless LANs,
Bluetooth, Infrared, cellular services, etc.) and devices (laptop, PDA, cellular phone, etc.), and allows
roaming between the different wireless and device types. Rover dynamically chooses between
different wireless links and tailors application- level information based on the device and link layer
technology.
Scales to a very large client population, for example, thousands of users. Rover
achieves this through fine-resolution application-specific scheduling of resources at the servers and
the network.
2.1 REVIEW
At the core of invisible computing is context awareness, the concept of sensing and reacting to
dynamic environments and activities. Location is a crucial component of context, and much research
in the past decade has focused on location-sensing technologies, location-aware application support,
and location-based applications. With numerous factors driving deployment of sensing technologies,
location-aware computing may soon become a part of everyday life.
2.3 DEPLOYMENT
Figure 1 shows Each box’s horizontal span shows the range of accuracies the technology
covers; the bottom boundary represents current deployment, while the top boundary shows predicted
deployment over the next several years and the current and predicted deployment of location-sensing
technologies within the next two to three years. The widest existing deployments are based on GPS,
which is particularly suited for outdoor applications. These include servicing applications centered on
vehicle location such as route planning and fleet tracking, as well as applications integrated into
handheld GPS units. Other current deployments are found in vertically integrated solutions and
comprise a specific location-aware application, appropriate location-sensitive ing hardware, and a
custom software platform. A handful of firms offer these systems in targeted application areas such as
military training, human-body motion capture, supply chain management, and asset tracking. Looking
ahead, numerous factor are accelerating the adoption of coarse-grained location-sensing
technologies. To begin with, the recent explosion of Wi-Fi, Bluetooth, and other wireless networking
technologies has led to many end-user devices being equipped with RF hardware that can be used for
location sensing. In addition, the Enhanced 911 requirement—which mandates that US wireless
carriers provide location accuracies of 50 to 100 meters for emergency 911 calls by the end of 2005—
is driving incorporation of location sensing systems into mobile phones using GPS, base-station
triangulation methods, and a combination of these technologies known as Assisted GPS. Similar
requirements exist in the European Union.
Vertically integrated location-aware systems typically use one type of sensor for a single application.
However, in the near future, many kinds of location sensors may be available to a particular client
system. The task of
making sense of this vast amount of sometimes contradictory information, known as sensor fusion,
presents a major challenge. Borrowing from the field of robotics, location researchers have settled on
Bayesian inferencing as the preferred method for processing data from disparate location sensors.
Using Kalman filters, hidden Markov models, dynamic Bayes nets, and particle filters, they have
developed principled methods of incorporating sensor uncertainty as well as limits on speed and travel
paths. The result is a location measurement derived from multiple sensors and constraints that uses a
probability distribution rather than a single value to describe the inherent uncertainty. For example,
researchers at the University of Washington have demonstrated an indoor location-measuring system
that
processes data from multiple sources, including infrared and ultrasonic sensors, using a particle filter. In
addition, the system learns typical walking paths through the building to aid in location estimation.
Rover offers two kinds of services to its users. We refer to them as basic data services and transactional
services.
1. Basic data services: Rover enables a basic set of data services in different media formats, including
text, graphics, audio, and video. Users can subscribe to specific data components dynamically through
the device user interface. Depending on the capabilities of the user’s device, only a select subset of
media formats may be available to the user. This data service primarily involves one-way interaction;
depending on user subscriptions, appropriate data is served by the Rover system to the client devices.
2. Transactional services: These services have commit semantics that require coordination of state
between the clients and the Rover servers. A typical example is e-commerce interactions.
Services that require location manipulation are a particularly important class of data services
in Rover. Location is an important attribute of all objects in Rover. The technique used to estimate the
location of an object (some techniques are described in the Appendix) significantly affects the
granularity and accuracy of the location information. Therefore an object’s location is identified by a
tuple of Value, Error, and Timestamp. The error identifies the uncertainty in the measurement (value).
The timestamp identifies when the measurement was completed. The accuracy of the location
information is relevant to the context of its use. For example, an accuracy of _ meters is adequate to
provide walking directions from the user’s current location to another location about 500 meters away.
However, this same accuracy is inadequate to identify the exhibit in front of the user. User input in
these cases, helps significantly improve the accuracy of user location information.
Filter: Objects in a Rover map have a set of attributes that identify certain properties of the objects.
Depending on the user’s context (which indicates the user’s interests), filters are generated for the
attribute values of interest to the user. These filters are applied to maps to select the appropriate subset
of objects to display to the user. For example, one user may be interested in only the restaurants in a
specific area, while another user needs to view only the museum and exhibition locations. The filters
can be dynamically changed to appropriately change the objects being displayed on the map.
Translate: This functionality enables the map service to automatically update the view of the displayed
map on the client device as the user moves through the system. When the location of the user moves
out of the central region of the currently displayed map, the system prepares a new map display, which
is appropriately translated from the previously displayed map.
End-users of the system. Rover maintains a user profile for each end-user, that defines specific
interests of the user and is used to customize the content served.
Rover-clients are the client devices through which users interact with Rover. They are typically small
wireless handheld units with great diversity of capabilities in regard to processing, memory and
storage, graphics and display, and network interface. Rover maintains a device profile for each
device, identifying its capabilities and thus, the functionality available at that device.
Wireless access infrastructure provides wireless connectivity to the Rover clients. Possible wireless
access technologies include IEEE 802.11 based wireless LANs, Bluetooth and Cellular services. For
certain Quos guarantees, additional mechanisms need to be implemented at the access points of
these technologies for controlled access to the wireless interface.
Servers implement and manage the various services provided to the end-users. The servers consist
of the following:
– Rover controller: is the “brain” of the Rover system. It provides and manages the different services
requested by the Rover clients. It schedules and filters the content sent to the clients based on use and
device profiles and their current locations.
– Location server: is a dedicated unit responsible for managing the client device location services
within the Rover system. Alternatively, an externally available location service can also be used.
– Media streaming unit: provides the streaming of audio and video content to the clients. In fact, it is
possible to use many of the off-the-shelf streaming-media units that are available today and integrate
them in the Rover system.
– Rover database: stores all content delivered to the Rover clients. It also serves as the stable store
for the state of the users and clients that is maintained by the Rover controller.
– Logger: interacts with all the Rover server devices and receives log messages from their
instrumentation modules.
In order to achieve fine-grained real-time application-specific scheduling, the Rover controller is built
according to concurrent software architecture we call the action model. In this model, scheduling is
done in “atomic” units called actions. An action is a “small” piece of code that does not have any
intervening I/O operations. Once an action begins execution, it cannot be pre-empted by another
action. Consequently, given a specific server platform, it is easy to accurately bound the execution
time of an action. The actions are executed in a controlled manner by an Action Controller.
asynchronous I/O events. Each server operation has exactly one “response handling” action for
handling all I/O event responses for the operation; i.e., the action is eligible to execute whenever an
I/O response is received.
A server operation at any given time has zero or more actions eligible to be executed. A server
operation is in one of the following three states:
- Ready-to-run: At least one action of the server operation is eligible to be executed but no
action of the server operation is executing.
-Running: One action of the server operation is executing (in a multi-processor setup, several
actions of the operation can be executing simultaneously).
-Blocked: The server operation is waiting for some asynchronous I/O response and no
actions are eligible to be executed.
The Action Controller uses administrator-defined policies to decide the order of execution of the set of
eligible actions. The scheduling policy can be a simple static one, such as priorities assigned to server
operations, but it can equally well be time based, such as earliest-deadline-first or involving real-time
cost functions. In any case, the controller picks an eligible action and executes it to completion, and
then repeats, waiting only if there are no eligible actions (presumably all server operations are waiting
for I/O completions).
The management and execution of actions are done through a simple Action API defined as
follows:
-init (action id, function ptr): This routine is called to initialize a new action (identified by action
id) for a server operation. Function ptr identifies the function (or piece of code) to be executed
when the action runs.
-run (action id, function parameters, deadline, deadline failed handler ptr): This routine is called
to mark the action as eligible to run. Function parameters are the parameters used in
executing this instance of the action. Deadline is optional and indicates the time (relative to the
current time) by which the action should be executed. This is a soft deadline, that is, its
violation leads to some penalty but not system failure.
The client devices in Rover are handheld units of varying form factors, ranging from powerful laptops
to simple cellular phones. They are categorized by the Rover controller based on attributes identified in
the device profiles, such as display properties—screen size and color capabilities, text and graphics
capabilities, processing capabilities — ability to handle vector representations and image
compression, audio and video delivery capabilities and user interfaces.
The Rover controller uses these attributes to provide responses to clients in the most compatible formats.
For the wireless interface of client devices, we have currently considered two link layer
technologies — IEEE 802.11 Wireless LAN and Bluetooth. Bluetooth is power efficient and is therefore
better at conserving client battery power. According to current standards, it can provide bandwidths
of up to 2 Mbps. In contrast, IEEE
802.11 wireless is less power-efficient but is widely deployed and can currently provide bandwidths of
up to 11 Mbps. In areas where these high bandwidth alternatives are not available, Rover client devices
will use the lower bandwidth air interfaces provided by cellular wireless technologies that use CDMA
[11] or TDMA based techniques. In particular, cellular phones can connect as clients to Rover, which
implies that the Rover system interfaces with cellular service providers.
The interaction of the Rover controller with all other components of the system is presented in
Figure
4. The Rover controller interacts with the external world through the following interfaces:
Location Interface: This interface is used by the Rover controller to query the location service about the
positions of client devices. The location of a device is defined as a tuple representing the estimate of
its position (either absolute or relative to some well-known locations), the accuracy of the estimate,
and the time of location measurement. Depending on the technology being used to gain position
estimates, The accuracy of the estimate depends on the particulars of the location technology, for
example, GPS [6], IEEE 802.11 signal strength, signal propagation delays, etc. Rover takes into
account this accuracy information when making location-based decisions.
Admin Interface: This interface is used by system administrators to oversee the Rover system,
including monitoring the Rover controller, querying client devices, updating security policies, issuing
system specific commands, and so on.
-Content Interface: This interface is used by the content provider to update the content that is served
by the Rover controller to the client devices. Having a separate content interface decouples the data
from the control path.
Back-end Interface: This interface is used for interaction between the Rover controller and certain
external services as may be required. One such service is e-commerce, by which credit card
authorization for various purchases can be made. These services would typically be provided by third-
party vendors.
Server Assistants Interface: This interface is used for interaction of the Rover controller with the
secondary servers. e.g. the database and the streaming media unit.
The database in Rover consists of two components, which together decouple client-level information from
the content that is served.
One component of the database is the user info base, which maintains user and device
information of all active users and devices in the system. It contains all client-specific contexts of the
users and devices, namely profiles and preferences, client location, and triggers set by the clients.
This information changes at a fairly regular rate due to client activities, e.g. the client location alters
with movements. The Rover controller has the most updated copy of this information and periodically
commits this information to the database. For many of these data items (e.g. client location), the
Rover controller lazily updates the database. These are termed as volatile data since any change to
these data items are not guaranteed to be accurately reflected by the system across system crashes.
For some others, (e.g. new client registration) the Rover controller commits this information to the
database before completing the operation. These are termed as non-volatile data. The Rover
controller, identifies some parts of the data to be volatile, so as to avoid very frequent database
transactions. The Rover controller does not guarantee perfect accuracy of the volatile data, and thus
trades off accuracy with efficiency for these data components.
The other component in the database is the content info base. This stores the content that is
served by the Rover controller and changes less frequently. The content provider of the Rover system
is responsible for keeping this info base updated. In the museum example, this component stores all
text and graphical information about the various artifacts on display.
The Rover database implements an extended-SQL interface that is accessed by the Rover
controller. Apart from the usual SQL functionality, it also provides an API for retrieval of spatial
information of different objects and clients in the system.
The transactions of the Rover controller with the database are executed on behalf of the
different server operations. The transactions, by definition, are executed atomically by the database.
Additionally, each transaction is identified by two different flags that identify certain properties for
execution, as follows:
Lock-Acquiring: If this flag is set, the transaction is required to acquire relevant locks, on behalf of
the server operation, to read or write data to the database. It also requires that these locks will be
released by the server operation prior to its termination at the Rover controller.
Blocking: If a transaction issued by a server operation is unable to access or modify some data due to
locks being held by other server operations, it can either block till it successfully reads the data, or it
returns immediately to the server operation without successfully execution. If the Blocking flag is set
for a transaction, then the first option is chosen for the transaction.
To avoid deadlocks, server operations acquire the relevant locks on data items stored in the database
using a Two Phase Locking protocol with a lexicographic ordering of lock acquiring for data items. It is
important to note that server operations may need to acquire locks at the database, if and only if they
need to access the stored data through multiple transactions and all these transactions need to have
the same data view. This is not required for the vast majority of server operations that either make a
single database transaction, or do not need its multiple transactions to have identical views. None of the
server operations in the current implementation of Rover, required to acquire locks at the database.
The transactions themselves might acquire and release locks at the database during their execution,
which are not visible to the server operations at the Rover controller.
The location server is responsible for storing and managing user locations in the Rover system. The
system is designed to work in both indoors and outdoors environments. We have experimented with
RF-based systems that infer the location of a device based on the signal strength of received RF
signals of IEEE 802.11 wireless LAN frames.
In our RF-based techniques, the user location of a client is obtained without the use of any additional
hardware. It thus provides more ubiquitous coverage in campus-like environments that already have a
rich wireless LAN coverage for data transport. This can be contrasted to alternative Infra-red tag-based
systems [18, 11, 3] or ultra- sonic emitter and receiver based systems [16] in which additional devices
need to be attached to the infrastructure as well as the clients. We have developed different RF-based
technique in the context of the Rover system. Techniques are categorized into:
A single Rover system comprises of a single Rover controller, other server devices (e.g., Rover
database and Rover streaming media unit), and a set of Rover clients. A single system is sufficient for
management of Rover clients in a zone of single administrative control. For example, consider a Rover
system in a single museum. All artifacts and objects on display in the museum are managed by a
single administrative entity. There is a single content provider for this system and a single Rover
system is appropriate to serve all visitors to this museum.
However, each separate museum has its independent administrative authority. Therefore, we
can have a separate Rover system for each of the different museums that are administered separately
by each museum authority. This allows a decentralized administration of the independent Rover
systems, locally by each museum authority. However, it is important to provide a seamless experience
to visitors as they roam from museum to museum. A multi-Rover system is a collection of independent
Rover systems that peer with each other to provide this seamless connectivity to the user population.
The design of a multi-Rover system is similar in spirit to the Mobile IP [10] solution to provide
network layer mobility to devices. Each client device has a home Rover system to which it is
registered. As the device physically moves into the zone of a different, or foreign Rover system, it
needs to authenticate itself with the Rover controller of the foreign system. Based on administrative
policies, the two Rover systems have service level agreements that define the services that they will
provide to clients of each other.
When the Rover controller of a system detects a foreign client device, it first checks whether it
has an appropriate service-level agreement with the Rover controller of the device’s home system. If
one exists, the Rover controller of the foreign system requests transfer of relevant state about the client
device from the Rover controller of the home system and subsequently provides necessary services to
it. Rover controllers of different Rover system use the Inter-Controller protocols to interact.
Fig 4.1 Rover’s controller interacts with other parts of the system and the external world
For the wireless interface to client devices, we considered two link-layer technologies: IEEE
802.11 and Bluetooth. Bluetooth is power efficient and therefore better at conserving client
battery power. According to current standards, Bluetooth can provide bandwidths up to 2
Mbps. In contrast, IEEE
802.11 is less power efficient but widely deployed and currently provides bandwidths up to 11
Mbps. In areas where these high-bandwidth alternatives are not available, Rover client
devices will use the lower bandwidth interfaces that cellular wireless technologies provide.
Figure 4.1 shows how Rover’s controller interacts with other parts of the system and with the
external world. The controller uses the location interface to query the location service about
the positions of client devices and the transport interface to identify data formats and
interaction protocols for communicating with the
clients. It uses the server assistants’ interface to interact with secondary servers like the
database and the streaming media unit and the back-end interface to interact with external
services, such as credit card authorization for e-commerce purchases. Third-party providers
typically offer these
external services.
Fig 4.2 Rover client screen shots taken from a demonstration at the McKeldin mall of the University of
Maryland campus. (a) Rover client running the client software showing the mall map. (b) A notification
to the client about a nearby food stall. The user associated with the client had previously set a trigger
notification request when he is close to a food stall. (c) The user had issued a query operation about
the sites of interest in his vicinity. On receiving the response from the Rover system, the client has
highlighted the relevant sites. (d) An active chat session between this user and another user is
marked as a dotted line connecting both users.
We have successfully built Rover prototype systems and tested them in the campus
of University of Maryland College Park. The implementation has been demonstrated for both indoor
and outdoor environments. A preliminary test implementation was developed on Windows based
systems (Windows 2000 for the controller and Windows CE for the client devices). The current
implementation of the Rover system has been developed under the Linux operating system. The
Rover controller is implemented on a Intel Pentium machine running Red Hat Linux 7.1 and the clients
are implemented on Compaq iPAQ Pocket PC (model H3650) running the Familiar distribution
(release versions 0.4 and 0.5) of Linux for PDAs1. Wireless access is provided using IEEE 802.11
wireless LANs. Each Compaq iPAQ is equipped with a wireless card which is attached to the device
through an expansion sleeve. We have experimented with a set of 8 client devices and have tested
various functionalities of the system.
For our outdoor experiments, we interfaced a GPS-device (Garmin e-Trex) to the Compaq
iPAQs and obtained device location accuracy of between 3-4 meters. The display of the iPAQ Rover-
client displays the locations of the different users (represented by the dots) on the area map as shown
in Figure 4.3. The indoor Rover system is implemented for the 4th floor of the A.V.Williams Building
(where the Computer Science Department is located), whose map is shown in Figure 6. In this
implementation, the location service is being provided using signal strength measurements from
different base stations. There are about base stations that are distributed all over the building and
typically the client device can receive beacons from five or six of the base stations. We are able to get
an accuracy of better than a meter in this environment, using very simple signal- strength based
estimation techniques.
In both these cases, we implemented the basic functionality of the Rover system. They include:
The Rover system provides different capabilities to the users, which can be categorized as
follows:
System Admin Operations are available only to the authorized system administrator. These set of
operations are—register new user/device, update user/device attributes and de-register user/device. The
administrator is also able to query the Rover server system about the state and information specific to
any and all Rover clients in the system.
User Access Operations are the basic set operations that every user avails to access theRover system.
They include the user login and user logout operations.
Trigger Operations allow users to set context-specific alerts. The triggers are activated based on user
interests and depend on current time and/or location of the user. An user can enable triggers by specifying
the relevant time or space-dependent condition. When the trigger condition is satisfied the Rover server
system sends appropriate notification to the particular user (Figure 2(b)).
Query Operations allow users to acquire information about different aspects of the system and the
environment. For example, an user can request information about all or a subset of all active users in the
system. Figure 2(c) shows a client screen shot in response to a client query on sites of interest in its
vicinity.
Location Update Operation inform the server system about the client’s location using.
Audio Chat Operations enable direct audio communication between clients. Audio chat between clients
is initiated with the coordination of the Media Manager. Once an audio chat is initiated, the clients
interact directly with each other without intervention of the rover server system. Figure 2(d), shows the
display at a client that is involved in anaudio chat with another client. The dashed line indicates an active
chat session between the clients 4.
To assess the performance and scalability of the Rover System we take two approaches:
Location-aware computing involves the automatic tailoring of information and services based
on the current location of the user. We have designed and implemented Rover, a system that enables
location-based services, as well as the traditional time-aware, user-aware and device-aware services.
To achieve system scalability to very large client sets, Rover servers are implemented in an “action-
based” concurrent software architecture that enables fine-grained application-specific scheduling of
tasks. We have demonstrated feasability through implementations for both outdoor and indoor
environments on multiple platforms.
Rover is currently available as a deployable system using specific technologies, both indoors
and outdoors. Our final goal is to provide a completely integrated system that operates under different
technologies, and allows a seamless experience of location aware computing to clients as they move
through the system. With this in mind, we are continuing our work in a number of different directions.
We are experimenting with a wide range of client devices, especially the ones with limited capabilities.
We are also experimenting with other alternative wireless access technologies including a Bluetooth-
based LAN. We are also working on the design and implementation of a multi-Rover system.
We believe that Rover Technology will greatly enhance the user experience in a large number
places, including visits to museums, amusement and theme parks, shopping malls, game fields,
offices and business centers. The system has been designed specifically to scale to large user
populations. Therefore, we expect the benefits of this system to be higher in such large user
population environments.
:-References
[1] http://www.bluetooth.com.
[2] http://www.irda.org.
[3] J. Agre, D. Akenyemi, L. Ji, R. Masuoka, and P. Thakkar. A Layered Architecture for Location-based
Services in Wireless Ad Hoc Networks. In Proceedings of IEEE Aerospace Conference, March 2002.
[4] P. Bahl and V.N. Padmanabhan. RADAR: An in-building RF-based user location and tracking system.
In Proceedings of Infocom, Tel Aviv, Israel, March 2000.
[5] N. Davies, K. Cheverst, K. Mitchell, and A. Efrat. Using and Determining Location in a Context sensitive
Tour Guide. IEEE Computer, 34(8), August 2000.
[6] B. Hofmann-Wellenhof, H. Lichtenegger, and J. Collins. GPS: Theory and Practice. Springer-
Verlag,Wein, NY, 1997.
[7] IEEE. Wireless LAN medium access control (MAC) and physical layer (PHY) specification, Standard
802.11, 1999.
[8] J. Mitola. The Software Radio Architecture. IEEE Communications Magazine, 5, May 1995.
[9] P. Mockapetris. Domain names - implementation and specification, RFC 1035, November 1987.