local, server, and mixed mode applications

May 6, 2007 by Barbara

Some applications can reside entirely on a mobile device, with no ongoing server or personal computer data storage. This is about all the other applications. Email, games' high scores, social networking, calendar, presentations, messaging, media.

A key architecture decision that affects user experience is where to store data and application logic. Traditional web sites store both on the server only. AJAX enables a small local cache, mostly of application logic; the Gmail client does the same. Some applications, such as music players, stores a subset of the data locally, usually with access to the complete data online. Finally, many on-device applications are basically local applications with some server or desktop connection. Examples include Nokia Wallet, which stores receipts on the device only.

This architecture decision impacts three key aspects of user experience:

To best make this decision, carefully consider the needs of your users and the capabilities of the devices and platforms. A stock price application clearly values high data freshness above all; calendar users need to reliably be able to glance at calendar data ... quickly.

Server onlyLocal cacheLocal subsetLocal
FlowSlowVariableMostly rapidRapid
Data freshnessHighMostly highMediumLow
Data availabilityRiskyRiskyVariableSafe*

It might help a little bit to understand this with an abstracted visualization. I've assigned numeric values to the above tables. Note the distinct trends, but no architecture is perfect.
visual representation of the above table

So what we see is that local applications excel at rapid interaction (flow) and data availability, but have a risk of low data freshness; these applications are also subject to the storage limitations of the device.

Different platforms lend themselves to different parts of the data storage spectrum. Web sites can support server and transient local. Flash and Java excel at transient local, local subset, and occasionally local only. Native applications excel at local only but can theoretically support the entire spectrum.

Widgets of various flavors are good at displaying a subset of data; the balance of the data could be local or on the server.

Note that using SMS to interact with an application is an application with server only data, and ends up with the weaknesses of both local and server applications. This is actually acceptable for certain types of application, and the asynchronous nature of communications can even enhance certain user behaviors.



No Comments »

No comments yet.

RSS feed for comments on this post.

Leave a comment

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-Spam Image