Elsevier

Pervasive and Mobile Computing

Volume 35, February 2017, Pages 32-50
Pervasive and Mobile Computing

Early analysis of resource consumption patterns in mobile applications

https://doi.org/10.1016/j.pmcj.2016.06.011Get rights and content

Abstract

Mobile device capabilities have increased tremendously in recent years, and the complexity of the applications executed in these devices has evolved accordingly. However, despite the efforts made by mobile manufactures, resource consumption, particularly battery and data traffic, are still limiting factors for mobile applications. The most important aspects determining the consumption of a mobile application is its software architecture and its behaviour. Hence, by comparing the resource consumption of different software architectures before an application is built, mobile developers can make decisions that are better informed. This work presents the consumption analysis of two applications, each of them built with two different architectures in order to identify under which situation each architecture is more efficient. In addition, by generalizing the analysis of the two applications, a conceptual framework is created with which to analyse the consumption pattern of applications in their early development phases. This conceptual framework will allow mobile developers to estimate the resource consumption of their applications under different conditions of software architecture and usage scenarios, providing them with information relevant for decision making.

Introduction

Smartphones and mobile apps have probably been the technological innovations that have most influenced society at the beginning of this century. There are more than 7 billion mobile-cellular subscriptions, which means a penetration rate of 97%  [1]. The population using smartphones is consuming apps and cloud services massively  [2], so that global mobile data traffic will soon exceed the traffic generated by wired devices  [3]. This is expected to occur already in 2016. A clear example of this massive usage is Facebook, the social network for keeping in touch with friends, family, and colleagues. The data provided in Facebook’s report for the second quarter of 2015 [4] shows that, of its more than 960 million active daily users, more than 840 million make use of its services from a mobile device  [4]. Such figures reflect the global dimension of the impact caused by mobile applications.

The reason why the use of this kind of application has become so widespread is not only the value of the functionalities they provide to their users but also the sustainability of those functionalities in terms of the devices’ resources. It is well known that resource consumption, in particular battery use  [5], [6] and network traffic  [7], is a factor determining the success of mobile applications [8]. Mobile applications that drain the device’s resources are soon rejected by their users  [9], and hence lead to fewer users and less revenue for the companies behind the applications. Thus, for a greater likelihood of success, the development life cycle of a mobile application should include an early analysis of its consumption patterns.

These consumption patterns are determined, in a substantial proportion, by the software architecture  [10]. The most widely extended architecture for mobile apps is the server-centric approach  [11], understanding by server-centric those architectures in which mobile devices act as simple clients and most of the information storage, processing, and communication tasks are relegated to one or more servers, usually in the cloud. There are several reasons for the dominance of these architectures. The main ones are that they are well known to most developers, they delegate the processing workload to the servers, they facilitate the aggregation of data coming from individual users, and they simplify the mobile side of the apps making them easier to implement and maintain for different platforms. However, there are other emerging mobile-centric architectures  [12], [13], [14] inspired by distributed processing which are gaining in relevance for mobile-to-mobile service provisioning. Resource consumption is also a concern for these architectures  [15].

Therefore, given that most applications could be developed using either architectural approach, the selection of one or the other (server or mobile-centric) will determine the application’s consumption patterns.

To return to the Facebook example, let us assume that the social network wants to improve user engagement by offering a new service called “Let me know when a friend is coming”. This service will allow Facebook users to receive a notification when a specific user-selected friend is nearby. Applying a server-centric architecture, the strategy for the implementation of this service would require a Facebook server to store and process the real-time location of every user in order to know when the two friends are near each other. However, this strategy would mean that the users’ mobile devices would be constantly posting their owner’s location to the company’s servers, draining the devices’ resources. Conversely, the same service could be implemented using a mobile-centric architecture, delegating the computation of a friend’s proximity and its notification to the mobile device. With this approach, only the devices not computing the proximity algorithm would need to send their location information to the other device. Therefore, the more requests for position updates a device receives, the more communication and processing load it would have to accept. Under these circumstances, a question arises. Which of the two approaches is less demanding for mobile devices? And further, under what circumstances does one architectural approach consume less resources than the other?

In this paper, we propose a conceptual framework to help mobile developers during the architectural decision making process. By providing consumption estimates of mobile applications constructed under different software architectures without the need to actually implement them, the proposed framework allows developers to analyse the applications’ resource consumption and its variations as the applications scale. To that end, the framework proposes analysing the app’s consumption from the consumption of a set of primitive operations that can be used to compose complex social applications. This set of primitive operations is parametrized through some of the most relevant aspects of mobile applications, including the number of users and the usage frequency. They can therefore be used to estimate the consumption of the applications over a wide range of scenarios. The information provided by this conceptual framework can be used to draw conclusions not only about an application’s resource consumption or which architectural style would be the more efficient for it, but also to estimate the consumption under different circumstances. Mobile app developers would thus be able to foresee their applications’ needs as they evolve.

The remainder of the paper is organized as follows. Section  2 describes the motivation behind this work. Section  3 presents the experimental setup used to measure the battery and data traffic consumption of an application together with the two case studies used. The results obtained from the case studies are analysed in Section  4. The conceptual framework to estimate the resource consumption of an application and details about how it should be used in the design of new applications are presented in Section  5. Finally, Sections  6 Related works, 7 Conclusions discuss related work and conclude the paper.

Section snippets

Motivation

The fact that software architecture affects the performance of applications is well known  [10]. It is particularly relevant in the area of mobile applications since mobile devices have a limited set of resources at their disposal  [16]. As was noted above, server-centric architectures predominate in mobile applications. However, these architectures are not always sustainable. For the Facebook business model, essentially focused on targeted advertising for its users, knowing the real-time

Experimental setup

Predicting the resource consumption of an application is not a simple task. Trying to estimate that consumption under different architectures is even harder. To get the most accurate measurements, a prototype including the most significant functionalities would have to be built for each architecture. These prototypes would then be used to perform different simulations in conditions close to the real execution environments  [24]. However, this is generally unfeasible because of the cost and

Results

In the previous section we described the primitive operations of social apps and defined the formulas needed to calculate the battery and data traffic consumption of some functionalities of these applications. In this section, we shall estimate the consumption of the case studies for the two architectural styles that we are evaluating by considering the relative frequency at which each functionality is executed in a regular use of the app. We shall end the section with an evaluation of the case

Conceptual framework for evaluating the consumption of social apps

In the previous sections, we have analysed two case studies using two different architectures in order to gain insight into when one or the other is more efficient. In particular, we found that, for social apps, the number and frequency of interactions with external entities or contacts strongly influence the app’s resource consumption, and hence the decision on when one architecture or another should be applied. In addition, we applied methods to identify situations in which a configuration

Related works

The limited resources of mobile devices make them an interesting subject of study in terms of consumption efficiency. Numerous studies have analysed different aspects of these devices’ consumption patterns.

The energy consumption of mobile devices, in particular, is of great interest for the research community since it is one of the most limited resources of these devices. In [41], the most relevant work in this area is summarized, with a focus on the optimizations proposed to reduce battery

Conclusions

The success or failure of a mobile application largely depends on the resources it consumes. A resource-intensive app will quickly be rejected by its users. One of the most important aspects that determines this consumption is the software architecture applied in its development. However, which architecture is the most efficient depends on the app’s behaviour. In this paper, we have presented the evaluation of two case studies, and analysed how their battery and data traffic consumption depends

Additional information

The average consumption values of the primitive operations were obtained using an app developed for this purpose. This app and the logs with the information of executing each primitive operation can be downloaded from the website https://sites.google.com/site/resourceconsumptionfw/. The charts were drawn using Matlab. The source code to generate them can also be obtained from the above website.

Acknowledgements

This work was partially supported by the Spanish Ministry of Science and Innovation (projects TIN2014-53986-REDT, TIN2015-67083-R and TIN2015-69957-R), by the Academy of Finland (ICT 2023 call, project 295913), by the Department of Economy and Infrastructure of the Government of Extremadura (GR15098), and by the European Regional Development Fund.

References (52)

  • C. Wilke, S. Richly, S. Gotz, C. Piechnick, U. Assmann, Energy consumption and efficiency in mobile applications: A...
  • D.E. Perry et al.

    Foundations for the study of software architecture

    SIGSOFT Softw. Eng. Notes

    (1992)
  • H.T. Dinh et al.

    A survey of mobile cloud computing: Architecture, applications, and approaches

    IWirel. Commun. Mob. Comput.

    (2013)
  • S. Tramp et al.

    An architecture of a distributed semantic social network

    Semant. Web

    (2014)
  • J. Guillén et al.

    People as a service: A mobile-centric model for providing collective sociological profiles

    IEEE Softw.

    (2014)
  • M. Hirsch et al.

    Battery-aware centralized schedulers for cpu-bound jobs in mobile grids

    Pervasive Mobile Comput.

    (2015)
  • V. Issarny et al.

    Software architecture for mobile distributed computing

  • G. Kortuem, J. Schneider, D. Preuitt, T. Thompson, S. Fickas, Z. Segall, When peer-to-peer comes face-to-face:...
  • G. Ding, B. Bhargava, Peer-to-peer file-sharing over mobile ad hoc networks, in: Pervasive Computing and Communications...
  • M. Jansen

    About using mobile devices as cloud service providers

  • N. Mäkitalo, J. Pääkkö, M. Raatikainen, V. Myllärniemi, T. Aaltonen, T. Leppänen, T. Männistö, T. Mikkonen, Social...
  • J. Miranda et al.

    From the internet of things to the internet of people

    IEEE Internet Comput.

    (2015)
  • J. Berrocal, C. Canal, J. Garcia-Alonso, N. Mäkitalo, T. Mikkonen, J. Miranda, J.M. Murillo, Smartphones as personal...
  • X. Hu et al.

    Vita: A crowdsensing-oriented mobile cyber-physical system

    IEEE Trans. Emerg. Top. Comput.

    (2013)
  • R. Mittal et al.

    Empowering developers to estimate app energy consumption

  • V. Tiwari et al.

    Power analysis of embedded software: a first step towards software power minimization

    IEEE Trans. Very Large Scale Integr. (VLSI) Syst.

    (1994)
  • Cited by (30)

    • Perses: A framework for the continuous evaluation of the QoS of distributed mobile applications

      2022, Pervasive and Mobile Computing
      Citation Excerpt :

      E2E tests assess the correct integration of the two sides and the correct functioning of the main functionalities, replicating the behavior of the users [5]. Nevertheless, in recent years, mobile devices have considerably increased their computing and storage capabilities [6], enabling the development of more computing-demanding applications in order to meet more stringent QoS requirements. New paradigms and architectural designs have emerged for developing them with distributed computing (in the following distributed mobile applications), such as Human Microservices [7], the Internet of People [8] or mist computing [9].

    • SOWCompact: A federated process mining method for social workflows

      2022, Information Sciences
      Citation Excerpt :

      The exaggerated use of smartphones among a large part of the world’s population makes these devices ideal for virtually representing their users [30]. Performing SC tasks on users’ smartphones allows harnessing the computing power of each user’s device while preserving the privacy of the user data [18] and reducing power consumption [4]. We have also worked on the deployment of application programming interfaces (APIs) on such devices to distribute computing processes, which facilitates communication and data requests between the server and smartphones [26].

    • Exploring “Internet+Recycling”: Mass balance and life cycle assessment of a waste management system associated with a mobile application

      2019, Science of the Total Environment
      Citation Excerpt :

      Therefore, only this energy consumption is accounted in estimating the environmental impacts associated with the running of the Aibolv application, and the Gabi dataset “CN: Electricity grid mix” is used. The operation mechanism of the Aibolv application is analogical to that of server-centric network (Berrocal et al., 2017); the energy consumption per transaction record is estimated to be 0.32 J. According to Table S1, the electricity used to collect one FU of MSW of the three categories is calculated to be 10.40 J, 212.11 J and 77.42 J, respectively.

    • Impact of Reducing Data Plan Costs on the Digital Divide in China: A Digital Lifestyles Perspective

      2023, International Journal of Information Technology and Decision Making
    View all citing articles on Scopus
    View full text