The Web as a Mobile Enterprise Application Platform

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.

Choosing a Mobile Enterprise Application Architecture

I recently spent the day with one of our largest customers to discuss the options for their next generation mobile architecture. We have worked with them over the last ten years and they are now in their third generation architecture and looking to the future.

1st Generation:Thin-Client (DOS, VAX)

Initially they developed thin client applications (DOS terminals running STEP) using COBOL on VAX servers. Although this was fifteenth it was a pretty good architecture. With this architecture the mobile applications were really an extension of their other store applications, and updating the applications was juust updating the server code. The big down side was writing the applications were difficult since they had to manage all of the client state in a multi-client server.

2nd Generation:Thin-Client (DOS, NT)

In the next generation they migrated from VAX to Windows NT and began developing with Symbol WaveWorks.This was a big step forward in ease of development since WaveWorks eliminated the need for developers to manage all of the terminals themselves. The business objects became stateless COM objects and the WaveWorks DisplayServer and Script Engine managed the terminal state.This continued to work very well and with StepOne’s STEP-CE client it was able to run on modern terminals.

3rd Generation: Thick-Client (CE, NT)

Next came the migration to the StepOne snapRETAIL .NET architecture which brought a modern UI and Web Services to access the business objects.Overall this has been a big improvement in the presentation layer as well as allowing WS integration. In addition this has added improvements such as Intelligent Alerts, Popup Messages and Improved UI controls that are now easier to implement in a thick client.

Overall this is a big improvement in functionality and performance, but now has the challenge of deploying the apps to thousands of terminals for any change. There are plenty of tools for managing this including AirBEAM, Avalanche, Afaria, SMS etc. but still not as easy as the big thin client switch which has its own set of challenges.

The Future: Are Mobile Web Apps Next?

Now the question is what should we be looking at next? Is it time to start moving towards web applications or is it too bleeding edge to commit their enterprise apps.