next up previous contents index
Next: Index Up: The Apache Modeling Project Previous: Bibliography   Contents   Index


Application Programming Interface, a means to extend a software system in terms of functionality. Usually an API consists of a set of functions to extract data from the system and manipulate the system. In Apache, the core calls module callbacks via the module API while the procedures of a modul can use the Apache (core) API to access and modify Apache data structures and alter the way it handles requests.

Common Gateway Interface, one of the first techniques of enhancing web servers and creating dynamic and multifunctional web pages. Using cgi the web server is enabled to execute applications or basic programming instructions which usually generate an HTML document. If used with HTML forms, the client transmits data with parameters encoded in the URL or with the message body of a "POST" request. Today other techniques like PHP, servlets, java server pages (JSP) or ASP are widely used alternatives for cgi.

* Directive (Configuration Directive)
Apache processes Configuration Directives while reading the configuration files during start-up or during request processing.

* Filter
A Filter processes data by reading from an input and writing to an output channel. A sequence of filters where one filter processes the output of another is called filter chain. Apache 2 uses an input filter chain to process the HTTP request and an output filter chain to process the HTTP response. Modules can dynamically register filters for both chains.

* Graceful Restart
Whenever the administrator wants to apply a changed configuration to a running Apache, he must restart the server. This would interrupt the server processes which currently process requests. A client would encounter an error or time-out. A graceful restart leaves alone all server processes which currently process a request. They can finish the answer to the request and terminate. Therefore a client does not notice the server restart.

* Handler
A handler is a callback procedure registered for a certain event. When the event occurs, the event dispatcher will call all handlers in a specific order. In Apache, the events during request processing are marked by hooks. Apache Modules register Handlers for certain hooks, for example for "URI translation".

* Header
Most messages transmitted in the internet consist of a header and a body. A header usually contains protocol information and meta information about the payload transmitted in the body.

* Hook
A hook is a processing step where the handlers (callback procedures) registered for this Hook will be called. In Apache 1.3, the hooks were defined by the module API, while Apache 2 allows adding new hooks.

Hyper Text Mark-up Language is a document format which is used for documents in the World Wide Web. An HTML document basically contains the text, with formatting hints, information about the text and references to futher components of the document like images that should be included when displaying the page. A web server's task is to deliver the HTML page and supply the resources referenced within the HTML page when requested. HTML documents can be static files or created dynamically by the server.

* Job Queue Server Model
A Multitasking Server Model using a job queue to provide communication between dedicated listener task(s) and a pool of idle worker tasks. A listener task waits for a request and puts a job entry holding the connection information into the queue. An idle worker task waits until it gets a job entry and uses the connection information to get and process the request.
An idle worker queue advises the listener to only accept requests if there is at least one idle worker in this queue. Else the request could not be processed immediately.

* Leader-Follower Server Model
A Multitasking Server Model using a pool of tasks changing their roles: One Listener Task is waiting for requests (the leader) while idle tasks (the followers) are waiting to become the new listener. After the listener task has received a request, it changes its role and becomes worker processing the request. One idle task now becomes the Listener. After the work has been done, the worker becomes an idle task. The Preforking Model (see p. [*]) is a Leader-Follower Model

* Module (plug-in)
A separate piece of software intended to enhance an existing software system using a dedicated interface. This interface must be general enough to allow adding new functionality with future modules. An Apache module can register handlers for hooks that will be called in well-defined situations, and it can access resources of Apache and use its core functionality by the Apache API.

* Multiprocessing or threading
Multitasking means the concurrent execution more than one program by the same machine. Each task executes a program and uses resources of the machine. For each task, the machine provides a virtual processor equipped with a program counter (PC), a stack, and access to memory and I/O resources. In Unix, the tasks are called processes which don't share resources while in Windows, the tasks are called threads which use the same memory and I/O handles.

* Mutex
MUTual EXclusion mechanism, a means for inter-task communication usually provided by the operating system. Concurrent tasks use a mutex to ensure that only one task can access a shared resource. Any other task trying to get the mutex will either be blocked (suspended) until the mutex is released, or its request will be rejected.

* Port
In TCP/IP, a Port is part of an address. Each node on the Internet can be identified by its IP address. Using TCP or UDP, a node can offer 65536 ports for each of these protocols on each IP address, and assign ports to services or a client applications. A TCP or UDP packet contains both origin and destination addresses including the ports, so the operating system can therefore identify the application or service as its receiver.

* Preforking Server Model
A Multitasking Server Model using a pool of Unix Processes (see Leader-Follower above). In contrast to the straightforward solution where a master server process waits for a request and creates a child server process to handle an incoming request, the Apache master server process creates a bunch of processes that wait for the requests themselves. The master server is responsible for keeping the number of idle servers within a given limit.

* Process
In the Multitasking context, a process is a task with high protection and isolation against other processes. The memory areas of two processes are separated completely. Processes can be executed using different user IDs resulting in different access rights. Sub-processes share file handles with their parent process.

* Semaphore
A mechanism for inter-task communication, provided by the operating system. A semaphore is similar to a mutex, but provides a counter instead of a binary state.

* Stateless Protocol
A protocol is stateless if there is no relation between subsequent request-response pairs. The server can handle each request uniquely and does not have to keep a session state for the client.

* Thread
In the Multitasking context, a thread is a task with low protection and isolation against other threads because they share memory and file handles. Usually, a thread runs in the context of a process. A crashing thread will not only die but cause all other threads of the same context to die as well.

A Uniform Resource locator is an address for a resource on the Internet. Resource in this context can be a document, a file or dynamic information. URL usually contains information about the protocol which has to be used to access the resource, the address of the node the resource resides on and the location of the resource within the target node. Furthermore it can contain additional information like parameters especially for dynamically generated information.

next up previous contents index
Next: Index Up: The Apache Modeling Project Previous: Bibliography   Contents   Index
Apache Modeling Portal Home Apache Modeling Portal