Enabling The Next Frontier in Mobile Applications

Cell phones and smartphones are ubiquitous. As communication-centric devices, they are inherently personal and a part of everyday life for 50% of the world's population: from rich to poor. Today, these devices are primarily used to make phone calls and send text messages; however, they are increasingly being used to organize large amounts of personal data, produce and consume rich forms of entertainment, and interact with a multitude of services on the Internet. As mobile device technologies continue to improve, these trends are likely to continue throughout the world. In this work I explore a propose class of application that draws heavily on these emerging trends.

Existing Mobile Applications

Applications written for mobile devices have conventionally fallen into two distinct categories: those with network connectivity and those without. Applications that use the network typically follow a client-server model, where client applications either push or pull content from server(s) on the Internet or within the cellular network.

Client-server model for existing mobile applications.

Some applications have emerged that exploit short ranged wireless technologies, such as Bluetooth and WiFi, to communicate with neighbouring devices and exchange various forms of personal data: address book entries, songs, videos, etc. These applications are among few that begin to exploit the enormous untapped wireless capacity that exists between mobile devices; however, these singular exchanges of data are almost always initiated by manual user intervention and the exchanged data is limited to the two parties involved.

Purely disconnected delay tolerant network.

The Next Frontier

As storage capacities, battery life, and computational power of mobile devices continue to improve, I envision that in the future data will be created, stored, and consumed solely on mobile devices. These applications would utilize all forms of wireless connectivity, from short-range ad hoc networks to long-range cellular networks, to disseminate content without the use of intermediate application specific servers on the Internet. By utilizing all forms of connectivity, applications can exploit both the enormous untapped wireless capacity between devices and the reliability of long range wireless networks.

Circumventing a centralized application server further allows applications to exchange data without third party intervention, and encourages a broader range of applications that operate unfettered by local regulations. Moreover, exchanging data directly between devices bypasses is free and an anonymous activity; only devices in the immediate vicinity would know that a communication took place.

The next frontier in mobile applications.

Example Applications

MyTube

With many gigabytes of persistent storage, mobile devices such as BlackBerry and iPhone have become singular source for storing and consuming personal media. Today it is common for a mobile device to contain thousands of songs and full length movies and TV shows, which are either created on the device, synchronized from a PC, or downloadedfrom the Internet. As storage capacities continue to increase, I expect that mobile devices will increasingly be used to both consolidate and consume media. Drawing on this trend, I consider a new style of mobile peer-to-peer application, where mobile devices actively collaborate to store, carry, and share content with each other. Consider the following scenario:

Before leaving for work in the morning Alice realizes she missed her favourite TV show 'FooBar'. She pulls her mobile device out of its holster, opens the MyTube application, and types FooBar. She sees that the file is available for download. She selects the show for download, holsters the device, and continues about her day. Throughout the work day, Alice visits a busy coffee shop, the mall, and roams in and out of WiFi coverage. She is within proximity of thousands of people throughout the day. By the time she reaches home, the latest episode of FooBar has been downloaded from the various devices that she encountered throughout the day.

Although MyTube operates in a decentralized manner, it differentiates itself from existing mobile peer-to-peer applications by coordinating content sharing among peers. Devices broadcast their wish list to peers, and devices with content contained within the wish list unicast the data to them.

PocketBay

Stimulating commerce and development at the bottom of the economic pyramid could rapidly improve the lives of billions of the world’s poor. With this in mind, I propose a second application that relies on the proliferation of cell phones and cellular coverage in the developing world to provide a platform for buying and selling goods. Similar to the online commerce sites, such as E-Bay, PocketBay allows users to list items for sale by entering them onto their device. Each user’s list of items for sale is then broadcast to other PocketBay users. Since Internet connectivity is sparse and/or expensive in the developing world, this list and other data would be transmitted from device to device using a short range wireless link, such as Bluetooth. When a device receives a new sales listing, the data is stored within the PocketBay application allow the user to browse the items for sale, request more information from the seller, bid on an item, or make a purchase. When a user wishes to make a bid or purchase an item, the request is securely sent to the sender as a high priority message. After receiving bids or a purchase request, the seller multicasts a status update to interested parties and initiates communicates with the buyer to complete the transaction and exchange goods.

Mobile Application Middleware

The designers of delay tolerant applications such as these that operate on mobile devices are faced with a number of system and communication constraints. Mobile devices are highly resource constrained. They contain limited amounts of high-latency solid state storage, limited RAM, an underpowered CPU, and constrained wireless capabilities. They are further characterized by limited battery life, which requires applications to minimize unnecessary wireless communication and excessive periods of computation. The use of opportunistic communication further limits the amount of data that can be transferred between devices. Finally, mobile devices are subject to human mobility, and there is no guarantee that data exchanged between two devices will ever reach its destination(s).

To enable this new class of mobile application, my work is focused on designing a mobile application middleware that satisfies the following high-level goals:

  1. Support efficient communication over multiple
    network interfaces
    : Mobile devices are commonly
    equipped with multiple network interfaces, each with a
    different cost and benefit. An application middleware
    should be able to take full advantage of all methods of
    available connectivity.
  2. Provide and enforce a system of incentives: In
    a delay tolerant network, storing and forwarding data
    for other devices requires an investment of storage resources
    and energy, and it consumes the limited capacity
    of an opportunistic connection. The middleware
    must create and enforce a system of incentives that
    reward participating devices and penalize free riders.
  3. Provide secure and reliable communication: The
    middleware should provide secure and reliable communication,
    while subject to human mobility, resource
    constraints, and intermittent connectivity.
  4. Protect the interests of the user: The middleware
    should ensure that the needs of the user, such
    as the need to minimize energy consumption or monetary
    cost, are respected. For example, an application
    should have the ability to communicate over the cellular
    network; however, the middleware is responsible for
    ensuring that the user’s monthly data or Short Message
    Service (SMS) quota is not violated.
  5. Provide feedback to the user: The delay tolerant
    network paradigm is poorly understood outside of
    the network research community. For delay tolerant
    applications to enter mainstream use, an application
    middleware must provide feedback to the user about
    the result of an activity or state of their data.
  6. Facilitate easy deployment and high usability:
    Delay tolerant networks are dependent on a large number
    of devices to store, carry, and forward data. An application
    middleware must satisfy the previous goals,
    while maintaining a level of simplicity that encourages
    user adoption.

Talks

Networks and Distributed Systems Seminar, University of Waterloo, Enabling the Next Frontier in Mobile Applications (Short version), March 2009. (Note: This talk has many slides that compose a multi-slide animation)

Ph.D. Stage II Talk, University of Waterloo, Enabling the Next Frontier in Mobile Applications, March 2009. (Note: This talk has many slides that compose a multi-slide animation)