320 likes | 1.49k Views
Myungchul Kim mckim@icu.ac.kr. Ch 1. Mobile Adaptive Computing. What is Mobile Computing. Mobile computing? Distributed system Wireless communications Mobility of communications devices Difference between mobile computing and mobile communications?
E N D
Myungchul Kim mckim@icu.ac.kr Ch 1. Mobile Adaptive Computing
What is Mobile Computing • Mobile computing? • Distributed system • Wireless communications • Mobility of communications devices • Difference between mobile computing and mobile communications? • Ex. “Italian restaurant” through search engine. • Ex. Video streaming over the Internet • Limitations of mobile computing devices: energy, screen, … • Security or privacy • Middleware layer
Adaptability – The key to Mobile Computing • The vision of mobile computing • Roam seamlessly with your computing devices while continuing to perform computing and communication tasks uninterrupted. • Transparency • The ability of a system to hide some characteristics of its underlying implementation from users • Access transparency • Location transparency: name transparency, user mobility • Failure transparency • Mobile computing: mobility transparency
Constraints of mobile computing environments • Mobile computers can be expected to be more resource-poor than their static counterparts: e.g., battery • Mobile computers are less secure and reliable. • Mobile connectivity can be highly variable in terms of its performance (bandwidth and latency) and reliability. • Fig 1.1
Application-aware adaptation • Application-transparent (the system is fully responsible for adaptation) • Laissez-faire (the system provides no support at all) • E.g., bandwidth, battery • Fig 1.2
Mechanisms for Adaptation • What can be adapted? • The functionality and the data • How to adapt? • Client-server (CS) model • Adapting functionality • CS model • A server with soft or hard state about the clients • Coda File servers (Saty 1996a) • A few trusted servers act as the permanent safe haven of the data. • A large number of un-trusted clients can efficiently and securely access the data. • Good performance is achieved by using techniques such as caching and prefetching. • Security of data is ensured by employing end-to-end authentication and encrypted transmissions.
Impact of mobility on the CS model: a resource-poor mobile client = thin clients • Adapting data • Fidelity: the degree to which a copy of data presented for use at the client matches the reference copy at the server. • Video data – frame rate and image quality • Spatial data – minimum feature size • Telemetry data – sampling rate and timeliness • QoS requirements • Information quality • Performance • Agility: the speed and accuracy with which an adaptive application detects and responds to changes in its computing environments, e.g., change in resource availability.
How to develop or incorporate adaptations in applications • Software sensors • e.g., TCP’s congestion control • Coda (continued data availability) distributed file system • Coda client (called Venus) maintains a local cache. • Hoarding: the client prefetches files from the server to store locally. • Emulating: read and write access to local files • Write-disconnected: whether to fetch files from the server or to allow local access • Reintegration: the log of operation is used.
What can adaptations be performed? • Proxy: an intermediate software entity • Adapting to the hw/sw capabilities of the mobile device • e.g., security firewalls, NAT, transcoding proxies
WebExpress • Fig. 1.6
Caching • Differencing: for common graphic interface processing • Protocol reduction: reduction of TCP/IP connection overhead using virtual sockets. • Reduction of HTTP headers: e.g., MIME
Support for building adaptive mobile applications • Odyssey [Noble 1997] • Between application and the operating system in handing the presence of wireless links • Network bandwidth drops -> Odyssey informs the video, audio, and other applications of the change -> proper adaptations in network usage • When network conditions change, the os notifies the application of what has happened.
Rover [Joseph 1995] • Object-based sw toolkit for developing both mobility-aware and mobility-transparent CS distributed applications • Relocatable dynamic objects(RDO): loadable dynamically from the server to the client • Queued Remote Procedure Call (QRPC): nonblocking rpc supporting split-phase operations • Optimize use of expensive links • Make use of asymmetric links • Stage messages near the destination