An update of the W3C Working Draft on Architecture of the World Wide Web was released last week. It’s recommended reading, and worth a longer quote:
The important points of this document are categorized as follows:
An architectural constraint is a restriction in behavior or interaction within the system. Constraints may be imposed for technical, policy, or other reasons.
In the design of the Web, some design choices, like the names of the <p> and <li> elements in HTML, or the choice of the colon character in URIs, are somewhat arbitrary; if <par>, <elt>, or * had been chosen instead, the large-scale result would, most likely, have been the same. Other design choices are more fundamental; these are the focus of this document.
Good practice — by software developers, content authors, site managers, users, and specification writers — increases the value of the Web.
An architectural principle is a fundamental law that applies to a large number of situations and variables. Architectural principles include “separation of concerns”, “generic interface”, “self-descriptive syntax,” “visible semantics,” “network effect” (Metcalfe’s Law), and Amdahl’s Law: “The speed of a system is determined by its slowest component.”
Architectural properties include both the functional properties achieved by the system, such as accessibility and global scope, and non-functional properties, such as relative ease of evolution, reusability of components, efficiency, and dynamic extensibility.
This is good. As co-author Tim Bray says, “this is far from finished”, but it’s good to see progress.
When we talk about the internet, “keep it simple” is a classic architectural principle (section 3.5 in IETF RFC 1958) which we should remind ourselves of more often. It’s nice to see simplicity in practice in the W3C draft. The XHTML document uses simple markup like <p class=”principle”> and <p class=”practice”> for codifying the principles and best practices. That is all Jon Udell needs to wrap up a cool XPath search experiment for visualising the principles and best practices. Nice work, Jon.
I want to do something similar in our national enterprise architecture framework. Part of the framework programme is to establish guidelines and a so-called Reference Profile (e-GIF).
Maybe we should use simple but meaningful markup when we publish our documents. I’ll try and adapt the five W3C point classes (<p class=”principle”>Interoperability</p> etc). Maybe we could invent some more classes. Say, if we chose to include RSS, a basic, simple markup system could be something like:
<p class=”migrateFrom”>RSS 0.91</p>
<p class=”use”>RSS 2.0</p>
<p class=”use”>RSS 1.0</p>
With a style sheet, class=use could be coloured green, class=migrateFrom yellow, and so on. With XPath and stuff we can get all the XML we want, of course.
The class attributes should be standardised. Maybe we should create a namespace for enterprise architecture and/or interoperability frameworks? Would anyone be interested in such? Or, would we reinvent the wheel? I’m sure there is a lot done already here, but there so little sharing. It’s time to change this!
Who’s with me?