On Time, On Point, On Budget!

Insights to kiosk software development

The article sets out a few key moments, which should be considered when developing software for terminals. Under a terminal in this document should be understood payment kiosks, self-service kiosks, internet access kiosks. The User Interface The system users mostly are not very much advanced in contemporary technologies. For over a number of years terminals have been equipped with touch screens. Owing to such screens, people feel at ease and can promptly select necessary items via the screen menu. In other words when developing a system we shall select a touch screen as the input and data display device. For simple systems, a 15-inch screen is quite enough. For a system with a more complex and advanced interface 17-inch displays would be a better choice. Which Technology to Choose for UI There are several options. The most common are Flash and HTML in a browser (browser in the full-screen mode or IE Active X). Flash + Celeron 1.7 GHz are enough for a payment terminal. However, for dynamic games like “one-handed bandit” such technologies are no good. If we use HTML then we have to decide on issues with the backend and its location. A remote server is quite possible but we will need to define communications aspects as for example whether the connection is stable or not. In “Telepay” terminals we use the following approach: a Windows application hosts Macromedia Flash Active X providing for interface functionality on Flash. Moreover, this application contains Mozilla Java Script Engine. The behavior of the payment terminal has been described with a simple script language. There is a mechanism implemented as plug-ins that has been implemented in C++. The plug-ins have been provided for hardware interaction functionality. The complexity of the system is hidden behind the multitude of tiny modules exporting only necessary functions to the managing script. Supposedly such approach allows for changing the behavior of the terminal by people who are not very much familiar with programming (should only have knowledge of JavaScript) which in fact is a sort of a toolkit. Another trick that has been used in “Telepay” terminals is when we have the application go down SEH Exception being intercepted and dumped (for further error analysis), and send a signal to another application in the background. This application is actually not doing anything special but only displays a screen with the “Service is Temporary Unavailable” message. Usability Briefly, any interface should be simple and user-friendly. To develop interfaces it is recommended to get a professional designer engaged with experience in designing UI for kiosks. Long actions when the system just must wait for a reply from the server the user should be displayed with some progress status and it is desirable that is should be animated. The user should be informed in some way at what step the process is and prompt on how many steps are left to go to completion. A technological menu may be required as for example to collect payments from a terminal. Access to the technological menu should not be much trivial otherwise, anyone can lookup how technical personnel does this and afterwards enter the menu and do harm to the system. In “Telepay” terminals the Challenge-Response authorization has been implemented for the technological menu i.e. when the terminal requests for a number there should be a reply calculated on a mobile device (a J2ME application) Independent of any OS at the terminal, everything should be set up in a way to avoid error messages displayed on the screen. While the OS is loading, the user shall not have a chance to interfere with the process via the touch screen. Monitoring and Statistics System A monitoring system is required at virtually any terminal network. The terminal status is being controlled (working or not), quantity of paper in the printing device, amount of money in the cassette, functionality of other devices. In the “Telepay” system there is a proprietary data transmission binary protocol implemented because of the will to limit the traffic since rather expensive GPRS channel has been used. Security Once this is a payment terminal or the terminal that sends data via the net, which is money sensitive (for example a pin-code), then such data should be sent encrypted. Usually SSL is used. The most reliable way would be storing the certificate at separate hardware data storage however; it is possible to store the certificates locally as files or in Windows Certificate Storages. Also, the process of voiding the compromised certificates should be considered. Building Terminals to Access the Internet It is possible to quickly and easily create an internet terminal using the Site Kiosk special software. The deliverable includes a number of templates to set up a unique web site. Payments receipt can be done via bill acceptor or payment cards sold nearby. To build the “MMT” terminal network this product has been selected. All settings have been done via JS and HTML programming. Low-level features have been implemented using Active X in C++. Do you like the article and want us to develop your project? Feel free to contact us here! This entry was posted on Monday, February 25th, 2008 at 8:37 am and is filed under Architecture, kiosk software.