The nature of portable devices means there will be occasional disruption in connectivity. Designing your software to account for these conditions will help your users to have a better experience. Here’s a few suggestions to consider as you plan for your Netbook applications.
Issue and Recommendation
Unreliable Connection- Use subscription methods to maintain understanding of connection status.
Online transition to offline workloads
- Begin caching of information that will need to be synchronized upon reconnection.
Offline transition to online
- Detect new connection, synchronize data as previously prepared while offline
Data loss during on/offline transition
- Use secure methods of data transmission to maintain data integrity (avoid data-gram packets)
- Maintain local cache until transmission verified to server system.
Server or web-service non-responsive
- Treat as connection failure, maintain local cache and wait for working connection
Synchronous Messaging
- Use Asynchronous Messaging to avoid potential blocking issues
Additional considerations
Provide On and Offline capability for you application.
Provide an Intelligent transition between on/offline and data management.
Deliver an “always connected” experience by using store and forward architecture, working for seamless transitions. [like podcasting]
What aspects of your app require a connection, are there ways to mitigate that?
Can you defer communication activities? (email send/receive when connected)
Can you anticipate users needs to cache in advance?
How will you respond due to a connection failure during a data access or file transfer?
Handle unreliable network connections.
Information on designing Asynchronous Messaging systems may be found here:
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. http://www.amazon.com/exec/obidos/ASIN/0321200683/interncom-20