Node clusters: The topology of pocket-switched networks changes quickly over time as humans move about, causing nodes to leave and join local networks. Researchers group devices by community, clusters that share the same information, and the average delay to receive information. Nodes with the same color receive information after a similar delay.
University of Cambridge

Communications

A New Language for Phone Networks

Researchers develop a better way to write applications for peer-to peer cellular networks.

  • Monday, August 31, 2009
  • By Robert Lemos

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.

Advertisement

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.

Print

Related Articles

Companies Hope to 'Program' the Internet

The Open Network Foundation wants to let programmers take control of computer networks.

A Mobile Mesh Network Goes Nuclear

Backpacks that detect nuclear material form a wireless mesh network.

A Network That Builds Itself

Ad-hoc wireless networks may soon tell emergency workers how to deploy transmitters.

Close Comments

To comment, please sign in or register

Forgot my password

flyingmonster

29 Comments

  • 891 Days Ago
  • 08/31/2009

battery life

By default the phones could only pass along data for other users when plugged into an external power source with a user setting allowing a user to change this. Another option is that these phones could be designed to do it for only a random minute or two an hour. The phones could also drop out of relaying data when they register battery power less than a certain amount.

Reply

Phineas

127 Comments

  • 891 Days Ago
  • 08/31/2009

Who Gets Priority?

When a plane ditches in the Hudson or the Jonas Bros announce a new concert tour, communications spike and capacity is exceeded. Peer means equal. Some groups and organizations are more equal than others.

Reply

carlhage

84 Comments

  • 891 Days Ago
  • 08/31/2009

Good design, not new programming languages is the solution

At first I thought "new language" meant a protocol for grid routing. But here it's a new programming language. I read the D3N paper-- it's a new language layer written on top of F# written on top of .NET. The prior project, Haggle, was OS independent with a C/C++ interface (deemed a bad thing). But successful communication needs standard protocols across all devices, and a compact, simple reference implementation with test suite is the way to achieve this. The Internet TCP/IP and HTTP exist because of simple (open-source) reference implementations available, written in C.

I have to object to the concept that a programming language makes a huge difference in programming design and implementation (at least for code widely used). The comments in the code are the most important part and should be a majority of the text. A clean well documented architectural design makes any extra syntax (e.g. procedure call vs operator keyword) of plain C insignificant.

What is most important is portability and compatibility, and there language does make a difference. In my opinion, there is nothing that comes close to plain C in ability to incorporate protocol layers into the microcomputers of phones, etc. A reference-app + new language + F# + .NET + MS-Only-OS is the opposite of what is needed. Besides, grid routing protocol code isn't all that hard, and really should be kept compact.

Sorry to be cynical, but I've been burned many times trying to get some app or development system to run. These days, "object oriented" means automatically suck in all kinds of self-documenting (a.k.a. poorly documented) code that in-turn sucks in more, to the point where it can't compile except with certain narrow versions of all the code and operating system. Trying to install on a 3 year old computer can be fruitless. You wouldn't even try to put something this on a $50 WRT54GL router, but people have put complex grid routing software on them.

I thought Don Knuth's "Literate Programming" was a major advance as it allows the documentation and design to be the main part of code, and produces simple C as an intermediate output. Too bad that didn't catch on.

Reply

crowcroft

1 Comment

  • 883 Days Ago
  • 09/08/2009

Re: Good design, not new programming languages is the solution

I agree good design is always necessary. However, part of design is choice of tools, including programming language paradigm. This was Google's argument behind Mapreduce and Microsoft research's argument behind DryadLINQ.

Note Bene: we aren't religiously attached to basing D3N on F# - this was a prototype choice based in an earlier project decision to get a lot of Windows Mobile phones - indeed, all functional languages are largely equivalent and the switch to an open language like ML would be trivial.
For information, the underlying runtime Haggle project software also works on Android and iPhones (if jailbroken:) and would probably port to new Nokia linux phones (N900) easily. A Symbian OS port is deemed to be feasible, but not really a priority.

Many ML compilers target bytecode and porting this to a smart phone would be very easy (indeed F# and OCaml share this, but F# does depend on common runtime, which we'd rather not depend on for the reasons you allude to!)

But yes, there's no substitute, ever, for good design.

Reply

aymeric

30 Comments

  • 890 Days Ago
  • 09/01/2009

traffic info

What I never understood is why cell phone providers could not use the the massive locational data from their clients to furnish city planers and service like google traffic hugely accurate real time info on said traffic patterns. One could use such data from these ad hoc networks to pinpoint abrupt changes in drivers speed ahead of oneself: ie a cop with a radar gun ;)

Reply

Advertisement

MAGAZINE

Can We Build Tomorrow's Breakthroughs?

Manufacturing in the United States is in trouble. That's bad news not just for the country's economy but for the future of innovation.

Advertisement

Technology Review Lists

TR50

Our list of the 50 most innovative companies, including the following:

Suntech

Zynga

Facebook

Crowdcast

More

Advertisement

Facebook

Advertisement