Alleen triviale systemen als PC Dos of Windows 3.1 kunnen maar één programma tegelijk draaien. De huidige pc’s, met Windows 98 of 2000 (NT), kunnen meerdere programma’s tegelijkertijd draaien, maar slechts een enkele gebruiker ondersteunen. De meeste besturingssystemen kunnen zowel meerdere programma’s als meerdere gebruikers ondersteunen. De zaken worden gecompliceerder wanneer enkele van deze gebruikers hetzelfde programma willen delen. Intern wordt het nog complexer, omdat programma’s zijn op te splitsen in kleinere taken, waarvan sommige door verschillende programma’s worden gedeeld.
De client/server-architectuur heeft nog een andere dimensie toegevoegd. Een systeem met meerdere gebruikers is te verkrijgen door meerdere systemen voor enkele gebruikers in een netwerk op te nemen samen met een ‘multi-tasking’-, maar niet noodzakelijk een ‘multi-user’-server: vijftig gebruikers kunnen worden bediend door 51 pc’s, die elk Windows 2000 voor een enkele gebruiker draaien.
Systemen voor meer gebruikers, met domme terminals, raakten in de jaren negentig uit de mode toen gebruikers (tegen iedere prijs!) grafische interfaces wilden. Momenteel zijn ze weer populair, nu browsers langzamerhand pc’s vervangen. Bedenk echter dat een Windows 2000-systeem, geschikt voor een enkele gebruiker, met behulp van middleware – in dit geval een webserver – de ondersteuning voor meerdere gebruikers kan leveren, waarin het besturingssysteem zelf niet voorziet.
Terwijl domme terminals uit nieuwe applicaties verdwijnen, heeft Unix het fundamentele voordeel op NT dat het legacy Ascii-terminals en bijbehorende applicaties ondersteunt. Dit is niet onbelangrijk bij bedrijfssystemen die onder Unix draaien. Maar er bestaat zelfs een groter aantal (zeer goedkope) applicaties die naar tevredenheid draaien op 3270-terminals die zijn verbonden aan IBM-mainframes, of op 5250-terminals voor AS/400-installaties.
Uit het bovenstaande moge duidelijk zijn dat er een hoop onzin wordt beweerd over ‘één besturingssysteem voor alles’, in het bijzonder door Microsoft, dat samenspant met hardwareleveranciers om meer apparatuur te verkopen dan nodig is. De eisen aan een ‘single-user client’ (grafisch, simpele I/O, netwerkondersteuning) zijn anders dan die aan een server (eenvoudige operator-interface, zware belasting, hoge I/O-eisen, herstellingsvermogen, schaalbaarheid, enzovoort). Een bedrijfsserver stelt weer hogere eisen – ondersteuning voor legacy-systemen, en een hogere betrouwbaarheid en beschikbaarheid. Voor afdelingen is een AS/400-server (i/Series) met NT-werkstations dus een goede combinatie, beter dan overal NT.
Een manier om een grote verscheidenheid aan programma’s te ondersteunen, is te verkrijgen door een specifieke machine te gebruiken voor elke identificeerbare functie. Een concept dat de komende jaren zal rijpen. Het creëert echter net zoveel problemen als het oplost, omdat onvermijdelijk behoefte aan interactie tussen de functies zal bestaan. Dit introduceert een aanzienlijke toename in beheer- en netwerkproblemen. De oude techniek van het ondersteunen van meerdere functies, bestaat uit het gebruik van het besturingssysteem op een enkele computer voor het draaien van meerdere taken. Het is hetzelfde logische concept als een netwerk van machines, maar makkelijker te beheren. En omdat de interactie tussen de functies een interne dienst is met een lagere overhead dan een netwerk, kan die sneller zijn.
Er is echter nog een groot verschil. In het geval van meerdere taakspecifieke machines, is elk te optimaliseren voor een specifieke taak. Door echter te vertrouwen op de planning van een enkel besturingssysteem, neigt de prestatie naar het gemiddelde. Moderne besturingssystemen kunnen de prioriteiten van elke taak bijstellen, maar dat kan nooit zo efficiënt zijn als een echte taakspecifieke afstemming.
Neem de basiseisen in beschouwing van een typische bedrijfsapplicatie: een grote hoeveelheid interactieve transacties, een databasemanagementsysteem met grote prestaties, en batchwerking van data. De interactieve diensten moeten worden geoptimaliseerd voor de snelste respons en basale herstel- en ‘roll-back’-functies bieden. Dit is het best te bereiken met een TPM (Transaction Processing Monitor) zoals Cics of Tuxedo. Het dbms moet ‘multi-threading’ van verzoeken kunnen ondersteunen, zodat een lange ‘query’ korte transacties niet kan ophouden. De prestaties worden evenwel gedomineerd door enorme I/O-activiteit. De batch-verwerking is niet real-time kritisch, maar moet een slimme, door gebeurtenissen gedreven werkstroomplanning bieden, waardoor de tussenkomst van een operator tot een minimum wordt beperkt. De batchverwerking moet geoptimaliseerd zijn voor een maximale doorvoer ten koste van de responstijd. Dat betekent dat data worden gesorteerd; dit in tegenstelling tot de directe toegang tot individuele datasets die interactieve transacties vereisen. Elke functie heeft duidelijk verschillende karakteristieken.
De huidige belangstelling voor e-handel voegt nog enkele eisen toe aan het bovenstaande. De werklast van internettransacties is veel minder voorspelbaar dan thuisapplicaties, en de functionaliteit van de webserver (Application Server) moet ook worden geïncorporeerd, hoewel dat dezelfde eisen stelt voor wat betreft ondersteuning aan een TPM.
Martin Healey, pionier ontwikkeling van op Intel gebaseerde computers en c/s-architectuur. Directeur van een aantal it-bedrijven en professor aan de Universiteit van Wales.