Skip to main content
QUICK REVIEW

[论文解读] COARA: Code Offloading on Android with AspectJ

Roy Friedman, Nir Hauser|arXiv (Cornell University)|Apr 3, 2016
IoT and Edge/Fog Computing参考文献 10被引用 3
一句话总结

COARA 是一个 Android 中间件平台,通过基于 AspectJ 的面向切面编程实现透明的代码卸载至远程服务器。通过拦截大对象的传输并用代理替换,COARA 减少了状态传输的开销,在 WiFi 下最高可实现 24.7 倍的加速,在 3G 下最高达 5.1 倍,同时在 WiFi 下将能耗降低最多达 11 倍。

ABSTRACT

Smartphones suffer from limited computational capabilities and battery life. A method to mitigate these problems is code offloading: executing application code on a remote server. We introduce COARA, a middleware platform for code offloading on Android that uses aspect-oriented programming (AOP) with AspectJ. AOP allows COARA to intercept code for offloading without a customized compiler or modification of the operating system. COARA requires minimal changes to application source code, and does not require the application developer to be aware of AOP. Since state transfer to the server is often a bottleneck that hinders performance, COARA uses AOP to intercept the transmission of large objects from the client and replaces them with object proxies. The server can begin execution of the offloaded application code, regardless of whether all required objects been transferred to the server. We run COARA with Android applications from the Google Play store on a Nexus 4 running unmodified Android 4.3 to prove that our platform improves performance and reduces energy consumption. Our approach yields speedups of 24x and 6x over WiFi and 3G respectively.

研究动机与目标

  • 通过将计算卸载到远程服务器来解决移动设备的性能和能耗限制。
  • 克服移动应用在代码卸载过程中大规模状态传输的瓶颈。
  • 在无需修改应用程序源代码或操作系统的情况下实现透明卸载。
  • 通过抽象 AOP 复杂性并支持最小化、非侵入式集成,将开发人员的负担降至最低。
  • 通过优化的数据传输策略,提升在低带宽网络(如 3G)下的响应性和效率。

提出的方法

  • 利用 AspectJ 在运行时拦截方法调用和对象传输,无需修改 Android 操作系统或使用自定义编译器。
  • 在状态传输过程中,将应用堆中的大对象替换为轻量级代理,推迟完整对象的传输。
  • 采用三种传输策略:急切(完整堆传输)、延迟(仅在访问时探测)和流水线(卸载后异步流式传输对象)。
  • 使用对象缓存避免在多次卸载会话中重复传输未更改的对象,将状态传输减少最多达 99%。
  • 通过基于注解的配置支持在服务器上执行替代方法,实现更高保真度的计算(例如,计算更多位数的 π)。
  • 与未修改的 Android 4.3 在 Nexus 4 上集成,证明了兼容性和实际可行性。

实验结果

研究问题

  • RQ1面向切面编程能否有效用于在不修改操作系统或编译器的情况下,在 Android 上实现透明的代码卸载?
  • RQ2与完整堆传输相比,基于代理的状态传输在移动网络上的性能和能效方面表现如何?
  • RQ3像延迟和流水线传输这样的传输策略在多大程度上能减少状态传输开销并提升卸载性能?
  • RQ4对象缓存对重复卸载操作和整体系统效率有何影响?
  • RQ5COARA 能否在来自 Google Play 商店的真实 Android 应用中实现显著的性能和能耗提升?

主要发现

  • COARA 在 Nexus 4 上相较于原生执行,最高实现 24.7 倍的加速(WiFi 下)和 5.1 倍的加速(3G 下)。
  • 在 WiFi 下,流水线传输策略相比急切传输策略性能高出 1.43 倍,证明了早期服务器端执行的优势。
  • 延迟传输将状态传输减少超过 90%,在某项基准测试中上传量从 1.5MB 降低至 117KB,使原本不可行的卸载成为可能。
  • 对象缓存使某些情况下状态传输减少至 2KB 以下,实现最高达 99% 的减少,当命中率 100% 时,WiFi 下实现最高 31.1 倍加速,3G 下实现 22.7 倍加速。
  • 能耗在 WiFi 下最高降低 11 倍,在 3G 下降低 3 倍,证实了 COARA 在性能和效率方面的双重优势。
  • 替代方法执行实现了 5 倍加速并输出更高精度结果(π 计算位数从 10,000 位提升至 20,000 位),展示了其在基础卸载之外的可扩展性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。