Hoe thin zijn thin clients?
De misvatting van veel mensen is dat het internet, de beschikbaarheid van online applicaties en het continue verbonden zijn met dit internet via verschillende apparaten er voor heeft gezorgd dat de apparatuur die we gebruiken een soort van thin clients zijn geworden (of aan het worden zijn). Niets is minder waar, wanneer we terug kijken naar de ontwikkelingen in de afgelopen 10 jaar.
Een definitie van thin client: “Een thin client is hierbij een client die zelf over zeer weinig bronnen beschikt, en zeer sterk afhankelijk is van de server, die het verwerken van data voor zijn rekening neemt”
(bron: Wikipedia)
Architectuur
In essentie is een webapplicatie natuurlijk een (software gebaseerde) server – thin client architectuur. De webserver verwerkt de input, doet berekeningen op de data die op de server staan en stuurt enkel het resultaat terug naar de browser in HTML. De browser hoeft alleen de HTML te parsen en te tonen aan de gebruiker. Alle user input binnen de browser wordt gebundeld weer teruggestuurd naar de server voor verwerking, waarbij de client zelf geen state hoeft bij te houden. Deze simpele architectuur zorgt ervoor dat men op relatief eenvoudige apparaten met verschillende operating systemen, met enkel een browser die HTML interpreteert toegang heeft tot enorm veel verschillende online applicaties.
Tien jaar geleden was bovenstaande al mogelijk op de eerste generaties PDAs (met Wifi adapter of GSM simmodule) of met mobiele telefoons uitgerust met WAP mogelijkheid. Maar de ontwikkeling van de hardware van deze apparaten heeft niet stilgestaan en is net zo hard meegegroeid als de ontwikkeling van de hardware van de servers zelf. Vergelijk een moderne telefoon met een van 10 jaar geleden, of een modern minibook, tabletPC of laptop met een van 10 jaar geleden, of een moderne PC met een van 10 jaar geleden, dan zul je zien dat de prestaties een aantal ordes van grootte hoger zijn. De wet van Moore uit 1965 gaat nog steeds op (elke 24 maanden verdubbelt het aantal transistors op een chip zonder kostenstijging).
Client side
Deze prestatiestijging gaf mogelijkheden om telkens meer werk dat de server zou moeten doen, op de client te laten uitvoeren. Juíst omdat de processorkosten op de client zo goedkoop zijn en blijven, is het efficiënter om zoveel mogelijk werk door je duizenden bezoekende browsers te laten uitvoeren, dan op je dure webserver, waardoor de applicatie veel schaalbaarder is. Voornamelijk bij zaken als video rendering, compileren van software of andere berekeningsintensieve taken kan een centrale server die dit alles voor zijn clients moet afhandelen, al gauw performance gebreken vertonen.
Een bijkomend voordeel is dat je minder bandbreedte gebruikt.
De afgelopen 15 jaar hebben we de opkomst van Javascript, (Shockwave) Flash, Flex, VML, Java Applets, ActiveX, Silverlight gezien, stuk voor stuk client side software dat intensief gebruikt maakt van de lokale processorkracht. De allernieuwste browser Internet Explorer 9 maakt zelfs gebruik van de lokale GPU in je PC voor supersnelle grafische berekeningen. Het zal niet lang meer duren voordat de andere browserontwikkelaars volgen.
Google Gears dat door Google is ontwikkeld maakt het mogelijk om lokaal op de client in een doorzoekbare database te werken.
Een van de meest aansprekende nieuwe elementen van SharePoint 2010 voor ontwikkelaars is de mogelijkheid om software te laten werken vanaf de desktop. In Sharepoint 2007 moesten applicaties nog fysiek op SharePoint servers draaien maar in 2010 is dat niet meer nodig.
Er is een enorme verschuiving van de databewerking naar plugins (of native capabilities) in de browser, waardoor je erg interactieve webapplicaties kunt bouwen, bijna vergelijkbaar met locale applicaties.
Distributed computing
Zoals de browserontwikkelaars hebben ingezien dat de PC allerminst een thin client is geworden, zo heeft ook de academische wereld dit ingezien. Er zijn vele projecten die gretig gebruiken maken van lokale prestaties zoals bijvoorbeeld BOINC en distributed.net of het populaire zoeken naar buitenaards leven met SETI@home.
Helaas heeft dit ook een keerzijde, en proberen hackers en professionele cybercriminele organisaties controle te krijgen over de beschikbare reken- en geheugencapaciteit verbonden aan het internet: een botnetwerk bestaat bij de gratie van het fat client zijn van de zombie PCs. Een brute force attack van een wachtwoord duurt met 100.000 zombies geen 23 jaar, maar slechts 2 uur.
Het oorspronkelijke concept achter server – thin client is dat 1 processor makkelijk het werk van meerdere clients kon afhandelen. Eén (server)processor handelde dus meerdere applicaties af in dit soort architectuur. Inmiddels is dat concept achterhaald en exact het tegenovergestelde geworden: één applicatie draait op verschillende processoren. Het opkomende Cloud Computing is gebaseerd op dit concept en maakt optimaal gebruik van de beschikbare rekenkracht in het netwerk. Overigens is het verdienmodel van Cloud Computing 1:1 gecorreleerd aan de verbruikte processorkracht, de hoeveelheid geslagen data en het dataverkeer van en naar de client. Je zult als ontwikkelaar voor software in de Cloud dus nog steeds blijven zoeken naar mogelijkheden om de locale resources van je consumers optimaal te benutten.
Eye of the beholder
Alhoewel schijnbaar de noodzaak voor fat clients sterk afneemt door het enorme aanbod aan functionaliteit via de online applicaties, is vanuit het perspectief van de developer duidelijk zichtbaar dat er op de achtergrond een behoorlijk aantal processen zich lokaal afspelen om de phatte webapplicatie die je hebt gebouwd te tonen in de van oorsprong thin client browser.
Niet omdat dit technisch gezien noodzakelijk is, maar puur omdat het economisch gezien voordeliger is.
Gerelateerde blogposts:

Aha dat bedoel je met Thin Clients ;-) Populair gebruik van de term Thin Client houdt vaak in dat er bedoeld wordt dat de applicatie in de browser draait. Er ontstaat veel spraakverwarring tussen
marketingmensen, die de populaire definitie hanteren, en technici die de jouw definitie hanteren. Overigens denk ik dat de Thin Thin clients er uiteindelijk wel gaan komen, de game industrie is aardig op weg: http://www.gamer.nl/achtergrond/50729/onlive-de-grootste-revolutie-sinds-de-console
[...] Bolt is niet dik, maar wel snel. Heel snel. Ik moest aan Usain Bolt denken toen ik de post van mijn collega Michel las. Michel liet zijn licht schijnen op wat veel mensen wellicht wat al te makkelijk een [...]