|By Roy Crisman||
|July 20, 2004 12:00 AM EDT||
Kiosk systems provide a unique set of development conditions and challenges. Whereas most multimedia development produces a software application, a kiosk is a collection of physical, hardware, software, and support systems. This article attempts to look at the entire kiosk project, in hopes that you will have control over most of it.
Design the Process
You already know to do your information architecture (IA), user interface (UI), and usability design for software before the visual layout and software development. You may even have the time, budget, and foresight to do usability testing focused on your target user base with wire frames on paper or with quick software mockups before starting on graphics and code. But for a kiosk, the product is more than an executable file; it is the entire system and process. Besides creating a simple and intuitive UI, you want to simplify the installation, deployment, and support of your kiosk.
Run the entire process through an IA/UI/usability design phase. Create end-to-end use cases; remember to include service and support personnel as users as well as the end user. Consider every aspect you are responsible for or interact with. Don't forget:
- Computer hardware
- The operating system (OS) and third-party software
- Documentation and training manuals
- Online portions
- Administration and configuration components
- UL-type consumer safety testing and certification
- Contracts with third-party vendors
- Support systems
Your initial sketches, charts, and use cases don't have to be incredibly detailed. It is better to realize that these "work products" are just as important to plan, document, and have in source control as the code. Continue to add to them and assign responsibility for the sections as the project grows.
We Control the Hardware
Choose Your Platform
Look at the entire scope of the project to determine which platform(s) you are going to focus on and develop on. It may be helpful to develop for full cross-platform compatibility even if the in-kiosk machine specification is for only one. A cross platform-compliant program can quickly turn into a demo CD-ROM or be viewed by that one client who uses "the other platform." You also want to try to keep your options as open as possible to limit your risk to hardware going out of production. There are several limiting factors on your hardware selection: certain required hardware components, components without drivers or features for a particular OS, sponsorship arrangements with hardware providers, and required software components such as an ActiveX controller for a digital camera.
Use industrial hardware components whenever possible for parts that the end user interacts with. Or, use cheap consumer devices with plenty of spares and a quick replacement process. Most consumer keyboards, mice, trackballs, and joysticks weren't made to withstand children playing on them and drinks being spilled on them daily. I have seen consumer components with impressive technical specs used - and replaced after a year's worth of sub-par performance.
With keyboards there are several options:
- On-screen with a touch-screen monitor: This works best for a small amount of data. It may be more prone to vandalism and require more frequent cleaning, and have a major impact upon the UI/usability and visual design.
- Custom industrial keyboard: This is a more expensive option and probably requires a third-party vendor, may require a Quality Control/Quality Assurance cycle of its own, and allows you to define exactly which keys are available to the user.
- Standard keyboard (industrial or consumer): This keyboard already exists, is less expensive and more thoroughly tested than a custom one, and will require some work with the OS to lock out certain keys and key combinations to protect your system.
Just as you may separate generic code and graphics from specific, it can be helpful to keep user-generated data separate from the OS and application. When the OS hard drive becomes physically damaged, you won't lose any of the previous data. You may even separate the OS from the application.
And We Control the Software
The basic kiosk is just an application program (the Show) running in a box. It probably has an "attract loop" that runs between user sessions, and a time-out mechanism that detects when someone has walked off and returns the application to the attract loop.
The Show (and other kiosk applications) should create at least a couple of levels of logs. A user-interaction log will record the path the user takes through the application in order to data mine for information about how the kiosk is used. Each component may also have its own process or debug log to record the progress through the code, the beginning and finishing of functions and methods, relevant variables and states in the case of trapped errors, interactions between components on the kiosk, as well as attempts to talk to other machines and network processes. These debug logs are indispensable in solving problems if the kiosk does lock up, crash, or error, or even in knowing whether the problem is the code module, the data, the network, or a change to another component having side effects. All log files should be written locally in case off-kiosk communication isn't working and may also be remotely accessed or uploaded to a central location. The data may also be transmitted to a server as it is generated so you can track exactly where a user is, or as part of some multi-user system.
Logging data can be very important for understanding the long-term usage of your kiosks. It also may be important to have archived for historical data: I have parsed through debug logs to discover that the 1.3 release was actually more stable than the 1.2 release - despite the client's convictions to the contrary. Version 1.3 was receiving refocused attention due to the upgrade, showing the weakness of relying on anecdotal evidence of kiosk performance.
The Show and kiosk components have a variety of ways to transmit data depending upon your situation: it can be sent immediately via a direct connection, sent as tasks are completed (at the end of a user session), or queued up in batches to be sent only late at night.
Use audio sparingly and wisely. Audio should work with the entire kiosk, not be something someone just throws in at the end. If you do have audio, consider what can be done to make it more tolerable to any people who work around your kiosk installation. There can be quite a lot of intentional damage to your kiosk installation if it aggravates the people who have to work around it. Even during development, it may not be long before someone who sits near the QA machine asks someone to turn off the sound. (A cheap pair of headphones left plugged into each machine may help ensure office tranquility and allow people to hear the audio when they need to.) Attract loop audio can be especially annoying. Adding randomness and variability to the attract loop audio can greatly increase the experience for people exposed to the kiosk for long periods of time.
Herd animals use deep bass "lowing" sounds because these can travel over greater distances and are hard for predators to pinpoint the location of. Unless you are creating a kiosk about cows, dinosaurs, or the science of sound waves, you should avoid bass, especially when you have a group of kiosks together. This also means you can save money by not buying a subwoofer for the kiosk sound system.
One way to reduce the risk of the effect of downtime due to computer errors is a software or hardware "watchdog" component that reboots the machine if the show quits giving it a signal on a regular interval. A hardware version is more reliable than a software solution because the machine may lock up beyond the ability of the software to restart the system. The watchdog doesn't solve any problems with the kiosk crashing, and any user interacting with the kiosk when it crashes will still have a bad experience; however, if the kiosk is automatically back up and running shortly, it may still give many users a good experience. A kiosk that has crashed or locked up (possibly with sensitive user information left on screen) and sits for hours or days can give a lot of potential users a bad experience.
The kiosk may also require access to configuration settings, utility functions, and the standard OS. It may be helpful to be able to view logs, turn "restricted keys" on the keyboard back on, or to re-enable the cursor on a touch-screen kiosk for development and testing with a mouse. These configuration components and utilities may also be useful as parts of the Console.
The basic idea of the Console is to be able to control any kiosk from anywhere. Technically proficient on-site support is expensive; design and develop as if you will never be able to have a live human configure or support it again. If programmed well, a configuration application may work on kiosk, on a local console machine, and as a remote console, possibly through a Web interface. By making these features usable anywhere, you can change settings or fix problems from around the world or right in front of a suspect kiosk with a wireless device, with the same interface.
The console should be able to make configuration changes to the kiosks, either to a specific kiosk, or broadcast changes to groups of them. It may be useful to be able to control a kiosk by sending it a message that simulates a button push, allowing you to remotely "drive" the kiosk through a workflow.
So, How Are the Kiosks Doing?
One of the most useful features for your remote console is a "heartbeat monitor." (see Image I). The Show can send a "heartbeat" at a regular interval to a remote server, and the heartbeat monitor allows you to view that information. The heartbeat contains a minimal amount of information: kiosk ID, time and date (if the kiosk is scheduled, otherwise skip it and just use the server's time), and maybe what state the kiosk is in. Some useful states are "StartUp" when the machine reboots, "Error" if an error has been trapped and the kiosk is in an error state, "OK" when the kiosk is running fine, or any other modes or states the kiosk has, such as a "Night" or "Closed" mode, or periods of inactivity. The heartbeat monitor then allows to you see what is going on with your kiosks. The minimal heartbeat monitor may just display a green light next to a kiosk name that is okay, a red light next to one that isn't. Without this, you don't have an answer to the question, "How are the kiosks doing?" You can also display more information such as state, timestamps for last error, last restart, last OK ping, etc. With this information, you may end up alerting support staff to things such as the network being down or kiosks needing rebooting, or that maybe something else is wrong because, for example, no has used Kiosk 12 all day.
The heartbeat monitor can also come in handy when you're running QA tests. Your team can monitor the 10 machines across the hall in the QA lab all day instead of walking back and forth only a couple of times a day.
The holy grail of modern kiosk development is remote updating. If you never have to physically intervene with a kiosk in order to change the underlying software, you can greatly decrease the cost of bug fixes, content changes, upgrades, and updates. The console should be able to schedule remote updates and view versioning information for all the kiosks.
The console application may also be able to create and display other kiosk information, including data-mining information. Any information that can be used to chart user interactions, display usage statistics, orders, purchases, media usage, kiosk uptime or downtime, revenue, etc. Image II shows the console application main screen; Image III shows the console "settings" screen.
The Operating System and Supporting Applications
The creation process of the base OS and the installation of any drivers or supporting application programs is just as important to the success of your kiosk as the kiosk show application. Any third-party software required for your kiosk to run should be handled here. This process should be well documented, controlled, and versioned. Small things like the order of installing drivers may be important. Don't upgrade any component without realizing the inherent risk that change can pose. Make changes one at a time with testing, just as you would test major software changes. The more open-ended you can build this process, the better. Work to have a single OS recovery package that will adapt and work for variant hardware.
Quality Assurance, Too
Develop on Your Target Platform and Environment
The more restricted the target hardware/OS/supporting application environment is the more important this is. I know...I've got a snazzy laptop and I don't like the "other" platform either. But it takes only a couple of seconds to test a feature or make a screenshot to illustrate a problem on the target platform. And if I can't control that camera with my preferred system or I can't interface with the database because we don't have a network, the development process will take much longer.
Visual designers should also inspect their artwork on the target hardware displays. Graphics look a lot different in a dark cubicle on a perfectly tweaked 21" flat-screen monitor than they may on an out-of-the-box touch-screen monitor in a brightly lit room. LCD monitors may have problems displaying high-contrast images. Find out that the black, white, and red interface looks like with badly compressed JPG graphics on the kiosk's LCD screen before the client has signed off on the design and all the hardware has been purchased.
Test on Your Target Platform
Independent of your development system, you should have a target platform with controlled and documented hardware, OS, and supporting applications.
Test for the Long Term
Most multimedia application programs are run for only a relatively short amount of time in one session and can be recovered by the user if necessary. But tiny memory leaks can add up over 12 or 72 hours, and may be caused by your application, faulty supporting applications, or even a specific combination of motherboard, audio card, video card, and drivers.
Have at least a basic test constantly running on the target platform. I've been known to utilize "RECORDER.EXE" from Windows 3.1 to record primitive user interactions and then loop them for a week. There are much more sophisticated testing programs available. Target a full week of uptime, but build in a daily reboot if your product allows.
You'll also want to have a real QA process. Because you have a narrow target platform, QA can spend their time on the software functionality, rather than testing for compatibility issues. QA should evaluate and verify the entire process, not just the program, whenever possible, from building the OS, adding supporting applications, installing the application, configuring and deploying, and hardware component replacement.
While you may not be actively involved in supporting the kiosk over the full life of its deployment, there are many things that you can do to aid the support of the system.
Keep a backup of the base OS and of the OS plus the kiosk application at hand at any deployment. This can be used to wipe a troublesome machine clean or to format a replacement machine.
Ralph Waldo Emerson said, "A foolish consistency is the hobgoblin of little minds," but a reasonable consistency is necessary for kiosks. Imagine trying to fix an upside-down kiosk monitor in a remote location and discovering that two of the screws in the bracket holding the monitor require a star screwdriver bit. Work for consistency. Watch for computer hardware consistency - chipsets change in production runs and you never realize the variability in what appears to be the same video card until something doesn't work. Demand consistency from any third-party providers.
Take pictures of the hardware when it is set up correctly, as an illustration. Take pictures of the finished and deployed kiosks for reference later (see Image IV). It may take a long time to figure out remotely that the problem with the kiosk is related to which USB port the digital camera is plugged into.
Keep an adequate supply of replacement hardware on hand at the deployment site. Hardware seems to fail in pairs, but it may be that hardware failures are only noticed and reported by local staff after multiple units have failed. If you have a bug reporting console component that can be used on-kiosk or on a console machine, you will receive more accurate and helpful data than someone trying to decipher a handwritten log a week later. Remember that local personnel are already fully employed; don't count on adding any task to someone's job, even if it will "just take a minute." The security guard doesn't want the added task of shutting down all your machines every night any more than you do. Make sure any contracts and agreements define who is responsible for and who pays for upkeep, cleaning, checking on the physical system (blown monitors) and theft/vandalism. How hard or easy it is to support your kiosk systems is going to depend upon how well you are able to document, control changes, and simplify systems during development.
Kiosk systems can be rewarding to develop, allowing for far greater control over the system and the ability to push the limits of multimedia development. A kiosk is so much more than the interface the user interacts with, and thus requires more planning and development than typical multimedia software.
DevOps Summit 2015 New York, co-located with the 16th International Cloud Expo - to be held June 9-11, 2015, at the Javits Center in New York City, NY - announces that it is now accepting Keynote Proposals. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that produce software that is obsolete at launch. DevOps may be disruptive, but it is essential.
May. 6, 2015 01:45 AM EDT Reads: 4,480
SYS-CON Events announced today that Gridstore™, the leader in hyper-converged infrastructure purpose-built to optimize Microsoft workloads, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Gridstore™ is the leader in hyper-converged infrastructure purpose-built for Microsoft workloads and designed to accelerate applications in virtualized environments. Gridstore’s hyper-converged infrastructure is the industry’s first all flash version of HyperConverged Appliances that include both compute and storag...
May. 6, 2015 01:15 AM EDT Reads: 5,333
SYS-CON Events announced today that AIC, a leading provider of OEM/ODM server and storage solutions, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. AIC is a leading provider of both standard OTS, off-the-shelf, and OEM/ODM server and storage solutions. With expert in-house design capabilities, validation, manufacturing and production, AIC's broad selection of products are highly flexible and are configurable to any form factor or custom configuration. AIC leads the industry with nearly 20 years of ...
May. 6, 2015 01:15 AM EDT Reads: 5,892
We heard for many years how developing nations would be able to develop mobile-phone networks quickly, perhaps even leapfrog developed nations, because their lack of traditional, wired networks would not inhibit them from deploying the new technology. Now there is talk of history repeating itself with the Industrial Internet--a key aspect of the emerging Internet of Things. For example, Guo Ping, Deputy Chairman of the Board of Chinese electronics giant Huawei, said in a recent report from the World Economic Forum, "The Industrial Internet will afford emerging markets a unique opportunity ...
May. 5, 2015 11:00 PM EDT Reads: 745
Avnet, Inc. has announced that it ranked No. 4 on the InformationWeek Elite 100 – a list of the top business technology innovators in the U.S. Avnet was recognized for the development of an innovative cloud-based training system that serves as the foundation for Avnet Academy – the company’s education and training organization focused on technical training around top IT vendor technologies. The development of this system allowed Avnet to quickly expand its IT-related training capabilities around the world, while creating a new service that Avnet and its IT solution providers can offer to their...
May. 5, 2015 04:15 PM EDT Reads: 944
Ayla Networks, whose agile Internet of Things (IoT) platform makes it easy for manufacturers to deliver secure, connected products, today announced it has been included in the list of "Cool Vendors" in the Internet of Things report by Gartner, Inc. “Gartner knows how important it is that manufacturers of all kinds of products have the right IoT solution to help turn their products into connected ‘things,’” said David Friedman, CEO and co-founder of Ayla Networks. “The market for Ayla’s IoT platform has accelerated dramatically this year compared to last year. Today’s largest manufacturers ar...
May. 5, 2015 02:00 PM EDT Reads: 522
SYS-CON Events announced today that B2Cloud, a provider of enterprise resource planning software, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. B2cloud develops the software you need. They have the ideal tools to help you work with your clients. B2Cloud’s main solutions include AGIS – ERP, CLOHC, AGIS – Invoice, and IZUM
May. 5, 2015 12:00 PM EDT Reads: 4,492
The Internet of Things Maturity Model (IoTMM) is a qualitative method to gauge the growth and increasing impact of IoT capabilities in an IT environment from both a business and technology perspective. In his session at @ThingsExpo, Tony Shan will first scan the IoT landscape and investigate the major challenges and barriers. The key areas of consideration are identified to get started with IoT journey. He will then pinpoint the need of a tool for effective IoT adoption and implementation, which leads to IoTMM in which five maturity levels are defined: Advanced, Dynamic, Optimized, Primitive,...
May. 5, 2015 11:45 AM EDT Reads: 1,174
There is no doubt that Big Data is here and getting bigger every day. Building a Big Data infrastructure today is no easy task. There are an enormous number of choices for database engines and technologies. To make things even more challenging, requirements are getting more sophisticated, and the standard paradigm of supporting historical analytics queries is often just one facet of what is needed. As Big Data growth continues, organizations are demanding real-time access to data, allowing immediate and actionable interpretation of events as they happen. Another aspect concerns how to deliver ...
May. 5, 2015 11:00 AM EDT Reads: 5,817
SYS-CON Events announced today that MangoApps will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY., and the 17th International Cloud Expo®, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. MangoApps provides private all-in-one social intranets allowing workers to securely collaborate from anywhere in the world and from any device. Social, mobile, and easy to use. MangoApps has been named a "Market Leader" by Ovum Research and a "Cool Vendor" by Gartner...
May. 5, 2015 11:00 AM EDT Reads: 4,409
The world's leading Cloud event, Cloud Expo has launched Microservices Journal on the SYS-CON.com portal, featuring over 19,000 original articles, news stories, features, and blog entries. DevOps Journal is focused on this critical enterprise IT topic in the world of cloud computing. Microservices Journal offers top articles, news stories, and blog posts from the world's well-known experts and guarantees better exposure for its authors than any other publication. Follow new article posts on Twitter at @MicroservicesE
May. 5, 2015 11:00 AM EDT Reads: 2,950
Containers and microservices have become topics of intense interest throughout the cloud developer and enterprise IT communities. Accordingly, attendees at the upcoming 16th Cloud Expo at the Javits Center in New York June 9-11 will find fresh new content in a new track called PaaS | Containers & Microservices Containers are not being considered for the first time by the cloud community, but a current era of re-consideration has pushed them to the top of the cloud agenda. With the launch of Docker's initial release in March of 2013, interest was revved up several notches. Then late last...
May. 5, 2015 11:00 AM EDT Reads: 3,937
So I guess we’ve officially entered a new era of lean and mean. I say this with the announcement of Ubuntu Snappy Core, “designed for lightweight cloud container hosts running Docker and for smart devices,” according to Canonical. “Snappy Ubuntu Core is the smallest Ubuntu available, designed for security and efficiency in devices or on the cloud.” This first version of Snappy Ubuntu Core features secure app containment and Docker 1.6 (1.5 in main release), is available on public clouds, and for ARM and x86 devices on several IoT boards. It’s a Trend! This announcement comes just as...
May. 5, 2015 10:45 AM EDT Reads: 2,259
WebRTC defines no default signaling protocol, causing fragmentation between WebRTC silos. SIP and XMPP provide possibilities, but come with considerable complexity and are not designed for use in a web environment. In his session at @ThingsExpo, Matthew Hodgson, technical co-founder of the Matrix.org, discussed how Matrix is a new non-profit Open Source Project that defines both a new HTTP-based standard for VoIP & IM signaling and provides reference implementations.
May. 5, 2015 10:45 AM EDT Reads: 4,424
The security devil is always in the details of the attack: the ones you've endured, the ones you prepare yourself to fend off, and the ones that, you fear, will catch you completely unaware and defenseless. The Internet of Things (IoT) is nothing if not an endless proliferation of details. It's the vision of a world in which continuous Internet connectivity and addressability is embedded into a growing range of human artifacts, into the natural world, and even into our smartphones, appliances, and physical persons. In the IoT vision, every new "thing" - sensor, actuator, data source, data con...
May. 5, 2015 10:30 AM EDT Reads: 5,445
The WebRTC Summit 2015 New York, to be held June 9-11, 2015, at the Javits Center in New York, NY, announces that its Call for Papers is open. Topics include all aspects of improving IT delivery by eliminating waste through automated business models leveraging cloud technologies. WebRTC Summit is co-located with 16th International Cloud Expo, @ThingsExpo, Big Data Expo, and DevOps Summit.
May. 5, 2015 10:15 AM EDT Reads: 3,188
The Internet of Things is not new. Historically, smart businesses have used its basic concept of leveraging data to drive better decision making and have capitalized on those insights to realize additional revenue opportunities. So, what has changed to make the Internet of Things one of the hottest topics in tech? In his session at @ThingsExpo, Chris Gray, Director, Embedded and Internet of Things, discussed the underlying factors that are driving the economics of intelligent systems. Discover how hardware commoditization, the ubiquitous nature of connectivity, and the emergence of Big Data a...
May. 5, 2015 10:00 AM EDT Reads: 5,605
SYS-CON Events announced today the IoT Bootcamp – Jumpstart Your IoT Strategy, being held June 9–10, 2015, in conjunction with 16th Cloud Expo and Internet of @ThingsExpo at the Javits Center in New York City. This is your chance to jumpstart your IoT strategy. Combined with real-world scenarios and use cases, the IoT Bootcamp is not just based on presentations but includes hands-on demos and walkthroughs. We will introduce you to a variety of Do-It-Yourself IoT platforms including Arduino, Raspberry Pi, BeagleBone, Spark and Intel Edison. You will also get an overview of cloud technologies s...
May. 5, 2015 10:00 AM EDT Reads: 3,963
SYS-CON Media announced today that @WebRTCSummit Blog, the largest WebRTC resource in the world, has been launched. @WebRTCSummit Blog offers top articles, news stories, and blog posts from the world's well-known experts and guarantees better exposure for its authors than any other publication. @WebRTCSummit Blog can be bookmarked ▸ Here @WebRTCSummit conference site can be bookmarked ▸ Here
May. 5, 2015 09:45 AM EDT Reads: 3,463
Scott Jenson leads a project called The Physical Web within the Chrome team at Google. Project members are working to take the scalability and openness of the web and use it to talk to the exponentially exploding range of smart devices. Nearly every company today working on the IoT comes up with the same basic solution: use my server and you'll be fine. But if we really believe there will be trillions of these devices, that just can't scale. We need a system that is open a scalable and by using the URL as a basic building block, we open this up and get the same resilience that the web enjoys.
May. 5, 2015 09:45 AM EDT Reads: 5,972