Luminis iQ Products is gespecialiseerd in software voor ‘embedded systemen’ (ingebouwde software). Hoewel deze technologie nog erg in opkomst is, heeft het bedrijf zijn kaarten gezet op de Java OSGi-stack.
Luminis ontwikkelt beheerhulpmiddelen waarmee de installatie en opwaardering van software in embedded systemen kan worden geautomatiseerd. Dat vindt bijvoorbeeld plaats aan het eind van een productielijn, als de systemen gebouwd zijn en getest moeten worden. Het kan echter ook later zijn, als de systemen al in productie draaien en een ‘upgrade’ nodig hebben.
Behalve dat embedded systemen haast per definitie ‘op locatie’ zitten, kunnen ze vaak niet zomaar uitgeschakeld worden voor onderhoud. Denk maar aan meet- en regelsystemen in de procesindustrie, of aan adsl-modems en set-top boxes thuis. Daar zou je de software willen kunnen opwaarderen zonder dat het apparaat daarvoor uit de lucht hoeft.
Luminis richt zich daarom op systemen voorzien van een OSGi-stack (Open Services Gateway initiative). Dat is een componentgebaseerde Java-omgeving, specifiek ontwikkeld voor dit soort toepassingen. “Software is geen monoliet meer,” zegt Fred Verstraaten, directeur van Luminis iQ Products, “maar bestaat uit componenten en diensten. Onze tools houden de onderlinge afhankelijkheden tussen die componenten bij. Bovendien moeten services zijn vrijgegeven voordat je bijbehorende bundels kunt vervangen.”
Een van de bedrijven die met OSGi aan de slag zijn, zijn de Belgische spoorwegen. “Daar heeft men een centrale applicatie voor het bewaken van gebouwen, wissels en systemen”, vertelt Verstraaten. “Die toepassing moet nu elke nacht down, bijvoorbeeld om er nieuwe camera’s in te zetten.”
Doorbraak
Verstraaten heeft een rotsvast vertrouwen in de doorbraak van het OSGi-platform. “Op dit moment is slechts enkele procenten van de embedded systemen voorzien van OSGi, maar dat aandeel neemt snel toe. Ik zie nu ook veel internationale interesse. OSGi is de enige serieuze middleware voor dit soort systemen. Bovendien wordt het nu ook door IBM ondersteund.”
Tegelijkertijd ziet Verstraaten de markt veranderen. “IBM trekt zich terug uit de embedded systemen. Zij zaten daar met WebSphere in, maar zien meer toekomst in de business. Technologie wordt steeds specialistischer. De echte innovatie komt steeds meer van kleine bedrijven.”
Windows is voor Verstraaten geen optie. “OSGi wordt niet door Microsoft ondersteund, want zij hebben hun eigen programmeertaal C#. Bovendien bevat hun platform geen faciliteiten voor het beheren van de levenscyclus van onderdelen (‘component lifecycle management’). Elke .Net-ontwikkelaar weet dat zijn systeem voor een update down moet en herstart moet worden. Bovendien hebben we voor dit soort toepassingen honderd procent controle nodig. Daarom gebruiken we Linux.”
Open source
Volgens Verstraaten is met Apache Felix een hele goede OSGi-implementatie als open source beschikbaar. “Twee van de kernontwikkelaars zijn hier in dienst. Standaardonderdelen als een http-server, een xml-parser of een logserver zijn er al. Datzelfde geldt meestal ook voor een deel van de applicatiespecifieke componenten.
Voor Luminis zelf is het geen probleem om hun code als open source voor iedereen beschikbaar te maken. “Wij geven ook domeinspecifieke code terug aan de community”, zegt Verstraaten. “Ons intellectueel eigendom zit niet op het apparaat. Die zit in de software-managementserver.”
“Met diensten verdien je meer dan met technologie.” Verstraaten verwijst daarvoor naar het verslag Four Strategies for the Age of Smart Services van Harbor Research. “Dus moet je technologie gebruiken als aanjager voor services. Als je dat goed doet, kun je in de primaire keten van je klant terecht komen. Bijvoorbeeld door je product te certificeren als dat voor hen verplicht is.”
Het opensourcedenken beperkt zich niet tot Luminis zelf. “Wij geloven niet in commerciële platforms.” Hij vraagt klanten dan ook altijd om zo veel mogelijk van de voor hun ontwikkelde componenten weer als open source beschikbaar te stellen.
“Als je het uitlegt, staan klanten open voor donatie. Ze zijn niet dom. Ze willen hun systemen zo efficiënt mogelijk ontwikkelen. Voor bijvoorbeeld een mri-scanner kan een aantal onderdelen uit de opensourcewereld worden gebruikt. We helpen onze klant dan met het schrijven van de rest van de OSGi-componenten. Voor zover het niet om hun intellectuele eigendommen gaat, vinden ze het meestal geen probleem om hun software daarna als open source beschikbaar te stellen.”
Luminis-dag
Luminis vierde 1 april zijn vijfde verjaardag. “Het bedrijf is ontstaan uit frustratie”, vertelt Verstraaten. “Grote bedrijven investeren te weinig in innovatie. Daardoor vindt uitholling plaats van de kennis van hun werknemers. Wij wilden hier elke week vier dagen werken en één dag met innovatie bezig zijn. We noemden dat onze Luminis-dag.”
Onlangs is de structuur van het bedrijf omgegooid. “We zijn nu 21 man groot. Vorig jaar hebben we Luminis opgesplitst in twee bedrijven, één voor de producten en één voor de dienstverlening. Enerzijds zagen we dat onze klanten zich steeds meer willen focussen op hun specifieke niche. Anderzijds, als je systemen upgradable zijn, dan heb je ook een back-endsysteem nodig.”
“De holding heeft echter nog steeds een R&D-agenda en onderzoeksprojecten en onze adviseurs zitten nog steeds maar vier dagen per week bij de klant. Daardoor zijn we wel wat duurder, maar de waarde van onze mensen ligt hoger.”
Bagage
Een van de klanten van Luminis is Vanderlande Industries. Dat bedrijf bouwt nu het complete bagageafhandelingssysteem voor de nieuwe derde terminal van de luchthaven Sheremetyevo in Moskou. Bagagestukken die problemen met hun routering ondervinden moeten handmatig weer op weg geholpen worden. In jargon heet dit manual coding. “Alle stukken worden automatisch gescand,” zegt Leen van Kampen, product manager Engineering bij Vanderlande Industries. “Soms gaat dat mis. Dan komt de bagage bij een operator terecht die moet kijken of hij het label nog met de hand kan inscannen. Als dat niet lukt, kiest hij uit een lijstje bij welke vlucht die koffer hoort.”
“Typerend voor manual coding is de hoeveelheid externe systemen waarmee het is gekoppeld. Het scherm staat bijvoorbeeld uit totdat er een koffer die kant op komt. Daarnaast is er een verbinding naar het vluchtplan. De applicatie slaat continu de gegevens van de actuele vluchten op, en uit die lijst kan de operator vervolgens kiezen.”