04-09-2012, 01:43 PM
Fundamentals of Mobile and Pervasive Computing
Mobile_and_pervasive_computing_Ch06.pdf (Size: 240.56 KB / Downloads: 36)
Application development for mobile computers is a difficult task—on
their own, applications are faced with a myriad of challenges: limited
power and processing speed, varying levels of network connectivity,
completely disconnected operation, and discovery of needed services.
The goal of mobile middleware is to provide abstractions that reduce
development effort, to offer programming paradigms that make developing
powerful mobile applications easier, and to foster interoperability
between applications. Service discovery, or the art of dynamically
discovering and advertising services, is the subject of the next chapter.
This chapter examines two other important types of middleware for
mobile computing—adaptation and agents. The first, adaptation, was
first discussed in Chap. 1. We revisit this topic in this chapter. Recall
that adaptation helps applications to deal intelligently with limited or
fluctuating resource levels. The second type of middleware, mobile
agents, provides a powerful and flexible paradigm for access to remote
data and services.
Adaptation
Mobile computers must execute user- and system-level applications
subject to a variety of resource constraints that generally can be ignored
in modern desktop environments. The most important of these constraints
are power, volatile and nonvolatile memory, and network bandwidth,
although other physical limitations such as screen resolution
are also important. In order to provide users with a reasonable computing
environment, which approaches the best that currently available
resources will allow, applications and/or system software must adapt to
limited or fluctuating resource levels. For example, given a sudden
severe constraint on available bandwidth, a mobile audio application
might stop delivering a high-bit-rate audio stream and substitute a
lower-quality stream. The user is likely to object less to the lowerquality
delivery than to the significant dropouts and stuttering if the
application attempted to continue delivering the high-quality stream.
The spectrum of adaptation
At one end of the spectrum, adaptation may be entirely the responsibility
of the mobile computer’s operating system (OS); that is, the software for
handling adaptation essentially is tucked under the OS hood, invisible
to applications. At the other end, adaptation may be entirely the responsibility
of individual applications; that is, each application must address
all the issues of detecting and dealing with varying resource levels.
Between these extremes, a number of application-aware strategies are
possible, where the OS and individual application each share some of
the burden of adaptation. While applications are involved in adaptation
decisions, the middleware and/or OS provides support for resource monitoring
and other low-level adaptation functions. The spectrum of adaptation
is depicted in Fig. 6.1. In this part of the chapter, we are concerned
primarily with middleware for adaptation, that is, software interfaces
that allow applications to take part in the adaptation process. Pure
system-level adaptation strategies, those which take place in a mobileaware
file system such as Coda (e.g., caching and hoarding), are covered
elsewhere in this book.
Characterizing adaptation strategies
The Odyssey project (Noble et al., 1997; Noble, 2000) at Carnegie Mellon
University was one of the first application-aware middleware systems,
and it serves as a good model for understanding application-aware adaptation.
In describing the Odyssey system, Satyanarayanan proposed several
measures that are useful for classifying the goodness of an adaptation
strategy. We describe these—fidelity, agility, and concurrency—below.