Archive for February, 2014

On the Heterogeneity Challenge in Mobile Computing

February 8, 2014 Leave a comment

The mobile computing landscape is characterized by extreme heterogeneity. According to Facebook, the mobile version of their application is accessed from more than 2,500 varieties of mobile devices. Modern smartphones and tablets differ in terms of their respective hardware setups (e.g., screens, sensors, processors, memories, batteries, etc.), platforms (e.g., Android, iOS), versions, etc. Furthermore, mobile devices access the Web via mobile networks with dissimilar characteristics such as latency, bandwidth, and packet loss rates (e.g., 3G, 4G, Wi-Fi, etc.). It is the confluence of these differences that causes the heterogeneity challenge in mobile computing.

Addressing the heterogeneity challenge entails engineering mobile applications that can be used seamlessly on any device. As is commonly the case, addressing a challenge of this magnitude requires satisfying several constraints, only a subset of which can be satisfied at the same time. Specifically, the engineering process is subject to the following constraints: (1) maximize utility: provide the required functionality in as user-friendly fashion as possible; this is commonly achieved by supporting a native look-and-feel on every platform and properly leveraging a given device’s hardware capacities (e.g., screen resolution, touch interface, sensors, etc.); (2) minimize energy consumption: as the energy demands of mobile applications continue to outstrip the battery capacities of modern devices, mobile applications should be engineered with energy efficiency in mind; (3) minimize software development and maintenance costs: software development is costly and software maintenance is even more so.

The software maintenance and evolution constraint is particularly hard to satisfy in mobile computing. Mobile applications designed yesterday will have to run on mobile devices to be designed tomorrow. Mobile devices are evolving rapidly, with each new device featuring new hardware capabilities. Mobile software must keep up with the device evolution to provide quality user experience while keeping the energy consumption in check. Perfective maintenance, which codifies a set of activities aimed at optimizing applications for different objectives, is particularly hard hit by the heterogeneity challenge.

Existing solutions to the heterogeneity challenge can generally satisfy at most two of the above three constraints. Large companies commonly choose to satisfy the constraints (1) and (2). For example, Facebook provides native mobile applications for each supported platform, each of which is carefully optimized for energy consumption. Cross-platform mobile development frameworks such as PhoneGap make it possible to develop applications using HTML 5 for execution in mobile browsers. The ‘write once, run everywhere’ development model indeed minimizes the software construction and maintenance costs. Unfortunately, HTML 5 applications often provide a user experience that is inferior to that of native applications. In addition, the mobile browser, which serves as a virtual machine for executing JavaScript applications, imposes a resource overhead, thus offering a poorer energy efficiency than equivalent native applications. Not surprisingly, the latest trend in mobile application development strives to remove as much overhead as possible. For example, Google has purportedly evolved the Dalvik execution model to precompile bytecode into native executables, thus eliminating the overhead imposed by the Dalvik virtual machine.

When planning their next mobile application, enterprises have no choice but to carefully select which two of the three constraints (utility, energy efficiency, development costs) they want to satisfy and plan their software development processes accordingly.

Categories: software