Web 2.0 with XML
24 September 2009

Turning the browser into a work station

Abstract

The Web pushes content out from servers onto users' desktops. How
much of the processing can we push out to the browser with it? Can we
make our Web applications distributed not just in terms of the
geographic spread of the users but in terms of the CPU load? The more
work we can perform in the user~s machine, the less work must be done
by the central server(s), and the less dependent the application is on
network latency. Three technologies can help.

First, data transformation in XSLT can run in the browser, instead of
on the server, if we can work around the occasional gap in the
existing browser implementations of XSLT. Second, Javascript can be
used as a relatively simple glue to manage XSLT transformations in the
browser. Cross-browser libraries make this easier than it would
otherwise be. Third, XForms can be used to turn the browser into an
XML editor specialized for a particular vocabulary and task, with
sophisticated user-side validation of input and cross-field
constraints.

Turning the browser into a workstation

Why bother?

XSLT in the browser

Running XSLT from Javascript

XForms

Why bother?

reduce resource usage

CPU

network requests

improve user experience

reduce client/server round-trips

so reduced latency

Why bother? Revisited

Well, no. It's not that simple.

You still have to validate. (Why?)

Asynchronous requests are still requests.

But ...

How many adversaries?

How many well-meaning errors?

You may still save cycles.

User experience still better.

Didn't they give up on that idea?

Lots of pundits on the Web will explain:

XML was intended to be shipped to the client.

XSLT in the client is a failure.

It cannot ever work.

You can't use it even if it works.

You shouldn't use it even if you can.

XML was never intended to be shipped to the client and parsed there.

It belongs on the server.

They're confused about some details.

Or maybe they just don't know what they're
talking about.

The goals of XML

The goals of XML include:

Reusability of data.

Self-determination by authors and publishers.

Freedom of ontology.

Ability to deliver on the Web using
descriptive markup.

Universal adoption by users happy with HTML was never
a requirement or a goal (even if many involved felt
it would be a good thing).