2007-10-09T23:49-0800 H-T-T-P, You Know Me
I've now had a few nightmares, I am sorry to report. Recurrent nightmares, or at least endless rehashing of the NIGHTMARE THAT IS MY BOURGEOUS LIFE was what led my subconscious to forgo the whole dreaming thing for the last few years. It's not too bad, though - my last nightmare had dragons in it. We hid under the kitchen table; very effective. Then, Mike Myers turned up and filmed the new Austin Powers in my bedsit. He's uch more humble in real life. And by "real life", here I mean "in my dream".
So, a lot of people smershed my mentioning of the old P2P revolution in the last entry with my general thinking about the future move to the edge. I hadn't intended to make a direct comparison, but it's worth noting, as many did, the changes in the network since the glory days of 2001, and how that would effect creating edge services now, as the P2Pers were trying to do then.
First, and most obviously, the massacre of dial-up users is proceding as planned. There are still plenty of them out there, but we no longer have to feel guilty if we do not care about them. More importantly, always-on Net connections are pretty much everywhere. Even dynamic IPs are generally fairly static in the medium term. Hooray!
Second, the realisation by most protocol-designers that it's an HTTP world, and that we just try and communicate in it. HTTP was a fantastic fit for the early net, so good in fact the modern Net has now co-evolved to be a good fit with HTTP. Nobody cares a goat's fig about NAT because it don't mess with the HTTP -- and that's one of the main reasons the Internet is now so NATty. That makes everybody lean toward HTTP to work well in this new infrastructure. One of the reasons why REST stuff just works is that it lives in HTTP space, so there are no sudden moves. P2P protocols have always had HTTP elements, but I think it may be true that whatever develops next in the peer-to-peer realm will just look like local webservers talking in a RESTy way with other webservers - or to talk with humans or other userspace applications (I count humans as a "userspace application").
A corollary of this is that I think you really have to just deal with everything else that comes with HTTP -- including DNS. All the old P2P dances have sexy URLs of their own devising, and hashes, and DHTs, and all that jazz -- but without popping up in DNS-land, these servers are just invisible to everyone. Even Microsoft's own P2P DNS-a-like, PNRP, falls into this category. Sure, your machine may be announcing to other Microsoft peers that it's My-Computer474342.pnrp.net, until Microsoft does the obviously sensible thing and starts resolving those addresses in standard DNS (please somebody write in and tell me they do) , those addresses are just burial plots in a walled garden.
(John Gilmore once proposed a decentralised solution to this problem, whereby the toppest level domain would actually determine which protocol the IP service should use to find the rest of the domain. The current TLDs would be grandfathered in as '.com.icann', '.net.icann', etc. You wouldn't need to change any URLs, because search domain '.icann' would be default. But 'My-Computer743473.pnrp.' would run using Microsoft's P2P name-finding algorithm, '7a7898bef783ed731aaf.bittorrentilikehashes.bittorent.' would find a bittorrent resource, and so on. Obviously this would reduce ICANN's role to one Postel-looking geek adding a list of protocols onto a list and chatting to the BIND guys. Since that geek wouldn't need a multi-million travel budget, it will never happen.)
But I digress. The key point here is that if you can control your own DNS, and your can control your own webserver, you're pretty much ready to go as a generic everything server on the Net, whether you're hanging off the edge, or partying in the affluent middle zones.
Oh, you say, but what about NAT! What about the unreliability of the edge! What about if the kitchen table was made of wood, and the dragon just went RAAAARGGGGH and breathed fire over the top of it?
These, and other nightmares, I will discuss after this word from my sponsors.
The Democrats are currently considering caving to the White House on granting retroactive immunity to the telecommunication companies for breaking the law and spying on your phone calls. It's all going to happen this week. If you haven't already, please call the Congressional leadership and tell them not to give an amnesty for lawbreakers.