US6157960A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Technique for programmatically creating distributed object programs
Assignee: International Business Machines Corp
•
Filing: 1997-05-07
•
Granted: 2000-12-05
•
Expires: 2017-05-07
Abstract
Abstract The automatic object distribution of the present invention allows object oriented programs to be run as distributed programs without any explicit networking code, and without using an interface definition language (IDL). The present invention allows programmers to experiment with different distributions without complicating the programming task. It accomplishes this by generating two proxies that allow method calls written for local invocation to be invoked over a network. These dynamically-generated proxies allow calls to flow across a network as if they were local.
Inventors
- 👤 David Louis Kaminsky
- 👤 Richard Adam King
- 👤 Zhiyong Li
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 21:11
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F15/163; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/546; G06F9/547; G06F9/548
Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
315 words
A method for programmatically creating distributed object programs, said method comprising the steps of: identifying a plurality of objects in a program to be distributed, wherein each of said objects contains one or more programmed methods; determining a first set of objects which are to reside on a first computer and a second set of objects which are to reside on a second computer, wherein said first set and said second set together comprise said identified plurality; determining a first plurality of programmed methods which are accessed from said objects in said first set but which are contained in said objects of said second set; determining a first subset of said objects in said second set which contain said first plurality of programmed methods; programmatically generating a first local proxy and a corresponding first remote proxy for each object in said first subset, said first remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said first plurality of programmed methods and said first local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said first remote proxy using said network linkage; installing said first set of objects and said first local proxy for each object of said first subset on said first computer; installing said second set of objects and said first remote proxy for each object of said first subset on said second computer; and transparently accessing selected ones of said first plurality of programmed methods in selected ones of said objects in said second set, in response to invocation by selected ones of said objects in said first set, through a selected one of said first local proxies and a corresponding one of said first remote proxies.
Claim 2
Independent Claim
315 words
A method for programmatically creating distributed object programs, said method comprising the steps of: identifying a plurality of objects in a program to be distributed, wherein each of said objects contains one or more programmed methods; determining a first set of objects which are to reside on a first computer and a second set of objects which are to reside on a second computer, wherein said first set and said second set together comprise said identified plurality; determining a first plurality of programmed methods which are accessed from said objects in said first set but which are contained in said objects of said second set; determining a first subset of said objects in said second set which contain said first plurality of programmed methods; programmatically generating a first local proxy and a corresponding first remote proxy for each object in said first subset, said first remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said first plurality of programmed methods and said first local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said first remote proxy using said network linkage; installing said first set of objects and said first local proxy for each object of said first subset on said first computer; installing said second set of objects and said first remote proxy for each object of said first subset on said second computer; and transparently accessing selected ones of said first plurality of programmed methods in selected ones of said objects in said second set, in response to invocation by selected ones of said objects in said first set, through a selected one of said first local proxies and a corresponding one of said first remote proxies.
Claim 3
Dependent Claim
34 words
The method as claimed in claim 1, wherein said programmatically generated local methods in said first local proxy for each object have identical names as corresponding methods in said first plurality of programmed methods.
Claim 4
Dependent Claim
33 words
The method as claimed in claim 1, wherein said network linkage includes statements for remote invocation of each of said corresponding ones of said programmatically generated remote methods in said first remote proxy.
Claim 5
Dependent Claim
237 words
The method as claimed in claim 1, further comprising the steps of: determining a second plurality of programmed methods which are accessed from said objects in said second set but which are contained in said objects of said first set; determining a second subset of said objects in said first set which contain said second plurality of programmed methods; programmatically generating a second local proxy and a corresponding second remote proxy for each object in said second subset, said second remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said second plurality of programmed methods and said second local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said second remote proxy using said network linkage; installing said second local proxy for each object of said second subset on said second computer; installing second remote proxy for each object in said second subset on said first computer; and transparently accessing selected ones of said second plurality of programmed methods in selected ones of said objects in said first set, in response to invocation by selected ones of said objects in said second set, through a selected one of said second local proxies and a corresponding one of said second remote proxies.
Claim 6
Dependent Claim
34 words
The method as claimed in claim 4, wherein said programmatically generated local methods in said second local proxy for each object have identical names as corresponding methods in said second plurality of programmed methods.
Claim 7
Dependent Claim
362 words
A computer program product for programmatically creating distributed object programs, said computer program product embodied on computer-readable storage media and comprising: computer-readable program code means for identifying a plurality of objects in a program to be distributed, wherein each of said objects contains one or more programmed methods; computer-readable program code means for determining a first set of objects which are to reside on a first computer and a second set of objects which are to reside on a second computer, wherein said first set and said second set together comprise said identified plurality; computer-readable program code means for determining a first plurality of programmed methods which are accessed from said objects in said first set but which are contained in said objects of said second set; computer-readable program code means for determining a first subset of said objects in said second set which contain said first plurality of programmed methods; computer-readable program code means for programmatically generating a first local proxy and a corresponding first remote proxy for each object in said first subset, said first remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said first plurality of programmed methods and said first local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said first remote proxy using said network linkage; computer-readable program code means for installing said first set of objects and said first local proxy for each object of said first subset on said first computer; computer-readable program code means for installing said second set of objects and said first remote proxy for each object of said first subset on said second computer; and computer-readable program code means for transparently accessing selected ones of said first plurality of programmed methods in selected ones of said objects in said second set, in response to invocation by selected ones of said objects in said first set, through a selected one of said first local proxies and a corresponding one of said first remote proxies.
Claim 8
Dependent Claim
362 words
A computer program product for programmatically creating distributed object programs, said computer program product embodied on computer-readable storage media and comprising: computer-readable program code means for identifying a plurality of objects in a program to be distributed, wherein each of said objects contains one or more programmed methods; computer-readable program code means for determining a first set of objects which are to reside on a first computer and a second set of objects which are to reside on a second computer, wherein said first set and said second set together comprise said identified plurality; computer-readable program code means for determining a first plurality of programmed methods which are accessed from said objects in said first set but which are contained in said objects of said second set; computer-readable program code means for determining a first subset of said objects in said second set which contain said first plurality of programmed methods; computer-readable program code means for programmatically generating a first local proxy and a corresponding first remote proxy for each object in said first subset, said first remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said first plurality of programmed methods and said first local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said first remote proxy using said network linkage; computer-readable program code means for installing said first set of objects and said first local proxy for each object of said first subset on said first computer; computer-readable program code means for installing said second set of objects and said first remote proxy for each object of said first subset on said second computer; and computer-readable program code means for transparently accessing selected ones of said first plurality of programmed methods in selected ones of said objects in said second set, in response to invocation by selected ones of said objects in said first set, through a selected one of said first local proxies and a corresponding one of said first remote proxies.
Claim 9
Dependent Claim
36 words
The computer program product as claimed in claim 6, wherein said programmatically generated local methods in said first local proxy for each object have identical names as corresponding methods in said first plurality of programmed methods.
Claim 10
Dependent Claim
35 words
The computer program product as claimed in claim 6, wherein said network linkage includes statements for remote invocation of each of said corresponding ones of said programmatically generated remote methods in said first remote proxy.
Claim 11
Dependent Claim
266 words
The computer program product as claimed in claim 6, further comprising: computer-readable program code means for determining a second plurality of programmed methods which are accessed from said objects in said second set but which are contained in said objects of said first set; computer-readable program code means for determining a second subset of said objects in said first set which contain said second plurality of programmed methods; computer-readable program code means for programmatically generating a second local proxy and a corresponding second remote proxy for each object in said second subset, said second remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said second plurality of programmed methods and said second local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said second remote proxy using said network linkage; computer-readable program code means for installing said second local proxy for each object of said second subset on said second computer; computer-readable program code means for installing second remote proxy for each object in said second subset on said first computer; and computer-readable program code means for transparently accessing selected ones of said second plurality of programmed methods in selected ones of said objects in said first set, in response to invocation by selected ones of said objects in said second set, through a selected one of said second local proxies and a corresponding one of said second remote proxies.
Claim 12
Dependent Claim
36 words
The computer program product as claimed in claim 9, wherein said programmatically generated local methods in said second local proxy for each object have identical names as corresponding methods in said second plurality of programmed methods.
Claim 13
Independent Claim
328 words
A system for programmatically creating distributed object programs, said system comprising: means for identifying a plurality of objects in a program to be distributed, wherein each of said objects contains one or more programmed methods; means for determining a first set of objects which are to reside on a first computer and a second set of objects which are to reside on a second computer, wherein said first set and said second set together comprise said identified plurality; means for determining a first plurality of programmed methods which are accessed from said objects in said first set but which are contained in said objects of said second set; means for determining a first subset of said objects in said second set which contain said first plurality of programmed methods; means for programmatically generating a first local proxy and a corresponding first remote proxy for each object in said first subset, said first remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said first plurality of programmed methods and said first local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said first remote proxy using said network linkage; means for installing said first set of objects and said first local proxy for each object of said first subset on said first computer; means for installing said second set of objects and said first remote proxy for each object of said first subset on said second computer; and means for transparently accessing selected ones of said first plurality of programmed methods in selected ones of said objects in said second set, in response to invocation by selected ones of said objects in said first set, through a selected one of said first local proxies and a corresponding one of said first remote proxies.
Claim 14
Independent Claim
328 words
A system for programmatically creating distributed object programs, said system comprising: means for identifying a plurality of objects in a program to be distributed, wherein each of said objects contains one or more programmed methods; means for determining a first set of objects which are to reside on a first computer and a second set of objects which are to reside on a second computer, wherein said first set and said second set together comprise said identified plurality; means for determining a first plurality of programmed methods which are accessed from said objects in said first set but which are contained in said objects of said second set; means for determining a first subset of said objects in said second set which contain said first plurality of programmed methods; means for programmatically generating a first local proxy and a corresponding first remote proxy for each object in said first subset, said first remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said first plurality of programmed methods and said first local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said first remote proxy using said network linkage; means for installing said first set of objects and said first local proxy for each object of said first subset on said first computer; means for installing said second set of objects and said first remote proxy for each object of said first subset on said second computer; and means for transparently accessing selected ones of said first plurality of programmed methods in selected ones of said objects in said second set, in response to invocation by selected ones of said objects in said first set, through a selected one of said first local proxies and a corresponding one of said first remote proxies.
Claim 15
Dependent Claim
34 words
The system as claimed in claim 11, wherein said programmatically generated local methods in said first local proxy for each object have identical names as corresponding methods in said first plurality of programmed methods.
Claim 16
Dependent Claim
33 words
The system as claimed in claim 11, wherein said network linkage includes statements for remote invocation of each of said corresponding ones of said programmatically generated remote methods in said first remote proxy.
Claim 17
Dependent Claim
246 words
The system as claimed in claim 11, further comprising: means for determining a second plurality of programmed methods which are accessed from said objects in said second set but which are contained in said objects of said first set; means for determining a second subset of said objects in said first set which contain said second plurality of programmed methods; means for programmatically generating a second local proxy and a corresponding second remote proxy for each object in said second subset, said second remote proxy containing at least one programmatically generated remote method, wherein each of said programmatically generated remote methods accesses a corresponding method from said second plurality of programmed methods and said second local proxy containing network linkage and at least one programmatically generated local method, wherein each of said programmatically generated local methods accesses a corresponding one of said programmatically generated remote methods in said second remote proxy using said network linkage; means for installing said second local proxy for each object of said second subset on said second computer; means for installing second remote proxy for each object in said second subset on said first computer; and means for transparently accessing selected ones of said second plurality of programmed methods in selected ones of said objects in said first set, in response to invocation by selected ones of said objects in said second set, through a selected one of said second local proxies and a corresponding one of said second remote proxies.
Claim 18
Dependent Claim
34 words
The system as claimed in claim 14, wherein said programmatically generated local methods in said second local proxy for each object have identical names as corresponding methods in said second plurality of programmed methods.
References Cited (Backward Citations)
US5136716A
Cited
US5481721A
Cited
US5684955A
Cited
US5640564A
Cited
US5822585A
Cited
GB2305270A
Cited
US5822521A
Cited
US5768532A
Cited
US5948072A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-12-05 | 2004-06-05 | 2004-12-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-12-05 | 2008-06-05 | 2008-12-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-12-05 | 2012-06-05 | 2012-12-05 | $7700.00 | Window Closed / Lapsed |