The next wave in J2EE deployment

Get ready for network attached processing

1 2 Page 2
Page 2 of 2

Figure 3 shows the difference between a typical three-tier application and the same application modified to use compute pools. The major difference is that a large number of application-tier servers can be replaced with a small number of compute appliances, while the application configuration can remain unchanged, and additional capacity can be added and managed more easily.

Figure 3. Transforming the middle tier with network attached processing. Click on thumbnail to view full-sized image.

New possibilities for developers

Network attached processing is yet another generation in a progression of technologies, each of which builds upon the success, or failures, of its predecessors. Any given generation of software development technology has a "sweet spot"—the type and complexity of applications envisioned by the technology's architects. As applications increase in complexity, they start to push the technology's capability to cleanly model the business and technical problem, and the effort required to implement a highly complex application with a barely adequate technology increases, sometimes dramatically. Each generation of enterprise software development technology has increased the size (or in some cases, the location) of the sweet spot, so more and more complex applications can be developed with a reasonable amount of effort. By allowing you to allocate significantly more resources to an application than is practical with commodity hardware and dynamically allocate additional resources as necessary, large applications can be written to run in a single JVM (although good reasons remain for designing for clustering, such as availability and fault tolerance), which greatly reduces development and deployment complexity. The range of problems that can be directly solved with less development effort and software infrastructure grows.

Imagine what you could develop if you were not constrained by the availability of processor cycles or memory. Most application designs are implicitly constrained by what can be efficiently implemented on the dominant platform and development paradigm of the day. When those constraints go out the window, new worlds of possibility open up. This is cool stuff.

Summary

Network attached processing is a new and promising technology for reducing the cost and complexity of developing, deploying, managing, and provisioning distributed J2EE applications. While it is still a nascent technology, real products are available now, such as Azul's compute appliance. While no magic bullet takes all the pain out of J2EE deployment, network attached processing looks like a promising and welcome development indeed.

Brian Goetz has been a professional software developer for the past 18 years. He is a principal consultant at Quiotix, a software development and consulting firm located in Los Altos, California, and he serves on several Java Community Process expert groups. See his published and upcoming articles in popular industry publications, and look for his upcoming book, Java Concurrency in Practice, in October 2005 from Addison-Wesley.

Learn more about this topic

1 2 Page 2
Page 2 of 2