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.
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.
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.
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:
- 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. - 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.
- Provide secure and reliable communication: The
middleware should provide secure and reliable communication,
while subject to human mobility, resource
constraints, and intermittent connectivity.
- 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.
- 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.
- 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)


