In de fysica kan een systeem zo maar een kritische staat bereiken, waarin het ineens op een extreme manier zijn gedrag wijzigt. Denk bijvoorbeeld aan een verandering van vloeibaar- naar gasvormig door het langzaam ophogen van temperatuur. Dit raadselachtige verschijnsel fascineert de wetenschap al jaren.
Een bekend laboratoriumvoorbeeld is de zandberg. Als zandkorrels op een oppervlak vallen, vormt zich een bergje. Als het bergje groter wordt, ontstaan er op onverwachte momenten lawines. Wanneer en waar die lawines ontstaan, is afhankelijk van de positie van ieder individueel zandkorreltje. Het gedrag van de berg wordt daarmee volslagen onvoorspelbaar. Of een lawine een lokale herschikking is of een ramp veroorzaakt, is niet van tevoren te zeggen.
Een systeem dat dergelijk gedrag vertoont, kan dus radicale veranderingen ondergaan zonder aantoonbare aanleiding. Dit fenomeen heet 'self-organised criticality'. Het wordt als universeel voor complexe systemen gezien. Self-organised criticality vormt de basis van de meeste wetenschappelijke ramptheorieën.
De theorie is vaak toepasbaar. Hetzelfde gedrag dat wellicht Tokyo in de nabije toekomst door een aardbeving op zijn grondvesten zal doen schudden, liet ook in 1987 de Dow Jones inzakken. Een ander voorbeeld is de gevoeligheid van de mensheid voor besmettelijke ziektes. Door het toegenomen aantal wereldbewoners, maar vooral ook de toegenomen mobiliteit, kan een ziekte zich tegenwoordig razendsnel verspreiden.
Er zijn maar een paar criteria die echt een rol spelen om een systeem kritisch te krijgen. Zo'n systeem moet bestaan uit losse deeltjes, liefst exponentieel groeien en ook een exponentieel groeiende afhankelijkheid hebben tussen de deeltjes. Dit is vergelijkbaar met een groeiend software netwerk en is dus voldoende reden om ongerust te worden.
De metafoor van de zandkorrels verschilt dus niet zo veel van bijvoorbeeld internet. Voor internet is het risico echter beperkt. De meeste knooppunten hebben namelijk verbinding met een relatief klein aantal andere knooppunten. Willekeurige uitvallen van knooppunten is dus niet zo gevaarlijk, maar een gerichte aanval op de belangrijkste kernpunten wel.
Het internet is natuurlijk wel geschikt voor de verspreiding van computervirussen. Wat dat betreft gaan dezelfde wetten op als voor fysieke virussen: een groot aantal gebruikers en een enorm aantal interacties maakt internet kwetsbaar.
Het wordt een stuk spannender als we het over webservices en xml hebben. Volgens de voorspellingen wordt de wereldeconomie steeds afhankelijker van netwerkfuncties. Het aantal functionele connecties van de ene server naar de andere neemt enorm toe, niet langer beperkt door taalbarrières vanwege xml, het technische Esperanto. Als het netwerk kritisch wordt, stevent de service-economie dus af op een catastrofe.
Criticiteit is aannemelijk. Het aantal onderlinge connecties neemt exponentieel toe met het aantal knooppunten. Als er N knooppunten in een netwerk zijn, is het maximale aantal unieke koppelingen gelijk aan Nx(N-1). Een getallenvoorbeeld: een klein netwerkje met 100 actieve knooppunten heeft dus maximaal 9900 enkelvoudige verbindingen. Het aantal daadwerkelijke afhankelijkheden kan onnoemelijk veel groter zijn, omdat die meerdere connecties kunnen beslaan. De ene service kan afhankelijk zijn van de andere, die weer een afhankelijkheid kan hebben met de volgende.
Falen van een webservice kan dus catastrofale invloed hebben op het totale netwerk. De schoonmaker, die over de stekker van een server struikelt, kan een lawine van uitvallende services veroorzaken. Dat kan een kleine lawine zijn, maar ook een rampzalige.
Er zijn maar twee criteria voor een kritisch systeem, dus zou het heel eenvoudig moeten zijn om dit soort rampscenario's te voorkomen. Ten eerste zou het aantal knooppunten in een netwerk beperkt kunnen worden. Ten tweede zou het aantal afhankelijkheden kunnen worden geminimaliseerd.
Het beperken van het aantal webservices is niet aan de orde. We willen niet meer alles in eigen huis halen en onderhouden. Maximaal gebruik maken van de resources van anderen biedt nu eenmaal grote financiële voordelen. Dan blijft het beperken van de afhankelijkheden over. Dat kan met back-up webservices.
Een bedrijfsproces waarin gebruik wordt gemaakt van webservices moet dus alternatieven hebben. Gelukkig is dat relatief eenvoudig te realiseren. Omdat webservices een gestructureerd formaat hebben, is iedere op hetzelfde wsdl-webservice functioneel gezien identiek. Meerdere afnemers kunnen dus exact dezelfde webservice beschikbaar stellen.
Om te voorkomen dat de service-economie door 'self-organised criticality' ten onder gaat, zit er maar een ding op. Voor iedere webservice moet een vervangende service beschikbaar zijn. Als een webservice faalt, kan worden overgeschakeld naar het alternatief. Alleen zo wordt het vallen van de dominostenen onderbroken en een service-ramp voorkomen.
Sander Nagtegaal