You are on page 1of 5

eFront Architecture 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 users 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.

eFront Architecture

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.

eFront Architecture

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.

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.

Service Topology

eFront Architecture

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. Service Topology 4

eFront Architecture 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 webconferencing 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.

Service Topology