A New Language for Phone Networks
Researchers develop a better way to write applications for peer-to peer cellular networks.
Scientists love the cell phone. Researchers have used the ubiquitous device as a portable polling station, a tracking device, and a sensor. Now, computer scientists want to use mobile phones to exchange data without using the phone’s network, instead of communicating directly with cellular towers, base stations, and the occasional wireless network.
That’s the vision of a group of computer scientists who believe that spreading data virally could open up a whole new manner of applications on peer-to-peer mobile device networks, known more formally as “pocket-switched networks.” Such an ad hoc network–sort of a Sneakernet on steroids–could allow victims of a natural disaster to pass messages from one person to another even if the cell towers are destroyed. In another scenario, visitors to specific locations could have important information forwarded to them via the local folks’ devices. And groups of friends could poll each other on where to eat dinner that night, without using the Internet.
“If this gets traction, we hope that people come up with a whole slew of applications,” says Jon Crowcroft, professor of computer science at the University of Cambridge and the leader of a team of researchers working on the problem.
Technologies such as pocket-switched networks are a form of delay-tolerant networking, such as the Interplanetary Internet. Delay-torrent networks are part of a class of infrastructure that includes any collection of occasionally connected nodes that could be disconnected from the network for a long time and forward messages opportunistically.
Pocket-switched networks typically consist of a sparse collection of devices that are disconnected much of the time and are, of course, mobile. Communications are accomplished through Bluetooth or wireless connections between devices using a publish-and-subscribe technique dependent on the content preferences of the device’s owner.
“It is an infrastructure-less approach,” says Kevin Fall, a principal engineer at Intel Research Berkeley and an expert on delay-tolerant networking. “You don’t need base stations, you don’t need cell towers, you just have to carry around a device that can connect to other devices.”
Yet, what the technology does not have is simplicity. Crowcroft and his team from the University of Cambridge hope to solve that problem. Last week, the research group unveiled a programming language designed to make developing complex programs far simpler. The language, known as the Data-Driven Declarative Networking (D3N) language, allows simple programs to take advantage of inherent characteristics of pocket-switched networks, including asynchronous communications and simple-to-express queries. The language is declarative, allowing the programmer to focus on the application logic instead of the algorithms specific to pocket-switched networks.
“One of the goals is to keep it very simple so that people can make very complex, very interesting applications easily,” Crowcroft says.
The D3N language is based on the F# project from Microsoft. The language adds concurrency control to handle the ad hoc nature of exchanging data between a variable number of asynchronous nodes. Query and pattern-matching functions make it easy to select data from the nodes available in the local peer-to-peer network.
Last year, a group of researchers built a different programming framework, known as Haggle, for pocket-switched networks. The Haggle library adds collections of code to support manipulating data on pocket-switched networks using a variety of platforms, including Windows and Windows Mobile, Mac OS X and iPhone, Google’s Android, and Linux.
The difference between Haggle and D3N is whether the intelligence–the knowledge of how to interact with pocket-switched networks–is inherent to the language or in a separate code library. D3N builds knowledge about the way pocket-switched networks work into the programming language. This makes programming for pocket-switched networks simpler. Programs written in D3N can, for example, grab data from the network with a simple command. Developers working with Haggle can still grab that data, but the programming is more complicated.
D3N code can also be tested more easily, an important feature if service providers are to be convinced to allow the programs on their phones. “[Mobile providers] want to make sure that the software that gets put on their phones is very, very reliable,” Crowcroft says.
“So you need some alternative” to ease the creation of applications for pocket-switched networks, says Intel’s Fall. “We have done it with [the Haggle] programming interface. They have taken it further and have written a language for development.”
The embryonic D3N language, and pocket-switched networks in general, still have unaddressed issues. For example, one ill-studied topic is security on pocket-switched networks. Passing data from phone to phone could ease the spread of malicious software. In addition, attackers could flood the network with digital pollution such as spam.
“Pollution in a peer-to-peer system is a really hard problem [to solve],” Crowcroft says. “I hope it is not a deal breaker.”
Getting people to actually use pocket-switched networks could also be a problem, as both wireless connectivity and Bluetooth drain power. Passing along data for other users could dramatically shorten battery life. The research group is working on a hybrid communications model that uses low-power Bluetooth to search for interesting data among the network nodes and then uses the more power-intensive wireless networking system built into the phone to transfer the data.
“We don’t care what type of radio forwards the data,” Crowcroft says. “Battery life is going to be a far more important aspect of this.”
If the problems are solved, and cell-phone makers convinced that such additional functionality is useful and secure, such networks could give users an alternative high-bandwidth way to communicate.