eFront wiki

username password

eFront Architecture

    Table of contents
    1. 1. Service Topology

    eFront is build using an Object-Oriented approach (introduced on PHP 5+) and an architecture based on a 3-tier design:

    At the top, there is the presentation layer, comprised of HTML and Javascript code. This code is delivered on the user’s web browser, on the client side. The presentation layer is built server-side, using Smarty templates. In the middle there is the logic tier, which is written in PHP 5 and is responsible for the server-side functionality. It communicates with the presentation layer via HTML forms and Javascript AJAX queries. At the bottom, there is the data tier. All data coming from the logic tier is stored inside a MySQL database, using the AdoDB libraries as an intermediate interface. Optionally, only for user-specific queries, an LDAP data source may be provided. The following diagram depicts the architecture described above:


    The presentation layer is based upon HTML and javascript. For Javascript and AJAX, the PrototypeJS library and its equivalent GUI libraries, Scriptaculous, are used extensively throughout the software. In addition, eFront makes use of the tinyMCE editor for creating user-defined content. Finally, as stated above, the HTML code is generated using the Smarty template engine.

    presentation tier.png

    The logic tier is made of several different, interoperating components. The program core lies within the system classes, each representing a specific entity, such as a User, a Lesson, a File, etc. The forum and chat functionalities are separated from the core logic, but tightly bonded with it. eFront also makes use of several PEAR libraries, which are bundled along with the software, as well as tcpdf for generating on-the-fly PDF documents and php-ofc library for dynamically creating flash charts. The program logic may be extended with custom modules that are imported to the system.

    logic tier.png

    The data tier uses AdoDB libraries for communicating with the database, making it possible to easily extend interaction with databases other than MySQL. For LDAP interconnection, all major LDAP directories are supported, including Active Directory, for read-only access. Finally, user generated content may be stored in physical files on the file system.

    data tier.png

    Service Topology

    The following indicative service topology describes how an eFront service can “horizontally” expand to support more users and content. This topology is based on the assumption that all users are supported from a centralized infrastructure.


    The network elements are as follows:

    • Trainees access the service through the internet and via an internet browser (IE 6 and above or Mozilla Firefox 3 and above).
    • Tutors access the service through the internet and via an internet browser (IE 6 and above or Mozilla Firefox 3 and above).
    • Internet cloud is the internet network accessed via any internet service provider.
    • Router through which all internet traffic is passed through the local area network. Typically this is provided by the internet service provider along-with internet connection.
    • External firewall is a system that secures a network, shielding it from access by unauthorized users. Firewalls can be implemented in software, hardware or a combination of both. In addition to preventing unrestricted access into a network, a firewall can also restrict data from flowing out of a network through various configurations.
    • Demilitarized zone (DMZ) is a configuration, where most computers on the LAN run behind a firewall connected to a public network like the Internet. One or more computers also run outside the firewall, in the DMZ. These computers on the outside intercept traffic and broker requests for the rest of the LAN, adding an extra layer of protection for computers behind the firewall.
    • E-Mail server with SMTP (Simple Mail Transfer Protocol) gateway for sending emails.
    • E-Learning web-server with e-learning software installed on it. The proposed architecture will have farm of web-servers with network load balancer.
    • E-Learning QC web-server will be used for quality checking before we put system into production.
    • Internal firewall same as above but this gives an extra layer of protection to internal network, thereby securing the sensitive data from outside intruders.
    • File server for e-learning is a dedicated network computer that stores data files so that other computers can share access to them.
    • Database server for e-learning with databases needed by e-learning, digital library and web-conferencing system. The database server will use db clustering for 100% redundancy and replication.
    • Disk Array High performance disk arrays will be used for storing the DB data files and replication of files from file server.
    Page last modified 15:57, 21 Dec 2010 by elpapath