groter de problemen als 'bom' ontploft
Sijas Akkerman
'Niet zo heel veel bijzonders eigenlijk.' Dr. Paul Grefen, docent informatiesystemen bij de faculteit Informatica, haalt zijn schouders op: 'Puur technisch gezien stelt het millenniumprobleem niet zo veel voor. Veel computers zullen tijdens de eeuwwisseling niet van 1999 naar 2000 maar van 99 naar 00 springen. Dat komt omdat er in het geheugen voor het jaartal geen vier maar twee dataposities zijn gereserveerd. In de jaren zestig en zeventig hebben programmeurs die keuze gemaakt omdat het geheugen van computers toen nog erg klein en dus kostbaar was. Ongeveer acht kilobyte hadden machines in die tijd ter beschikking. Dat betekent dat er in het geheugen 8000 posities zitten waar je informatie in op kunt slaan. Reserveer je voor één jaartal twee posities dan kun je er 4000 kwijt. Ben je van mening dat ook de eeuwaanduiding van pas kan komen, dan heb je vier posities nodig en is er slecht plaats voor 2000 jaartallen.'
Wie dan leeft wie dan zorgt, zullen de softwarepioniers twintig, dertig jaar geleden kennelijk gedacht hebben. Met als gevolg dat niet aangepaste programma's op 1 januari 2000 als het ware opnieuw aan de pas afgelopen 20ste eeuw beginnen, en daardoor prompt ontregeld raken. Grefen: 'Alle logische optel- en aftrekoperaties waarbij data een rol spelen gaan mis. Stel je belt 30 seconden voor het aanbreken van het nieuwe millennium met je tante om haar gelukkig nieuwjaar te wensen, en je stopt daar 30 seconden na twaalven mee. De computer berekent dan dat je 00 minus 99 is min 99 jaar hebt gebeld. Een negatief jaartal bestaat niet, dus het systeem zou dan automatisch de kosten van 99 jaar durend telefoongesprek van je girorekening af kunnen schrijven.
'Als je de plaats van het jaartal in het programma eenmaal hebt opgespoord kun je het probleem op drie manieren vrij eenvoudig oplossen. De netste manier heet expansion: van een dataveld met twee posities maak je een dataveld met vier posities. Een andere oplossing wordt encoding genoemd: door gebruik te maken van een handige programma techniek kun je een jaartal dat uit vier posities bestaat op een veld van twee posities opslaan.'
Maar vooralsnog kiezen de meeste software reparateurs een tijdelijke oplossing genaamd windowing. Deze gebrekkige methode werkt volgens Grefen als volgt: 'De gebruiker definieerteen raam van 100 jaar, bijvoorbeeld van 1950 tot 2050, waarbinnen de computer zijn werk doet. In een onderdeel van de toepassing bouw je een programmaatje dat de computer vertelt dat voor getallen tussen de 50 en 99 eigenlijk een negentien moet staan, en voor getallen tussen de 00 en 49 een 20. Eens per tien jaar moet zo'n raam opschuiven, hetgeen nogal tricky is omdat je alle programmatuur moet aanpassen.'
Om de drie technieken uit te kunnen voeren hoef je geen 'heavy informatica-specialist' te zijn, stelt hij. Iemand die ooit inleiding in programmeren heeft gehad kan de klus na wat instructie en met behulp van handige software zonder problemen klaren.
Maar voordat je het millenniumprobleem kunt ondervangen moet je wel eerst alle plaatsen in een programma waar een datum wordt gebruikt opsporen. 'En juist daar,' stelt Grefen, 'zit het probleem: hoe groter het programma hoe moeilijker dat wordt. Veel banken, verzekeraars, de PTT en uitkeringsinstanties zijn al vroeg begonnen met automatiseren. De programma's die ze nu gebruiken zijn aangepaste en uitgebreide versies, - de zogenaamde legacy systemen - van de software die ze toen gebruikten. Door de jaren heen zijn die informatiesystemen ontzettend veel groter en groter geworden. Zonder dat ze ooit goed zijn gedocumenteerd. Van veel programma's uit de jaren zestig en zeventig is zelfs de bron-code, de leesbare taal waarin geprogrammeerd wordt, niet bewaard. En die heb je nodig om het jaartal aan te passen. Wat er rest is de machinetaal, een hele grote berg enen en nullen die nog steeds gebruikt wordt zonder dat precies bekend is welke velden met enen en nullen de jaartallen voorstellen. Een ongelooflijke klus om dat uit te zoeken, zoveel zal duidelijk zijn.
Grefen: 'Temeer ook, omdat de programma's in de loop der jaren zijn uitgebreid zonder dat er goed over de structuur is nagedacht. Tegenwoordig slaan we een gegeven, denk aan een jaartal, dat we voor verschillende bewerkingen gebruiken op één plaats in het programma op. Het uitvoerende programma haalt het gegeven daar telkens vandaan. Vroeger was programma architectuur nog niet zo in. Het kan dus voorkomen dat in een groot programma, zoals banken dat gebruiken, het jaartal op miljoenen plaatsen voor komt.
'Tot op zekere hoogte kun je het zoekwerk door computers laten uitvoeren. Alleen een computer kan in lang niet alle gevallen zien of het getal dat hij tegenkomt voor een jaartal of voor het nummer van zeg, een giroafschrift staat. Er zijn al bedrijven die hun programma's naar lagelonenlanden verschepen en ze daar laten repareren. In India is dat inmiddels big business geworden. Hooggeschoold hoef je er immers niet voor te zijn. Het is vooral veel werk.'
Niet alleen grote computers die de telefoontijd bijhouden, levensverzekeringen uitkeren, hypotheken berekenen of op een andere manier met jaartallen werken die door slecht twee posities zijn gedefinieerd, krijgen problemen. Ook kleine elektrische apparaten kunnen na de eeuwwende niet of gebrekkig gaan functioneren. In elektronische horloges, computers, videorecorders of andere digitale apparaten zit een chip, en in veel van die chips zit het jaartal als het ware ingebakken. Die moeten dus of hergeprogrammeerd of vervangen worden. Hoe groot het probleem met deze zogenaamde embedded software is,valt moeilijk te overzien. Er zijn ontelbaar veel apparaten met een chip. Sommige fabrikanten hebben websites waarop valt te lezen welk type pc of videorecorder wel of niet millenniumproof is. Maar het zal toch vooral afwachten zijn.
UT: geen paniek
Vrees dat de eeuwwisseling fataal zal zijn voor de slagbomen op de UT, studentenchipkaart, financiële administratie, centrale studenten administratie (ISIS) of studievolgsystemen van de UT, hoeft er niet te zijn. 'Die zijn inmiddels allemaal gecheckt en aangepast of worden voor het einde van 1998 gerepareerd. Tenminste, wanneer het CIV ze beheert. Voor apparaten en computersystemen die door faculteiten of diensten zelf zijn ontwikkeld of aangekocht kan ik die garantie niet geven,' aldus J.H.G. Grondman, die bij het CIV verantwoordelijk is voor het millenniumprobleem. 'We hebben er overigens geen extra mensen voor hoeven aantrekken. Nog niet zo lang geleden zijn veel programma's gemoderniseerd door ze in een zogenaamde vierde generatietaal om te zetten. Het millenniumprobleem is toen ook meegenomen.' Maar voor apparatuur die buiten het CIV-domein valt, kunnen er dus wel problemen ontstaan, zo lijkt het.
Met een slagboom die niet opengaat of een chipkaart die dienst weigert valt ten minste nog te leven. Maar wat gebeurt er na de eeuwwisseling met de F-16-vliegtuigen die dagelijks over de campus vliegen? J.M.G. Heerkens, docent luchtvaartindustrie bij de faculteit T&M, kan er alleen in algemene termen iets over zeggen: 'Een F-16 wordt volledig met behulp van computers bestuurd. Twee systemen spelen daarbij een belangrijke rol. Met het Fly-By-Wire-systeem vindt de eigenlijke besturing plaats. De piloot vertelt de computer met behulp van een joytick bijvoorbeeld dat hij naar links wil. De software berekent vervolgens bliksemsnel in welke standen de roeren gezet moeten worden. Het is niet erg waarschijnlijk dat in deze software datagevoelige plekken zitten. Maar helemaal zeker weet ik dat niet. Anders is dat met het navigatiesysteem. Dat bepaalt onder andere met behulp van satelliet en radar de precieze positie van het vliegtuig en de optimale koers, snelheid en hoogte die gevlogen moet worden. In die software wordt wel veel met data en tijd gewerkt.
'Moderne verkeersvliegtuigen worden ook volledig met behulp van computers bestuurd. Maar die hebben nog een aantal back-up systemen. Valt de Fly-By-Wire-computer uit dan kan de piloot overschakelen op mechanische besturing. En voor de minimale navigatie kan de gezagvoerder terugvallen op een aantal niet- elektronische metertjes en een kompas. Niet dat dat veel oplost. Door alle drukte in de lucht zijn piloten volledig afhankelijk van vluchtleidingssystemen en automatische positiebepaling. Maar theoretisch kun je een Airbus ook zonder computer aan de grond krijgen. Met een F-16 lukt dat niet. Die is volledig afhankelijk van zijn elektronica.'
Toch maar even met Vliegbasis Twente gebeld. Per slot van rekening gebruiken F-16-piloten de EL-TN-toren zo ongeveer als aanvliegbaken. De afdeling voorlichting, kan ons niet verder helpen. En de dienstdoende technische man, majoor Klein Schaarsberg, is niet bereikbaar. In NRC Handelsblad van afgelopen zaterdag erkent een defensiewoordvoerder dat 'het probleemvoor het Nederlandse materieel enorm is. Marinefregatten, F-16-vliegtuigen en Leopardtanks zitten stampvol computersystemen en chips.' Ook in burgervliegtuigen, zo blijkt uit dezelfde NRC, stikt het van de datagevoelige systemen: de KLM telde er per machine zo 160.
Hoe groot het millenniumprobleem is weet niemand. Neem de nucleaire wapens in Rusland of de kerncentrales in China. Misschien hebben ze er een andere jaartelling. Maar wat als ze nou toch stiekem westerse software gebruiken? 'Je weet het niet, je weet het niet', vindt ook Grefen. 'Paniek lijkt mij overdreven, maar we moeten de tijd die nog rest wel gebruiken om alle millenniumbommen zoveel mogelijk onschadelijk te maken.'
Paul Grefen