GMS Architecture

From BZFlagWiki
Jump to: navigation, search
Picture Frame.png This page contains a specification document for an enhancement or feature. It is a work of collaborative development, and may not represent the final design. If you are not part of the development or design group, please post comments and suggestions on the talk page and not in the middle of the design.

A three-tier architecture was chosen to allow the interface to be changed independently of the application/business logic, and to allow the data storage technology to be changed (database, LDAP etc) without impacting the application/business logic layer.


Depiction of the Group Management System architecture

Smarty Templates[edit]

The Smarty PHP Template Engine will be used to cleanly separate the application logic from the presentation code. Smarty uses place-holder tags which are replaced with live content at run-time.


Note that Smarty version 3 requires PHP version 5.0 or later, however an earlier version Smarty 2 will work on PHP version 4.


Database Abstraction[edit]

The Active Data Objects DataBase ADODB database abstraction library will be used to 'insulate' the application logic from the underlying database server (MySQL). Using this abstraction layer will enable the underlying database technology to be changed from MySQL to some other database (eg FireBird, PostgreSQL, LDAP etc) without requiring a change to the application logic.

Note that PHP version 5.0 or later is required.


GMS Controllers[edit]

These are objects providing functions within the application logic, and may be implemented as methods.


GMS PHP Pages[edit]

These are objects providing the core application logic.


Data Access Components[edit]

These are objects providing access to underlying database tables, reading values from tables into objects, storing values etc.


Zend PHP Engine[edit]

This is the engine on the my.bzflag.org web server which interprets PHP code.