The main components that make up the WRB are shown in Fig. 1. The dispatcher and cartridges are built over the ORB and utilize the ORB for inter-component communication. This allows the components to be distributed on remote machines, for performance and scalability reasons. The dispatcher is responsible for routing requests received from the HTTP daemon to the appropriate cartridge. It is designed to be extensible and daemon independent.
Cartridges are modules of code performing specific application or system functions.
They form the centerpiece of the WRB framework. We discuss cartridges in detail in the following section. For now it suffices to think of cartridges as specialized code modules. The typical stages involved in processing a client request are as follows. Upon receiving the client request from the underlying daemon, the dispatcher determines which cartridge needs to handle the request by using the naming service system cartridge.