Early analysis of resource consumption patterns in mobile applications
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)
- et al.
A survey on energy-aware security mechanisms
Pervasive Mobile Comput.
(2015) - et al.
Design and development of a mobile peer-to-peer social networking application
Expert Syst. Appl.
(2009) - et al.
Measuring mobile phone energy consumption for 802.11 wireless networking
Pervasive Mobile Comput.
(2010) - I.T.D. Bureau, ICT Facts and Figures, 2015,...
- Cisco, Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2014–2019, Feb 2015,...
- Cisco, Cisco Visual Networking Index: The Zettabyte EraTrends and Analysis, May 2015,...
- Facebook, Facebook Reports Second Quarter 2015 Results, July 2015,...
- et al.
Extending mobile device’s battery life by offloading computation to cloud
- et al.
Mobile data offloading: How much can wifi deliver?
IEEE/ACM Trans. Netw.
(2013) - A. Technologies, Android App Performance Report, Q4 2014,...
Foundations for the study of software architecture
SIGSOFT Softw. Eng. Notes
A survey of mobile cloud computing: Architecture, applications, and approaches
IWirel. Commun. Mob. Comput.
An architecture of a distributed semantic social network
Semant. Web
People as a service: A mobile-centric model for providing collective sociological profiles
IEEE Softw.
Battery-aware centralized schedulers for cpu-bound jobs in mobile grids
Pervasive Mobile Comput.
Software architecture for mobile distributed computing
About using mobile devices as cloud service providers
From the internet of things to the internet of people
IEEE Internet Comput.
Vita: A crowdsensing-oriented mobile cyber-physical system
IEEE Trans. Emerg. Top. Comput.
Empowering developers to estimate app energy consumption
Power analysis of embedded software: a first step towards software power minimization
IEEE Trans. Very Large Scale Integr. (VLSI) Syst.
Cited by (30)
Perses: A framework for the continuous evaluation of the QoS of distributed mobile applications
2022, Pervasive and Mobile ComputingCitation 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 SciencesCitation 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 EnvironmentCitation 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 MakingJoint Optimization of Response Time and Deployment Cost in Next-Gen IoT Applications
2023, IEEE Internet of Things JournalHuman microservices: A framework for turning humans into service providers
2021, Software - Practice and Experience