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

Method and system for implementing remote procedure calls in a distributed computer system

Assignee: Hewlett Packard Development Co LP
•
Filing: 1992-08-28
•
Granted: 1994-04-26
•
Expires: 2012-08-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and a method for implementing remote procedure calls in a distributed computer system provide a base object class from which all distributed objects can be derived. A program extracting all classes derived from the base class provides an inheritance tree to allow down casting from a root class to a base class and to allow passing high level data structure between participants of a remote procedure call. An Unix script provides stub routines for implementing a client-server model communicating processes.

Inventors

  • 👤 Thomas J. Davidson
  • 👤 Michael T. Kelley

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 20:57
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/547; H; H04; H04L; H04L67/00; H04L67/01; H04L67/133; H04L69/00; H04L9/00; H04L9/40

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 388 words
A structure for sharing data objects in application programs of a distributed computer system, said distributed computer system comprising first and second computers, said structure comprising: a first application level interface, in said first computer, to a first remote procedure call mechanism; a second application level interface, in said second computer, to a second remote procedure call mechanism; means, in said first and second computers, for coupling said first and said second remote procedure call mechanisms, for transporting data between said first and second computers; first means, coupled to said first application level interface, for providing a data structure representing a base class of sharable objects, each sharable object being accessible by processes in said first and second computers; second means, coupled to said second application level interface, for providing said data structure representing said base class of sharable objects; first means, coupled to said first application level interface, for providing data structures representing a plurality of classes of sharable objects each derived, in accordance with a hierarchy of classes, from said base class, each sharable object in each of said plurality of classes of sharable objects being accessible by processes in said first and second computers; second means, coupled to said second application level interface, for providing said data structures representing said plurality of classes of sharable objects; first means, in said first computer, for constructing an inheritance tree rooted in a data structure representing said base class, said inheritance tree having data structures representing relationships among said classes of sharable objects and said base class, in accordance with said hierarchy of classes; second means, in said second computer, for constructing said inheritance tree in said second computer; first means, in said first computer, for traversing said inheritance tree to construct a data structure representing a relationship between a first object and a second object in said first computer, said first object being specified in a machine-independent format by a process in said second computer via said first and second remote procedure call mechanisms; and second means, in said second computer, for traversing said inheritance tree to construct a data structure representing a relationship between a first object and a second object in said second computer, said first object being specified by a process in said first computer, via said first and second remote procedure call mechanisms.
Claim 2
Dependent Claim 388 words
A structure for sharing data objects in application programs of a distributed computer system, said distributed computer system comprising first and second computers, said structure comprising: a first application level interface, in said first computer, to a first remote procedure call mechanism; a second application level interface, in said second computer, to a second remote procedure call mechanism; means, in said first and second computers, for coupling said first and said second remote procedure call mechanisms, for transporting data between said first and second computers; first means, coupled to said first application level interface, for providing a data structure representing a base class of sharable objects, each sharable object being accessible by processes in said first and second computers; second means, coupled to said second application level interface, for providing said data structure representing said base class of sharable objects; first means, coupled to said first application level interface, for providing data structures representing a plurality of classes of sharable objects each derived, in accordance with a hierarchy of classes, from said base class, each sharable object in each of said plurality of classes of sharable objects being accessible by processes in said first and second computers; second means, coupled to said second application level interface, for providing said data structures representing said plurality of classes of sharable objects; first means, in said first computer, for constructing an inheritance tree rooted in a data structure representing said base class, said inheritance tree having data structures representing relationships among said classes of sharable objects and said base class, in accordance with said hierarchy of classes; second means, in said second computer, for constructing said inheritance tree in said second computer; first means, in said first computer, for traversing said inheritance tree to construct a data structure representing a relationship between a first object and a second object in said first computer, said first object being specified in a machine-independent format by a process in said second computer via said first and second remote procedure call mechanisms; and second means, in said second computer, for traversing said inheritance tree to construct a data structure representing a relationship between a first object and a second object in said second computer, said first object being specified by a process in said first computer, via said first and second remote procedure call mechanisms.
Claim 3
Dependent Claim 53 words
A structure as in claim 1, wherein each of said sharable objects comprises a server object in a selected one of said first and second computers, and a client object in the other of said first and second computers, said server and client objects communicating via said first and second application level interfaces.
Claim 4
Dependent Claim 46 words
A structure as in claim 2, wherein said server object being provided with a plurality of methods to be executed on said selected computer, and said client object accessing each of said methods via a remote procedure call over said first and second application level interfaces.
Claim 5
Dependent Claim 45 words
A structure as in claim 3, further comprising means for computing, based on said inheritance tress and using a pointer to a shared object, a pointer to either (a) a parent object containing said shared object, or (b) an included object of said parent object.
Claim 6
Dependent Claim 60 words
A structure as in claim 4, wherein said server object maintains a list of sharable objects, and wherein said client object specifies a method in one of said sharable objects in said list using an index into said list, said server object then taking said index to obtain a pointer to said method using said means for computing a pointer.
Claim 7
Dependent Claim 45 words
A structure as in claim 3, wherein said server object returns result of executing any one of said methods to said client object via said first and second application level interfaces, and said client object waits in a sleep mode until said result is received.
Claim 8
Dependent Claim 35 words
A structure as in claim 3, wherein said server object returns any error message generated during execution of any one of said methods to said client object via said first and second application level interfaces.
Claim 9
Dependent Claim 37 words
A structure as in claim 2, wherein said client object belongs to either (a) the server object's class of sharable objects, or (b) a class of sharable objects derived from said server object's class of sharable objects.
Claim 10
Dependent Claim 59 words
A structure as in claim 8, wherein said server object sends said client object a server manifest listing the server object's class and classes from which said sever object's class is derived, and wherein said client object sends said server object a client manifest listing the client object's class and classes from which said client object's class is derived.
Claim 11
Dependent Claim 50 words
A structure as in claim 2, wherein said client object creates a server communication object and a message notifying said server object creation of said server communication object, and wherein, in response to said message, said server object creates a client communication object for sending messages to said client object.
Claim 12
Independent Claim 261 words
A method for sharing data objects in application programs of a distributed computer system, said distributed computer system comprising first and second computers, said method comprising the steps of: providing, in said first computer, a first application level interface to a first remote procedure call mechanism in said first computer; providing, in said second computer, a second application level interface to a second remote procedure call mechanism in said second computer; coupling said first and second remote procedure call mechanisms in said first and second computers so as to transport data between said first and second computers; providing a data structure in each of said first and second computers for representing a base class of sharable objects in said first and second computers and providing data structures in each of said first and second computers for representing a plurality of classes of sharable objects each derived from said base class; and providing, in each of said first and second computers, an inheritance tree rooted in a data structure representing said base class, said inheritance tree having data structures relating, in accordance with a hierarchy, said plurality of classes and said base class; and traversing, in each of said first and second computers, said inheritance tree to construct a data structure representing a relationship between a first object and a second object, whenever said first object is specified by a process in one of said first and second computers and provided to the other of said first and second computers via said remote procedure call mechanisms in said first and second computers.
Claim 13
Independent Claim 261 words
A method for sharing data objects in application programs of a distributed computer system, said distributed computer system comprising first and second computers, said method comprising the steps of: providing, in said first computer, a first application level interface to a first remote procedure call mechanism in said first computer; providing, in said second computer, a second application level interface to a second remote procedure call mechanism in said second computer; coupling said first and second remote procedure call mechanisms in said first and second computers so as to transport data between said first and second computers; providing a data structure in each of said first and second computers for representing a base class of sharable objects in said first and second computers and providing data structures in each of said first and second computers for representing a plurality of classes of sharable objects each derived from said base class; and providing, in each of said first and second computers, an inheritance tree rooted in a data structure representing said base class, said inheritance tree having data structures relating, in accordance with a hierarchy, said plurality of classes and said base class; and traversing, in each of said first and second computers, said inheritance tree to construct a data structure representing a relationship between a first object and a second object, whenever said first object is specified by a process in one of said first and second computers and provided to the other of said first and second computers via said remote procedure call mechanisms in said first and second computers.
Claim 14
Dependent Claim 58 words
A method as in claim 11, further comprising the step of implementing each of said sharable objects as a server object in a selected one of said first and second computers, and a client object in the other of said first and second computers, said server and client objects communicating via said first and second application level interfaces.
Claim 15
Dependent Claim 41 words
A method as in claim 12, further comprising the step of providing said client object in either (a) the server object's class of sharable objects, or (b) a class of sharable objects derived from said server object's class of sharable objects.
Claim 16
Dependent Claim 50 words
A method as in claim 13, further comprising the steps of: providing said server object with a plurality of methods to be executed on said selected computer; and accessing, from said client object, each of said methods via a remote procedure call over said first and second application level interfaces.
Claim 17
Dependent Claim 54 words
A method as in claim 14, further comprising the step of computing, in each of said first and second computers, based on said inheritance tree and using a pointer to a shared object, a pointer to either (a) a parent object containing said shared object, or (b) an included object of said parent object.
Claim 18
Dependent Claim 57 words
A method as in claim 15, further comprising the steps maintaining in said server object a list of sharable objects; specifying an index into said list, when accessing any method in one of said sharable objects in said list; and taking said index to obtain a pointer to said method using said step for computing a pointer.
Claim 19
Dependent Claim 52 words
A method as in claim 14, further comprising the steps of: returning from said server object a result of executing any one of said methods to said client object via said first and second application level interfaces, and waiting in a sleep mode of said client object until said result in received.
Claim 20
Dependent Claim 36 words
A method as in claim 14, further comprising the step of returning any error message generated during execution of any one of said methods to said client object via said first and second application level interfaces.
Claim 21
Dependent Claim 56 words
A method as in claim 13, further comprising the steps of: sending said client object a server manifest listing the server object's class and classes from which said server object's class is derived; and sending said server object a client manifest listing the client object's class and classes from which said client object's class is derived.
Claim 22
Dependent Claim 55 words
A method as in claim 12, further comprising the steps of: creating in said client object a server communication object and a message notifying said server object creation of said server communication object; and creating in said server object, in response to said message, a client communication object for sending messages to said client object.

References Cited (Backward Citations)

US4887204A Cited
US4914586A Cited
US5187790A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-04-25 1997-10-25 1998-04-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-04-25 2001-10-25 2002-04-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-04-25 2005-10-25 2006-04-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag