Synchronization
Although you can avoid synchronization if a full-time wireless network connection is available to your users, this is not a viable solution in many areas. Always-connected applications are also vulnerable to network outages, and can result in costly connection charges. Synchronization solutions require only periodic connectivity to the enterprise. They use a "store and forward" approach, saving information on the client and forwarding it (usually under user control) to a server or desktop synchronization application.
Some of the issues related to synchronization include the following:
How often will you have to do it?
What will be synchronized?
What type of synchronization is needed?
Determining how often you need to synchronize your mobile device with your enterprise will drive the approach to mobile connectivity. Near real-time synchronization requires periodic (and potentially costly) wireless network connectivity. Many applications can work with hours or even days between synchronizations; perhaps a daily or weekly synchronization that uses a physical network or cradle connection is adequate for your situation. Commercial synchronization solutions may support wireless, dial-up, or cradle-based connectivity.
The information that will be synchronized can range from email and contacts (where the device's built-in synchronization software should be more than adequate) to custom application data. In the latter case, you may have to make changes to backend systems to support synchronization. At issue is the ability to determine when information was last changed; some form of time stamp for each record is needed. The good news is that commercial synchronization software typically supports the common relational databases, each of which may have a different way of time stamping data.
Synchronization comes in different flavors. One-way synchronization is from the client to the server or server to the client only. This is useful in cases where a mobile client is gathering new data in the field and there is little or no chance of conflict with enterprise changes. Two way synchronization works as its name implies; information flows from the client to the server and in the opposite direction. This form is best for situations in which more than one person can be working on the same data in the periods between synchronization. Effective conflict resolution is critical in situations in which the same information is updated in two or more places.
Vendors of synchronization software include Synchrologic and Extended Systems. The Synchrologic web site has some good white papers that explain the issues and outline some of the features you should look for in a synchronization product. One feature in particular to look for is support for SyncML; this is an industry standard that attempts to define a general purpose XML-based framework for synchronization. Clients and servers are certified for compliance with this standard, making it easier to mix and match vendors in your mobile deployment (see http://www.syncml.org/interoperability.html for a list of compliant products).