An effective offloading middleware for pervasive services on mobile devices

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

Abstract

The practical success of pervasive services running in mobile wireless networks and devices relies on their ability to provide effective and efficient offloading support, so as to satisfy the increasing demand for mobile devices to run heavier applications (e.g. those running on desktop PCs). Offloading is an effective mechanism for leveraging the severity of resource constrained mobile devices by migrating some computing load to nearby resource-rich surrogates (e.g. desktop PCs, servers) on home networks or their extension. This paper proposes a light-weight and efficient offloading middleware, which provides runtime offloading services for resource constrained mobile devices. The middleware considers multiple types of resources (i.e. memory, CPU and bandwidth) and carries out application partitioning and partition offloading in an adaptive and efficient manner. The corresponding algorithms are presented. The evaluation outcomes indicate the effectiveness and efficiency of this service offloading solution.

Introduction

Recent years have seen a significant increase in research and development of mobile and wireless networks, including UMTS (Universal Mobile Telecommunications System), IEEE 802.11/16/20, mobile ad hoc networks, and sensor networks. The future success of these network systems lies in their ability to provide users with cost-effective services that have the potential to run anywhere, anytime and on any device without (or with little) user attention. Services with these features are termed pervasive services, which is an active branch of pervasive (or ubiquitous) computing [1].

With advances in mobile terminals and wireless communications, the demand for mobile devices to run heavier applications (such as video playing or editing) is increasing. Apparently, even the most powerful PDAs today (due to the size and weight constraints) are unable to compete against their desktop siblings with regard to any type of resource, especially battery life and network capacity. Meanwhile, in some working, entertaining and living environments, computing resources are often rich. For instance, in offices or cafes, some desktop PCs may be idle while mobile devices are busy. As such, it makes sense for these resource constrained mobile devices to make use of the resources available in their vicinity to leverage their resource insufficiency. For example, it is natural for John to expect to watch the video clips of his daughter’s Christmas concert (even if with degraded quality), which was just uploaded to their home server, during a tedious wait in a Heathrow boarding lounge. Therefore, there is a clear need for mobile devices to run heavier applications. We refer to this kind of computation or communication migration as offloading for pervasive services. It is also called surrogate computing or cyber foraging [10], [1].

Offloading is not a new concept. It has been around in the form of proxies and surrogates for many years. For example, it has been used for load balancing in distributed systems [1]. However utilizing offloading mechanisms in the domain of resource constrained mobile devices has gained popularity lately.

Since pervasive devices are heterogeneous in terms of CPU power, memory, communication capabilities, battery life and software features, middleware is the most common solution for facilitating interoperability in pervasive environments [2]. The aim of our work is to provide a light-weight and effective middleware for pervasive service offloading in mobile devices.

Some research work on offloading mechanisms for resource constrained mobile devices has been proposed [3], [4], [5], [6], [7], [8], [9], [10], [11]. However, they are limited in one way or another. Since pervasive services tend to be more complex and dynamic [3], ideally, an offloading system should consider multiple types of resource constraint. In this paper, we present our work on a runtime offloading middleware specifically for pervasive services. Instead of considering only one type of individual resource, such as memory [3] or CPU [4], our offloading approach counts on a combination of these plus communication cost (i.e. bandwidth resources). Through grasp of service runtime feature in a cost-effective manner, the efficiency of our offloading approach is significantly increased. The adaptability and efficiency of our offloading middleware also lies in its light-weighted service partitioning algorithm and feasible offloading mechanisms.

As far as middleware for pervasive computing is concerned, the Spectra project [5], [9] proposes a remote execution system for mobile devices used in pervasive computing. Chen et al. proposed an offloading framework [4] that focuses on a Java-based environment and dynamically decides whether to execute locally or remotely, based on the cost of Java-code compilation, computational complexity and communication channel conditions. The Coign [6] project proposed a system to use a min-cut algorithm to statically partition binary applications built from Microsoft’s Component Object Model (COM) components. Li et al. [7] constructed a static cost graph and applied a partition scheme to statically divide an application’s tasks into client and server subtasks during the design time. Goyal et al. [11] proposed a cyber foraging solution using virtual machine technologies. However, these works did not provide specific offloading mechanism.

Gu et al. [8] proposed an adaptive infrastructure for Java application offloading execution, which adapted a min-cut [12] heuristic algorithm to dynamically partition an application. In addition, the Gu et al. work considers only memory and supports only one surrogate, however, most mobile applications are more sensitive to bandwidth and CPU cycles, as is the case in the John’s video playback scenario above. As such, an ideal partitioning solution should consider memory, CPU and bandwidth simultaneously. Focusing on only one of them will render it unfeasible in practice. Our offloading middleware considers both the interaction properties and the resource consumption when conducting partitioning and offloading. And we aim to relieve not only memory constraints but also CPU usage and bandwidth constraints.

The remainder of this paper is organized as follows. Section 2 describes a scenario for offloading services and presents some issues involved in designing offloading systems. The architecture of our proposed offloading middleware is discussed in Section 3. In Section 4, we present a class instrumenting approach for offloading purposes. A Service partitioning algorithm is presented in Section 5. In Section 6, we discuss some practical issues for implementing the offloading middleware. Implementation and evaluation comprise Section 7 and the paper concludes in Section 8.

Section snippets

Scenario: John at Airport

Fig. 1 illustrates the John Scenario mentioned in Section 1. In John’s home network system, a server is connected to the Internet through a home gateway. The home network server serves as a file server in this scenario storing compressed video clips. We assume that the airport provides APs (Access Points) that enable mobile devices to access to the Internet.

Suppose John receives an instant message from his daughter saying that four five-minute video clips of her performance have just been

Overall system architecture

Applications running on mobile devices can interact with this middleware directly to invoke its offloading function. Alternatively, mobile device users can manually interact with the middleware via a graphical user interface (refer to the implementation section of this paper for details). Pervasive services written by Java are used in our current system. However, the service partitioning and offloading principles discussed in this paper are equally applicable to the pervasive services developed

Class instrumenting

Class instrumenting is a process that transforms the classes to be offloaded into a form that is suitable for remote execution (including maintaining the correct communication with other local classes) in surrogates. When conducting a class instrumenting, a dedicated proxy class is generated automatically as a shadow class of the instrumented class. The name of the proxy class is the instrumented class’s name while the name of the instrumented class is changed (i.e. with an “I_” prefix).

Fig. 4

Service partitioning

Service partitioning partitions a service into two or more partitions for execution in the mobile device and surrogates. The main goal of the partitioning algorithm is to keep the component interaction between the partitions (i.e. the communication cost between the mobile device and surrogates) as small as possible. In this section, we begin with cost modeling of a pervasive service. We then formulate the partitioning problem and propose a (k+1) partitioning algorithm in two steps. Furthermore,

Practical issues

As discussed in Section 3, the costs of each service component change during service executions. In general, there are two approaches to weighing the costs of service components: online-profiling and offline-profiling. The latter uses a pre-defined profile to describe the resource consumption of each service component. An offline-profile needs to be defined during the design period and with the knowledge of the source code. The competitive advantage of offline-profiling is its simple

Implementation

A testbed simulating the real-life scenario as demonstrated in Fig. 1 has been set up, which consists of two sub-networks: one simulating the home network and the other the airport lounge network. In the home network, the home network server and the home gateway are desktop PCs (P4-2 GHz, 1 GB Memory). In the airport lounge network, a desktop PC of the same specification is used to serve as a surrogate. The mobile device used is an HP iPAQ HX2750 PDA. Wireless communications are through IEEE

Conclusion and future work

In this paper, with a real-life scenario, we presented an offloading middleware for mobile devices, with specific focus on its two core modules: instrumenting and partitioning modules. The partitioning algorithm considers both edges and vertices when deciding a merger. Specifically, our algorithm considers different types of costs associated with individual application classes (including CPU cycle, memory and bandwidth) and the costs amongst these classes (mainly invocation frequency). Since

Acknowledgement

The work of this paper was partially funded by the UK EPSRC (Engineering and Physical Sciences Research Council) under the Project PANDA (EP/D061881/1).

Shumao Ou is currently a Ph.D. student in the Department of Electronic Systems Engineering, University of Essex, UK. He obtained an M.Sc. with distinction from the same department and a B.Eng. from the National Technical University of Defence, China. His research interests include pervasive computing, wireless networks, distributed systems, mobile computing, pervasive service engineering and model driven engineering. He has published several papers in journals and conferences.

References (19)

  • G. Karypis et al.

    Multilevel k-way partitioning scheme for irregular graphs

    Journal of Parallel and Distributed Computing

    (1998)
  • M. Satyanarayanan

    Pervasive computing: Vision and challenges

    IEEE Personal Communications

    (2001)
  • M. Roman et al.

    A middleware infrastructure for active spaces

    IEEE Pervasive Computing Magazine

    (2002)
  • X. Gu et al.

    Adaptive offloading for pervasive computing

    IEEE Pervasive Computing Magazine

    (2004)
  • G. Chen et al.

    Studying energy trade offs in offloading computation/compilation in java-enabled mobile devices

    IEEE Transactions on Parallel and Distributed Systems

    (2004)
  • J. Flinn, S. Park, M. Satyanarayanan, Balancing performance, energy, and quality in pervasive computing, in: Proc. of...
  • G.C. Hunt, M.L. Scott, The coign automatic distributed partitioning system, in: Proc. of the 3rd USENIX Symposium on OS...
  • Z. Li et al.

    Computation offloading to save energy on handheld devices: A partition scheme

  • X. Gu et al.

    Adaptive offloading inference for delivering applications in pervasive computing environments

There are more references available in the full text version of this article.

Cited by (85)

View all citing articles on Scopus

Shumao Ou is currently a Ph.D. student in the Department of Electronic Systems Engineering, University of Essex, UK. He obtained an M.Sc. with distinction from the same department and a B.Eng. from the National Technical University of Defence, China. His research interests include pervasive computing, wireless networks, distributed systems, mobile computing, pervasive service engineering and model driven engineering. He has published several papers in journals and conferences.

Kun Yang received his Ph.D. from the Department of E&EE of University College London (UCL), UK, and M.Sc. and B.Sc. from the Computer Science Department of Jilin University, China. He has been a lecturer in the Department of Electronic Systems Engineering, University of Essex, UK since 2003. Before that he worked as a research fellow at E&EE-UCL on several EU IST projects. His main research interests include wireless networks, mobile ad hoc and sensor networks, pervasive service engineering. He has published more than 20 journal papers and books. He serves on the editorial board of IEEE Communication Survey & Tutorials and Wiley Int. Journal of Wireless Communication and Mobile Computing (WCMC). He is a chair or TPC member of many international conferences. He is a Member of IEEE and ACM.

Jie Zhang is Professor of Wireless Communications and Networks at the Dept. of Computing and Information Systems, University of Bedfordshire (UoB), UK. He joined UoB as a Senior Lecturer in 2002, becoming Reader and Professor in 2005 and 2006 respectively. He received his Ph.D. degree from the Dept. of Automatic Control and Electronic Eng., East China Univ. of Sci. and Tech., Shanghai, China, in 1995. From 1997 to 2002, he was a Research Fellow with E&E Eng., University College London, the Dept. of Eng. Sci., Oxford University, and a Software Engineer with Aircom. He is the founding Director of Centre for Wireless Network Design, UoB. He is the Project Coordinator of EU FP6 RANPLAN-HEC and GAWIND projects. As the Principal Investigator, he is currently responsible for some US$ 2.5M research funding. His main research interests include Wireless Communications and Networks, QoS in IP networks and High Performance Computing. He has some 50 publications in refereed journals and conferences.

View full text