A method and apparatus is provided for breaking down computing tasks
within a larger application and distributing such tasks across a network
of heterogeneous computers for simultaneous execution. The heterogeneous
computers may be connected across a wide or local area network. The
invention supports mobile agents that are self-migrating and can
transport state information and stack trace information as they move from
one host to another, continuing execution where the mobile agents may
have left off. The invention includes a server component for providing an
execution environment for the agents, in addition to sub-components which
handle real-time collaboration between the mobile agents as well as
facilities monitoring during execution. Additional components provide
realistic thread migration for the mobile agents. Real-time stack trace
information is stored as the computing tasks are executed, and if
over-utilization of the computing host occurs, execution of the computing
task can be halted and the computing task can be transferred to another
computing hosts where execution can be seamlessly resumed using the
stored, real-time state information and stack trace information.