web architecture


One of the keys to understanding how the Web works is to understand how social networks impact the structure of information (and vice versa). Jon Kleinberg at Cornell University has organized a couple great courses on the subject, at both the undergraduate and graduate levels. One of these days, I’ll find the time to (re)read all of those papers… for now, all I can do is shorten the distance.

I ran across a spout yesterday about the uniform interface in REST. Actually, it is more of an attack on resource-oriented architecture (ROA) with the usual sideswipes at REST. Like most criticisms of my work, it got me thinking… not just about what was being criticized (in this case, the lack of REST constraint enforcement in HTTP), but how to fix the underlying problem that a lot of folks simply don’t understand the differences between software architecture and implementation, let alone between architectural styles and software architecture.

A software architecture is an abstraction of the run-time elements of a software system during some phase of its operation. A system may be composed of many levels of abstraction and many phases of operation, each with its own software architecture.

Let’s start with a simple (yet surprisingly complex) example. My blog is a network-based application — a specific grouping of functionality and behavior that allows me to accomplish a desired task using multiple computers that communicate via a network. That’s what application means in our industry: applying computing to accomplish a given task.

(more…)

Noah Mendelsohn posted a pre-draft about some thoughts on resources, information resources and representations, in which he tries to make sense of the never-ending debate on httpRange-14 httpRedirections-57.

I’ve been vaguely following this discussion on the W3C TAG mailing list for some time and, against my better judgement, I feel a need to comment on the suggestions. Actually, that’s not quite right, since I really don’t have any polite comments to make on the suggestions, and I wouldn’t want to offend my friends on the TAG.

Instead, I’ll just ask a few questions about this one sentence:

A key requirement of the Semantic Web is that URIs be used
to identify resources unambiguously.

Why?

  • What makes that a key requirement of the Semantic Web?
  • What makes the TAG think it is feasible to satisfy that requirement?
  • How will the TAG know when the requirement is (or isn’t) satisfied?
  • If someone can show that this requirement is inherently unsatisfiable, doesn’t that imply the Semantic Web will never happen?

Or, is it not a requirement, and all these proposals are just an excuse to avoid designing a Semantic Web that would actually work within the same problem space of the current Web?

I don’t want the Web to constrain what people do: the Web
is not there to constrain society. It’s there to model society
in its completeness, in its entirety. [Tim Berners-Lee, 1994]

Have we forgotten why?

On the Web, millions of people mint URIs, and millions more use them in references. Millions of human beings, conversing over time, with an occasional URI thrown in to refer to a subject under discussion.

When was the last time you had an unambiguous discussion?