"To get performance boosts out of Java applications, many developers choose to develop their own object management solutions to replace the default garbage collector. A common solution is object pooling. Creating a Java object is somewhat expensive; when you create objects once and reuse them many times, you reduce the overhead. This makes sense, particularly in server-side applications, as the same server code is normally executed repeatedly. For applications that run in a single Java Virtual Machine (JVM), such a solution is normally simple. In a multi-tiered architecture, however, managing object instances across multiple machines and multiple JVMs can be quite complicated.
"In this article, I'll introduce a framework for managing Java objects in a multi-tiered J2EE architecture..."