|
De architectuur van eFront is gebaseerd op een 3-tier ontwerp:
Op de top is er de presentatie laag, bestaande uit HTML en Javascript-code. Deze code wordt geleverd op de website met de browser van de gebruiker, op de client zijde. De presentatielaag is gebouwd op de server zijde, met behulp van slimme templates. In het midden is er de logica tier, dat is geschreven in PHP 5 en is verantwoordelijk voor de server-zijde functionaliteiten. Het communiceert met de presentatielaag via HTML formulieren en Javascript AJAX queries. Aan de onderkant is er de data tier. Alle gegevens uit de logica tier zijn opgeslagen in een MySQL database, met behulp van de ADODB bibliotheken als een intermediair interface. Optioneel, alleen voor de gebruiker-specifieke vragen, kan een LDAP-gegevensbron worden verstrekt. Het volgende diagram geeft de architectuur hierboven beschreven

Snapshot: eFront Architecture
De presentatielaag is gebaseerd op HTML en javascript. Voor Javascript en AJAX, de PrototypeJS bibliotheek en het equivalent GUI libraries, Scriptaculous, worden op grote schaal gebruikt in de software. Daarnaast, eFront maakt gebruik van de TinyMCE editor voor het maken van door de gebruiker gedefinieerde content. Ten slotte, zoals hierboven vermeld, is de HTML-code gegenereerd met behulp van de Smarty template engine.

Snapshot: Presentation Tier
De logica tier is gemaakt van verschillende, interfunctionele componenten. De programma kern ligt binnen in de systeem klassen, die elk een specifieke entiteit hebben, zoals een gebruiker, een les, een bestand, enz. Het forum en de chat functionaliteiten worden gescheiden van de kern logica, maar stevig er mee gebonden. eFront maakt ook gebruik van verschillende PEAR bibliotheken, die zijn samen gebundeld met de software, evenals tcpdf voor het genereren van on-the-fly PDF-documenten en php-OFC bibliotheek voor het dynamisch maken van flash charts. De programma logica kan worden verlengd met aangepaste modules die worden geïmporteerd in het systeem.

Snapshot: Logic Tier
De data tier gebruikt ADODB bibliotheken voor de communicatie met de database, waardoor het mogelijk is om eenvoudig uit te breiden voor interactie met andere databases dan MySQL. Voor LDAP interconnectie, zijn alle grote LDAP-directory's ondersteund, waaronder Active Directory, voor alleen-lezen toegang. Tot slot kan de gebruiker gegenereerde inhoud worden opgeslagen in fysieke bestanden op het bestandssysteem

Snapshot: Data Tier
|