Cyber Foraging: Bridging Mobile and Cloud Computing

Jason Flinn



This lecture provides an introduction to cyber foraging, a topic that lies at the intersection of mobile and cloud computing. Cyber foraging dynamically augments the computing resources of mobile computers by opportunistically exploiting fixed computing infrastructure in the surrounding environment. In a cyber foraging system, applications functionality is dynamically partitioned between the mobile computer and infrastructure servers that store data and execute computation on behalf of mobile users. The location of application functionality changes in response to user mobility, platform characteristics, and variation in resources such as network bandwidth and CPU load. Cyber foraging also introduces a new, surrogate computing tier that lies between mobile users and cloud data centers. Surrogates are wired, infrastructure servers that offer much greater computing resources than those offered by small, battery-powered mobile devices. Surrogates are geographically distributed to be as close as possible to mobile computers so that they can provide substantially better response time to network requests than that provided by servers in cloud data centers. For instance, surrogates may be co-located with wireless hotspots in coffee shops, airport lounges, and other public locations.

This lecture first describes how cyber foraging systems dynamically partition data and computation. It shows how dynamic partitioning can often yield better performance, energy efficiency, and application quality than static thin-client or thick-client approaches for dividing functionality between cloud and mobile computers.

The lecture then describes the design of the surrogate computing tier. It shows how strong isolation can enable third-party computers to host computation and store data on behalf of nearby mobile devices. It then describes how surrogates can provide reasonable security and privacy guarantees to the mobile computers that use them. The lecture concludes with a discussion of data staging, in which surrogates temporarily store data in transit between cloud servers and mobile computers in order to improve transfer bandwidth and energy efficiency.