How to Dramatically Increase Your Kiosk Applications Performance with Local Caching – Part 1

smart_clientIf your kiosk regularly synchronizes data with a remote server then you may have the opportunity to dramatically improve your kiosks performance by making use of your kiosks local storage.  By caching data locally it allows your kiosk to respond more quickly to user input by reducing the amount of time your kiosk spends waiting on a response from the server.

In the first part of this 2-part series I’m going to cover the benefits of caching data locally on your kiosk, the sort of data you’ll want to cache and some helpful tips for caching.  In part two I’ll cover a couple cool options for persistent local storage in the web browser.

What are the benefits of utilizing your kiosks local storage for caching?

Anytime your kiosk needs to access an external server to complete a user’s request, for example to view a product description, there will always been an added delay.  This is because the kiosk must wait for the server to respond before it can fulfill the user’s request.  If on the other hand, the product description is stored locally on the kiosk, then the kiosk can instantly display the product description and the user can complete their transaction more quickly.

The three main advantages of caching data locally on your kiosk are:

  1. Increases the responsiveness of your kiosk
  2. Reduces the load on your server
  3. Lowers bandwidth requirements

By making your kiosks less dependent on constant connectivity to your server it means that the server will be lowering its workload because it won’t constantly be bombarded by requests from your kiosks. This makes it easier to scale your kiosk deployment, while minimizing server costs.  The less your server has to do, the more kiosks it can support without investing in additional processing power and bandwidth.

What sort of data should be cached in your kiosks local storage?

The following are a few examples of data which should be cached locally on your kiosk (preferably in memory):

  • Images and video since these can be real bandwidth hogs.
  • Preliminary validation rules.  This is data which allows user input to be validated before sending it to the server.  This saves bandwidth and reduces the processing load on the server.
  • HTML.  Modern web frameworks make it possible to only retrieve the raw data from the web server and then render the HTML locally on the kiosk.  This saves bandwidth and reduces the processing load on the server.
  • Static reference or lookup data.  Examples include product descriptions, price lists and shipping options
  • Help documentation or large amounts of static text to save bandwidth.

Local caching tips for native kiosk applications

A native kiosk application is a software application which runs directly on your kiosk.

  • Memory cache as much as possible.  Memory access provides considerably faster lookup than reading from the hard disk.
  • Caching of images and videos from the server is critical to performance.  In many cases we’ll retrieve the media from the server and store it to disk for long-term access, then cache it to memory for quicker performance.
  • Cache Visuals or animations which have already been rendered.  This helps reduce the processing load on the kiosk.
  • Update kiosk caches on a configurable staggered interval.  This allows the all of the kiosks to stay current without bombarding the server for updates at the same moment and potentially overwhelming the server.

Local caching tips for kiosk web applications

A kiosk web application is a website which typically resides on a central web server and is accessed via the kiosks web browser.

  • Cache the biggest bandwidth hogs.  Images and videos fall into this category so these should also be cached on the kiosk.
  • Update your cache in real-time with WebSocketsThis HTML5 technology makes it possible for the server to reach to your kiosks web browser and update it’s cache in real-time.
  • Utilize web frameworks which aid in client-side storage.  When developing your kiosk as a web application there are frameworks available like jQuery, AngularJS, etc… which aid in client-side storage in a manner which appears transparent to the developer.

Conclusion

By making use of your kiosks local storage you can increase performance at your kiosks, reduce the processing load on your server and lower your bandwidth requirements.  Persistent local storage is an area where native applications have traditionally had the advantage over web applications.  Native applications are able to take advantage of the registry and local file system for storage, where web applications have been relegated to using cookies for persistent storage which are limited to about 4K in capacity.  In the next article we’ll cover a couple cool local storage options which allow web applications to persistently store data inside your kiosks web browser.

Also, if you’re debating between developing your kiosk application as a native Windows application vs. a web application you’ll want to check out these helpful articles:

Subscribe to our blog updates today to keep up to date on our latest content.

Be Sociable, Share!
Andrew Savala
Follow me

Andrew Savala

Andrew Savala is the CEO of RedSwimmer Inc., creators of the kiosk lockdown software KioskSimple. Andrew has been developing kiosk software since 2007, with an emphasis on self-service retail payment applications.
Andrew Savala
Follow me

Author: Andrew Savala

Andrew Savala is the CEO of RedSwimmer Inc., creators of the kiosk lockdown software KioskSimple. Andrew has been developing kiosk software since 2007, with an emphasis on self-service retail payment applications.