← Back to Patent Explorer
US6567861B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for remotely running objects using data streams and/or complex parameters

Assignee: International Business Machines Corp
•
Filing: 1997-09-17
•
Granted: 2003-05-20
•
Expires: 2017-09-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Proxy data stream handling and complex object parameter handling allow object oriented programs to be run as distributed programs without any explicit networking code, and without using an interface definition language (IDL). Two proxies are generated dynamically 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, and contain support for using data stream and complex objects as parameters.

Inventors

  • 👤 Manoj V. S. Kasichainula
  • 👤 Zhiyong Li

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 16:53
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/547; G06F9/548

Claims Analysis

Total Claims: 11
Claim 1
Independent Claim 297 words
A computer implemented method for programmatically creating a distributed object program which includes data streams as parameters, wherein said programmatically created program is programmatically generated from a programmer-written program which is not specially adapted for distributed execution, the method comprising steps of: identifying one or more objects of the programmer-written program, wherein each of said objects contains one or more programmed member functions and wherein at least one of said programmed members functions is written to pass and/or return a data stream object 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 program; determining that a first object in the first set contains logic to call a second object in the second set to obtain stream data; and programmatically generating a first proxy and a second proxy for the second object, wherein the second proxy is generated to be installed on the second computer and to include logic for obtaining the stream data from the data stream object on the second computer and for passing the stream data to the first proxy as data transmitted over a network connection, and wherein the first proxy is generated to be installed on the first computer and to include logic for building a local data stream object on the first computer and for returning the local data stream object to the first object, such that the first object can transparently obtain, at run time, data from the local data stream object, wherein the local data stream object has been built to read the data transmitted over the network connection.
Claim 2
Dependent Claim 297 words
A computer implemented method for programmatically creating a distributed object program which includes data streams as parameters, wherein said programmatically created program is programmatically generated from a programmer-written program which is not specially adapted for distributed execution, the method comprising steps of: identifying one or more objects of the programmer-written program, wherein each of said objects contains one or more programmed member functions and wherein at least one of said programmed members functions is written to pass and/or return a data stream object 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 program; determining that a first object in the first set contains logic to call a second object in the second set to obtain stream data; and programmatically generating a first proxy and a second proxy for the second object, wherein the second proxy is generated to be installed on the second computer and to include logic for obtaining the stream data from the data stream object on the second computer and for passing the stream data to the first proxy as data transmitted over a network connection, and wherein the first proxy is generated to be installed on the first computer and to include logic for building a local data stream object on the first computer and for returning the local data stream object to the first object, such that the first object can transparently obtain, at run time, data from the local data stream object, wherein the local data stream object has been built to read the data transmitted over the network connection.
Claim 3
Dependent Claim 103 words
The method as claimed in claim 1 , wherein the programmatically generated first proxy further comprises logic for: receiving a call, responsive to invocation of the logic to call the second object in the second set to obtain the stream data; and responsive to receiving said call, calling the second proxy; and wherein the programmatically generated second proxy further comprises logic for: causing the second proxy to call the second object to obtain the stream data, responsive to receiving the call from the first proxy; and receiving, from the called second object, a reference to the data stream object on the second computer.
Claim 4
Dependent Claim 37 words
The method as claimed in claim 1 , wherein the logic in the programmatically generated second proxy for passing the stream data as data transmitted over a network connection transmits the data in a raw data format.
Claim 5
Dependent Claim 69 words
The method as claimed in claim 1 , further comprising the steps of: determining that a third object in the second set contains logic to call a fourth object in the first set to obtain stream data; and performing the method bidirectionally, wherein the steps of the bidirectionally-performed method operate on the third object as for the first object and on the fourth object as for the second object.
Claim 6
Dependent Claim 56 words
The method as claimed in claim 4 , wherein the logic in the programmatically generated second proxy for passing the stream data as data transmitted over a network connection creates one network connection for transmitting data between the first and second objects and a separate network connection for transmitting data between the third and fourth objects.
Claim 7
Dependent Claim 82 words
The method as claimed in claim 3 , wherein the logic in the programmatically generated second proxy for passing the stream data as data transmitted over a network connection creates a single network connection for transmitting data between the first and second objects and also for transmitting data between the third and fourth objects, and wherein the programmatically generated first proxy and a programmatically generated proxy for the fourth object further include logic for distributing the transmitted data upon receipt using multiplexing.
Claim 8
Dependent Claim 336 words
A computer program product for programmatically creating a distributed object program which includes data streams as parameters, wherein said programmatically created program is programmatically generated from a programmer-written program which is not specially adapted for distributed execution, the computer program product comprising: a computer-readable storage medium having computer-readable program code means embodied in the medium, the computer-readable program code means comprising: computer-readable program code means for identifying one or more objects of the programmer-written program, wherein each of said objects contains one or more programmed member functions and wherein at least one of said programmed members functions is written to pass and/or return a data stream object as a parameter; computer-readable program code means for 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 program; computer-readable program code means for determining that a first object in the first set contains logic to call a second object in the second set to obtain stream data; and computer-readable program code means for programmatically generating a first proxy and a second proxy for the second object, wherein the second proxy is generated to be installed on the second computer and to include logic for obtaining the stream data from the data stream object on the second computer and for passing the stream data to the first proxy as data transmitted over a network connection, and wherein the first proxy is generated to be installed on the first computer and to include logic for building a local data stream object on the first computer and for returning the local data stream object to the first object, such that the first object can transparently obtain, at run time, data from the local data stream object, wherein the local data stream object has been built to read the data transmitted over the network connection.
Claim 9
Dependent Claim 336 words
A computer program product for programmatically creating a distributed object program which includes data streams as parameters, wherein said programmatically created program is programmatically generated from a programmer-written program which is not specially adapted for distributed execution, the computer program product comprising: a computer-readable storage medium having computer-readable program code means embodied in the medium, the computer-readable program code means comprising: computer-readable program code means for identifying one or more objects of the programmer-written program, wherein each of said objects contains one or more programmed member functions and wherein at least one of said programmed members functions is written to pass and/or return a data stream object as a parameter; computer-readable program code means for 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 program; computer-readable program code means for determining that a first object in the first set contains logic to call a second object in the second set to obtain stream data; and computer-readable program code means for programmatically generating a first proxy and a second proxy for the second object, wherein the second proxy is generated to be installed on the second computer and to include logic for obtaining the stream data from the data stream object on the second computer and for passing the stream data to the first proxy as data transmitted over a network connection, and wherein the first proxy is generated to be installed on the first computer and to include logic for building a local data stream object on the first computer and for returning the local data stream object to the first object, such that the first object can transparently obtain, at run time, data from the local data stream object, wherein the local data stream object has been built to read the data transmitted over the network connection.
Claim 10
Dependent Claim 302 words
A computer system for programmatically creating a distributed object program which includes data streams as parameters, wherein said programmatically created program is programmatically generated from a programmer-written program which is not specially adapted for distributed execution, the system comprising: means for identifying one or more objects of the programmer-written program, wherein each of said objects contains one or more programmed member functions and wherein at least one of said programmed members functions is written to pass and/or return a data stream object as a parameter; means for 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 program; means for determining that a first object in the first set contains logic to call a second object in the second set to obtain stream data; and means for programmatically generating a first proxy and a second proxy for the second object, wherein the second proxy is generated to be installed on the second computer and to include logic for obtaining the stream data from the data stream object on the second computer and for passing the stream data to the first proxy as data transmitted over a network connection, and wherein the first proxy is generated to be installed on the first computer and to include logic for building a local data stream object on the first computer and for returning the local data steam object to the first object, such that the first object can transparently obtain, at ran time, data from the local data stream object, wherein the local data stream object has been built to read the data transmitted over the network connection.
Claim 11
Dependent Claim 302 words
A computer system for programmatically creating a distributed object program which includes data streams as parameters, wherein said programmatically created program is programmatically generated from a programmer-written program which is not specially adapted for distributed execution, the system comprising: means for identifying one or more objects of the programmer-written program, wherein each of said objects contains one or more programmed member functions and wherein at least one of said programmed members functions is written to pass and/or return a data stream object as a parameter; means for 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 program; means for determining that a first object in the first set contains logic to call a second object in the second set to obtain stream data; and means for programmatically generating a first proxy and a second proxy for the second object, wherein the second proxy is generated to be installed on the second computer and to include logic for obtaining the stream data from the data stream object on the second computer and for passing the stream data to the first proxy as data transmitted over a network connection, and wherein the first proxy is generated to be installed on the first computer and to include logic for building a local data stream object on the first computer and for returning the local data steam object to the first object, such that the first object can transparently obtain, at ran time, data from the local data stream object, wherein the local data stream object has been built to read the data transmitted over the network connection.

References Cited (Backward Citations)

US5218713A Cited
US5247676A Cited
US5481721A Cited
US5307490A Cited
US5457797A Cited
US5822585A Cited
US5960087A Cited
US6173327B1 Cited
US6157960A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-05-19 2006-11-18 2007-05-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-05-19 2010-11-18 2011-05-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-05-19 2014-11-18 2015-05-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag