|
Nick Gall's Weblog
 |
Sunday, November 28, 2004 |
The first technical blogs Internet RFCs! The key to innovative standards.I don't know if anyone has already made this
observation (please let me know who has), but I was just reading an excellent article on the history
of email [or "history of the email" as I originally posted; which surprising someone searched on, so I'm including the text here] (from an interesting journal: Iterations: An interdisciplinary
journal of software history), and the birth of the Internet's Request for
Comments (RFC) documents as a collaborative medium struck me as a wonderful
forerunner of today's weblogs:
A key feature of ARPANET design
collaboration was the careful documenting of design debates. The Network
Working Group, which solved problems in linking computers to the ARPANET,
fully documented its work starting in 1966 to help solve problems that they
expected other network users would later encounter.[26] By 1969, when the
ARPANET became operational, proposals for technical and social norms for
information exchange were instituted in the Request For Comments (RFC)
documents that were soon distributed online. Graduate student Steve
Crocker set the tone of the RFCs when describing a Network Working Group
meeting (comprised mostly of other graduate students) about communication
between host computers and IMPs: "I present here some of the tentative
agreements reached and some of the open questions encountered. Very little
of what is here is firm and reactions are expected."[27] In RFC 3 of
April 1969, entitled "Document Conventions," Crocker wrote:
The content of a NWG note [the
early name for RFC] may be any thought, suggestion, etc. related to the HOST
software or other aspect of the network. Notes are encouraged to be timely
rather than polished. Philosophical positions without examples or other
specifics, specific suggestions or implementation techniques without
introductory or background explication, and explicit questions without any
attempted answers are all acceptable. … These standards (or lack of them)
are stated explicitly for two reasons. First, there is a tendency to view a
written statement as ipso facto authoritative, and we hope to promote the
exchange and discussion of considerably less than authoritative ideas.
Second, there is a natural hesitancy to publish something unpolished, and we
hope to ease this inhibition.[28]
These early RFCs sent a welcoming
signal to others interested in contributing to and improving the ARPANET.
Brian Reid, later a Carnegie Mellon graduate student and a participant in
MsgGroup, told them "I did not feel excluded by a little core of
protocol kings. I felt included by a friendly group of people who recognized
that the purpose of networking was to bring everybody in."[29]
[emphasis added]
See especially the bolded section, which
beautifully describes the tone of a modern weblog entry. This reinforces my
belief (see my
previous entry on WS-Complexity) that the open-ended collaborative process
shaping today's Web services specifications (WS-*) is following in the footsteps
of the IETF collaborative process that was an essential, but usually overlooked,
part of the Internet's success versus formal standards organizations'
collaborative efforts such as ISO's OSI.
Such collaborative standards development refute
the notion that "Standards,
by definition, can't be innovative". See my comment disputing this.
2:25:51 PM
|
|
 |
Saturday, November 13, 2004 |
The network lasts longer than the computer.Just skimmed the recently released Architecture of the World Wide
Web, First Edition, which is now a Proposed Recommendation. It is a lot more
complex and opaque than the first
version, published a little over two years ago. It was the first version
that inspired my definition of Service-Oriented
Architecture, which I repeat here:
An SOA is a dynamic, modular, general purpose,
extensible, federated interoperability architecture that defines all processes
as services delegated to service providers via generic envelope-based service
interfaces. Such generic interfaces describe only the interactions between
service providers and service consumers and solely in terms of extensible
identifiers, formats, and protocols (IFaPs). Such generic service
interfaces are intended to be dynamically bound to a diverse array of specific
concrete service transport technologies and endpoint service provider
technologies that are both federated by envelope-processing service
intermediaries. [emphasis added]
Here is the original definition of the WWW
Architecture from the first version:
The World Wide Web (or, Web) is a networked
information system consisting of agents (programs acting on behalf of another
person, entity, or process) that exchange information.
This architecture consists of:
1. Identifiers. A single specification to identify objects in the system: the
Uniform Resource Identifier (URI) [RFC2396].
2. Formats. A nonexclusive set of data format specifications designed for
interchange between agents in the system. This includes several data formats
used in isolation or in combination (e.g., XHTML, CSS, PNG, XLink, RDF, SMIL
animation), as well as technologies for designing new data formats (XML, XML
Namespaces).
3. Protocols. A small and nonexclusive set of protocol specifications for
interchanging information between agents, including HTTP [RFC2616], SMTP, and
others. Several of these protocols share a reliance on the Internet Media Type
(or, "MIME") the metadata/packaging system [RFC2046].
The current "definition" is not nearly
so definitive, especially concerning IFaPs:
The World Wide Web (WWW, or simply Web) is an
information space in which the items of interest, referred to as resources,
are identified by global identifiers called Uniform Resource Identifiers
(URI).
Examples such as the following travel scenario
are used throughout this document to illustrate typical behavior of Web
agents...
This scenario illustrates the three
architectural bases of the Web that are discussed in this document:
1. Identification (§2). URIs are used to identify resources. In this travel
scenario, the resource is a periodically updated report on the weather in
Oaxaca, and the URI is “http://weather.example.com/oaxaca”.
2. Interaction (§3). Web agents communicate using standardized protocols that
enable interaction through the exchange of messages which adhere to a defined
syntax and semantics. By entering a URI into a retrieval dialog or selecting a
hypertext link, Nadia tells her browser to perform a retrieval action for the
resource identified by the URI. In this example, the browser sends an HTTP GET
request (part of the HTTP protocol) to the server at
"weather.example.com", via TCP/IP port 80, and the server sends back
a message containing what it determines to be a representation of the resource
as of the time that representation was generated. Note that this example is
specific to hypertext browsing of information—other kinds of interaction are
possible, both within browsers and through the use of other types of Web
agent; our example is intended to illustrate one common interaction, not
define the range of possible interactions or limit the ways in which agents
might use the Web.
3. Formats (§4). Most protocols used for representation retrieval and/or
submission make use of a sequence of one or more messages, which taken
together contain a payload of representation data and metadata, to transfer
the representation between agents. The choice of interaction protocol places
limits on the formats of representation data and metadata that can be
transmitted. HTTP, for example, typically transmits a single octet stream plus
metadata, and uses the "Content-Type" and
"Content-Encoding" header fields to further identify the format of
the representation. In this scenario, the representation transferred is in
XHTML, as identified by the "Content-type" HTTP header field
containing the registered Internet media type name,
"application/xhtml+xml". That Internet media type name indicates
that the representation data can be processed according to the XHTML
specification.
As you can see, protocol was replaced by interaction,
which is fine. But the IFaP point that was so clearly made in the first version
is now relegated to a comment at the end of the Intro section:
In the remainder of this document, we highlight
important architectural points regarding Web identifiers, protocols, and
formats. We also discuss some important general architectural principles (§5)
and how they apply to the Web. [emphasis added]
However, the latest draft absolutely nails an
essential point about the longevity of network IFaP architectures vs. software
architectures, that I've been making for quite a while:
5.4. Protocol-based Interoperability
The Web follows Internet tradition in that its important interfaces are
defined in terms of protocols, by specifying the syntax, semantics, and
sequencing constraints of the messages interchanged. Protocols designed to be
resilient in the face of widely varying environments have helped the Web scale
and have facilitated communication across multiple trust boundaries.
Traditional application programming interfaces (APIs) do not always take these
constraints into account, nor should they be required to. One effect of
protocol-based design is that the technology shared among agents often lasts
longer than the agents themselves. [emphasis added]
Hence, the title of this post: The network lasts longer than the computer. You can
be sure I'll be quoting §5.4 and my pithier
version quite a bit from here on.
I'll probably have further comments when I've
read the draft in detail.
12:01:13 AM
|
|
 |
Friday, November 12, 2004 |
A good memory is like a good notation.While surfing the Getty Research Institute's
Metadate resources (which is a great resource for information standards), I
ran across this quote from
Vannevar Bush's profoundly influential article "As We May Think"
(which influenced Ted Nelson's Xanadu, which influenced Tim Berners-Lee's World
Wide Web):
Presumably man's spirit should be elevated if
he can better review his shady past and analyze more completely and
objectively his present problems. He has built a civilization so complex that
he needs to mechanize his record more fully if he is to push his experiment to
its logical conclusion and not merely become bogged down part way there by
overtaxing his limited memory. His excursion may be more enjoyable if he can
reacquire the privilege of forgetting manifold things he does not need to
have immediately to hand, with some assurance that he can find them again if
they prove important. Vannevar Bush, "As We May Think", The
Atlantic Monthly, July 1945. [emphasis added]
http://www.w3.org/History/1945/vbush/vbush-all.shtml
I love this quote because it reminds me of my
favorite quote about the importance
of good notation:
By relieving the brain of all unnecessary work,
a good notation sets it free to concentrate on more advanced problems, and, in
effect, increases the mental power of the race. Before the introduction of the
Arabic notation, multiplication was difficult, and the division even of
integers called into play the highest mathematical faculties. Probably nothing
in the modern world would have more astonished a Greek mathematician than to
learn that ... a large proportion of the population of Western Europe could
perform the operation of division for the largest numbers. This fact would
have seemed to him a sheer impossibility ... Our modern power of easy
reckoning with decimal fractions is the almost miraculous result of the
gradual discovery of a perfect notation. [...] By the aid of symbolism, we can
make transitions in reasoning almost mechanically, by the eye, which otherwise
would call into play the higher faculties of the brain. [...] It is a
profoundly erroneous truism, repeated by all copy-books and by eminent people
when they are making speeches, that we should cultivate the habit of thinking
of what we are doing. The precise opposite is the case. Civilisation
advances by extending the number of important operations which we can perform
without thinking about them. Operations of thought are like cavalry
charges in a battle -- they are strictly limited in number, they require fresh
horses, and must only be made at decisive moments. [emphasis added]
-- Alfred North Whitehead, An Introduction to Mathematics, 1911
So Vannevar its talking about enabling humanity
to simplify thought by minimizing what must be remembered, and Whitehead is
talking about simplifying thought by minimizing the operations we can do without
conscious thought. Both desires presages the computer's ability to augment human
thought by carrying out mental operations, including memory, for us.
7:26:41 AM
|
|
Some say, WS-* is too complex; I say, Compared to what?While the controversy over WS-Complexity (which
seems to have been catalyzed by Tim Bray's Loyal WS-Opposition
post; see these references
to Tim's post; see also my collection
of WS-Complexity references) seems to be dying down, I did want to add my
two cents to the debate.
In all the blog postings I've seen on the
subject, not one has compared the current WS-* processes for developing,
debating, and adopting Web Services and their output to the IETF standards
processes and their output.
Clearly, in terms of number of pages, the IETF specs far outweigh WS-*
specs, yet few would argue that the IETF process of "rough consensus and
working code" is a failure. Nobody complains that anyone can submit an RFC
draft at the drop of a hat. How is that different from MSFT, IBM, et al
announcing a proposed WS-* spec every week?
I believe that the "federated"
standards processes emerging around WS-* is a worthy successor to the IETF
approach. I characterize it as "federated" because WS-* related
standards are designed in different standards bodies and WS-I is emerging as the
"meta-standards body" that integrates and interop-certifies the
standards coming out of the other standards bodies.
I characterize the WS-* federated standards
processes as a "worthy successor" to the IETF, because the traditional
approach to standards is a dead as the dodo. Ever since the US federal
legislation enabling industry consortia in the 1990s, they have become the
standards center of gravity, for better or worse. Standards setting bodies and
their interactions has become the central domain of the emerging economic model
of co-opetition. It just so happens that the Web and WS-* are the first major
Guinea pigs of this new paradigm.
The point I'm trying to make is to suggest that
the current WS-* proliferation of WS-* specs is a sign of a vibrant,
decentralized innovative community. The same is true of the proliferation of XML
vocabularies across the board. This is a sign that this stuff is easy to design
with. Let's declare victory and move on. The wheat will be separated from the
chaff when such specs are put to use in the marketplace.
7:02:43 AM
|
|
The Tao of Modularity.Chapter
11
Thirty spokes share the wheel's hub;
It is the center hole that makes it useful.
Shape clay into a vessel;
It is the space within that makes it useful.
Cut doors and windows for a room;
It is the holes which make it useful.
Therefore profit comes from what is there;
Usefulness from what is not there.
I read the Tao Te Ching many times as a
philosophy major at Yale and for years after, but I haven't read it the last ten
years. I guess I'd better read it again. "Usefulness [comes from] what is
not there" beautifully states the value of modular extensibility. What is
intriguing is the distinction between profit and usefulness.
At first pass it seems obvious that the maker of
a modular object, like a clay vessel is paid for (on thereby makes a profit
from) "what is there". On second pass, it strikes me that the user of
the vessel makes a profit from "what is not there", either by adding
it on, or by using the space to some purpose, say transporting liquid in the
vessel. So the last two lines could be recast:
Therefore profit to the maker comes from what is
there;
Profit to the user from what is not there.
Finally, the more I think about it, the more I
believe that the profit to the maker really comes from what is not there. A
potter buys a block of clay at a certain cost. Her "value add" is the
vessel shape she forms the clay into. Someone pays her more money for the clay
in the shape of a vessel than in the shape of the raw block of clay because the
buyer values the shape--what is not there. Assuming she uses the entire clay
block to make the vessel, her profit is the price of the vessel minus the price
of the clay block. Now suppose she could get the same price for a vessel made
from only half the block of clay. She has doubled her profit by halving
"what is there." So the last two lines would be more clear if they
were recast as:
Therefore profit is limited by what is there;
Usefulness from what is not there.
Which is another way of saying "Less is
[worth] more." Which is why intangible artifacts (aka intellectual
property) are the most profitable. There is no there there.
6:06:09 AM
|
|
 |
Monday, November 01, 2004 |
Early is the new late.I always get a chuckle when I feel I am surfing the zeitgeist
(I tried and failed to find a definition or etymology of this popular phrase,
which I translate as "being at the leading edge of a trend". See zeitgeist. And see the Google Zeitgeist page. )
The Boston Globe just declared that "Early: The new late."
(Note, I am trying out furl, a bookmark
service that keeps a copy of a page in case it expires, as so many news pages
do.) Since my third child was born, I've been going to bed at the same time as
my kids (7-8pm) and getting up at 3am. I'm still getting 7+ hours of sleep, just
radically time shifted from my old days of midnight to 7am. Though it was hard
at first, I really love the quiet in the morning, and I feel more productive as
well. Glad to see I'm part of a trend. In fact I'm ahead of the trend, since
most of the early risers mentioned in the article are snoozing until 4:30 or
5:30. That's sleeping in for me.
6:22:06 AM
|
|
|