Innovatie met Linux in de supermarkt.

4
34 I In 1999 had supermarktonder- nemer Frans van der Loo een paar ideeën om iets te doen aan ergernis nummer 1 in zijn en andere supermarkten: het wachten bij de kassa. Sinds het ontstaan van de supermarkt was langzamerhand alles zelfbediening geworden, alleen het afrekenen nog niet. Hij is met zijn ideeën eerst bij de grote kassaleveranciers geweest, maar besloot uiteindelijk om zijn visie zelf om te zet- ten in daden: hij zocht een paar goede mensen bij elkaar die samen het bedrijf Scangineers vormden. Met 3 personen ging het bedrijf van start met als doel het ontwikkelen van een zelfscankassa voor supermarkten. De Scanpoint Pro Men had een apparaat voor ogen waarbij mensen hun producten op de band konden leggen, waarna deze door een tunnel getransporteerd werden. In deze tunnel moesten de producten dan volledig worden geïdentificeerd, waarna ze aangeslagen konden worden op de kassa. Om te komen tot automatische identificatie zijn er eerst heel wat proefop- stellingen gemaakt . Dit heeft uiteindelijk geresulteerd in de Scanpoint Pro. Door het gebruik van 18 scanners die van speciaal ontwikkelde firmware werden voorzien en een camera onder de band werd een hoge kans op automa- tische identificatie bereikt. Maar met de stand van de techniek in 2001 bleef een betaalbare oplossing buiten bereik. Ook zorgde het gebruikte besturingssysteem, Windows 95, voor problemen bij de paral- lelle verwerking van grote hoeveelheden data. Uiteindelijk is het een proof-of- concept geworden dat veel belangstelling heeft getrokken op beurzen in Europa en vanuit de retail wereldwijd. Verder dan pilots is het echter nooit gekomen. De Scanpoint Lite In 2001 werd besloten dat het te lang ging duren voordat de Scanpoint Pro gemaakt zou kunnen worden met een acceptabele terugverdientijd voor de win- kelier. De benodigde techniek was nog niet goedkoop genoeg. Nadat men goed had bekeken waar de hoge kosten van de Scanpoint Pro vooral door werden veroor- zaakt, werd besloten om de identificatie van een artikel niet meer automatisch te laten gebeuren, maar in plaats daarvan de klant verantwoordelijk te maken voor de identificatie. In plaats van gebruik te maken van veel streepjescodescanners (die zorgen voor een hoge aanschafprijs) wordt er nu nog maar één gebruikt: de klant moet zelf de streepjescode voor de streepjescodescanner houden, net zoals een caissière dat doet bij een normale kassa. Dit vereenvoudigt de benodigde hardware en de complexiteit van de te ontwikkelen software. Linux Het tot dan toe gebruikte Windows 95 besturingssysteem bleek niet te voldoen aan de gestelde eisen. Daarom is er eerst gekeken welk besturingssysteem het meest geschikt zou zijn voor de ontwik- keling van de Scanpoint Lite. Daarbij is men niet over een nacht ijs gegaan. Zo Zelfscan kassa’s Innovatie met Linux in de supermarkt. Als je je boodschappen doet bij de supermarkten van bijvoorbeeld C1000, Hoogvliet of Vomar, kan het goed zijn dat je zelfscankassa’s van Nederlandse makelij gebruikt hebt. Ook op vakantie in bijvoorbeeld Frankrijk kun je ze tegenkomen bij Casino. Je hebt je misschien wel eens afgevraagd hoe deze zelfscankassa’s ontwikkeld zijn en welk besturingssysteem er op gebruikt wordt. In dit artikel lichten we een tipje van de sluier op. Aschwin Marsman

Transcript of Innovatie met Linux in de supermarkt.

Page 1: Innovatie met Linux in de supermarkt.

34

IIn 1999 had supermarktonder-nemer Frans van der Loo een paar ideeën om iets te doen aan

ergernis nummer 1 in zijn en andere supermarkten: het wachten bij de kassa. Sinds het ontstaan van de supermarkt was langzamerhand alles zelfbediening geworden, alleen het afrekenen nog niet. Hij is met zijn ideeën eerst bij de grote kassaleveranciers geweest, maar besloot uiteindelijk om zijn visie zelf om te zet-ten in daden: hij zocht een paar goede mensen bij elkaar die samen het bedrijf Scangineers vormden. Met 3 personen ging het bedrijf van start met als doel het ontwikkelen van een zelfscankassa voor supermarkten.

De Scanpoint ProMen had een apparaat voor ogen

waarbij mensen hun producten op de band konden leggen, waarna deze door een tunnel getransporteerd werden. In deze tunnel moesten de producten dan volledig worden geïdenti� ceerd, waarna ze aangeslagen konden worden op de

kassa. Om te komen tot automatische identi� catie zijn er eerst heel wat proefop-stellingen gemaakt . Dit heeft uiteindelijk geresulteerd in de Scanpoint Pro.

Door het gebruik van 18 scanners die van speciaal ontwikkelde � rmware werden voorzien en een camera onder de band werd een hoge kans op automa-tische identi� catie bereikt. Maar met de stand van de techniek in 2001 bleef een betaalbare oplossing buiten bereik. Ook zorgde het gebruikte besturingssysteem, Windows 95, voor problemen bij de paral-lelle verwerking van grote hoeveelheden data. Uiteindelijk is het een proof-of-concept geworden dat veel belangstelling heeft getrokken op beurzen in Europa en vanuit de retail wereldwijd. Verder dan pilots is het echter nooit gekomen.

De Scanpoint LiteIn 2001 werd besloten dat het te lang

ging duren voordat de Scanpoint Pro gemaakt zou kunnen worden met een acceptabele terugverdientijd voor de win-kelier. De benodigde techniek was nog

niet goedkoop genoeg. Nadat men goed had bekeken waar de hoge kosten van de Scanpoint Pro vooral door werden veroor-zaakt, werd besloten om de identi� catie van een artikel niet meer automatisch te laten gebeuren, maar in plaats daarvan de klant verantwoordelijk te maken voor de identi� catie. In plaats van gebruik te maken van veel streepjescodescanners (die zorgen voor een hoge aanschafprijs) wordt er nu nog maar één gebruikt: de klant moet zelf de streepjescode voor de streepjescodescanner houden, net zoals een caissière dat doet bij een normale kassa. Dit vereenvoudigt de benodigde hardware en de complexiteit van de te ontwikkelen software.

LinuxHet tot dan toe gebruikte Windows 95

besturingssysteem bleek niet te voldoen aan de gestelde eisen. Daarom is er eerst gekeken welk besturingssysteem het meest geschikt zou zijn voor de ontwik-keling van de Scanpoint Lite. Daarbij is men niet over een nacht ijs gegaan. Zo

Zelfscankassa’sInnovatie met Linux in de supermarkt.Als je je boodschappen doet bij de supermarkten van bijvoorbeeld C1000, Hoogvliet of Vomar, kan het goed zijn dat je zelfscankassa’s van Nederlandse makelij gebruikt hebt. Ook op vakantie in bijvoorbeeld Frankrijk kun je ze tegenkomen bij Casino. Je hebt je misschien wel eens afgevraagd hoe deze zelfscankassa’s ontwikkeld zijn en welk besturingssysteem er op gebruikt wordt. In dit artikel lichten we een tipje van de sluier op.

Aschwin Marsman

Page 2: Innovatie met Linux in de supermarkt.

35

zijn QNX, OSE, Thread-X, Windows CE en Linux bekeken. QNX is een real-time op UNIX gelijkend besturingssysteem met een microkernel, waarvan de source code van de kernel onlangs is vrijgegeven voor niet commercieel gebruik. OXE is een real-time embedded besturingssysteem, dat berichten gebruikt tussen de processen. Thread-X is ook een real-time embedded besturingssysteem. Het maakt gebruik van het switchen tussen threads (paral-lelle paden binnen 1 proces), vandaar de naam. Dan is er gekeken naar het real-time embedded besturingssysteem van Microsoft, Windows CE. En tot slot is Linux onder de loep genomen, dat standaard overigens niet real-time is, zeker nog niet in 2001.

Een aantal aspecten wogen mee bij de uiteindelijk keuze: maximale controle op de software (achtergrond in � rmware en embedded software zonder besturings-systeem), (licentie)kosten en a� niteit met de aangeboden oplossing. De keuze viel op Linux, waarna natuurlijk nog moest worden vastgesteld welke smaak gebruikt zou gaan worden. Twee mogelijkheden zijn serieus bekeken: een commercieel on-dersteunde embedded Linux-distributie (MontaVista, zie Linux Magazine janu-ari 2008 voor een review van de meest recente versie) en SuSE Linux. Uiteindelijk is gekozen voor het zelf robuuster maken van SuSE Linux om zo op korte termijn de aanschaf van een commerciële Linux ver-sie te voorkomen. In de afgelopen 7 jaar

is veel tijd gaan zitten in het up-to-date houden van het disc image gebaseerd op deze Linux-distributie. Op dit moment wordt overigens opnieuw gekeken naar MontaVista Linux, om zo de eigen ontwikkeluren te kunnen besteden aan het onderscheidend vermogen van een zelfscankassa, de software-applicaties en niet aan het besturingssysteem.

Aanpassen besturingssysteem

Standaard SuSE was niet geschikt voor gebruik in een winkelomgeving: het is bijvoorbeeld niet robuust tegen een plotselinge spanningsuitval. Het kan dan voorkomen dat er dan een bestandssy-steemcontrole uitgevoerd wordt tijdens het opstarten. Als de problemen niet au-tomatisch kunnen worden opgelost, dan heeft dat een niet werkende zelfscank-assa tot gevolg. Er wordt dan namelijk gevraagd om het root wachtwoord. Om dit op te lossen zijn er twee partities gemaakt: één alleen leesbaar en één ook beschrijfbaar. Per de� nitie is alles alleen leesbaar, tenzij het helemaal niet anders kan: dan wordt er een link gemaakt naar een bestand op de beschrijfbare partitie. Ook de logbestanden staan natuurlijk in het beschrijfbare deel.

ApplicatieDe software die de Scanpoint Lite zijn

functionaliteit geeft is voornamelijk ge-schreven in C. Voor de gebruikersinterface

is gebruik gemaakt van Microwindows, tegenwoordig Nano-X geheten met dank aan Microsoft. Nano-X is open source en heeft de MPL als licentie, waardoor het in een commercieel product gebruikt kan worden, zonder dat de applicatiesoftware ook weer open source hoeft te worden. De gebruikersinterface zal opnieuw ontworpen worden, waarbij gebruik zal worden gemaakt van Qt (Qt is de biblio-theek waarop KDE is gebouwd). Hierbij is het van belang dat eigenschappen van de huidige, simpele, consistente gebruikers-interface, waarvoor veel complimenten gegeven worden, behouden blijven. Het gebruik van een touchscreen in plaats van de huidige 4 echte (fysieke) knoppen zal zorgen voor nieuwe mogelijkheden, die onder andere tot uitdrukking zullen komen in een vereenvoudigde menus-tructuur in het onderhoudsscherm. Zo kunnen servicemedewerk(st)ers met minder handelingen de gezochte functie uitvoeren. Ook voor de gebruiker zal het aantal benodigde interacties met de zelfscankassa beperkt kunnen worden. De Service Point Monitor, een applicatie waarmee een servicemedewerker de zelfscanzone in de gaten kan houden, is al geschreven in C++, gebruik makend van Qt.

Software ArchitectuurDe architectuur die is gebruikt in de

nieuwe zelfscankassa is een publish-subscribe architectuur, ook wel black-board genoemd. Er wordt een 20-tal processen opgestart (het exacte aantal is afhankelijk van de functionaliteit van de zelfscankassa), elk met een eigen taak en verantwoordelijkheden. Tijdens het op-starten kan een proces aangeven in welke berichten hij geïnteresseerd is (subscribe). Een verdeelproces (broker) zorgt er trans-parant voor dat berichten terechtkomen bij de processen die hebben aangegeven geïnteresseerd te zijn in dat bericht. Er is dus geen directe connectie tussen de verschillende processen die (indirect) met elkaar communiceren. Op dit moment vindt de communicatie plaats via een verbinding (pipes) tussen een proces en het verdeelproces. Dit heeft als mogelijk nadeel dat processen op dezelfde proces-sor moeten draaien, maar dit is in de praktijk nog nooit een probleem geweest. Een mogelijke verbetering zou zijn als de

Scanpoint Pro met 18 scanners

HARDWARE

Page 3: Innovatie met Linux in de supermarkt.

36

processen zouden communiceren met het verdeelproces via sockets, dan kunnen de processen op verschillende processoren draaien. Het gebruik van een tool als val-grind voor één proces wordt dan moge-lijk, zonder de timing te erg te veranderen waardoor timeouts steeds a� open.

De berichten tussen de processen kun-nen leesbare tekst zijn (ASCII) of binair. Dit kun je opgeven bij het opstarten van een proces. Daarom zijn er voor elk bericht functies voor het vertalen van het bericht van ASCII naar binair, of van binair naar ASCII. Het logproces gebruikt dezelfde functies om de relevante berich-ten te vertalen naar leesbare tekst voor de logbestanden. De logbestanden worden gebruikt door de 3e lijns helpdesk (inlog-gen op de systemen op afstand) en door tools die de log� les analyseren.

Een groot deel van de modules zijn generiek, ze kunnen ook gebruikt worden buiten een winkelomgeving, zoals voor logging, timers, con� guratiebestan-den etc. Het overige deel is domein- of applicatie-speci� ek. Het voorkomen van code-duplicatie is altijd zeer belangrijk geweest: daardoor is de code na 9 jaar nog steeds leesbaar en onderhoudbaar.

Een ander voorbeeld van een gene-rieke module is de con� guratieparser. Een van de doelen was het zorgen voor een minimum aan redundatie in con� guratie-elementen, zoals we ook kennen uit de databasewereld. Redundantie kan name-lijk tot inconsistentie leiden.

Connectie met de artikelgegevens

Een zelfscankassa heeft natuurlijk arti-kelgegevens nodig zodra een streepjesco-de wordt gescand. Om de introductie van een zelfscankassa met zo min mogelijk aanpassingen in de winkelautomatisering te laten plaatsvinden is ervoor gekozen om een zelfscankassa te voorzien van een ‘normale’ kassa, zodat deze ook door een caissière gebruikt wordt. Hierdoor kan ook de standaard kassaleverancier van een winkelketen nog steeds zijn oplos-singen verkopen. De verbinding tussen de kassa en de zelfscankassa kan fysiek, via een RS-232 verbinding, of via TCP/IP. Het protocol dat door de kassaleverancier geïmplementeerd moet worden is een open protocol dat door Scanpoint met input van een aantal kassaleveranciers is gemaakt. Het Scanpoint Cash Register Protocol (SCRP) is een commando/reactie (command/response) protocol dat gaat via tekstcommando’s, op dezelfde manier als bijvoorbeeld SMTP (gebruikt voor het versturen van email) en FTP (gebruikt voor het versturen van bestanden). Het protocol is te downloaden van de Scan-point website.

HardwareLinux draait op een pc 104 bordje met

daarop een processor met een pentium instructieset en 166 mhz en 333 bogo-mips, 128 MB geheugen en geen swap. Hierop draaien ruim 20 applicatieprocess-

sen, voor een deel multithreaded. De server, met daarop een aantal databases, is een normale pc. Het is steeds lastiger om een pc te vinden die nog ondersteund wordt door het discimage. Ook dat zou toch een reden kunnen zijn om naar een professionele embedded Linux-distributie over te stappen. Verder is er nog speci� e-ke electronica ontwikkeld, met � rmware waar geen Linux op draait.

Scanpoint XSDe Scanpoint Lite is bedoeld voor

consumenten met een (volle) kar met boodschappen. Er zijn echter ook klanten met maar een paar artikelen. Daarvoor is een mandjeskassa ontwikkeld zonder lopende banden, die daardoor ook een veel kleiner vloeroppervlak op de winkel-vloer in beslag neemt. Door de modulaire opzet van de software waren de beno-digde wijzigingen ten opzichte van een Scanpoint Lite minimaal: de component die de lopende banden aanstuurt is niet nodig en wordt dan ook niet opgestart. Verder waren er beperkte wijzigingen nodig in de identi� catiecomponent. Als een product bij de Scanpoint Lite is geregistreerd, wordt het artikel afgevoerd en wordt het dus niet meer gewogen. Bij een Scanpoint XS is dat anders. Daarbij wordt op alle producten die zijn geregi-streerd een continue gewichtscontrole uitgevoerd. Het gewicht mag natuurlijk niet onverwachts toe- of afnemen, dat is een sterke indicatie voor fraude.

Scanpoint CashierContante betalingen vormen nog

steeds een belangrijke betaalmogelijk-heid in de supermarkt, alle (recente) reclame-campagnes voor het stimuleren van het pinnen bij kleine bedragen ten spijt. Je kunt nu alle contante betalingen laten uitvoeren bij een baliekassa, maar dat kan een � inke � essehals worden als veel mensen contant willen betalen. Denk bijvoorbeeld aan scholieren die in de pauze allemaal tegelijk een mars komen kopen, dat levert piektijden op en het is erg lastig om dat met personeel op te lossen. Hiervoor is de Scanpoint Cashier ontwikkeld, waarmee de klant zelfstandig contant kan betalen. Het unieke van het apparaat is dat het ingeworpen geld wordt ge-recycled. Alle munten en biljetten die worden

Met de Scanpoint Lite scan je zelf

Page 4: Innovatie met Linux in de supermarkt.

37

ingevoerd kunnen dus ook weer worden uitgegeven, wat ervoor zorgt dat het apparaat minder vaak hoeft te worden bijgevuld. Het probeert zelf optimaal terug te geven. De Scanpoint Cashier is qua software gebouwd op dezelfde pro-ductlijn als de Scanpoint Lite en de XS. Er is alleen één module toegevoegd voor de afhandeling van de contante betaling. Dit betekent dat gebruik gemaakt wordt van dezelfde modules die zich al bewezen hebben in het veld, waardoor ook voor dit product snel een hoge betrouwbaarheid bereikt kon worden.

UptimeBij Scanpoint zijn ze erg tevreden over

hun keuze voor Linux. Iris van Rossem van de Scanpoint Helpdesk: “Door het gebruik van Linux hebben we een hoge mate van betrouwbaarheid kunnen bereiken: de server wordt alleen herstart bij een software opwaardering, of als fysiek de spanning tijdelijk uitgeschakeld moet

zelf kunnen oplossen (bijvoorbeeld door het schoonmaken van een sensor). Ook het gebruikte Linux-besturingssysteem moet een opwaardering krijgen, zodat re-cente hardware weer ondersteund wordt. Dat is nu nog een beperkende factor.

MontaVista Linux is hiervoor een be-langrijke kandidaat, op dit moment loopt een evaluatie. Verder wordt er samen met universiteiten en kennisinstellingen gewerkt aan de opvolger van de Scan-point Lite.

Stabiel uit NederlandZelfscankassa’s zullen over een paar

jaar de gewoonste zaak van de wereld zijn. Het is goed om te zien dat een klein bedrijf in Nederland de strijd is aan-gegaan met bijvoorbeeld NCR, Wincor Nixdorf en IBM. Innovatie in Nederland, het is dus mogelijk. En Linux levert een prachtige bijdrage aan het stabiele karak-ter van deze zelfscanningoplossingen.

Referentieshttp://www.qnx.com/

http://www.enea.com/ose/

http://www.rtos.com/

http://www.microsoft.com/windows/

embedded/products/windowsce/

default.mspx

http://www.mvista.com/

SCRP protocol description:

SCRP protocol addendum:

http://www.scanpoint.nl

/pdf/lp_is_0104.1.pdf

http://www.itab.se/

http://www.scanpoint.nl/pdf/

scanpoint_protocol_pos_systems.pdf

Zelf betalen met de Scanpoint Casher

worden. Ook voor de Lite/XS-systemen is de uptime hoog: concurrerende systemen en ook de normale kassa’s waarmee wordt gecommuniceerd worden elke avond/nacht herstart. Hierdoor vinden we soms problemen in software waarmee we communiceren, terwijl deze al een enorm grote installed-base hebben. Zo hebben we laatst een fout gevonden in een biblio-theek voor het aansturen van de betaal-automaat. Daarin zat al jaren een memory leak, waar we met de Cashier binnen een dag tegenaan liepen toen we live gingen. Er lekte steeds een byte weg per gebeur-tenis, en dat valt niet snel op tijdens het testen van een aantal klanten. Omdat de bibiotheek al jaren wordt toegepast zijn we het probleem eerst bij onszelf gaan zoeken, maar dat bleek niet terecht. We konden de leverancier vertellen dat er een probleem was en bovendien hoe het opgelost zou kunnen worden. Zou dit een bibliotheek zonder broncode zijn geweest, dan was het probleem lastig te vinden geweest en zouden we het niet zelf alvast op hebben kunnen lossen. Dan was er nog steeds een dagelijkse reboot nodig geweest. Weer een bewijs dat de

beschikbaarheid van broncode grote voordelen heeft.”

ToekomstEen paar maanden geleden is

Scanpoint overgenomen door het beursgenoteerde ITAB uit Zweden. ITAB is de Europese marktleider op het gebied van winkelinrich-ting. Een winkel wordt compleet opgeleverd, inclusief stellingen, kassa’s etc. De winkelier hoeft al-leen nog de te verkopen producten in de winkel te zetten en de winkel kan open. ITAB verkoopt op dit moment 22.000 conventionele kassa’s per jaar. Het doel is om in twee jaar 10% van die kassa’s zelfs-cankassa’s te laten zijn. De installed base moet dan in twee jaar enorm toegenomen zijn: van ruim 300 nu naar 2500. De productie moet dus enorm opgeschaald worden en de behoefte aan ondersteuning zal sterk toenemen. Dit betekent dat er nog meer aandacht besteedt moet worden aan hulpmiddelen waar-mee de winkelier en eerstelijns helpdesk zoveel mogelijk storingen

HARDWARE