← Back to Patent Explorer
EP0817024A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

A method and apparatus for improving the performance of object invocation

Assignee: Sun Microsystems Inc
•
Filing: 1997-05-12
•
Granted: —
•
Expires: 2017-05-12
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Data structures, methods and devices for reducing computing overhead by utilizing different invocation paths for same process and different process invocations in a distributed client/server based computing system are disclosed. In one aspect of the invention, calls to a servant that do not share the same process as the requesting client are routed through a transport layer, and calls to servants that do share the same process as the requesting client are passed directly to the servant, thereby bypassing the transport layer. In another aspect of the invention, distinct remote and local method tables are provided to facilitate intelligent routing of requests.

Inventors

  • 👤 Swee Boon Lim
  • 👤 Sanjay R. Radia
  • 👤 Peter B Kessler
  • 👤 Graham Hamilton

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-10-24 14:26
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/547; G06F9/548

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 155 words
In a distributed client/server based computing system having a dispatch mechanism for dispatching a call from client objects to servant objects that includes a transport layer, a method table dispatch layer on the client side that is above the transport layer, the method table dispatch layer including a plurality of local method tables and a plurality of remote method tables, wherein a first set of selected client representations are associated with a local method table and a second set of selected client representations are associated with a remote method table, a method of routing a call from a client to a servant, the method comprising the step of: routing the call using a remote method table and the transport layer when the client and servant do not share the same process; and routing the call using a local method table and bypassing the transport layer when the client and servant do share the same process.
Claim 2
Dependent Claim 130 words
In a distributed client/server based computing system arranged to utilize object references which uniquely identify associated objects, an arrangement comprising: a plurality of client representations indicative of requests for service, each object reference having an associated client representation, wherein selected client representations may be associated with a plurality of distinct object references; a remote method table arranged to identify remote dispatch methods associated with a first set of the client representations, the remote dispatch methods being arranged to cause invocation requests to be routed through a transport layer; and a local method table arranged to identify local dispatch methods associated with a second set of the client representations, the local dispatch methods being arranged to cause invocation requests to pass to a servant without being routed through the transport layer.
Claim 3
Dependent Claim 37 words
An arrangement as recited in claim 2 wherein the object references each include a first pointer arranged to identify an associated client representation and a second pointer arranged to identify an associated one of the method tables.
Claim 4
Dependent Claim 52 words
An arrangement as recited in claims 2 or 3 wherein each method table includes a plurality of pointers arranged to identify associated stubs, wherein each object reference that includes a pointer to a selected one of the methods tables has an associated stub that is pointed to by the selected method table.
Claim 5
Dependent Claim 54 words
An arrangement as recited in claims 2, 3, or 4 wherein a plurality of remote method tables are arranged to identify remote dispatch methods associated with the first set of client representations and a plurality of local method tables are arranged to identify local dispatch methods associated with the second set of client representations.
Claim 6
Dependent Claim 32 words
An arrangement as recited in one of claims 2-5 wherein at least some of the plurality of client representations have both an associated remote method table and an associated local method table.
Claim 7
Dependent Claim 108 words
In a distributed client/server based computing system having a plurality of client representations that have at least one of a remote method table and a local method table associated therewith, a method of narrowing an object reference, the method comprising the steps of: receiving a request for narrowing an object reference that identifies a servant object, the narrowing request being received within a client process; determining whether the servant object identified by the request is in the client process; and when it is determined that the servant object identified by the request is in the client process, creating a narrowed object reference that identifies a local method table.
Claim 8
Dependent Claim 37 words
A method as recited in claim 7 wherein when it is determined that the servant object identified by the request is not in the client process, creating a narrowed object reference that identifies a remote method table.
Claim 9
Dependent Claim 133 words
In a distributed client/server based computing system having a plurality of client representations that have one of a local m-table and a remote m-table associated therewith, a method of unmarshaling an object reference, the method comprising the steps of: receiving a request for unmarshaling an object reference that identifies a servant object, the unmarshaling request being received within a client process; determining whether the servant object identified by the request is in the client process; when it is determined that the servant object identified by the request is in the client process, creating an unmarshaled object reference that identifies a local method table; and when it is determined that the servant object identified by the request is not in the client process, creating an unmarshaled object reference that identifies a remote method table.
Claim 10
Dependent Claim 38 words
A method as recited in claim 9 wherein the request to unmarshal an object reference comprises calling an unmarshal function of a client representation with one of the local method table and the remote method table associated therewith.
Claim 11
Independent Claim 60 words
A method as recited in claims 9 or 10 wherein the client representation has a plurality of distinct local method tables associated therewith, the method further comprising the step of selecting a specific one of the local method tables associated with the client representation, and wherein the call to the unmarshal function is made with the selected local method table.
Claim 12
Dependent Claim 96 words
In a distributed client/server based computing system having a plurality of client representations that have one of a local stub and a remote stub associated therewith, a method of destringifying a stringified object reference, the method comprising the steps of: converting the stringified object reference into a binary string which is suitable for decoding by a marshal buffer; obtaining a marshal buffer to encapsulate the binary string; and invoking a method of unmarshaling the contents of the marshal buffer, wherein the unmarshaling is accomplished utilizing the method of any one of claims 9, 10, or 11.
Claim 13
Dependent Claim 16 words
A method as recited in claim 12 wherein the stringified object is a ASCII stringified object.
Claim 14
Dependent Claim 117 words
In a distributed client/server based computing system, a method of invoking a servant from a client, the method comprising the steps of: calling a function pointed to by a client representation associated with the client, the client representation including a local hook arranged to indicate whether the function includes additional code to be executed by the client/server based object oriented operating system; determining whether the function pointed to by the client representation is a local stub function, the local stub function being a stub function in a local process relative to the client; and when it is determined that the function pointed to by the client representation is the local stab function, executing the local stab function.
Claim 15
Dependent Claim 117 words
A method as recited in claim 14 wherein the step of executing the local stab function further comprises the steps of: determining whether the local hook of the client representation indicates that additional code is to be executed; when it is determined that the local hook of the client representation is active, calling a pre-local dispatch method of the client representation, the pre-local dispatch method being arranged to gather information relating to the client representation; obtaining the servant from the client representation; calling a method identified in the servant, the method being a local dispatch method; and calling a post-local dispatch method of the client representation, the post-local dispatch method being associated with the pre-local dispatch method.
Claim 16
Dependent Claim 39 words
A method as recited in claim 15 wherein a generic holder is passed into the call of the pre-local dispatch method, the generic holder being arranged to pass information between the pre-local dispatch method and the post-local dispatch method.
Claim 17
Independent Claim 24 words
A method as recited in claims 15 or 16 wherein the pre-local dispatch method prepares the servant for receiving a call from the client.
Claim 18
Independent Claim 18 words
A method as recited in claims 15, 16, or 17 wherein the post-local dispatch method deactivates the servant.
Claim 19
Dependent Claim 167 words
A computer program product comprising a computer-usable medium having computer-readable code embodied thereon for invoking an object method defined on a distributed server object within a distributed object computing system, the distributed object computing system arranged to utilize object references which uniquely identify associated objects, the computer program product comprising computer-readable program code for an arrangement comprising: a plurality of client representations indicative of requests for service, each object reference having an associated client representation, wherein selected client representations may be associated with a plurality of distinct object references; a remote method table arranged to identify remote dispatch methods associated with a first set of the client representations, the remote dispatch methods being arranged to cause invocation requests to be routed through a transport layer; and a local method table arranged to identify local dispatch methods associated with a second set of the client representations, the local dispatch methods being arranged to cause invocation requests to pass to a servant without being routed through the transport layer.
Claim 20
Dependent Claim 46 words
A computer program product comprising computer-readable program code for an arrangement as recited in claim 19 wherein the object references each include a first pointer arranged to identify an associated client representation and a second pointer arranged to identify an associated one of the method tables.
Claim 21
Dependent Claim 61 words
A computer program product comprising computer-readable program code for an arrangement as recited in claims 19 or 20 wherein each method table includes a plurality of pointers arranged to identify associated stubs, wherein each object reference that includes a pointer to a selected one of the methods tables has a associated stub that is pointed to by the selected method table.
Claim 22
Dependent Claim 45 words
A computer program product comprising computer-readable program code for a arrangement as recited in any one of claims 19, 20, or 21 wherein at least some of the plurality of client representations have both an associated remote method table and an associated local method table.
Claim 23
Dependent Claim 192 words
A computer program product comprising a computer-usable medium having computer-readable code embodied thereon for invoking an object method defined on a distributed servant object within a distributed object computing system, the distributed object computing system having a plurality of client representations that have at least one of a remote method table and a local method table associated therewith, the computer program product comprising computer-readable program code for effecting the following steps within the computer system: receiving a request for processing an object reference that identifies the servant object, the narrowing request being received within a client process, wherein the request for processing is one of a request for narrowing the object reference and a request for unmarshaling the object reference; determining whether the servant object identified by the request is in the client process; when it is determined that the servant object identified by the request is in the client process, creating a processed object reference that identifies a local method table; and when it is determined that the servant object identified by the request is not in the client process, creating a processed object reference that identifies a remote method table.
Claim 24
Dependent Claim 44 words
A computer program product comprising computer-readable program code as recited in claim 23 wherein the request to narrow an object reference comprises calling a narrow function of a client representation with one of the local method table and the remote method table associated therewith.
Claim 25
Dependent Claim 66 words
A computer program product comprising computer-readable program code as recited in claims 23 or 24 wherein the client representation has a plurality of distinct local method tables associated therewith, the method further comprising the step of selecting a specific one of the local method tables associated with the client representation, and wherein the call to the duplicate function is made with the selected local method table.
Claim 26
Dependent Claim 44 words
A computer program product comprising computer-readable program code as recited in claim 23 wherein the request to unmarshal an object reference comprises calling an unmarshal function of a client representation with one of the local method table and the remote method table associated therewith.
Claim 27
Dependent Claim 66 words
A computer program product comprising computer-readable program code as recited in claims 23 or 26 wherein the client representation has a plurality of distinct local method tables associated therewith, the method further comprising the step of selecting a specific one of the local method tables associated with the client representation, and wherein the call to the unmarshal function is made with the selected local method table.
Claim 28
Dependent Claim 142 words
A computer program product comprising a computer-usable medium having computer-readable code embodied thereon for invoking an object method defined on a distributed server object within a distributed object computing system, the computer program product comprising computer-readable program code for effecting the following steps within the computer system: calling a function pointed to by a client representation associated with the client, the client representation including a local hook arranged to indicate whether the function includes additional code to be executed by the client/server based distributed object computing system; determining whether the function pointed to by the client representation is a local stub function, the local stub function being a stub function in a local process relative to the client; and when it is determined that the function pointed to by the client representation is the local stub function, executing the local stub function.
Claim 29
Dependent Claim 123 words
A computer program product comprising computer-readable program code as recited in claim 28 wherein the step of executing the local stub function further comprises the steps of: determining whether the local hook of the client representation indicates that additional code is to be executed; when it is determined that the local hook of the client representation is active, calling a pre-local dispatch method of the client representation, the pre-local dispatch method being arranged to gather information relating to the client representation; obtaining the servant from the client representation; calling a method identified in the servant, the method being a local dispatch method; and calling a post-local dispatch method of the client representation, the post-local dispatch method being associated with the pre-local dispatch method.
Claim 30
Dependent Claim 45 words
A computer program product comprising computer-readable program code as recited in claim 29 wherein a generic holder is passed into the call of the pre-local dispatch method, the generic holder being arranged to pass information between the pre-local dispatch method and the post-local dispatch method.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag