Automated component insourcing for mobile applications: undoing premature or ill-conceived offloading optimizations

  • Authors:
  • Eli Tilevich

  • Affiliations:
  • Virginia Tech, Blacksburg, VA, USA

  • Venue:
  • Proceedings of the 2013 ACM workshop on Mobile development lifecycle
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

To alleviate the resource constraints of mobile devices, developers of mobile applications commonly apply the cloud offloading optimization-placing an application's energy and performance intensive functionality to execute at a remote cloud server. Because of the high heterogeneity of mobile hardware and the variability of mobile networks, a cloud offloading optimization may become detrimental to energy consumption and performance efficiency. Reverting to the original, non-distributed version of the application may be infeasible, as the client and server parts may since have been maintained and enhanced independently. In that case, the components executed at the server for optimization purposes need to be moved to be executed on the mobile device; the moved components must be integrated with the rest of the application's functionality. To assist software developers with this non-trivial program restructuring, this paper introduces component insourcing, an automated program transformation that moves a remotely accessed component to be invoked locally, within a shared address space. This position paper motivates the need for component insourcing and demonstrates how this transformation can be implemented in the Java realm. The paper also discusses the technical difficulties of preserving the original component behavior and ensuring good performance in the presence of component insourcing.