Mining Google Web Services: Building Applications with the Google API

Most programming chapters of this book have mentioned the need to store commonly used Google data locally to improve performance and provide a backup should the main connection to Google fail. A desktop application can rely on any of a number of Database Management Systems (DBMSs) to perform the task of storing this data for future use. Given the static connection a desktop system enjoys, you can assume the user will always have access to the data. Unfortunately, it's not possible to say the same thing about mobile devices. Mobile devices have dynamic connections that might not be available when you need them.

The lack of connectivity means you have to make hard choices about how to make your Google Web Services application perform well. You could still rely on a server-based DBMS to perform this task for you. For the purposes of this discussion, you can consider this a remote solution. It's remote because you can't count on a connection, and the mobile device might actually need to rely on a nonstandard connection to obtain the data (as when you're on the road).

An alternative for some devices is to use a product such as Microsoft SQL CE or Sybase iAnywhere. These DBMSs let you build a local connectivity solution that stores data short term on the local device. This solution tends to solve the problem of remote connectivity ”the user can always count on the local data store. However, this solution also has problems. For one thing, you might not see as great a performance gain as you might anticipate ”the limited memory and processing capacity device is now running your application and a DBMS. In addition, you'll find that many older devices aren't able to run either Microsoft SQL CE or Sybase iAnywhere. In short, you can't assume that database caching is even possible.

It might sound as if there aren't any good solutions for offline data storage for mobile devices. To some extent, that perception is true. However, you can use storage technology and improve both the functionality and performance of your mobile application incrementally. The best solution is to use local storage when the processing power and storage capability of the mobile device is up to the task. When you can't rely on the resources provided by the mobile device, use a Web application with server-based storage instead.

Категории