Nick Gall's Weblog
[NOTE: I have moved. My new blog is ironick.typepad.com.]
        

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      



© Copyright 2006 Nicholas Gall. Click here to send an email to the editor of this weblog.
Last update: 9/21/2006; 6:15:46 AM.