Wednesday, September 27, 2006

XForms, REST, XQuery...and skimming

I had a very pleasant day out of London yesterday, over at the CCLRC Rutherford Appleton Laboratory near Didcot. The event was a joint meeting between XML UK and the W3C Office for UK and Ireland, and the topic was XML Access Languages. The main idea was to look at the various W3C languages that can be used to query and manipulate XML, from XPath and XQuery, through to XSLT, and on these topics we were lucky to have both Liam Quin and Michael Kay.

In addition to looking at the current and future state of these languages (including Andy Seaborne's dip into RDF-world via SPARQL), there were also two presentations on how they might be used in the context of building web applications. One of them was mine, looking at how if we push more and more functionality into the client--whether an Ajax or XForms client--and then access our data using XQuery over REST, we can build web applications much more quickly, and they are easier to maintain. Chris Wallace followed this by showing a full application that uses Ajax and eXist, and obtains data for all sorts of purposes, such as for transfer into Google Earth.

Skimming

The main focus of my talk was what we've called skimming; the idea is to be able to install various pieces of server-side software and then not have to touch them again! No configuration...no writing of server-side scripts...just store some data and retrieve it. If you've not looked at this idea before, then it may sound a little odd, but a good example of a component that can do this would be a WebDAV server; here you simply install the software and then start saving documents, editing and updating them, searching for them, and so on. There is no reason why you couldn't build an entire client-side application that manipulates documents and stores and retrieves them, without having to do any more to the server than install the WebDAV software.

The XML database eXist can be much the same as WebDAV in that you can install it and then immediately start punching XML documents, but unlike relational databases you don't need to know in advance what you want to store--no need to create tables first, define schemas, etc.

But the skimming architecture goes further; by using a standard interface to our data--in this case XQuery--we don't need to write server-side scripts, applications or servlets to manage the data. Instead we just use queries from our 'rich client'. The resulting application is very loosely-coupled, and can run on just about any server-side architecture; client-side forms can be deployed by any HTTP server because there is no scripting involved in their creation, and the data can be delivered by any XML database that supports XQuery--and the list of those is getting longer.

So my presentation was about using REST, XQuery and XForms to allow for the rapid development of rich internet applications, by defining the application's behaviour on the client, and then using 'vanilla' software on the server.

Update


I've just seen Bill Higgins' Ajax and REST, Part 1 which is a fantastic explanation of exactly the issues I'm experimenting with. His article is just as applicable to XForms as Ajax...as you read it, for every occurrence of the word Ajax just replace it with the word XForms. :)

Update 2


And now I've come across the blog the DIL, which the author is going to use to document their experience building new systems and user interfaces. One paragraph in particular caught my eye (my emphasis):
In the end I chose eXist because it is open source, it stores my data as xml, outputs it as xml etc. Also I had also had some experience with xquery in my previous position and I liked the idea of being able to run the whole web application using only xquery, xpath and XSL, all of which I was at least familiar with.

Labels: , , , , , , , ,

0 Comments:

Post a Comment

Links to this post:

Create a Link

<< Home