Wednesday, August 6, 2003
It's Time for Lockdown: SPB Kiosk Engine 2.0 Reviewed
Posted by Peter Foot in "SOFTWARE" @ 09:30 AM
If you create Pocket PC applications to deploy in the field you will probably be aware of the problems which can arise from giving end-users free reign on a system provided for a specific task. What is required is a method to lock down the device to your specific business applications so users don’t use your expensive devices for playing MP3s and Solitaire. SPB Software House has produced SPB Kiosk Engine 2.0 which allows you to do just that. Read on to find out more about this interesting tool.
If you are looking for a way to lock down a Pocket PC into Kiosk mode so that users cannot bypass your software then SPB Software has a very simple way to deploy a Wizard-based approach. As well as working with any existing application there is also Kiosk Explorer – a version specifically optimised to create a Pocket Internet Explorer Kiosk, and Kiosk Terminal – a Terminal Services Kiosk.
What is Kiosk mode
A Kiosk application is one which becomes the only accessible application on the device. Kiosk Engine achieves this by removing the Start Button, the smart minimise "X" button and disables the hardware shortcut keys. When the device is soft-reset the Kiosk application starts up again effectively blocking all access to other software (without resorting to a hard-reset which would return the device to its factory fresh condition).
A Simple Wizard
SPB Kiosk Engine is entirely controlled by a Wizard on your development machine. This allows you to define where your application is launched from. SPB Kiosk 2.0 supports Native, eMbedded Visual Basic and .NETCF applications. The system uses a four digit combination, and allows you to use the standard four hardware buttons on the front of the Pocket PC to enter it at any stage while the program is running in Kiosk mode. On devices such as the XDA where there are only two application hardware buttons on the front, you can access a login screen by soft-resetting the device.
Figure 1: Kiosk Engine Builder Wizard
Up and Running
After installing the CAB package the chosen application was automatically run, however the Start Menu was not hidden (but I could not click on it), I found that a soft-reset was required for the application to start up correctly in Kiosk mode.
Staying in Control
There are two ways to exit from the walled-garden that is Kiosk mode, either issue the four digit unlock code which you specified with the wizard (using the hardware application buttons), or by soft resetting the device which takes you to an administration menu. This gives you 10 seconds to take action before executing your Kiosk application, here you must enter the password which, if successful, will return the user to the Today screen with full access to the system.
Making Your Application Work In Kiosk Mode
You can have some success by simply setting the path to your existing application and building the install cabinet file. However because of changes in the UI there are a few alterations you may need to make in your UI.
Kiosk Engine allows you to allow access to up to five other applications. Currently these are specified in a configuration script rather than the main wizard. SPB provides instructions to do this on their Web site, and a developer familiar with INF file editing should have no problems, however it would be nice to see these advanced options available through the Wizard interface.
Kiosk Explorer
If your application is purely Web-based you can lock down the device to provide just a customised version of Pocket Internet Explorer. Like the Kiosk Engine discussed previously, Kiosk Explorer is configured using a simple Wizard on the desktop PC. This defines a Lock and Unlock shortcut key combination and a custom Homepage while in Kiosk mode. After running the Wizard a set of CAB files are generated which can be loaded onto the device to install Kiosk Explorer and go straight into Kiosk mode.
Figure 3: Kiosk Explorer showing a certain Pocket PC Web site...
You can even disable the Command Bar at the bottom of the screen and SIP (Soft-Input Panel) to provide a limited but full-screen experience. Or you may choose to display only certain menu items, for example to remove the View menu as hown in Figure 3 above.
Figure 4: Kiosk Explorer utilizing the entire screen
If you decide to take this full-screen approach there is a key issue to be aware of in your Web application - navigation. If you have created a kiosk application which has no address bar or command bar you have no method to navigate away from the current page other than the links present on the page. This is good to create a walled-garden Internet or Intranet application but you need to test the usability of your Web site to ensure you have not relied on the ability to tap the Back button, or use a favourite to reach a certain part of the Web application.
Kiosk Terminal
You are probably noticing a pattern by this stage. The last item in the suite is Kiosk Terminal. This is used to create a custom Terminal Services Kiosk experience. You can even hardcode the connection username and password settings to make things more automated for the user. As with the other Kiosk products you can disable the Command Bar and even the scrollbars. However, this may be impractical if you need to scroll around a larger screen at the server.
Disclaimer - I do not have a Terminal Server with which to further test this feature.
Gotchas
Generally I had no major problems running the Kiosk Engine products. When trying to use an existing application it became clear that some redesign was required for the navigation to work and the screen layout to look good in Kiosk mode. There were a couple of Gotchas:
Specifications
This program will work on any Pocket PC device and takes up a mere 41 KB of RAM.
Conclusions
SPB Kiosk proved to be a very valuable tool which was very easy to implement, although I needed to make a few alterations to my software to get the best experience with it. By locking down the device to a specific line of business application you will maintain greater control over your devices and reduce the cost of supporting your users.
If you are looking for a way to lock down a Pocket PC into Kiosk mode so that users cannot bypass your software then SPB Software has a very simple way to deploy a Wizard-based approach. As well as working with any existing application there is also Kiosk Explorer – a version specifically optimised to create a Pocket Internet Explorer Kiosk, and Kiosk Terminal – a Terminal Services Kiosk.
What is Kiosk mode
A Kiosk application is one which becomes the only accessible application on the device. Kiosk Engine achieves this by removing the Start Button, the smart minimise "X" button and disables the hardware shortcut keys. When the device is soft-reset the Kiosk application starts up again effectively blocking all access to other software (without resorting to a hard-reset which would return the device to its factory fresh condition).
A Simple Wizard
SPB Kiosk Engine is entirely controlled by a Wizard on your development machine. This allows you to define where your application is launched from. SPB Kiosk 2.0 supports Native, eMbedded Visual Basic and .NETCF applications. The system uses a four digit combination, and allows you to use the standard four hardware buttons on the front of the Pocket PC to enter it at any stage while the program is running in Kiosk mode. On devices such as the XDA where there are only two application hardware buttons on the front, you can access a login screen by soft-resetting the device.
Figure 1: Kiosk Engine Builder Wizard
Up and Running
After installing the CAB package the chosen application was automatically run, however the Start Menu was not hidden (but I could not click on it), I found that a soft-reset was required for the application to start up correctly in Kiosk mode.
Staying in Control
There are two ways to exit from the walled-garden that is Kiosk mode, either issue the four digit unlock code which you specified with the wizard (using the hardware application buttons), or by soft resetting the device which takes you to an administration menu. This gives you 10 seconds to take action before executing your Kiosk application, here you must enter the password which, if successful, will return the user to the Today screen with full access to the system.
Making Your Application Work In Kiosk Mode
You can have some success by simply setting the path to your existing application and building the install cabinet file. However because of changes in the UI there are a few alterations you may need to make in your UI.
- As you loose the Start Menu if you previously used the Logo defined method of providing online help Start > Help you will need to find an alternative location. This might either be in the form of an on-screen icon or button or a Menu or Toolbar option. Note that if you wish to remove the Command Bar you cannot obviously use Menu or Toolbar items.
- If your dialog features an OK button then the Titlebar will be shown. However while the Notification icons and the Clock are shown the Kiosk engine will block these items from being tapped to avoid creating a way out of your application. If you have a multi-form application, which is most likely, you will need to provide alternative methods of navigating between forms.
Figure 2: Kiosk Engine showing form with an OK button - Without the Titlebar the size of the screen grows by 24 pixels. Therefore if you had previously hard-coded a list, for example, to the full height of the form area, there will now be a 24 pixel gap below the list and the Command Bar. You can set this to the height of the form at runtime to adjust to whatever screen space is available.
- If you do remove the Command Bar entirely you will have to ensure that all of your navigation and options are accessible within the form client area, this may be in the form of buttons, context menus, etc. Also be aware that without the Command Bar the user has no method of activating the SIP if text input is required. I found that some applications would not work at all with the Command Bar disabled and considering the value of a menu and toolbar it is probably worth making use of the bar in most scenarios.
Kiosk Engine allows you to allow access to up to five other applications. Currently these are specified in a configuration script rather than the main wizard. SPB provides instructions to do this on their Web site, and a developer familiar with INF file editing should have no problems, however it would be nice to see these advanced options available through the Wizard interface.
Kiosk Explorer
If your application is purely Web-based you can lock down the device to provide just a customised version of Pocket Internet Explorer. Like the Kiosk Engine discussed previously, Kiosk Explorer is configured using a simple Wizard on the desktop PC. This defines a Lock and Unlock shortcut key combination and a custom Homepage while in Kiosk mode. After running the Wizard a set of CAB files are generated which can be loaded onto the device to install Kiosk Explorer and go straight into Kiosk mode.
Figure 3: Kiosk Explorer showing a certain Pocket PC Web site...
You can even disable the Command Bar at the bottom of the screen and SIP (Soft-Input Panel) to provide a limited but full-screen experience. Or you may choose to display only certain menu items, for example to remove the View menu as hown in Figure 3 above.
Figure 4: Kiosk Explorer utilizing the entire screen
If you decide to take this full-screen approach there is a key issue to be aware of in your Web application - navigation. If you have created a kiosk application which has no address bar or command bar you have no method to navigate away from the current page other than the links present on the page. This is good to create a walled-garden Internet or Intranet application but you need to test the usability of your Web site to ensure you have not relied on the ability to tap the Back button, or use a favourite to reach a certain part of the Web application.
Kiosk Terminal
You are probably noticing a pattern by this stage. The last item in the suite is Kiosk Terminal. This is used to create a custom Terminal Services Kiosk experience. You can even hardcode the connection username and password settings to make things more automated for the user. As with the other Kiosk products you can disable the Command Bar and even the scrollbars. However, this may be impractical if you need to scroll around a larger screen at the server.
Disclaimer - I do not have a Terminal Server with which to further test this feature.
Gotchas
Generally I had no major problems running the Kiosk Engine products. When trying to use an existing application it became clear that some redesign was required for the navigation to work and the screen layout to look good in Kiosk mode. There were a couple of Gotchas:
- If you want to allow access to additional applications you have to manually edit the configuration files. It would be nice to see this advanced option incorporated into the main Kiosk Engine wizard.
- There is no Emulator version of the package created by the Wizard - this is not a big deal however because the tool is designed to be used on devices out and about with your workforce so you will need to test the application on the actual devices you intend to use.
- When using Kiosk Explorer I noticed a limitation. If you disable the View menu there is no way to enable or disable the Address Bar. Therefore if the Address Bar was visible prior to installing Kiosk Explorer, it remains visible. It would be useful to have an option within the wizard to show or hide the Address Bar.
- Kiosk Engine 2.0 is available to purchase for $985 USD
- Kiosk Explorer 2.0 which is a Kiosk based around Pocket Internet Explorer is available for $495 USD
- Kiosk Terminal 2.0 - Kiosk based around Terminal Services is available for $495 USD [Affiliate links]
Specifications
This program will work on any Pocket PC device and takes up a mere 41 KB of RAM.
Conclusions
SPB Kiosk proved to be a very valuable tool which was very easy to implement, although I needed to make a few alterations to my software to get the best experience with it. By locking down the device to a specific line of business application you will maintain greater control over your devices and reduce the cost of supporting your users.