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