In this part I shall look at the overall system structure of the CMS and what each part is supposed to do. I won't go into too much detail at this point, I just want to get an overview.
Again, the client sends a request to the CMS, this is handled by the SCGI Handler which will be a queue of tasks that does the work. We uses tasking here so we can ultimately have a number of simultaneous requests being handled at any one time which is more efficient.
On each request the CMS needs to know if the user has permission to do whatever they are requesting. e.g. a normal user cannot access the admin pages of any of the Documents, Fields or API's but a normal user can view content created by a document and it's fields.
The CMS also needs to know what to do exactly, i.e. has the user filled in a form and sent it back to the server or has the user just selected a link to view some content?
The Response Builder utilises the various elements of the CMS (i.e. Documents, Fields, API's, etc.) to build up the page from it's various parts, send it through the template parser and then pass it back to the SCGI Handler and thus back to the client.
The various elements in the CMS such as Documents, Users, Fields, etc. all access the database and thus is implied, there the database is not shown on the diagram.
If you have any comments or any ideas that I've missed out, please use the form below.