OpenP2P.com    
 Published on OpenP2P.com (http://www.openp2p.com/)
 http://www.openp2p.com/pub/a/p2p/2001/08/02/openservices.html
 See this if you're having trouble printing code examples


Next Step for P2P? Open Services

by Gene Kan
08/02/2001

There is a growing movement among the technology-aware to share access to some of their valuable network and computing resources. Rael Dornfest came up with a name for this some time ago: "Open Services." Think Open Source, but for networked computing resources, instead of source code.

Related Articles:

Convergence of Web & Peer Services

O'Reilly Network's Web Services DevCenter

JXTA Search: A look at the future of searching

I'll use four examples to mark out the landscape:

Taken together, these innovations show that Open Services are real and happening right now. From looking for Jovian television to swapping recipes, we're getting pretty comfortable with the idea of sharing on the Internet. Or even of sharing the Internet itself.

Making Open Services a Reality

There are a few obvious things that are making this happen now:

The price of performance is decreasing constantly while the performance itself is increasing ridiculously. That means I'm pretty happy to share my Pentium 8 50gHz with you because I only need all that horsepower while Windows boots. After that, the CPU is hardly utilized because I can't hit 50 billion keys in a second. Between keys, my computer could be cracking RC5 or musing on colon cancer.

Networks are getting faster and cheaper. Access to the Internet is getting fast and cheap everywhere. And since we're all pretty much underutilizing our Internet connections, why not share? Even in the most aggressive of cases, only 25% of the network is utilized. Here's how I arrive at that statistic: Suppose I'm home 12 hours a day (50%). While I'm there, I'm mostly downloading (50%). So, figure 25% used, 75% wasted, 100% paid for. It's like having a hole in the bottom of your gas tank.


P2P and Web Services Speaker

Gene Kan will take part in a panel on Open Services at the O'Reilly Peer-to-Peer and Web Services Conference


Finally, maybe one of the most unnoticed but most important axes: the increase in computer experience among our populace coupled with the simultaneous decrease in the amount of knowledge required to join the production side of the Internet. Anyone running Napster: welcome to the world of server operations. You never thought you'd be here after ditching MCSE school, but in fact, you are running a full-on Internet server. You're uncertified, sure, but you don't need training to fly that mouse.

It is often lost upon us Unix hacks that it is a serious pain to operate a network-based service. Remember how much cursing was involved in setting up an FTP daemon or HTTP server? You needed Unix. You needed vi. You needed a fixed IP address. That is all just a point-and-click away in Napster- and Gnutella-land. It is now so easy to set up a server and so many people use these systems, that just about everyone you know is running an Internet service. That's the best part: one can run a server without even having to think about it.

The point is that everyday users are finally empowered to do many of the things that were once the exclusive domain of highly trained system administrators using highly expensive equipment and pipes. And the systems are engineered to simplify tasks such as routing around NAT and firewalls to the point of transparency (or opacity, depending upon how you view it). End users are no longer second-class citizens.

The Internet ignition switch

A good industrial-age example of this is automobiles. Early cars were very tricky to operate and only experienced operators knew how to maneuver the levers and manipulate the valves just so to make the machine a useful conveyance rather than just a land-bound high-explosive. But eventually, after generations of cars made for "experts," a manufacturer came along and produced a user-friendly machine. Turn the key in the ignition the car magically starts. I would argue that Napster, Gnutella, SETI@Home, etc., are the Internet-age equivalent of the ignition switch: they hide all the ugliness of Internet services somewhere in the magic between the first and second mouse-clicks.

Firewall and NAT traversal

The next thing for Open Services is the revealing of even more resources on our computers for partially open access or other sharing, such as seemingly mundane things like our address books and telephone directories. What seems to be getting popular now is shared Web indexing and content aggregation. And of course more and better applications to more effectively share the things we're sharing already. Clay Shirky likes to call this the "Internet equivalent of walking across the hall".

Facilitating the "walk across the hall" is a key service that Open Services can provide. Consider the problem of two computers (A and B) behind different firewalls. The firewalls prevent them from communicating with each other, which means that A can't send B her family photo album over instant messaging. An obvious way around that is to have an intermediary without restrictive firewalls serving as a bit freight clearinghouse so we can get our work done. Before you say that we could just punch a hole in our firewalls to support this file transfer, consider that we're average users and corporate IT doesn't want to play.

The only way around this in the short term is a proxy (yes, standards bodies are working on ways to make NATs and firewalls dynamically negotiate this between themselves, but standards take time to develop and deploy). So, then, we can solve the above problem by picking one of the open proxies operated by people with underutilized network resources. (I wish this existed just last night, when I needed to get a file from a friend. He had to go through the pain of uploading the file to his co-located Web server for me to have access to it. Darned that he wasn't just running an open proxy on his colocated server.)

Cooperative web sharing

Another big idea that seems to be getting a lot of attention just now is cooperative Web searching. Grub.org, Jibe and OpenCola Folders are just a few examples. With Grub.org, every participant will run an indexer that updates (what I guess to be) a central index which may be later incorporated into your favorite Web search engine.

It's like SETI@Home, except that it is geared toward the search for terrestrial intelligence. Jibe aims to allow suppliers to open their product databases to online marketplaces. OpenCola Folders crawl the Web for content you are interested in. What's interesting is that my OpenCola Folder can find your OpenCola Folder, allowing us to share the results of our computers' intense labors. These are just a few examples of what can happen when we make the server manageable by the technological proletariat.

Just imagine if you could easily set aside part of your computer to allow friends to store their files. Who needs to pay XDrive when your best friend has a new 60-gig hard disk and an SDSL? In fact I just piled together a little PHP script that does just this so that I can use Mutt (after a long battle with Windows readers) and still work with attachments easily. That's close, but I still had to write code, and it runs on a FreeBSD machine. I needed to know vi and grep. If I could provide that same Web-based hard drive service by just double-clicking on something named Setup.exe, then the business of low-end Internet storage provision will have become a free, yet valuable, consumer Open Service operated by consumers.

Here's an idea that I imagine we'll start to get familiar with in the near future:

Your set-top box will run an Open Service whether or not you know it. It will cooperate with other set-top boxes in your locality to provide video-on-demand services for your neighbors. Obviously, this reduces the buildout necessary to enable video-on-demand. So, Open Services can work for Big Media too.

Open Services are growing in popularity because they make sense for so many different types of applications. Plug in an 802.11b hub, share that recipe for fried spam, and leave your computer alone so it can help us find our intergalactic friends.

My favorite part of all this is that none of it happened at Stanford.

Gene Kan was a lead developer of the Gnutella project. He founded InfraSearch and now runs the JXTASearch group at Sun's Project JXTA.


Copyright © 2007 O'Reilly Media, Inc.