← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag