What a long neck you have…

What a long neck you have…

Does anyone really want to pay the mobile internet or are they just browsing?

All the better to browse the treetops, as the giraffe said, more and more attention in mobile software is going into the browser, and it’s increasingly coming to take over the user interface. Of course, this trend is not entirely new on the desktop – the move towards so-called Web 2.0 applications, and more importantly the underlying AJAX middleware, has led to a huge expansion of the functions carried out in a browser window rather than a desktop GUI.

First, the science bit, as they say in the hairspray ads. The key technical development was the introduction of the XmlHttpRequest object into the JavaScript specification, which permitted a script running in the user’s browser to package an arbitrary XML object as an HTTP GET or POST message. At the far end, an application that can accept and produce data in XML format could catch the HTTP request, unpack the XML object, and do something useful, then reverse the procedure to send back the result.

It sounds recondite, but the results are important. Before this, a web page was essentially static, and anything that involved using it as a client-server interface would require the page to be reloaded every time anything changed, any scripts executing as the page loaded. If the communication could be carried out from within a loop on the page, though, processing can be asynchronous and the page can behave like an application. Hence the term AJAX – Asynchronous JavaScript and XML.

As well as doing highly interactive user interfaces, AJAX also permits the inclusion of complex server-side applications in a web page. The canonical example is Google Maps. A wide range of desktop-like applications are now available as web services, and it’s also noticeable that some desktop user interfaces (especially Microsoft ones) have begun to share features with browsers.

So what does it mean for mobiles? Good mobile web browsers are difficult. Starting off with the screen constraint, there is also the problem that doing a basic HTTP browser now renders useless any site that contains JavaScript or Flash, but making this work on mobile devices is a problem.

But the good news is that a web interface with a lot of programmability is, by definition, capable of being reprogrammed. Perhaps fancy web UIs might turn out to be easier to rework for mobile use? Another important point is that, if you’re going to build web pages with lots of function call to applications, why not do the device user interface in the same way? It could make programming it much simpler.

All this to get to the point – Nokia is keen on using its browser to access both local and network resources. If you don’t believe me, take a look at the adverts for the E65 – it looks remarkably browseresque. It’s also been talking AJAX for mobiles. RIM this April announced a whole wedge of APIs for various features of its devices and servers, and Microsoft recently showed off its new DeepFish device browser. DeepFish is intended to provide a sophisticated zoom function that will let you focus on part of a web page (or anything else) without mangling the layout. So far, the demonstration version doesn’t handle cookies, JavaScript, or even HTTP POST, so it’s fairly useless. But once it’s fully featured, it could be very different.

This kind of user interface could have much deeper consequences for the devices and systems behind it. Consider Openwave Systems’ Mobile Widgets, which are AJAXy objects that sit on the device idle screen and pull information over the network as required. If you’re doing AJAX, you must be breaking down services into autonomous components with open, standardized interfaces, which means you must be doing service-oriented architecture at the back end. And if it’s going to be useful, you’ve got to let your users tinker with it.