In many ways the web seems like it should be the ideal development platform for mobile enterprise applications. It’s a thin client platform with a rich UI experience. There are standard development tools and with AJAX the screen refreshes can make the applications feel like a thick client environment.
And it can definitely work, as we proved back in 2000 when we developed the Sears mobile retail application. This was developed on the Symbol SPT1840 (Palm OS) with a custom, very primitive, web client. On the server side they were originally running Java 1.1 servlets on an OS/2 box (later Windows NT).
So mobile web applications are technically feasible and have a desirable thin client architecture. Then why isn’t it the industry standard. The answer becomes more apparent as we look at some of the obstacles.
Latency – The first big obstacle was the screen refresh problem. Any time we wanted to change application state required a round trip to the server and a screen refresh. With AJAX this is better, but it does makes development more difficult.
Device Features – One of the main reason that we people use mobile devices is for all of the cool features such as barcode scanning, magnetic stripe readers, cameras, video, messaging, etc.  Not to mention a pretty powerful CPU, persistent storage, and the other features of a portable computer. With web apps, you are generally limited to the functionality of your browser. To some extent you can get around this with ActiveX controls and third party browser extensions such as Motorola’s PocketBrowser, but this is all custom.
Bells and Whistles -Audio is a critical component of Enterprise applications. For some reason Microsoft all but eliminated sound from the mobile web. Without audio cues, alerting users of errors is less effective. Again we can use third party tools for this such as PocketBrowser, but…
Web Standards Support – Here’s another big frustration area that drives developers crazy. It’s only natural that the Microsoft developers made some trade offs when they implemented the mobile browsers, but clearly they weren’t targeting it as an application platform from their choices. Take the single window limitation, i.e. no popup window for displaying error messages or alerts. Or not supporting absolute position. While these types of limits don’t prevent development, it just makes things more difficult.
Despite these challenges, web applications will become increasingly popular because of the standards based thin client advantage. And over time, as functionality improves, it will become an increasingly common platform.
However at this point, I still see the web as a limited platform for Enterprise Mobile Applications. We have found that it works well for smaller applications such as price checkers, or even Gift Registry. But as the applications increase in scale and functionality, the web environment just isn’t ready for the demands of the enterprise.