Odyssey: Agile Application-
Aware Adaptation for Mobility
SOSP ’97 Brian D. Noble외, CMU
Presenter: Youngki Lee
Network Computing Laboratory
Odyssey architecture and APIs
Network Computing Laboratory | 2 Korea Advanced Institute of Science and Technology
Video narration of local history
Travel information Travel information
Network Computing Laboratory | 3 Korea Advanced Institute of Science and Technology
What does odyssey do?
• Odyssey monitors resources.
• Bandwidth, CPURequest battery power
• Odyssey interacts with each application to best
Video narration resources.
exploit monitoredof local history
• When high bandwidth connectivity is lost due to a
Travel information Travel information
• Odyssey detects the change and notifies interested Streaming
response applications Server
• Application-dependant adaptation
•When the user emerges from the radio shadow
Network Computing Laboratory | 4 Korea Advanced Institute of Science and Technology
Support variety of applications and data types
Simple programming model
Network Computing Laboratory | 5 Korea Advanced Institute of Science and Technology
The degree to which data presented at a client matches the
reference copy at the server
How snazzy the data is.
The dimensions of fidelity are natural axes of adaptation for
Fidelity has many dimensions
one is universal: consistency
others depend on data type
video: frame rate, frame quality
geographical databases: feature set, minimum feature size
tradeoffs are application-dependent
A key goal of Odyssey is to provide a framework within which
diverse notions of fidelity can easily be incorporated.
Network Computing Laboratory | 6 Korea Advanced Institute of Science and Technology
Many mobile users will find it valuable to run background
applications in addition to the foreground application that
dominates their attention.
Background: information filtering application monitoring data such as
stock prices or enemy movement
One must control the use of limited resources.
Application transparent such as OS?
Application dependant such as Eudora?
Network Computing Laboratory | 7 Korea Advanced Institute of Science and Technology
A key property of an adaptive system is the speed and
accuracy with which it detects and responds to changes in
Especially important when changes are large and erratic.
Agility is complex property with many components.
Differing sensitivities to different resources.
A system may be much more sensitive to changes in network bandwidth than to
changes in battery power level.
Differing origins of changes in resource availability.
Supply of a resource due to mobility
Demand for resource by concurrent applications.
Network Computing Laboratory | 8 Korea Advanced Institute of Science and Technology
Who is responsible for adaptation?
Individual applications (laissez-faire adaptation)
The system (application-transparent adaptation)
system provides resource arbitration and control fidelity.
Both (application-aware adaptation)
application specific information is used while the system controls resources.
(ex. Eudora) (ex. Coda)
Application diversity ↑ Application currency ↑
Network Computing Laboratory | 9 Korea Advanced Institute of Science and Technology
Collaborative partnership between the system and individual
The system monitors resource levels, notifies applications of
relevant changes, and enforces resource allocation decisions.
Each application independently decides how best to adapt
Both of application diversity and currency are achieved.
Diversity is accommodated by allowing applications to determine the
mapping of resource levels to fidelity levels
Concurrency is supported by allowing the system to retain control of
resource monitoring and arbitration.
Network Computing Laboratory | 10 Korea Advanced Institute of Science and Technology
Odyssey System Architecture
OS Kernel Interceptor
Network Computing Laboratory | 11 Korea Advanced Institute of Science and Technology
Viceroy and Wardens
System-level data differentiation through wardens
Many, per application (data type)
provides system-level support to manage a data type
To support a new data type, an appropriate warden has to be
Wardens subordinate to viceroy
single, central component
type-independent, system-level support
responsible for all resource allocation, arbitration
central point of authority and control for Odyssey
Network Computing Laboratory | 12 Korea Advanced Institute of Science and Technology
Applications give viceroy a window of tolerance for some
viceroy monitors resource availability
if it leaves window, notifies application via upcall
Our architecture supports many resources
we currently focus only on network bandwidth
Fid. 1 Fid. 2 Fid. 3 Fid. 2
Network Computing Laboratory | 13 Korea Advanced Institute of Science and Technology
Resource negotiation operations
request(in path, in resource-descriptor, out request id)
handler(in request-id, in resource-id, in resource-level)
Changing Fidelity: Type-specific operations
tsop(in path, in opcode, in insize, in inbuf, inout outsize, out outbuf)
Resource Descriptor Fields Generic Resources in Odyssey
Disk cache space
Name of upcall handler
Network Computing Laboratory | 14 Korea Advanced Institute of Science and Technology
Network Computing Laboratory | 15 Korea Advanced Institute of Science and Technology
xanim: split into client and server
server offers movie at several levels of fidelity
application plays the track that the current bandwidth can support
Odyssey RPC Video
(1) To read a movie’s meta data
(2) To get a particular frame from a specified track
Network Computing Laboratory | 16 Korea Advanced Institute of Science and Technology
Netscape: client-side proxy (cellophane) + remote
distillation server degrades data before shipping to client
Netscape HTTP Odyssey RPC HTTP
API Server To Web
Tsop to set a fidelity level
Network Computing Laboratory | 17 Korea Advanced Institute of Science and Technology
Janus: support remote recognition method, hybrid
Odyssey RPC Remote
Network Computing Laboratory | 18 Korea Advanced Institute of Science and Technology
How agile is Odyssey in the face of changing network
How beneficial is it for applications to exploit the dynamic
adaptation made possible by Odyssey
How important is centralized resource management for
Network Computing Laboratory | 19 Korea Advanced Institute of Science and Technology
The field of control systems
Characterize the adaptive ability of a system with respect to a particular
output in terms of its responses to a set of input reference waveforms
Network Computing Laboratory | 20 Korea Advanced Institute of Science and Technology
Generating discontinuous waveforms
It is impossible in real network to generate those waveforms precisely
So, trace modulation is used.
Fidelity and performance should be considered together.
90 MHz Pentium client with 32 MB of memory
A collection of 200 MHz Pentium Pro servers with 64MB of memory
NetBSD 1.2 kernel customized to include Odyssey and trace modulation
Network Computing Laboratory | 21 Korea Advanced Institute of Science and Technology
How to measure network bandwidth?
Measure and log roundtrip time and throughput
Each round trip entry records the time, Trtt, to send a request to a server
and receive a response.
Each throughput entry records Twin, which is either the time for a
receiver to request and receive a window’s worth, D, of data, or for a
sender to transmit that data and receive an ack.
Smooth RTT and Throughput
New = (measured) + (1- )(old)
Bandwidth estimation by viceroy
Twin (Trtt / 2)
Network Computing Laboratory | 22 Korea Advanced Institute of Science and Technology
Supply Estimation Agility
Network Computing Laboratory | 23 Korea Advanced Institute of Science and Technology
Demand Estimation Agility
Network Computing Laboratory | 24 Korea Advanced Institute of Science and Technology
How Beneficial is Adaptation?
Fidelity : the quality of the video
JPEG(99) = 1, JPEG(50) = 0.5, black-and-white = 0.01
Performance: frames dropped
Adaptation goal: play the highest quality possible without dropping
Network Computing Laboratory | 25 Korea Advanced Institute of Science and Technology
How Beneficial is Adaptation?
Fidelity: Quality of image
Full quality=1, JPEG(50) =0.5, JPEG(25) = 0.25, JPEG(5) = 0.05
Performance: average time to fetch and display an image during an
Adaptation goal: display the best quality image that can be fetched
within twice the twice the Eathernet time, in this case 0.4 sec.
Network Computing Laboratory | 26 Korea Advanced Institute of Science and Technology
How Beneficial is Adaptation?
Fidelity: fixed since the quality of recognition does no vary.
Performance: the speed with which recognitions take place
Network Computing Laboratory | 27 Korea Advanced Institute of Science and Technology
How Important is Centralized Resource Management?
Rather than combining information from all logs, each log is examined in
Pass the theoretical bandwidth to any interested applications
Network Computing Laboratory | 28 Korea Advanced Institute of Science and Technology
Need for adaptation in mobile systems is widely recognized
offers most general and effective approach to adaptation
collaborative partnership between system and application
previous approaches are limiting cases of this approach
Odyssey prototype provides initial validation of concept
Network Computing Laboratory | 29 Korea Advanced Institute of Science and Technology
adaptation for Web objects other than images
Multiple levels of fidelity in the speech application.
improving agility on bandwidth drops
explore integration of Odyssey in other operating systems
broaden number of managed resources
enlarge range of supported applications
deploy Odyssey for real use
dynamic function vs. data shipping as in speech
Network Computing Laboratory | 30 Korea Advanced Institute of Science and Technology