The Apache    cat Servlet/JSP Container

Apache cat 6.0

Version 6.0.37, Apr 29 2013
Apache Logo

Links

Contents

Apache cat Architecture

Architecture Overview

Overview

This page provides an overview of the cat server architecture.

Terms
Server

In the cat world, a Server represents the whole container. cat provides a default implementation of the Server interface which is rarely customized by users.

Service

A Service is an intermediate component which lives inside a Server and ties one or more Connectors to exactly one Engine. The Service element is rarely customized by users, as the default implementation is simple and sufficient: Service interface.

Engine

An Engine represents request processing pipeline for a specific Service. As a Service may have multiple Connectors, the Engine receives and processes all requests from these connectors, handing the response back to the appropriate connector for transmission to the client. The Engine interface may be implemented to supply custom Engines, though this is uncommon.

Note that the Engine may be used for cat server clustering via the jvmRoute parameter. Read the Clustering documentation for more information.

Host

A Host is an association of a network name, e.g. www.yourcompany.com, to the cat server. An Engine may contain multiple hosts, and the Host element also supports network aliases such as yourcompany.com and abc.yourcompany.com. Users rarely create custom Hosts because the StandardHost implementation provides significant additional functionality.

Connector

A Connector handles communications with the client. There are multiple connectors available with cat. These include the HTTP connector which is used for most HTTP traffic, especially when running cat as a standalone server, and the AJP connector which implements the AJP procotol used when connecting cat to a web server such as Apache HTTPD server. Creating a customized connector is a significant effort.

Context

A Context represents a web application. A Host may contain multiple contexts, each with a unique path. The Context interface may be implemented to create custom Contexts, but this is rarely the case because the StandardContext provides significant additional functionality.

Comments

cat is designed to be a fast and efficient implementation of the Servlet Specification. cat came about as the reference implementation of this specification, and has remained rigorous in adhering to the specification. At the same time, significant attention has been paid to cat's performance and it is now on par with other servlet containers, including commercial ones.

In recent releases of cat, mostly starting with cat 5, we have begun efforts to make more aspects of cat manageable via JMX. In addition, the Manager and Admin webapps have been greatly enhanced and improved. Manageability is a primary area of concern for us as the product matures and the specification becomes more stable.


Copyright © 1999-2013, Apache Software Foundation