The state of rich Web apps

I recently argued that Gmail's aggressive use of DHTML qualifies it as a kind of RIA (rich Internet application). As e-mail correspondents and bloggers pointed out, the technique has a fairly long history. Many wonder why it remains on the fringe. The reason, I think, is partly a weakness common to all RIA technologies. Whether it's based on DHTML, Java, Flash, .Net, or just a standard GUI, an RIA has a client/server architecture. Unlike a Web application that manages state information almost entirely on the server, an RIA achieves a more balanced distribution of that information between server and client. The benefits that flow from this arrangement can include responsiveness, context preservation, and offline capability.

To achieve these benefits, though, we have to make some painful trade-offs. First, there's no easy way to observe and measure the use of your RIA. A developer once asked me, in a discussion of Flash as a front end to Web services, "Where's the clickstream?" Great question. Web server logs are important sources of interaction data, and Web analytics tools know how to mine that data. But when interaction is localized to the client, you're flying blind. You need to find another way to observe and measure what users do.

This is a general issue that GUI software has never handled gracefully. I have also discussed the weak tradition of event logging on the Windows desktop. It's a problem not only for security auditors but also for developers who need to understand in detail how users interact with their software. Failure scenarios can be maddeningly hard to reproduce, as I'm reminded every time I try to pinpoint the glitch that prevents my wife from printing address labels in Microsoft Word.

A related issue is integration. RIAs are protocol-driven. A programmer who masters an application's protocols can extend it or combine it with other applications. But there are no integration hooks available to the user. In a Web application, those hooks are simply URLs. Consider what happens when you include a MapQuest URL in an e-mail to someone. A piece of state information -- namely, the state of the MapQuest viewer when displaying a given location -- has been reduced to a token that one person can hand to another. The same thing can usefully apply to the state of a shopping cart or an airline reservation.

In a Java-based map viewer, a .Net-based shopping cart, or a Flash-based airline reservation system, it's possible to expose these states to the user so that they can be saved or exchanged. But this doesn't happen automatically, as with standard Web-based software. Such uses must be anticipated and explicitly prepared. Many, though, just can't be foreseen. My best example here continues to be LibraryLookup, an ad-hoc integration between book-buying sites and library catalogs. Because these two classes of system are URL-driven, it took only a snippet of JavaScript to automate the manual technique -- URL cut and paste -- that was already available. Replace either system with an RIA, and this integration opportunity goes up in smoke.

The idea that an application wears its state information on its sleeve, readily available for users to bookmark, modify, and trade, is an underappreciated strength of Web-based software. As the RIA bandwagon picks up steam, let's honor that idea and find a way to move it forward.

Join the newsletter!


Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.
Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.

Jon Udell

Show Comments

Brand Post

Most Popular Reviews

Latest Articles


PCW Evaluation Team

Tom Pope

Dynabook Portégé X30L-G

Ultimately this laptop has achieved everything I would hope for in a laptop for work, while fitting that into a form factor and weight that is remarkable.

Tom Sellers


This smart laptop was enjoyable to use and great to work on – creating content was super simple.

Lolita Wang


It really doesn’t get more “gaming laptop” than this.

Jack Jeffries


As the Maserati or BMW of laptops, it would fit perfectly in the hands of a professional needing firepower under the hood, sophistication and class on the surface, and gaming prowess (sports mode if you will) in between.

Taylor Carr


The MSI PS63 is an amazing laptop and I would definitely consider buying one in the future.

Christopher Low

Brother RJ-4230B

This small mobile printer is exactly what I need for invoicing and other jobs such as sending fellow tradesman details or step-by-step instructions that I can easily print off from my phone or the Web.

Featured Content

Product Launch Showcase

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?