MWI Team Blog

Dispatches from members of the W3C Mobile Web Initiative Team

Categories: Current state (32) | Developing Countries (15) | Events (20) | Looking forward (13) | News (42) | Technical (33) |

Thin and dumb, or fat and smart? — 26 July 2007

Is it better to be thin and dumb, or fat and smart?

This question has been asked and answered in many different ways over the past years in the mobile computing space; in more classical terms, what is the best optimization between making mobile terminals as thin shells while the most of the processing is done on a server, or having mobile terminals as increasingly powerful pocket computers.

This tension has been showing under many different aspects in the mobile web space; consider for instance the development of so-called "full-Web" browsers on mobile devices (iPhone's safari, Opera mobile, Nokia N60), which usually require fairly powerful smartphones, that goes more or less in the opposite direction of "mini-Web" browsers (e.g. Opera mini) where most of the rendering/processing is done on a server and sent to the thin client pre-digested, or services that propose to proxy your navigation to make it mobile friendly, as Google Mobile or Mowser.

It shows also more generally in the Web space: the phrase "web application" has been used ambiguously to designate applications whose logic reside on a Web server, and for which the interaction is done through a Web browser, as well as to talk about rich client applications that use Web technologies - especially with AJAX and widgets being so hype nowadays.

This tension as I understand it, is built on advantages and inconveniences specific to these approaches:

  • if you put most of the processing on the server, your service can be used on many clients (as they require less capabilities/features on the client), you can deploy new versions quickly and reliably; on the downside, making these applications work offline is still very challenging - challenges that Google Gears is at least trying to tackle
  • if you rely more on the client side, you can get a better integration in the interface, use client-specific API (e.g. to take pictures with a camera-phone, or get your localisation with a GPS module); that's what makes Google Maps much more useful as a standalone application on my Tréo than it is in my Web browsers on that same PDA; but getting these applications updated and maintained is usually a much more involved effort, and they often require being developed in multiple versions and levels to cater to the wide diversity of computing platforms.

Of course, the question is then: how do we get the best of the two worlds?

The goal seems clear: getting the two paths to converge at some point in the future; getting there is difficult, but there are a few intermediate steps that seem pretty important to me:

  • there needs to be some serious work on the offline capabilities of mobile devices - Google Gears may be a step in that direction, but I tend to think that some real investment on making HTTP-caching a platform-level operation (the same way getting a network connection is, for instance) would be a tremendeous help - I have already ranted about it for browsing, but that's even more important for Web applications development; more largely, synchronization protocols will become increasingly important - WebDAV, CalDAV should lead the way, but a generic framework for synchronizing data has not crossed my radar yet
  • currently, most browsers don't have access to low-level client APIs; there has been a lot of work done in the Java world on defining these interfaces (through the JSR process), but they remain invisible to the browsers in most cases, and to their client-side scripting capabilities even more so; the W3C Ubiquituous Web Application Working Group is chartered among other things to look at this problem space, and hopefully will make it possible for Web applications to get better integrated in their hosting devices
  • Web access should become much more pervasive in client-side applications; as of today, on most phones, if you get a Web address in an SMS or in your calendar application, you would be hardpressed to use it directly to launch your local browser
  • the level of interoperability for rich client Web technologies needs to improve dramatically to make it possible to rely on them for serious user interfaces; I'm hopeful that the work made by the W3C Compound Document Formats Working Group will help; it seems also to me that increasing the availabilities of test suites for user agents is primordial to achieve that goal

The way I see it, the distinction between Web applications and local applications will be fading; I think Web technologies can serve as a very strong foundation to power this new generation of applications. There are already some ongoing work on development of an open-source platform for a Web-based desktop - I think this approach is even more important for mobile devices.

by Dominique Hazael-Massieux in Looking forward 1 comment Permalink

Comments, Pingbacks:

Comment from: Ajit Jaokar [Visitor] ·
Great article Dom. Blogged about it
PermalinkPermalink 2007-07-28 @ 16:06

Contacts: Dominique Hazael-Massieux