An improved method and apparatus for balancing distributed applications within
a client/server network, such as a cable television network, is disclosed. In one
aspect of the invention, a method of balancing the load of distributed application
client portions (DACPs) across various server portions (DASPs) and server machines
is disclosed. Statistics are maintained by one or more software processes with
respect to the available resources of the servers and their loading; new process
threads and/or distributed application server portions are allocated across the
servers to maintain optimal system performance as client device loading increases
or changes. In another aspect of the invention, a novel object-oriented distributed
application software architecture employing both vertical and horizontal partitions
and "mutable" (i.e., transportable) objects is disclosed. The mutable objects may
reside on either the server or client portions of the distributed application while
maintaining at least one network partition. A runtime environment adapted for the
operation of the foregoing object-oriented distributed application, including an
efficient message protocol useful for interprocess communication, is also disclosed.
Methods for downloading the DACP from the servers, and scaling the DACP at download
based on client device configuration, are further disclosed.