During the Vietnam War, J.C.R. Licklider, head of the Advanced
Research Projects Agency, diverted a small chunk of the Pentagon's
budget to computer science research.

Here's how it worked. Somebody at Stanford would send in a grant
proposal for an AI project and Licklider's office in ARPA would stick
on some boilerplate at the end about military applications, send it
through the bureaucracy and get the money. The only people who ever
read the boilerplate were the student protestors who would get a hold
of the grant proposals by filing Freedom of Information Act
requests. It was not a perfect system but it kept everyone happy.

This taxpayer-funded boondoggle was driven by a vision of
Licklider's, which he called the Intergalactic Computer Network. It
was a way of giving every human being access to every other human
being, and giving every programmer remote access to enough computing
power to run their programs. Within a few years this vision took shape
as the ARPANET, which of course became the Internet.

There's another American who secured government funding for what
became the Internet, though he did it through the legislative
process. In 1991, Senator Albert Gore, Jr. introduced the High
Performance Computing and Communication Act.

Gore was also driven by a vision, which he called the Information
Superhighway.

The Information Superhighway was similar to the Intergalactic
Computer Network in that it was a big public works project. But where
the ICN wanted to connect people to each other, the ISH wanted to help
businesses move information around, the same way the highway system
helps businesses move freight. It'd also help with big data-intensive
science like the Human Genome Project.

Connecting individual people to each other was nice and all, but it
was just one more business you could run on the Information
Superhighway. As far as ordinary people were concerned, the Information
Superhighway would just be interactive TV.

Now, on the Internet, in the the 80s and 90s, people wrote all
kinds of protocols. Most of the ones on this list were deployed by the
time of the High Performance Computing and Communications Act. The
World Wide Web is up there, but it's kind of hard to see.

There it is. Nowadays
we'd say the name of the application protocol, HTTP, but back then
they called it "WWW" because they saw the three web technologies
(HTTP, URI, HTML) as one new thing.

When I was in high school I had primitive Internet access through
BBSes. I was very excited. I diligently mastered the arcane tools of
the Intergalactic Computer Network. And then shortly before I went to
college the Web obliterated all the protocols I'd been learning about.

Here are the big Internet protocols today.

What happened? There are fewer big-name Internet protocols now than
in 1993. Well, the Web ate those other protocols, just like the
Internet ate Compuserve and BITNet and the UUCPNET and a bunch of
other networks you've never heard of. It turns out most of the things
we want to do on the Internet--have discussions, search databases,
share files, look up things in directories--we can do over the web.

What's left? There's SMTP, a very old protocol with a huge
installed base. We've got BitTorrent, which has an unusual
peer-to-peer architecture. And we've got a bunch of protocols for
real-time interaction. HTTP took over everything else, and it's
starting to take over email and real-time chat.

And that's not the whole story either, because a whole lot of
Internet protocols never got invented. See, the protocols on that
first list are Intergalactic Computer Network all the way. FTP,
Usenet, IRC. You're sharing information.

So here's one of those questions you already know the answer
to. What happened in the mid-90s when the hippy-dippy Intergalactic
Network collided with the capitalist Information Superhighway?

The web didn't just eat other Internet protocols: it ate a whole
other worldview, the worldview where the Internet is for buying things
instead of sharing information.

In 1972, J.C.R. Licklider and the other ARPAnet people showed up in a
fascinating documentary called "Computer Networks: The Heralds of
Resource Sharing." Well, it turned out that the ARPAnet was the herald
of Resource Sharing in the same sense that the Silver Surfer was the
herald of Galactus, Eater of Worlds.

Around the turn of the century, there were two very important
responses to its success, which you're undoubtedly familiar with.

There was a theoretical response. Roy Fielding, co-author of the
HTTP spec, did his doctoral thesis partially to describe what aspects
of the web gave it this amazing flexibility, to eat other protocols
and branch out into every field of endeavor.

And there was a practical response. Dave Winer and Microsoft
released XML-RPC and SOAP, protocols that ran on top of HTTP and whose
basic idea was to let automated clients make HTTP requests that
would get things done, the way that web browsers let human beings get
things done.

There is a huge amount of drama about this whose flames I do not
wish to fan. I bring it up only because it's important for this talk
that I say what I think is the basic mistake of XML-RPC and
SOAP. They tried to cash in on the success of the Web by jumping on
the bandwagon, and good for them.

But they jumped on the wrong bandwagon! They jumped on the HTTP
bandwagon. They saw HTTP in terms of the Information Superhighway, as
a truck that moves data from one place to another.

HTTP makes an especially useful truck because it barrels through
corporate firewalls. Many people who dislike the WS-* technologies
because of their complexity still buy into the HTTP-as-truck metaphor,
and their focus on HTTP causes problems when they need to explain
their preferences and design their web services.

Here's what I believe. The Internet is not a truck. When people in
the 90s said "WWW" instead of "HTTP" they were on to something. HTTP
is only one of the Web technologies, and it's not the most important
one. Early versions of Gopher were almost exactly the same as early
versions of HTTP.

What the Web had going for it was two other technologies that had
never been seen before. There was an addressing technology, the URI,
which killed off the other Internet protocols.

And there was a hypertext markup language, HTML, which made it
possible to put something entirely new on the Internet without
inventing a new protocol.

I've given you this history lesson because it's easy to draw the
lines between these three technologies and the success of the Web at
assimilating the Information Superhighway and most of the
Intergalactic Computer Network. It's also easy to explain the
constraints of the REST architectural style in terms of the three Web
technologies. And since those are the technologies you're going to be
using to build RESTful web services, there's no space between theory
and practice. In Act Three I'll spell out a maturity model that uses
the adoption of web technologies as a proxy for the RESTfullness of a
web service.

This document (source) is part of Crummy, the webspace of Leonard Richardson (contact information). It was last modified on Friday, January 16 2009, 00:19:31 Nowhere Standard Time and last built on Friday, August 18 2017, 05:00:27 Nowhere Standard Time.