Likno E-learning Arquitecture


The architecture of Likno eLearning LMS is 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:


Snapshot: Likno eLearning LMS Architecture


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, Likno eLearning LMS 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.



Snapshot: Presentation Tier



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. Likno eLearning LMS 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.


Snapshot: Logic Tier



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.

Snapshot: Data Tier