The first part is the IP address of the server on which the cartridge resides. The second part is a virtual path in the server directory structure that can be used uniquely associated with the cartridge. It also allows quite a lot of flexibility in naming cartridges, avoiding name conflicts, as well as allowing the name space to grow as new cartridges are added to the system. Each cartridge has a standard interface, which provides a common overall structure for all cartridges. This may include invoking the constructors of several subobjects, preforking threads and acquiring all other required shared resources.
Normal processing resumes after unquiescing.
The major states in the lifetime of a cartridge instance are shown in Fig. 2. The Web Request Broker supports a rich API that is accessible to cartridges, independent of the underlying HTTP daemon. The set of request service routines provides cartridges information about the client making the request, information about the request itself, as well as information about the underlying daemon. The content management routines provide a uniform interface to content stored either in the file system or the database. The WRB API discussed in the previous section lends itself to a number of different programming idioms or paradigms .