A distributed Java virtual machine method and system for managing
distributed heterogeneous network nodes to timely and efficiently meet
demand for service requests. Upon receipt of a request for service, Java
workload manager (JWLM) of the present invention classifies the request
into a particular type of service, places the work on a logical queue to
be executed. Routing queues place the work on one of many available
nodes. The work is distributed to the nodes based on accounting,
availability and past performance of all nodes considered. Changes are
made periodically to the system to meet demands for service and/or
conserve resources. JWLM of the present invention learns the needs of
programs over time and does not require the intervention of a system
administrator. The system does not rely on system specific metrics. JWLM
may use performance metrics. Additionally, the present invention allows
objects to be distributed and run on distributed workstations by
distributing work through the cluster of workstations, while behaving as
if it were initiated locally on the machine on which it runs. The similar
type of work sent to different workstations may have the same class
names, and the classpath may hold different implementations of that
object at a particular workstation. Thus, at dynamic compilation time, if
a platform has a more efficient feature than others, a work unit is
dynamically compiled with the more efficient feature.