  Code offloading is promising to accelerate mobile applications and save
energy of mobile devices by shifting some computation to cloud. However,
existing code offloading systems suffer from a long communication delay between
mobile devices and cloud. To address this challenge, in this paper, we consider
to deploy edge nodes in the proximity of mobile devices, and study how they
benefit code offloading. We design an edge-centric code offloading system,
called Echo, over a three-layer computing hierarchy consisting of mobile
devices, edge and cloud. A critical problem needs to be addressed by Echo is to
decide which method should be offloaded to which computing platform (edge or
cloud). Different from existing offloading systems that let mobile devices
individually make offloading decisions, Echo implements a centralized decision
engine at the edge node. This edge-centric design can fully exploit the limited
hardware resources at the edge to provide an offloading service with Quality of
Service guarantee. Furthermore, we propose some novel mechanisms, e.g., lazy
object transmission and differential object update, to further improve system
performance. The results of a small-scale real deployment and trace-driven
simulations show that Echo significantly outperforms existing
