Architectuur

Apache en Perl

Toutatis Software is vrijwel volledig geschreven in de programmeertaal Perl. Dit is een zogenaamde “high-level” programmeertaal, wat betekent dat je met veel minder regels code hetzelfde kunt bereiken als bijvoorbeeld in de programmeertaal C of C++. Perl is zelf weer geschreven in de programmeertaal C.

De kern van Toutatis bestaat uit een serie Perl modules. Die modules vergroten feitelijk de mogelijkheden van Perl, en kunnen door een programmeur worden aangeroepen bij het schrijven van nieuwe software, of bij het ontwikkelen van korte scripts.

Een belangrijke toepassing van deze modules is als rechtstreekse extensie binnen het hart van de Apache webserver, via “mod_Perl”. De modules worden dan bij het opstarten van de webserver eenmalig gecompileerd en in het geheugen geladen, en zijn dan feitelijk net zo snel als waren de modules geschreven in C, de taal is waarin de Apache webserver zelf is geschreven.

Aan die innige symbiose met de Apache webserver dankt Toutatis een groot deel van zijn mogelijkheden en snelheid. Zeker de snelheid is in dit opzicht opzienbarend. In vergelijking met (Perl) CGI, een verouderd maar nog steeds heel veel gebruikte techniek bij het publiceren van dynamische websites, bereikt Toutatis een verbetering in de performance van een factor 200 tot zelfs 2000 keer!

top ^

MySQL

De standaard gebruikte database in Toutatis is MySQL. Dit is een Zweedse open-source database, die in vergelijking tot dure commerciële databases weinig toeters en bellen heeft, maar in verhouding tot diezelfde commerciële databases vooral verschrikkelijk snel is, en ook bijzonder stabiel. Om die reden is het dan ook de meest gebruikte database op het web. Daar waar bepaalde noodzakelijke functionaliteit ontbreekt – zoals het intact houden van de referentiële integriteit — heeft Toutatis hiervoor zelf oplossingen ontwikkeld. De opslag van grotere bestanden – een zwak punt van iedere SQL database – wordt door Toutatis zelf afgehandeld, daarbij gebruikmakend van specifieke eigenschappen van het Linux bestandssysteem.

top ^

Installatie en onderhoud

Toutatis is ontwikkeld en daardoor volledig afgestemd op Redhat Enterprise Linux 5.2. Installatie op andere typen Linux is niet uitgesloten maar wordt momenteel niet ondersteund. Alle Toutatis Software wordt geïnstalleerd in de vorm van zogenaamde "RPM modules". Dit is een door Redhat Linux ontwikkelde verpakking van software waarmee het installeren en upgraden van software een fluitje van een cent is. Meerdere keren per maand verschijnen hiervan nieuwe versies. Omdat deze nieuwe versies ook veiligheidsproblemen kunnen oplossen is het van belang deze zo snel mogelijk te installeren. Dat kan ofwel met de hand gebeuren, maar het is ook mogelijk de server zodanig te configureren dat updates zodra ze beschikbaar komen automatisch worden gedownload en automatisch worden geïnstalleerd.

top ^

Synchronisatie en schaalbaarheid

Meerdere Toutatis servers kunnen aan elkaar worden gekoppeld middels een speciaal hiertoe ontwikkelde XML-interface. Synchronisatie tussen de servers kan volledig geautomatiseerd plaatsvinden. Op die manier kan een onbeperkt schaalbare architectuur worden gerealiseerd.

Deze technologie kan ook worden toegepast voor het opzetten van een zogenaamde “staging environment”. Dat houdt in dat nieuwe functionaliteit of wijzigingen aan de content worden aangebracht op een speciale server die niet toegankelijk is voor het publiek. In die afgeschermde omgeving kan getest worden, om vervolgens na goedkeuring te worden geëxporteerd naar de live server dan wel naar een volgende afgeschermde staging environment.

Tenslotte wordt de synchronisatie door middel van XML toegepast om allerlei met Toutatis Software meegeleverde 'bibliotheken' en databases te importeren en up-to-date te houden. Zoals een database met ruim 125.000 geografische namen, een bibliotheek van html-templates en Javascripts, tijdzones, munteenheden, talen, vertalingen van termen, geluiden, enzovoorts.

top ^

Caching en performance

Caching niveaus in Toutatis
Websites kunnen met Toutatis een performance behalen die ongeëvenaard is. Of het nu gaat om puur statische pagina's, semi-dynamische pagina's of volledig gepersonaliseerde pagina's.

Dit houdt in dat er met eenzelfde server, vanaf een zelfde type verbinding meer pagina's kunnen worden afgeleverd dan met een ander type webserver. Dit betekent bovendien dat Toutatis een veel hogere piekbelasting kan verwerken, iets dat op het web erg belangrijk is. Immers, bij een goed functionerende PR zal uw website minimaal eens per jaar via de media in de schijnwerpers komen te staan, wat kortstondig een zeer grote belangstelling voor uw site kan opleveren. Op zo'n moment moet uw server natuurlijk wel kunnen leveren, want als uw website — zoals maar al te vaak gebeurt — op dat moment "door zijn hoeven zakt" is dat niet alleen een gemiste kans, het levert uw organisatie zelfs schade op aan het imago die lastig te herstellen kan zijn.

De belangrijkste technologie die verantwoordelijk is voor de snelle performance is vooral "caching". En dat op een slimme, gecontroleerde manier. Caching is het "achter de hand houden" (op disk of in het geheugen) van "moeizaam" verkregen data opdat deze bij een volgend verzoek veel en veel sneller beschikbaar is. Waar andere systemen alleen op de server cachen — en zelfs dat nog maar in zeer beperkte mate — en de andere vormen van caching aan het lot overlaten òf gemakshalve maar geheel uitsluiten, gebruikt Toutatis technieken waarbij op alle niveaus in het communicatie proces zeer nauwkeurig wordt gecached. Zie de illustratie hiernaast. Dat is mogelijk doordat Toutatis via zijn integratie in Apache een veel grotere controle over de diepere lagen van het HTTP protocol heeft dan bijvoorbeeld systemen die zijn gebouwd rond PHP of ASP.

Behalve het cachen van kant-en-klare pagina's vindt er op de Toutatis server ook caching plaats van "halffabrikaten". Zoals in het onderdeel Content Management is te lezen worden pagina's in Toutatis in de regel samengesteld uit meerdere afzonderlijke objecten. Voor ieder object kan de mate van caching afzonderlijk worden bepaald. Als meer en minder dynamische onderdelen op één pagina worden samengevoegd (zoals bij dynamische content eigenlijk altijd het geval is), worden de meer dynamische onderdelen pas in een later stadium in de minder dynamische "ingevoegd" via een techniek die absoluut razendsnel is. Zo kunnen ogenschijnlijk volledig dynamische en gepersonaliseerde pagina's tot wel 2000 keer sneller worden gerendeerd en afgeleverd dan op andere systemen. Wat weer betekent dat veel méér pagina's kunnen worden afgeleverd vanaf één enkele server.

top ^
Hekel aan scrollen?
download alles als PDF
(1,97 Mb)