Software ontwikkelen voor marinesystemen die altijd aanstaan (Onder de Radar #3!)
Benieuwd wat er onder de radar gebeurt bij een van de grootste high-tech bedrijven ter wereld? Dan is dit de interviewserie voor jou... Lees hieronder 3# met Rene van Hees, Chief Software Architect!
Stel je een systeem voor dat, eenmaal ingeschakeld, de rest van zijn leven aanblijft. Geen hardwarestoring of fout in de code kan het onderuithalen. Bij Thales zet chief softwarearchitect René van Hees zijn schouders onder de verwezenlijking van deze droom.
“Bedrijven als Tesla hebben een nieuwe standaard gezet in softwareontwikkeling. Een simpele update via de ether verkort de remweg van een auto bij 100 km/u met 6 meter. Dat is echt een prestatie - we hebben het hier over miljoenen voertuigen die veilig moeten kunnen blijven rijden”, zegt René van Hees van Thales. “Wie had vijf jaar geleden kunnen denken dat we de functionaliteit van onze kritieke systemen on-the-fly zouden kunnen veranderen?”
Chief softwarearchitect Van Hees maakt zich hard voor een soortgelijke aanpak bij marinesystemen. “Wij worden ook steeds software-intensiever. Software speelt een steeds belangrijkere rol in onze radarsystemen. Nieuwe functies worden steeds meer mogelijk gemaakt door software, terwijl de hardware min of meer hetzelfde blijft. We stevenen af op een toekomst waarin we, als we een systeem eenmaal hebben geïnstalleerd op een schip, functionaliteit uitsluitend nog toevoegen via software-updates.”
Ontwerpen voor verandering
Om die toekomst te bereiken, zijn er nog wel wat woelige wateren te bevaren. “Het betekent bijvoorbeeld dat we de frequentie waarmee we nieuwe softwareversies uitrollen naar onze systemen in het veld drastisch moeten verhogen”, verduidelijkt Van Hees. “In plaats van één grote update elke zes maanden moeten we toe naar zeer frequente, zeer kleine, zeer lokale updates. Binnen onze softwareontwikkelafdeling doen we al aan continue integratie – elke dag voegen we nieuwe functies toe aan onze softwarebaseline. Dit willen we uitbreiden naar systeemniveau en uiteindelijk naar de klant.”
De grootste uitdaging is om de systemen te allen tijde gekwalificeerd te houden. Als een systeem eenmaal alle operationele tests heeft doorstaan, worden klanten vaak erg huiverig voor zelfs de kleinste wijzigingen. Volkomen begrijpelijk, aangezien sommige radars een kritische verbinding hebben met zwaar wapentuig. Thales moet dus de absolute garantie kunnen geven dat zijn systemen operationeel blijven onder toevoeging van nieuwe functionaliteit. Van Hees: “Dat is verre van triviaal voor software die zo afhankelijk is van hardware. Ontwerpen voor verandering is de sleutel.”
De software-engineers in Hengelo varen verschillende routes om dit te bereiken. “We kijken naar de communicatie tussen de verschillende softwarecomponenten”, geeft Van Hees als voorbeeld. “Als we zo’n component updaten en een van zijn interfaces verandert daardoor, dan kan dat gevolgen hebben voor de componenten aan de andere kant van die interface, wat op zijn beurt weer gevolgen kan hebben voor de componenten waar zij mee praten, enzovoort. Eén kleine wijziging kan zo een vloedgolf veroorzaken die het systeem overspoelt. Voortbouwend op het Comma-framework, ontwikkeld in samenwerking met Philips en TNO-ESI, werken we aan manieren om de veranderingen lokaal te houden.”
Een ander onderzoeksproject kijkt naar de veiligheidsaspecten van software-updates in het veld. “Waar het systeem ook is, we moeten ervoor zorgen dat het alleen de updates krijgt die wij willen”, legt Van Hees uit. “We onderzoeken manieren om te verifiëren of Thales daadwerkelijk de bron is en zo ja, om de nieuwe software automatisch en veilig te installeren terwijl het systeem operationeel en gekwalificeerd blijft.”
Softwareflexibiliteit
Al deze inspanningen en meer komen samen in Van Hees’ big hairy audacious goal: systemen bouwen die altijd aan zijn. “Mijn visie is om een systeem te hebben dat, eenmaal ingeschakeld, voor de rest van zijn leven aan blijft staan. Hardwareonderdelen kunnen kapot gaan of verouderen, softwarecomponenten kunnen crashen of corrupt raken – niks kan de boel tot zinken brengen. Om dat te bereiken, hebben we nog heel wat werk te verzetten. Het heeft allerlei gevolgen, zowel voor de softwareontwikkeling als voor het systeemontwerp.”
Hardware veroudert nu eenmaal, dus op een gegeven moment moet er een nieuwe rekenkaart in. “Omdat het systeem altijd aanstaat, zouden we die tijdens runtime moeten toevoegen”, zegt Van Hees. “Het is dan aan de softwarearchitectuur om dit te managen en alles in de lucht te houden.”
Het systeem moet ook voorbereid zijn op nieuwe functies en de bijbehorende extra complexiteit – zoals de update die de remweg van de auto verkort. Van Hees: “We zouden de hardware kunnen uitbreiden, maar we zouden die ook gelijk kunnen houden en flexibeler kunnen zijn in de software die erop draait. Op basis van de omstandigheden zouden we de rekenkracht kunnen herverdelen van functies die op een bepaald moment minder essentieel zijn naar functionaliteit die wel kritisch is. Misschien hoeven we niet altijd 2000 kilometer ver te kunnen kijken en is voor een korte periode 150 kilometer ver genoeg. In dat specifieke venster zouden we dan meer resources kunnen toewijzen aan veeleisendere taken.”
Hetzelfde mechanisme zou gebruikt kunnen worden om cyberaanvallen af te slaan, filosofeert Van Hees verder. “Om dit te laten werken, zou de beveiliging echter volledig in software uitgevoerd moeten zijn, wat nu nog niet het geval is. Periodieke updates, design for change en software-defined security veronderstellen allemaal dat we kunnen redeneren over de oplossing en de benodigde veranderingen kunnen coördineren.”
Openstellen
Deze visie op always-on systemen, samen met de softwarestrategie om daar te komen, is een van de drie pijlers onder Van Hees’ werk als chief softwarearchitect bij Thales. “Maar ik ga nergens heen zonder bekwame mensen”, introduceert hij de tweede pijler. “Omdat goede softwarearchitecten bijzonder moeilijk te krijgen zijn, hebben we besloten om ze zelf op te leiden. Met Luminis hebben we het Accelerate-programma opgezet: in 18 maanden tijd krikken we de technische en sociale vaardigheden van een aantal medior software-engineers op tot senior niveau. Deze snelkookpan zal naar verwachting in november zijn eerste lichting van twaalf technische leiders afleveren.”
Van Hees’ derde pijler is samenwerking. “We kunnen nu eenmaal niet alles zelf, dus we moeten samenwerken. Samenwerken in de opleiding, zoals in het Accelerate-programma met Luminis, dat is ontstaan uit een wederzijdse behoefte aan senior mensen – ik zou niets liever willen dan het openstellen voor andere bedrijven. Maar ook samenwerken bij het delen van kennis en technologie. Neem bijvoorbeeld Inaetics, onze dynamische, servicegeoriënteerde softwarearchitectuur. Die is ontwikkeld in een door de overheid gefinancierd consortium. We zijn nu op zoek naar soortgelijke partnerschappen met bedrijven om het platform te opensourcen en de toepassing ervan te verbreden waar mogelijk.”
“Onze systemen staan niet meer op zichzelf”, besluit Van Hees. “Naarmate de wereld om hen heen complexer wordt, worden zij dat ook. De stap naar systemen die altijd aanstaan, maakt de complexiteit alleen maar groter. Ze robuust houden, ook over tijd, is onze grootste uitdaging.”
Meer weten over werken bij Thales? Op zoek naar een baan bij het leukste high-tech bedrijf van Nederland? Klik hier voor onze vacatures!