FreedomSoft - "the future is freedom"
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; please see the features page for a full list and description.


Step Description
1 A standard HTTP request is sent from any standard Web browser.
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.
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.
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.
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.
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.
7 The class returns the processed data to the Freedombase control code.
8 The Freedombase control code determines what template to use/to return to the page, and executes that template code.
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.
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.
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.
12 The class retrieves the data requested, or drills to find the data requested based on data already held, if appropriate.
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.
14 The class returns the requested data to the template code, if appropriate.
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.
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.
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.
18 The Web server returns the HTTP response to the Web browser, to be displayed, and ready for the next iteration to begin.
    freedombase     tutorials     freedomsoft     login