Mobile devices are all around us; every day, we encounter not only our own devices, but also those of family, friends and new acquaintances. Yet when we turn on our smartphone or tablet, few apps are written with co-located devices in mind. Rather, the mode is isolation: one app, one device.
Recent standards such as Miracast, WiDi and Apple AirPlay have embarked to address these silos of interaction for the limited case of one-to-one screen streaming. With support for these standards in recent Android and Apple OSs, manufacturers recognize users' desires to interact across co-located devices. The underlying protocols -- which essentially couple Wi-Fi Direct with H.264 -- allow one device to stream video to another for passive consumption e.g. watching Netflix on a larger screen.
While one-to-one screen streaming is useful, it prefigures a much more interesting and general case: what if any app had the capability to instantaneously span every device around it? For example, a brainstorming app might initialize a shared virtual whiteboard, compositing all participants' tablet screens for rapid idea exchange. A racing simulator might kick off an ad hoc competition amongst a set of friends' devices that happen to meet up. Indeed, many such intriguing Co-located Multi-device Apps (CMAs) have been prototyped. The two key differences between CMAs and one-to-one screen streaming are fundamental: (1) the number of participating devices, N vs. two, and (2) interactivity, or lack thereof.
Our system, PRIME (Proximity Remoting for Instantaneous Multi-device Execution), enables fluid interaction among multiple devices. PRIME does so by adapting the remote display abstraction, a classic virtualization technique where clients simply display audio and video frames from a server and vector input back. In PRIME, host devices run application instances on behalf of nearby client devices. Clients merely need to remote in to hosts to initialize or join a CMA. With such minimal client assumptions, PRIME enables spontaneous multi-device interactions to happen readily. PRIME addresses a number of novel technical device hosting challenges and wireless challenges that arise when scaling to multiple devices.