Towards a practical framework for code offloading in the Internet of Things

Abstract Mobile code offloading is a popular technique for enhancing the apparent capabilities of resource constrained devices. It is of particular interest for developers trying to push ever more complex algorithms into embedded devices that belong to the Internet of Things (IoT). Although there is much research into this area in the realm of smartphones and tablets, the same cannot be said for IoT devices, for which very few code offloading frameworks exist. This paper presents MobiCOP-IoT, an extension of the MobiCOP mobile code offloading solution for the smartphone and tablet ecosystem, that supports embedded devices and Google’s newest IoT initiative, Android Things. MobiCOP-IoT allows developers to deploy surrogates on both distant clouds and proximate nodes located on the edge. As such, MobiCOP-IoT enabled applications can take advantage of the benefits of mobile edge computing to further enhance their capabilities. We tested MobiCOP-IoT in a variety of scenarios and we found improvements of up to 9 times in terms of performance and energy for centralized cloud deployments, and up to 16 times in the case of edge scenarios. Moreover, we show the platform is capable of automatic horizontal scaling, which allows it to adapt to varying network traffic conditions; and multitenancy, wherein a single server instance is capable of attending multiple clients’ requests with minimal loss in performance.

[1]  J. Wenny Rahayu,et al.  Mobile cloud computing: A survey , 2013, Future Gener. Comput. Syst..

[2]  Vassilis Kostakos,et al.  Large-scale offloading in the Internet of Things , 2017, 2017 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops).

[3]  Sarmad Ullah Khan,et al.  Future Internet: The Internet of Things Architecture, Possible Applications and Key Challenges , 2012, 2012 10th International Conference on Frontiers of Information Technology.

[4]  Jianli Pan,et al.  Future Edge Cloud and Edge Computing for Internet of Things Applications , 2018, IEEE Internet of Things Journal.

[5]  Marimuthu Palaniswami,et al.  Internet of Things (IoT): A vision, architectural elements, and future directions , 2012, Future Gener. Comput. Syst..

[6]  Christian Poellabauer,et al.  MobiCOP: A Scalable and Reliable Mobile Code Offloading Solution , 2018, Wirel. Commun. Mob. Comput..

[7]  H. Andrés Neyem,et al.  Rethinking the Mobile Code Offloading Paradigm: From Concept to Practice , 2017, 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[8]  Antonio Pescapè,et al.  Integration of Cloud computing and Internet of Things: A survey , 2016, Future Gener. Comput. Syst..

[9]  Sateesh Addepalli,et al.  Fog computing and its role in the internet of things , 2012, MCC '12.

[10]  Giulio Giunta,et al.  Accelerating Linux and Android applications on low‐power devices through remote GPGPU offloading , 2017, Concurr. Comput. Pract. Exp..

[11]  Henri E. Bal,et al.  Cuckoo: A Computation Offloading Framework for Smartphones , 2010, MobiCASE.

[12]  Soumya Kanti Datta,et al.  Comparison of edge computing implementations: Fog computing, cloudlet and mobile edge computing , 2017, 2017 Global Internet of Things Summit (GIoTS).

[13]  Alec Wolman,et al.  MAUI: making smartphones last longer with code offload , 2010, MobiSys '10.

[14]  Rajkumar Buyya,et al.  Cloud-Based Augmentation for Mobile Devices: Motivation, Taxonomies, and Open Challenges , 2013, IEEE Communications Surveys & Tutorials.

[15]  Huber Flores,et al.  Adaptive code offloading for mobile cloud applications: exploiting fuzzy sets and evidence-based learning , 2013, MCS '13.

[16]  Alejandro Zunino,et al.  Energy-efficient job stealing for CPU-intensive processing in mobile devices , 2012, Computing.

[17]  Chen-Mou Cheng,et al.  COCA: Computation Offload to Clouds Using AOP , 2012, 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012).

[18]  Qun Li,et al.  A Survey of Fog Computing: Concepts, Applications and Issues , 2015, Mobidata@MobiHoc.

[19]  Paramvir Bahl,et al.  The Case for VM-Based Cloudlets in Mobile Computing , 2009, IEEE Pervasive Computing.

[20]  Roy Friedman,et al.  COARA: Code Offloading on Android with AspectJ , 2016, ArXiv.

[21]  Pan Hui,et al.  ThinkAir: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading , 2012, 2012 Proceedings IEEE INFOCOM.

[22]  Mario Nemirovsky,et al.  Key ingredients in an IoT recipe: Fog Computing, Cloud computing, and more Fog Computing , 2014, 2014 IEEE 19th International Workshop on Computer Aided Modeling and Design of Communication Links and Networks (CAMAD).

[23]  Tom H. Luan,et al.  Fog Computing: Focusing on Mobile Users at the Edge , 2015, ArXiv.

[24]  Arslan Munir,et al.  An efficient computation offloading architecture for the Internet of Things (IoT) devices , 2017, 2017 14th IEEE Annual Consumer Communications & Networking Conference (CCNC).

[25]  Mohsen Guizani,et al.  Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications , 2015, IEEE Communications Surveys & Tutorials.

[26]  Byung-Gon Chun,et al.  CloneCloud: elastic execution between mobile device and cloud , 2011, EuroSys '11.

[27]  Alejandro Zunino,et al.  A Two-Phase Energy-Aware Scheduling Approach for CPU-Intensive Jobs in Mobile Grids , 2017, Journal of Grid Computing.

[28]  Ying Zhang,et al.  Refactoring android Java code for on-demand computation offloading , 2012, OOPSLA '12.