Mobile Code, Adaptive Mobile Applications, and Network Architectures
Thomas Kunz
Systems and Computer Engineering
Carleton University
http://kunz-pc.sce.carleton.ca/
tkunz@sce.carleton.ca

Outline
Background: Motivation and Related Work
Mobile Code Toolkit
Experimental Results
Scalability: Performance Models (LQM)
Conclusions and Future Research

Research Motivation

Related Work
Typically, related work focuses on bandwidth variation
Other resources are also constrained (memory, power, CPU capabilities) and may vary over time
Majority of solutions: introduce proxy between client (application executing on mobile device) and server, proxy compresses and filters data stream
sometimes, degree of compression depends on available bandwidth
user mobility often not addressed/supported
Other solutions:
view mobile purely as User Interface (WWW browsers, Teleporting, ....)
partition client application between mobile and proxy
partition directed by application (Rover, MaROS, ....)
partition transparent to application (our own focus)

Mobile Code/Agents for Adaptive Mobile Applications

Mobile Code Toolkit: Use Proxy Objects

Mobile Code Toolkit: Components
Extend JVM on client and proxy server
Monitor
Code Storage
Object References and Profiling
Object Server
Remote Method Invocation Protocol
Dynamic Decision
Communication Control Layer
Extend garbage collection to deal with remote references
Provide abstractions to notify runtime system about environment and changes in environment (bandwidth, power, …), based on events and event notification

Experimental Results
Implemented MP3 player, encapsulated decoder as mobile agent, to execute locally or remotely
Various performance experiments, study impact of
Available Bandwidth (19.2 kbps – 2 Mbps)
Relative CPU speed (Mobile CPU: Proxy CPU)
1:4 for laptop as client device
1:116 for Windows CE palmtop as client device
Results:
for high bandwidth and slow client, offloading decoding “agent” to proxy can speed up application performance by a factor of 20 and reduce power consumption by 95%
For faster client devices, independent of bandwidth, no benefit (actually worse performance) when decoding sound samples in access network

Scalability: LQM

Scalability (cont)
Many parameters deduced from traces collected from live cellular network (Bell Mobility’s MicroBrowser)
Study system capacity under changing load conditions, vary computational load off-loaded to proxy
Results:
Proxy makes slow handsets/clients faster
System capacity decreases slightly
For system under study, application server more likely to become bottleneck than proxy
č single proxy server can support current client population
Caveat: results specific for application studied, may not generalize for more demanding multi-medial 3rd-generation mobile applications

Conclusions and Future Work
Conclusions:
Implemented Mobile Code Toolkit with small footprint for Windows CE devices
Collected experimental evidence to verify validity of our approach
Developed a general approach to study scalability
Future Work:
Improve toolkit: better RMI performance, automatic generation of proxy objects, port to Palm OS
Study additional applications and more dynamic scenarios
How to predict scalability when agent’s functionality is not similar to a “server” (i.e., decode next frame and return sampled sound)
Interaction between application-aware (MP3 player reduces sound quality, sampling rate, …. ) and application-transparent (runtime system migrates decode agent from handset to proxy) adaptation