It's all about data distribution.
If you were delivering Web applications a year or more ago, the choices as to which technologies and platforms to use were limited, and those technologies were fairly hard to use. Anyone who had to come to grips with Perl and CGI will remember how complicated life was.
Today, the Java 2 Enterprise Edition (J2EE) platform has matured to deliver a range of easy-to-use, standards-based technologies, making it faster and easier to deploy Web applications. But J2EE is only the first step in delivering Web applications. Ensuring that your Web application scales is often a bigger challenge than deploying it in the first place.
A Web site that succeeds in attracting visitors can be swamped with requests. Poor performance at this point will decrease the visitors' overall satisfaction and may lead them to leave the site. Once they have gone, there is little hope of attracting them back.
At the end of the day, good Web site performance depends on efficient data distribution. Even in a transactional system, 90 percent or more of server interactions are about data distribution--reading and formatting data--since most of the time visitors to Web sites are reading rather than transacting. So it is extremely important to ensure that readers are satisfied and that reading is both fast and efficient.
The J2EE application platform. Over the past couple of years, the J2EE platform has become a common choice for delivering Web applications. The introduction of Java Server Pages and Servlets, which can run along with Java Database Connectivity in a Web server environment, has led to the three-tiered Web application model becoming easier to deliver and portable across operating systems. What this adds up to is faster time-to-market for Web applications.
EJB and the N-tier architecture. The adoption of Enterprise JavaBean (EJB) technology, which effectively wraps up data content into business components, was a major feature of J2EE 1.2. It enabled developers to build reusable business components that were managed by the EJB server and so provided a better separation of concerns, with the presentation clearly handled by the Web server, the business logic by the EJB server and the data management by the database. This model still holds for the majority of application builders.
Latency issues. Unfortunately, the J2EE solution has inherent performance problems that have their roots in the latency between the layers. The latency between browser and Web server is essentially tied to a threading model within Web servers that holds a thread/request. The thread you are allocated is blocked until the request returns.