XForms, REST, XQuery...and skimming

Mark Birbeck
w: <http://webBackplane.com/mark-birbeck>
b: <http://internet-apps.blogspot.com/>
e: <mark.birbeck@gmail.com>

Building web apps today

The client is too thin, so all the work is done on the server:

Building web apps today

No complete separation of UI and data

Applications generally get some data and use it to create a UI:

This means that it's difficult to break UI from the data:

No complete separation of UI and data (2)

The kinds of problems this causes:

and so on.

No complete separation of UI and data (3)

We want the data to be passed to the UI, not used to generate it.

Hence the idea of 'skimming'...like a stone bouncing across a lake.

The fundamental role of web services

Advantages:

And by web services we don't just mean SOAP, but ATOM, REST, RSS, and so on.

Building web apps with web services

Summary of web services

Advantages over conventional model:

But:

Rich client approach

More control to client allows data to become completely independent of UI.

Applications become much easier to author since we can have a clear distinction between:

and so on.

Building web apps with rich clients

The role of XForms: Distributed applications

A standard language for defining truly distributed applications:

Yet the deployment model for XForms is what we would expect from 'thin client'.

The role of XForms: Dynamic UI

UI automatically updates when data changes, with no round trips:

Data type can drive UI (e.g., dates and booleans):

A simple XForms application

Demo showing different sources of data for labels on controls and in drop-boxes, as well as dynamic update of repeating data structures and controls based on data type.

Summary on rich clients

Separate data from UI with web services...rich clients make this a reality.

XForms is an ideal rich client:

Improving on web services

XForms standardises on the UI...

...but with WebDAV, ATOM and XQuery we can standardise the server.

Recap on the model we're working towards

WebDAV and ATOM

Use WebDAV and/or ATOM to manage the database:

Demo showing oXygen adding and removing items, without the need to update schemas, etc.

XQuery

Use a standard language to query data:

The future

GData uses ATOM...which means we can 'program against the cloud'.

Demo showing how to query GData using ATOM, and then update a spreadsheet with data that becomes a pin on a map.

Conclusion

skimming depends on:

Together they allow us to produce flexible web applications that are easier to maintain than traditional applications.

Links