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.
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.
Learn more about this topic
- Find out more about Azul's network attached processing solution
http://www.azulsystems.com - Read more observations about management and organizational behavior from Peter Senge in The Fifth Discipline (Currency, January 1994; ISBN0385260954)
http://www.amazon.com/exec/obidos/ASIN/0385260954/javaworld - This 451 Group whitepaper discusses how all the major CPU vendors are moving towards multicore designs
http://www.azulsystems.com/media/The_451_Group_Mis_451_Mis_Report.htm? - NetworkWorldFusion describes network attached processing as computing power on demand in "Start-Up Promises Computing Power on Demand," Jennifer Mears (March 2005)
http://www.nwfusion.com/news/2005/030705-azul-systems.html - Shahin Khan, VP and CMO at Azul Systems, talks about a world where processors can be bought by the kilo-core in "Get Ready to Buy Chips by the Kilo" (The Register, January 2005)
http://www.theregister.co.uk/2005/01/11/azul_khan_comment/ - For more articles on J2EE development, browse the Java 2 Platform, Enterprise Edition (J2EE) section of JavaWorld's Topical Index
http://www.javaworld.com/channel_content/jw-j2ee-index.shtml? - For more articles on Java development tools, browse the Development Tools section of JavaWorld's Topical Index
http://www.javaworld.com/channel_content/jw-tools-index.shtml