The X-Switch system's primary goal is to enhance the functionality that current Web servers offer. The aim is to allow one Web server to provide a comprehensive service to multiple users all using the same Web server. This means that each user can use the Web server to create files and directories on the user's behalf, in the user's home directory. The user's scripts will have the same priviliges as the user and be allowed access to the same resources.
This is the architecute diagram of the X-Switch system. It describes the interaction between the various tiers on the system.
|| A request is received by the Web server which analyses it to see which module should handle the request.
||The Web server then passes the request to mod_X, the X-Switch Apache module.
|| This module requests a socket from the X-Switch system and then passes the request down the socket to the X-Switch system.
||The X-Switch system analyses the request to find out what type of request it is, and who the script that needs to be executed belongs to.
||The X-Switch system then passes the request along to the appropriate engine if it has already been created, or creates the engine to process the request.
|| The Processing engine then processes the request and returns the result back to the X-Switch system. The processing engine remains persistent and waits for more requests to process. The X-Switch system passes the out from the processing engine back to the Apache module which returns it to the Apache Web server.
The following diagram shows the overall flow of the system to illustrate the power of the X-Switch system.
A request enters the website from numerous clients requesting different user's websites. The Server receives these requests and they are analysed by the Apache Web server. The Apace Web server sends all the appropriate requests to the X-Switch system. The X-Switch system analyses the requests and passes them to the correct user's appropriate processing engine. As can be seen from Andrew's space, one user can have many of the same processing engines initialised to cope with a large number of requests. The results of the processing is then returned to the client who requested the website.