The way we consume multimedia content has changed over time, and so has the technology that delivers it. What began as downloading evolved into streaming, with remote copies of audio or video files transmitted over the Internet in real time—eliminating the need for a local copy stored on a device.
But what if streaming could apply to mobile apps as well? That’s the idea behind AppStreamer [PDF], a new program designed to reduce app storage requirements through predictive streaming. The software was devised by a team of researchers from Prince of Songkla University in Thailand, Purdue University, University of Illinois at Urbana-Champaign, AT&T Labs Research, and Georgia Institute of Technology, with support from AT&T and the National Science Foundation.
“We want to consume more content on our devices, yet these devices are not as resource-rich as we want them to be,” says Saurabh Bagchi, a professor of electrical and computer engineering at Purdue University who led the research. “You also have parts of the world that can’t afford the latest smartphones, so how will you provide them with the ability to consume content? Streaming applications seemed like a logical progression.”
AppStreamer assumes devices don’t have the space to store everything locally, so it relies on cloud storage or storage “at the edge,” which means servers stationed closer to a network end point such as a telecom provider’s base station.
When an app like a mobile game needs a resource—such as an image, video, or sound file—AppStreamer fetches that resource from the remote storage just before the app needs it. As a result, apps won’t need to save all their resources locally, minimizing their required storage. Moreover, when users install an app, they can start using it immediately even if it hasn’t fully downloaded.
AppStreamer works in the layer between the mobile app and the device’s operating system, requiring no changes to the app itself. “In fact, we don’t even need the source code of the mobile app,” Bagchi says. “The app can be considered as a binary black box, and we only look at the interactions it has with the operating system.”
A key part of AppStreamer’s functionality is predicting what resources an app will need and when those resources will be needed. To do that, AppStreamer employs machine learning, which begins with an offline training phase for a specific app to learn the probabilities of transitioning from one state to the next. The software only retrieves the resources for a particular state if that state has the highest likelihood of following the current state.
For instance, when navigating a mobile game’s fantasy world, players make their way from one island to the next in a continuous manner. “The machine learning part is able to predict this, and it knows all the resources that correspond to the next island,” Bagchi says. “It doesn’t need to fetch the resources for an island at the far end of the world. Only when the player gets close to that island will it need to fetch its resources.”
The team tested AppStreamer using Dead Effect 2, a first-person shooter game, and Fire Emblem Heroes, a turn-based tactical role-playing game. Results showed that AppStreamer provided the same gaming experience as when the entire game was stored on a smartphone for 70 percent of Dead Effect 2 players and 88 percent of Fire Emblem Heroes players. AppStreamer also reduced storage requirements by more than 85 percent for both games.
As with any application employing machine learning, accuracy and representation pose challenges. “Prediction is a hard job, and [with AppStreamer] we’re predicting an application’s behavior,” says Bagchi. “It’s a challenge to have enough data that’s representative of the different types of gamers to train the machine learning model, so [that] once AppStreamer is deployed in the field, it will be accurate.”
Bagchi envisions AppStreamer will be used not only in mobile gaming, but also across a broader range of applications. As he says, “Any application which has a large footprint in terms of memory and storage and uses only a small fraction of its overall functionality would be suitable for a technology like AppStreamer.”