A clustered enterprise Java distributed processing system is provided.
The distributed processing system includes a first and a second computer coupled
to a communication medium. The first computer includes a Java virtual machine
(JVM) and kernel software layer for transferring messages, including a remote Java
virtual machine (RJVM). The second computer includes a JVM and a kernel software
layer having a RJVM. Messages are passed from a RJVM to the JVM in one computer
to the JVM and RJVM in the second computer. Messages may be forwarded through an
intermediate server or rerouted after a network reconfiguration. Each computer
includes a Smart stub having a replica handler, including a load balancing software
component and a failover software component. Each computer includes a duplicated
service naming tree for storing a pool of Smart stubs at a node. The computers
may be programmed in a stateless, stateless factory, or a stateful programming
model. The clustered enterprise Java distributed processing system allows
for enhanced scalability and fault tolerance.