Datasheet

Chapter 1
8
The Big Picture: J2EE
As a servlet container, Tomcat is a key component of a larger set of standards collectively referred to as
the Java 2 Platform, Enterprise Edition (J2EE). J2EE defines a group of Java-based code libraries (called
APIs in the Java world) that are suited to creating web applications for the enterprise (that is, a large
company). To be sure, companies of any size can take advantage of the J2EE technologies, but J2EE is
especially designed to solve the problems associated with the creation of large software systems. Java
developers can download all of the J2EE APIs in a single ZIP archive, which comes complete with
binaries and documentation.
Distributed Systems
We saw in the previous section that J2EE is designed with the creation of large software systems in
mind. You, the reader, may ask, "What is so different about large software systems versus small
systems?" The answer lies in the notion of distributed systems.
A distributed system is one in which the various components of the system are distributed across
multiple different machines. For example, in a given web application, one server might handle receiving
and responding to HTTP requests while another server handles all the business logic, and another
server handles all the database I/O:
Client
Web Server
Business Logic
Database Access
Database
So why create a distributed system? Large web applications and enterprise systems can have enormous
demands placed upon them. Frequently, these demands are larger than a single server can meet. While
one may be tempted to simply upgrade the server, adding more processors and more memory to it,
these upgrades can only stretch the server's capacity so far. Every server, no matter how expandable
and efficient it may be, will run up against limitations.