Why Use a Mobile Database?
Even though smart client applications have been successfully deployed for several years, many developers are still unfamiliar with the benefits they provide. This is likely because until recently, the focus of mobile applications has concentrated on WAP and other thin client architectures. This is unfortunate because many of the commonly cited pitfalls of wireless computing, such as poor user interface, low bandwidth and unreliable data access could have been avoided if companies developed smart client applications instead of casting their lot with WAP.
The main advantage of using a mobile database in your application is offline access to datain other words, the ability to read and update data without a network connection. This helps avoid problems such as dropped connections, low bandwidth, and high latency that are typical on wireless networks today. Furthermore, because a modem is not in constant use, this model increases battery life on the device and greatly reduces the length of connection time and higher cost incurred when a constant network connection is required. Because only updated data is synchronized, wireless airtime fees can be reduced with mobile database applications. Depending on your business need, synchronization can also be done using a cradle over a wired network eliminating wireless airtime altogether.
|The main advantage of using a mobile database in your application is offline access to datain other words, the ability to read and update data without a network connection.|
As mentioned earlier, synchronization is a critical component of smart client applications. The synchronization layer has to be able to handle not only updates, but also inserts and deletes. And it has to be able to manage all of these changes for each user on the system, in such a way that conflicts are largely avoided, and if they do occur, are resolved in a non-intrusive manner. This may seem like a daunting proposition, but mobile database and synchronization vendors have succeeded in solving these issues through a combination of technology and best practices in application design.
In general, when designing an application that will have multiple users communicating via synchronization to a central database, you want to design your application so that there is minimum overlap between the data for each user. This typically requires the data to be partitioned by user, so each user has a distinct set of data. When this is accomplished, the worry of having 'stale' data and of having users overwrite each other's data is minimized.
When data partitioning is not an option, such as in the case where multiple sales people are selling products from the same inventory supply, one good approach is to use priority synchronization. This is the ability to specify components of your client data that are more time sensitive, and in turn can be synchronized more frequently without having to synchronize the entire data set. In the case of our sales people, they may synchronize orders in a priority manner, allowing for inventory levels to be kept up to date, while at the same time leaving other data such as product catalogues to be synchronized at a later time. In extreme cases where real-time access is required for all of the data, such as stock quotes, then another application architecture, such as wireless Internet may be more appropriate.
Performance and More
Beyond reliable access to corporate data, smart client applications also provide performance benefits. Because the data is local on the device, a roundtrip to a server is not required for data access. This allows you to prevent network performance issues (bandwidth, latency, etc.) from affecting your mobile application's performance. In addition, native applications typically allow for more sophisticated user interfacesinterfaces that are more desktop-centricthereby improving application usability.
At a more granular level, the features of the database you select can provide additional benefits. For example, having support for enterprise class functionality, such as indexes, referential integrity, and especially transactions, allows you to create applications that are extensions of your enterprise applications and not mere substitutions.
|Transaction integrity means that clients can perform database actions within transactions, so if something goes wrong in any part of the transaction, the entire transaction is rolled back.|
The importance of transaction integrity cannot be overemphasized for mission-critical applications. Transaction integrity means that clients can perform database actions within transactions, so if something goes wrong in any part of the transaction, the entire transaction is rolled back. This is an important feature when you are modifying data in more than one table, as you can ensure that internal references remain intact.
Security is another area where smart client applications excel. This is because all aspects of the applications security are controlled by you, meaning you do not have to rely on third party infrastructure, such as WAP gateways, for security. With a mobile database architecture, you control access throughout the application using authentication and data encryption. User authentication, built into the application on the device, prevents unauthorized users from accessing your confidential data and carries through to your back-end data source during synchronization. Encryption can be applied to both the data on the device and the communication stream to the server. This way, confidential data cannot be viewed on a device that is lost or stolen.
The advantages of a smart client architecture with a mobile database are compelling, but to tell the whole story, you need to be aware of the tradeoffs over a wireless Internet architecture.