Specific Challenges

To really focus on the pieces of the request-processing puzzle, we need to look first at the deceptively simple and pretty picture and then zoom in on the ugly details. Let's consider an example where a client requests and receives data from a server. We won't assume anything about client/server proximity. In fact, we'll consider the worst case—that they're not in the same address space (like threads in a common program) and communicate over a network.

For this example, consider a client that makes a simple request of a server: Return all of the pizza restaurants in Chicago. Figure 6-1 represents the “pretty picture” view of this request. In contrast, Figure 6-2 illustrates the ugly details.

Figure 6-1. The pretty picture ...

Get Building Scalable and High-Performance Java™ Web Applications Using J2EE™ Technology 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.