Username/Email:  Password: 
TwitterFacebookFlickrRSS

Squirrel POS

Squirrel Systems of Canada, Ltd. is using an in-house developed Linux distribution for its new generation POS.

By the time Squirrel started developing the new generation of its well-known POS, the then current version was quite successful. It is still selling very well today due to continuous upgrades and support. But it was a 16-bit program with a DOS-like, pseudo-graphics GUI, so the time came to move to modern 32-bit features and truly graphical environments.

Since the hospitality industry is customer-driven to a high degree, we had to address our customers' criteria for the new system. The criteria included a Windows NT-based SQL backend, fault tolerance, high performance (6,000+ transactions per launch), ability for the server to be located from terminals remotely, scalability, flexibility, open-system architecture (server PC could be used for other tasks), attractive GUI that is easy to learn and use, low-cost and long-lasting maintenance.

Figure 1. Squirrel POS Touchscreen

As you can see from the above list, the server's OS was quite defined. Picking a high-performance Microsoft SQL Server as the back end's database was also an easy choice, unlike the terminal's environment.

Why Linux?

Traditionally, Squirrel POS ran on bare terminals; no OS of any sort was used. Although that worked well at the time, it didn't seem flexible enough to satisfy the new requirements. On the other hand, we realized that full-blown OSes like MS Windows, Solaris, etc., with their inflexibility and enormous thirst for resources, are not really suitable for the specialized hardware of the POS terminal. So our logical choice was to look at real-time operating systems (RTOSes), not because of their real-time capabilities but because of their modest resource requirements and high degree of customization. After a number of commercial OSes and available JVMs were evaluated, it became apparent that none of them satisfied all of our requirements. That's when Linux got its chance. Much to our surprise, the free OS proved to be our best choice. It is stable and reliable, with broad hardware support and moderate resource requirements. It also has excellent development tools, a knowledgeable community that is ready to answer questions, and most of all, it has flexibility.

Why Java?

Our choice of Java as the development language for the embedded targets seems pretty odd, considering its widely known shortcomings (specifically, thirst for resources, low performance and lack of supported platforms). But it is also a very attractive language for development. Due to its ``write once, run anywhere'' feature, development can start well before the actual terminal OS is chosen. Its rich, simple and well-thought-out API set allows us to write complicated GUIs fast and easily. Also, as you might know, long-lasting efforts in JVM development finally started to bear fruit; a number of companies recently released virtual machines with performance close to those written in C/C++. All this made us believe that Java's advantages outweigh its disadvantages.

Hardware

Although Squirrel's terminal isn't exactly an embedded computer as we know it, it is pretty close. Its x86 motherboard is combined with a touchscreen LCD panel in one case. The terminal has no keyboard, hard drive, floppy drive or mouse. Some POS-specific peripherals include a badge reader, magnetic card reader, serial printer, customer display and cash drawer. For networking it uses an onboard Ethernet interface.

Software

Squirrel POS architecture is a typical three-tier system (see Figure 2). The Squirrel client (the front end with which the user interacts--see Figure 2) runs on a terminal. It's written in Java and communicates with the Squirrel server via TCP/IP messages. The terminal is connected to the Server PC via Ethernet cable. Squirrel uses Microsoft's SQL Server as a database and Microsoft Windows NT as the server PC's OS.

Figure 2. Squirrel Software Diagram

Squirrel Linux

Due to the significant costs of nonvolatile memory (Compact Flash, hard drives, Disk-On-Chip) at the time this project was conceived, the terminal had no storage devices, so almost all of the terminal's software, including Linux, X and POS, had to be loaded remotely from the server. The only piece left on the terminal was the boot PROM--network boot loader.

Unlike traditional diskless (or X) terminals that use UNIX servers and NFS to boot, the Squirrel terminal boots off the NT machine. It uses SMB to access its files located on NT's share. None of the off-the-shelf Linux distributions at the time allowed easy implementation of this booting scheme, so we developed our own embedded Linux distribution, Squirrel Linux. Although it was designed to run a Java application, it can run any X client.

I also found this distribution more convenient for Ethernet setup of floppyless POSes, the hard disk of which, for some reason, cannot be physically accessed (sealed case under warranty, etc.).

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Squirrel Terminals

Jay's picture

Dear Sir
We recently bought a small hotel. We have a Squrrel POS for our restaurant. Since this is dos based OS, it givs us enough trouble every time and our service is very much disturbed. We can't afford to buy anything new now.

Is there a way I can get a window base operating system and I try with my Squirrel POS terminal. Otherwise we have no solution but to throw this hardware. The previous owner did not pass over any record who installed and from where he got that.

If you can help us, I will really appreciate.

Thank you

Jaysukh Rudani