This wiki is archived and useful information is being migrated to the main bzflag.org website

GMS Architecture

From BZFlagWiki
Revision as of 07:56, 10 February 2013 by JeffM2501 (Talk | contribs) (Move to spec)

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

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

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

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


GMS PHP Pages

These are objects providing the core application logic.


Data Access Components

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


Zend PHP Engine

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


Category:Group Manager