My main research has been focusing on improving mobile computing and enabling new gerne of immersive mobile applications leveraging power of cloud computing. Cloudlet is the core software system to achive this goal and the followings introduces the basic idea of Cloudlet research.

Cloudlet

A cloudlet is a new architectural element that arises from the convergence of mobile computing and cloud computing. It represents the middle tier of a 3-tier hierarchy: mobile device --- cloudlet --- cloud. A cloudlet can be viewed as a "data center in a box" whose goal is to "bring the cloud closer". A cloudlet has four key attributes:

  • only soft state: It is does not have any hard state, but may contain cached state from the cloud.  It may also buffer data originating from a mobile device (such as video or photographs) en route to safety in the cloud.  The avoidance of hard state means that each cloudlet adds close to zero management burden after installation:  it is entirely self-managing.   
  • powerful, well-connected and safe: It possesses sufficient compute power (i.e., CPU, RAM, etc.) to offload resource-intensive computations from one or more mobile devices.  It has excellent connectivity to the cloud (typically a wired Internet connection) and is not limited by finite battery life (i.e., it is plugged into a power outlet).    Its integrity as a computing platform is assumed; in a production-quality implementation this will have to be enforced through some combination of tamper-resistance, surveillance, and run-time attestation.
  • close at hand: It is logically proximate to the associated mobile devices. "Logical proximity" is defined as  low end-to-end latency and high bandwidth (e.g., one-hop Wi-Fi).   Often, logical proximity implies physical proximity.  However, because of "last mile" effects, the inverse may not be true: physical proximity may not imply logical proximity.
  • builds on standard cloud technology: It encapsulates offload code from mobile devices in  virtual machines (VMs), and thus resembles classic cloud infrastructure such as Amazon EC2 and OpenStack.  In addition, each cloudlet has functionality that is specific to its cloudlet role.

Effect of Cloud Location

To see the effect of Cloud location, we compared application's performance between Cloudlet and Cloud. The YouTube videos shows an Android front-end application with a compute-intensive back-end offloaded to an Amazon EC2 cloud or a cloudlet. As a user moves his smartphone, its accelerometer senses the movement and communicates the readings to a graphics engine in the back-end. This graphics engine uses physics-based simulation of particle movements in a fluid (Reference: SOLENTHALER, B., AND PAJAROLA, R. "Predictive-corrective incompressible SPH". ACM Transactions on Graphics 28, 3 (2009)). The results of the simulation are periodically rendered on the smartphone, giving the illusion of a liquid sloshing around. The end-to-end latency between the front-end (sensing and display) and back-end (simulation) determines quality of the graphics. As latency increases, the quality of the graphics degrades into jerky or sluggish motion. The output frame rate (in frames per second (FPS)) is a good metric of graphics quality.

Cloudlet vs Cloud - The impact of latency in mobile application

Each of individual video is available at the following URLs.

"Bringing the cloud closer" also improves the survivability of mobile computing in hostile environments such as military applications and disaster recovery. Easily-disrupted critical dependence on a distant cloud is replaced by dependence on a nearby cloudlet and best-effort synchronization with the distant cloud. The paper "The Role of Cloudlets in Hostile Environments" explores these issues.

Cognitive Assistance

Cloudlets are the enabling technology for a new genre of resource-intensive but latency-sensitive mobile applications that will emerge in the future. These include new cognitive assistance applications that will seamlessly enhance a user's ability to interact with the real world around him or her (See more details at Gabriel Paper). Here is an early thought piece on augmenting cognition and the following shows a cool demo of the very first wearable cognitive assistance application that we have built.

Lego Assistant



Open Source

Elijah-related open source software comes in two parts. The first part is a set of cloudlet-specific extensions to OpenStack (http://openstack.org). By applying these extensions, OpenStack becomes "OpenStack++". These extensions are released under the same open source license as OpenStack itself (Apache v2). The second part is a set of new mobile computing applications that build upon OpenStack++ and leverage its support for cloudlets. All Elijah-related source code is in GitHub. The links below help you access the various components.


OpenStack++

Applications that build on OpenStack++



Virtual Machine Technology for System on-Demand Service




A framework that provides “on demand computing environment” by virtualizing computing resources and peripherals. My contribution focused on designing and developing resource virtualization and I/O data transmission protocols over the IP network. And I implemented a virtual device management module that works with QEMU-DM and the corresponding client software available on iPhones and PCs.

Context-Aware Platform for Healthcare




This project set forth to create a context-aware system based upon health information. Our team developed wearable healthcare monitoring devices in the forms of a wrist-watch, chest-band, and necklace. Using the vital signals such as ECG, PPG gathered from the wearable device, I devised vital signal processing algorithms to noninvasively calculate heart rate and blood pressure. At the end of the project, the technology was successfully transferred to industry and is being prepared for a commercial offering.