Patent ID: 6941561

Claim:
A computer implemented method for programmatically creating a distributed object program in which at least one complex object is passed as a parameter, wherein the programmatically-created program is programmatically generated from a programmer-written program which is not specially adapted for distributed execution, the method comprising the computer executable steps of: identifying one or more objects in the programmer-written program, wherein each of the objects contains one or more programmed member functions and wherein at least one of the programmed member functions is written to pass one of the objects as a parameter; determining a first set of the identified objects which are to reside on a first computer and a second set of the identified objects which are to reside on a second computer, wherein the first set and the second set together comprise the identified objects of the programmer-written program and the first set and the second set each include at least one of the identified objects; programmatically generating, upon detecting that a first object in the first set contains logic to call one of the programmed member fictions of a second object in the second set, a first proxy and a second proxy for the second object, wherein the first proxy is generated to be installed on the first computer and the second proxy is generated to be installed on the second computer; programmatically generating logic in the first proxy that will programmatically generate a third proxy, responsive to detecting that the call to the programmed member function of the second object will pass, as a parameter, a third object that is a complex object and that is one of the objects in the first set, wherein the third proxy is generated to be installed on the first computer; and programmatically generating logic in the second proxy that will programmatically generate a forth proxy, responsive to a call from the first proxy that includes a reference to the third proxy, wherein the fourth proxy is generated to be installed on the second computer, such that, at run time, the first object can transparently access the programmed member function of the second object and the programmed member function of the second object can transparently access a programmed member function of the third object.