SmartLab is a first-of-a-kind open cloud of smartphones that enables a new line of systems-oriented mobile computing research.
Re-programming smartphones and instrumenting them for application testing and data gathering is currently a tedious, time-consuming process that poses significant logistical challenges. To this end, we have implemented and demonstrated SmartLab, a first-of-a-kind open Infrastructure-as-a-Service (IaaS) cloud that enables fine-grained control over both real and virtual smartphones via an intuitive web-based interface. Our current infrastructure is ideal for scenarios that require fine-grained and low-level control over real smartphones, eg, OS, Networking, DB & storage, security, peer-to-peer protocols, but also for scenarios that require the engagement of physical sensors and geo-location scenarios. Our preliminary edition has been utilized extensively in-house for our research and teaching activities but it has also been open to selected research groups around the globe. SmartLab provides a diverse, high-availability platform that can be utilized by the mobile computing research community to engage more effectively in systems-oriented research on smartphones.
SmartLab’s hardware comprises 40+ Android smartphones and our data centre that encompasses over 16TB of RAID-5 / SSD storage on an IBM X3550, as well as 220GB of main memory on 5 IBM / HP multiprocessor rackables. SmartLab supports a variety of connection modalities. In particular, most of our devices are connected to the server with USB hubs. Additionally, a number of smartphones are connected from within our DMSL research lab (in the same building) through the network on virtual servers that reside on our data centre. The given mode is particularly promising for scenarios we want to apply to scale our testbed outside the department. Finally, a few devices within the department are also wirelessly connected using WiFi.
Smartphones run the Android operating system and are programmed in the Java programming language. Typically, you will be able to prototype your application using the Android simulation environment or with a handful of smartphones on your desktop. You then use the SmartLab web interface to upload your program to the network.
SmartLab supports four modes of user interaction with the smartphones: i) Remote Control Terminals (RCT), a web-based remote screen terminal for Android, developed in-house using Ajax that mimics touch screen clicks and gestures among other functionalities; ii) Remote Shells (RS), a web-based shell developed in-house with Ajax that enables a wide variety of UNIX commands to be issued to the Android Linux kernels; iii) Remote Scripting Environment (RSE), which allows users to author Android MonkeyRunner automation scripts (written in python) and upload them to the devices to perform automated tasks; and iv) Remote Debug Tools (RDT), which provide web-based debugging extensions to the Android Debug Bridge (ADB). Through these tools, SmartLab facilitates research in smartphone network programming environments, communication protocols, system design and applications.