System Administration Guide: Resource Management and Network Services

NCA Architecture

The NCA feature includes the following components.

The kernel module ncakmod maintains the cache of web pages in system memory. The module communicates with a web server, httpd, through a sockets interface (family type PF_NCA).

The kernel module also provides a logging facility that logs all HTTP cache hits. NCA logging writes HTTP data to the disk in binary format. NCA provides a conversion utility for converting binary log files to common log format (CLF).

The following figure shows the flow of data for the conventional path and the path that is used when NCA is enabled.

Figure 2-1 Data Flow with the NCA Service

Flow diagram shows the flow of data from a client request through the NCA layer in the kernel.

NCA to Httpd Request Flow

The following list shows the request flow between the client and the web server.

  1. An HTTP request is made from the client to the web server.

  2. If the page is in cache, the in-kernel cache web page is returned.

  3. If the page is not in cache, the request goes to the web server to retrieve or update the page.

  4. Depending on the HTTP protocol semantics that are used in the response, the page is cached or not. Then, the page is returned to the client. If the Pragma: No-cache header is included in the HTTP request, the page is not cached.

Interpositioning Library for Door Server Daemon Support

Many web servers use AF_INET sockets. By default, NCA uses AF_NCA sockets. To correct this situation, an interpositioning library is provided. The new library is loaded in front of the standard socket library, libsocket.so. The library call bind() is interposed by the new library, ncad_addr.so. If the status is enabled in /etc/nca/ncakmod.conf, the version of Apache that is included with the Solaris 9 release is already set up to call this library. If you are using IWS or Netscape servers, see "How to Load the NCA Socket Utility Library" to use the new library.