Agile Application-Aware Adaptation for Mobility Khaled Hadi ICS243F Odyssey
Outline The Need of Adaptation Taxonomy of Adaptation Strategies Goals of Odyssey Model Realization Design and Implementation Application Examples Conclusion
The Need of Adaptation Poverty of resources Limited power Unpredicted network performance Inherently Insecure So, any viable approach to mobile computing must strike a balance between these competing concerns. This balance cannot be a static, mobile clients must be adaptive
Taxonomy of Adaptation Strategies The range of strategies for adaptation is delimited by two extremes: laissez-faire approach: adaptation is entirely the responsibility of individual applications Application-transparent adaptation: places entire responsibility for adaptation on the system. Between these two extremes lies a spectrum of possibilities that we collectively refer to as application-aware adaptation
Taxonomy of Adaptation Strategies (Cont’s) Range of Adaptation Strategies
Design Rationale Odyssey is a set of extensions to the NetBSD operating system to support adaptation for a broad range of mobile information access application
Odyssey Odyssey is a mobile system capable of - Dynamic adaptation: Change according to need - Agility: Fast change
Goals of Odyssey Fidelity: The degree to which data presented at client matches the reference copy at the server Concurrency: ability to execute multiple independent applications on a mobile client concurrently Agility: detect and respond to change quickly Minimalism: extended NetBSD
Model Realization Viceroy: - Mange resources - Type independent functionality Warden - type aware code components
Model Realization (cont’s) The collaborative relationship envisioned in application-aware adaptation is thus realized in two parts: - data-centric, between the viceroy and its wardens, it defines the fidelity levels for each data type and factors them into resource management -action-centric, between applications and Odyssey, it provides applications with control over the selection of fidelity levels supported by the wardens
Design and Implementation An implementation of Odyssey must enable an application to: Operate on Odyssey objects Express resource expectations Be notified when expectations are no longer met, and respond by changing fidelity
Odyssey Client Architecture Integrated into NetBSD New system call included Odyssey implemented in User space outside the kernel
Expressing Resource Reservations ApplicationOdyssey Request Request-ID PARAMETERS: Path Window Up-Call Resource-ID
Notifying Resource Changes Application Odyssey Up-Call Tsop PARAMETERS: Request-ID Resource-ID Resource-level Changing Fidelity
Application Examples Video Player Web Browser Speech Recognizer
Video Player (xanim) The server stores a number of tracks of the movie, each with a different fidelity Number of tracks, the size and offset of frames for each track is stored in meta data
Web Browser (Netscape) The cellophane transforms the http request into file operations on odyssey web objects The web Warden is responsible for setting the fidelity level The distillation server provides multiple levels of fidelity
Speech Recognizer Speech Warden is responsible for choosing to do a local, remote or hybrid (1 st pass on client) recognition. Decision is dependent on available bandwidth
Conclusion Partnership between application & system Division of tasks Balance Performance and Fidelity