Much has been written about Web 2.0. It’s nice to see such a protocol
being revitalized—the wisdom of the Web’s simple elegance
recognized. But much of the WS-* furor seems to have missed the point
of Tim Berners-Lee’s beautiful GET, POST, PUT and embedded
links. When I see serious documents referring to a processor as a
provider of services—and honestly appearing to believe that clock
ticks come individually wrapped in XML—I worry. Certainly, many of
these people seem to believe that XML parsers are small” and should
be ubiquitous. In their haste to adapt pre-web systems and ways of
working to the new buzzwords, they neglect the management and overhead
costs of all these layers of serialization and redirection.
I’ve been pleased to see Tim Bray and others reminding us
all that WS- has little to do with what makes the Web great. But
it’s not enough. Some people are proceeding to build reasonable Web
Services and Service-Oriented Architectures… but in general, they’re
not doing it with the WS- standards. They’re doing it with simple
HTTP and XHTML, often with REST-based systems. SOAP is nowhere in
sight.
Therefore, I call for advancement by means of a return to still
simpler, more basic good than the Web: Gopher Services. This
provides a much more natural, flexible means for representing
traditional client-server applications in a SOA world.
Gopher, for the young’ns in the audience, was a precursor to
the web. A given site would provide a "gopher hole." Each node in a
hole contains either an ordered list of links or a flat file. Some
links go to nodes in other gopher holes. Like the web, links obscure
the complicated protocol-level description of the link with a
human-readable label. Unlike the web, there’s no place for readable
URLs: humans only get the painted-on link names. Common practice was
to use null or short-cycle links to provide structure and annotations
within the lists. Go look at Quux for an example of how this
works.
Because most links are local, links are separated from content,
imperative links are clearly called out, and a client tends to
interact with its "home gopher hole," this is a far more appropriate
model for bringing Service Oriented Architectures to classical
enterprise computing. Rather than jumping straight to a zillion
tiny separate services, these organizations want a gradual shift.
Hole-Oriented Architectures provides that middle ground. A hole
provides services, but centralizes them. Client-server interactions
fit in well. REST is out of the question, and you don’t have to
pervert the Web to establish your client-server overlay network. You
can just do C-S directly.
To achieve this renaissance, we need to revamp and improve Gopher. We
need to do it Gopher what Ajax and Flash do to the Web, and finish
what TurboGopher VR started back in the early 90s.


Post a Comment