Contact Us
Freedombase Pty Ltd
7 Woodlands Edge
Templestowe 3106
Victoria, Australia

General Enquiries
Ph: +61 4 1837 1251
enquiries@freedombase.com

Technical Support
Ph: +61 4 1170 0016
support@freedombase.com
Copyright 2010 Freedombase Pty Ltd
Freedombase Architecture

The fundamental architecture of Freedombase, including a description of a normal Web request and response. Please
note that many Freedombase features are not described or included in this architecture diagram.
[Click on the diagram to the left to open in a new window.]
Step Description
Step 1
A standard HTTP request is sent from any standard Web browser.
Step 2 The Web server forwards the request to the Freedombase control code, using any kind of connection between
the Web server and the database system that Freedombase is running on.
Step 3 The Freedombase control code extracts data for each instance passed back from the page, and passes the
data for each instance to the appropriate classes for processing.
Step 4 The class can optionally integrate external code, that will be executed before the class does anything with the
data, and can alter what the class will do.
Step 5 The class applies any business logic and validation that has been defined, and that is relevant to the
command being processed. The class may write data into the database, and may pull data out of the database, as
part of this processing.
Step 6 The class can optionally integrate external code, that will be executed after the class processes the data, and
can alter what the class will return.
Step 7 The class returns the processed data to the Freedombase control code.
Step 8 The Freedombase control code determines what template to use/to return to the page, and executes that
template code.
Step 9 The template code can optionally integrate external code, that will be executed before the template code does
anything, and can alter what the template will do.
Step 10 If required, the template code will request data from classes. The request may be for a specific
record/row/instance, or for data related to other data already retrieved.
Step 11 The class can optionally integrate external code, that will be executed before the class does anything with
the request for data, and can alter what the class will do with that request for data.
Step 12 The class retrieves the data requested, or drills to find the data requested based on data already held, if
appropriate.
Step 13 The class can optionally integrate external code, that will be executed after the class processes the request
for data, and can alter what the class will return.
Step 14 The class returns the requested data to the template code, if appropriate.
Step 15 The template code can optionally integrate external code, that will be executed after the template code
completes processing, and can alter what the template code will return.
Step 16 The template code returns the template output to the Freedombase control code, as a finished HTTP
response or Web page ready to be displayed, with data and Freedombase commands integrated into the page.
Step 17 The Freedombase control code returns a standard HTTP request to the Web server. The standard HTTP
request contains the Template output from the template code.
Step 18 The Web server returns the HTTP response to the Web browser, to be displayed, and ready for the next
iteration to begin.
Click to open in new window