||The Realities of Deploying Wireless J2ME Solutions Over Unreliable Networks|
|Subject:||Exceptions are the normal state|
Very good. I've myself worked with applications over wireless connections for over 15 years, starting with Mobitex. The main wisdom I have gained is that success in the communication is an exception. This is reflected in all the protocol layers of any mobile stacks. The nature of radio connections will eventually show up at the application level, no matter how clever the protocols. The application must cope with this in a proper way, there is no other solution to it. This is a fundametally different situation compared to normal application writing where errors are exceptions and hence a suboptimal user experience could be tolerated in rare occasions.
For mobile applications however, communication failure must be handled as the normal scenario. Failing to realize this and not providing the user with proper feedback will give a bad user experience. Trying to hard to hide the erratic nature of the radio path will result in applications feeling wobbly, hard to understand and without user control. My experience is that having clear indications of progress and being up-front about communication status enables the user to act properly. Fail-fast strategies may often be a far more viable solution then lengthy retries and timeouts.
To conlude, building applications for mobile communication links requires a mental 180 degrees turnaround - design for trouble - expect the worst.