Links Contents | Apache cat ArchitectureArchitecture 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.
|
|