Distributed Java Servlet Containers

The Java Servlet Specification version 2.2 (long ago) defined and specified the semantics of distributed servlet containers and the servlet specifications 2.3 through 2.5 further clarified them. The specifications define the behavior and leave much of the implementation detail up to the servlet container authors. Part of what they specify is behavior that can only be implemented as part of the core of any servlet container—a distributed-aware facility built into that core. Specification-compliant distributed servlet container functionality can never be implemented without the servlet container core being aware of the distributed servlet container behavior that the Java Servlet Specifications describe.

Tomcat was originally architected as a nondistributed servlet container, but since that initial version, work has been done to implement all of the required features to allow it to operate as a distributed servlet container when it is properly configured for that purpose. Even if you ran your webapp in a specification-compliant distributed servlet container, your web applications may not be able to take advantage of these distributed container features unless your webapps are written to operate as distributed webapps. Here is how the specification describes what a distributable web application is:

A web application that is written so that it can be deployed in a web container distributed across multiple Java virtual machines running on the same host ...

Get Tomcat: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.