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

Method and apparatus for executing code during method invocation

Assignee: Sun Microsystems Inc
•
Filing: 1997-12-18
•
Granted: 2001-06-19
•
Expires: 2017-12-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract One or more filters may be included in each object implementation in a CORBA distributed object system. Each CORBA server object maintains a registry of filters containing unique identifiers and specifications for each of the filters and the order in which the filters must be applied. The filters execute selected code either before or after the conventional marshaling and unmarshaling which take place during a method invocation in the system. The CORBA client object builds a filter registry, from information that it received from the server. Filters may also be present in the client side of the ORB in order to execute code before and after the marshaling and unmarshaling that takes place in the client side of the ORB and these latter filters are also included in the client filter registry. The client then uses its filter registry to invoke the filters during a subsequent method invocation. The client also receives a time stamp from the server to identify the current filter composition. In method invocations to the server, the client includes the value of the time stamp it received and the server returns an exception to the client if the time stamps do not match. In response to this exception, the client re-invokes the _retrieve_filters() method in order to obtain the most recent filter registry contents and time stamp from the server.

Inventors

  • 👤 Anita Jindal
  • 👤 Ken M. Cavanaugh
  • 👤 Sanjeev Krishnan
  • 👤 Rohit Garg

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 21:58
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/542; G06F9/547; G06F9/548

Claims Analysis

Total Claims: 77
Claim 1
Independent Claim 151 words
Apparatus for providing a framework for the execution of server-specified code at selected points during a method invocation in a distributed object system having clients and servers, the apparatus comprising: a plurality of server filters, each of the server filters having an identifier and executing selected code during the method invocation; a server filter registry in the server object, the server filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; and a client filter registry in the client object, the client filter registry containing filter identifiers, exported from the server object and stored in the client filter registry in response to an invocation of the method for retrieving the filter identifiers wherein the client object can selectively invoke one or more of said server filters using the filter identifiers in the client filter registry during a later method invocation in the distributed object system.
Claim 2
Dependent Claim 151 words
Apparatus for providing a framework for the execution of server-specified code at selected points during a method invocation in a distributed object system having clients and servers, the apparatus comprising: a plurality of server filters, each of the server filters having an identifier and executing selected code during the method invocation; a server filter registry in the server object, the server filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; and a client filter registry in the client object, the client filter registry containing filter identifiers, exported from the server object and stored in the client filter registry in response to an invocation of the method for retrieving the filter identifiers wherein the client object can selectively invoke one or more of said server filters using the filter identifiers in the client filter registry during a later method invocation in the distributed object system.
Claim 3
Dependent Claim 145 words
The apparatus of claim 1 wherein the apparatus includes: a plurality of filter registries in the server, each registry corresponding to an implementation supported by the server, each filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; a plurality of client filters, each of the client filters having an identifier and executing selected code during the method invocation; a client filter registry in the client, the client filter registry containing filter identifiers and the corresponding client side filter implementations, and a filter implementation group in each client object, said filter implementation group including filter lists containing client side filter implementations, where the identifiers of the client side filter implementations correspond to the filter identifiers obtained from the server object that corresponds to the client object in response to the method for retrieving filter identifiers from the server object.
Claim 4
Dependent Claim 18 words
The apparatus of claim 2 wherein the filter lists correspond to pre filters, post filters, and transform filters.
Claim 5
Dependent Claim 24 words
The apparatus of claim 1 wherein a method invoked on the client object also invokes the filters indicated by the client object's filter lists.
Claim 6
Dependent Claim 45 words
The apparatus of claim 1 wherein the client contains a filter implementation group cache which maintains a mapping from object implementation identifiers to filter implementation groups, where an object implementation identifier includes the host name of a server, a server identifier, and an implementation identifier.
Claim 7
Dependent Claim 49 words
The apparatus of claim 1 wherein the distributed object system includes an object request broker which transmits the method invocation from the client object to the server object and wherein the server filters are located in implementation specific code which connects the server object to the object request broker.
Claim 8
Dependent Claim 24 words
The apparatus of claim 6 further comprising a plurality of client filters each having an identifier and being located in the object request broker.
Claim 9
Dependent Claim 22 words
The apparatus of claim 7 wherein the client filter registry includes filter identifiers for both the client filters and the server filters.
Claim 10
Dependent Claim 39 words
The apparatus of claim 6 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the plurality of server filters includes a pre-filter which executes code before the marshaling and unmarshaling operates.
Claim 11
Dependent Claim 39 words
The apparatus of claim 6 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the plurality of server filters includes a post-filter which executes code after the marshaling and unmarshaling operates.
Claim 12
Dependent Claim 65 words
The apparatus of claim 6 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the plurality of server filters includes a pre-filter which executes code before the marshaling and unmarshaling operates, a post-filter which executes code after the marshaling and unmarshaling operates and transform filters which execute code before the pre-filter operates and after the post-filter operates.
Claim 13
Dependent Claim 30 words
The apparatus of claim 6 wherein the client object utilizes all the server filters effected in the implementation specific code which connects the server object to the object request broker.
Claim 14
Dependent Claim 11 words
The apparatus of claim 1 wherein each filter identifier is unique.
Claim 15
Dependent Claim 11 words
The apparatus of claim 1 wherein the filter identifiers are hierarchical.
Claim 16
Dependent Claim 21 words
The apparatus of claim 1 wherein the server filter registry indicates an order in which the filters are to be invoked.
Claim 17
Dependent Claim 25 words
The apparatus of claim 1 wherein the server filter registry and the client filter registry each include an indication of parameters required by each filter.
Claim 18
Dependent Claim 35 words
The apparatus of claim 1 further including filter registration application programmer interfaces whereby filters may be added to, and removed from, the plurality of filters and the server filter registry during distributed object system operation.
Claim 19
Dependent Claim 27 words
The apparatus of claim 17 wherein the server filter registry includes a storage which stores an indication reflecting the current composition of the plurality of server filters.
Claim 20
Dependent Claim 20 words
The apparatus of claim 18 wherein the server object includes a mechanism which sends the indication to the client object.
Claim 21
Dependent Claim 53 words
The apparatus of claim 19 wherein the client object includes the indication in the method invocation and the server object includes a mechanism to alert the client object if the indication in the method invocation indicates that the client filter registry does not include the current composition of the plurality of server filters.
Claim 22
Dependent Claim 31 words
The apparatus of claim 1 further comprising a mechanism for downloading filter code from the server object to the client object so that the client object can run the filter code.
Claim 23
Independent Claim 162 words
A method for providing a framework for the execution of client-specified code at selected points during a method invocation in a distributed object system having client and server objects, the method comprising the steps of: (a) constructing a plurality of server filters, each of the server filters having an identifier and executing selected code during the method invocation; (b) constructing a server filter registry in the server object, the server filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; (c) constructing a client filter implementation group in the client object, the client filter implementation group containing client filter implementations corresponding to filter identifiers exported from server objects and stored in the client filter implementation group in response to an invocation of the method for retrieving the filter identifiers; and (d) using the client object to invoke one or more filters in the filter implementation group during a later method invocation in the distributed object system.
Claim 24
Independent Claim 162 words
A method for providing a framework for the execution of client-specified code at selected points during a method invocation in a distributed object system having client and server objects, the method comprising the steps of: (a) constructing a plurality of server filters, each of the server filters having an identifier and executing selected code during the method invocation; (b) constructing a server filter registry in the server object, the server filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; (c) constructing a client filter implementation group in the client object, the client filter implementation group containing client filter implementations corresponding to filter identifiers exported from server objects and stored in the client filter implementation group in response to an invocation of the method for retrieving the filter identifiers; and (d) using the client object to invoke one or more filters in the filter implementation group during a later method invocation in the distributed object system.
Claim 25
Dependent Claim 29 words
The method of claim 22 wherein step (d) comprises the step of: (e) using the client object to selectively invoke filters that are flagged as optional by said server.
Claim 26
Dependent Claim 55 words
The method of claim 23 wherein the distributed object system includes an object request broker which transmits the method invocation from the client object to the server object and wherein step (a) comprises the step of: (a1) constructing the server filters in implementation specific code which connects the server object to the object request broker.
Claim 27
Dependent Claim 29 words
The method of claim 24 further comprising the step of: (e) constructing a plurality of client filters each having an identifier and being located in the object request broker.
Claim 28
Dependent Claim 30 words
The method of claim 25 wherein step (c) comprises the step of: (c1) constructing the client filter registry with filter identifiers for both the client filters and the server filters.
Claim 29
Dependent Claim 41 words
The method of claim 24 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and step (a) comprises the step of: (a2) constructing a pre-filter which executes code before the marshaling and unmarshaling operates.
Claim 30
Dependent Claim 42 words
The method of claim 24 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and step (a) comprises the step of: (a3) constructing a post-filter which executes code after the marshaling and unmarshaling mechanism operates.
Claim 31
Dependent Claim 78 words
The method of claim 24 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and step (a) comprises the steps of: (a4) constructing a pre-filter which executes code before the marshaling and unmarshaling operates; (a5) constructing a post-filter which executes code after the marshaling and unmarshaling mechanism operates; (a6) constructing a transform filter which executes code before the pre-filter; and (a7) constructing a transform filter which executes code after the post-filter.
Claim 32
Dependent Claim 33 words
The method of claim 24 wherein step (d) comprises the step of: (d1) utilizing all the filters effected in the implementation specific code which connects the server object to the object request broker.
Claim 33
Dependent Claim 20 words
The method of claim 23 wherein step (a) comprises the step of: (a8) constructing each filter with a unique identifier.
Claim 34
Dependent Claim 22 words
The method of claim 23 wherein step (a) comprises the step of: (a9) constructing the plurality of filters with hierarchical filter identifiers.
Claim 35
Dependent Claim 30 words
The method of claim 23 wherein step (b) comprises the step of: (b1) constructing the server filter registry to indicate an order in which the filters are to be invoked.
Claim 36
Dependent Claim 49 words
The method of claim 23 wherein step (b) includes the step of: (b2) constructing the server filter registry with an indication of parameters required by each filter, and step (c) comprises the step of: (c2) constructing the client filter registry with an indication of parameters required by each filter.
Claim 37
Dependent Claim 37 words
The method of claim 23 further comprising the step of: (f) using filter registration application programmer interfaces to add and remove filters from the plurality of filters and the server filter registry during distributed object system operation.
Claim 38
Dependent Claim 31 words
The method of claim 35 further comprising the step of: (g) storing an indication reflecting the current composition of the plurality of server filters in a storage in the server object.
Claim 39
Dependent Claim 22 words
The method of claim 36 further comprising the step of: (h) sending the indication from the server object to the client object.
Claim 40
Dependent Claim 59 words
The method of claim 37 further comprising the steps of: (i) including the indication in the method invocation; (j) receiving the method invocation in the server object; and (k) alerting the client object if the indication in the received method invocation indicates that the client filter registry does not include the current composition of the plurality of server filters.
Claim 41
Dependent Claim 32 words
The method of claim 23 further comprising the step of: (l) downloading filter code from the server object to the client object so that the client object can run the filter code.
Claim 42
Dependent Claim 183 words
A computer program product for providing a framework for the execution of application program-specified code at selected points during a method invocation in a distributed object system having client and server objects, the computer program product comprising a computer usable medium having computer readable program code thereon including: program code for constructing a plurality of server filters, each of the server filters having an identifier and executing selected code during the method invocation; program code for constructing a server filter registry in the server object, the server filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; program code for constructing a client filter registry in the client object, the client filter registry containing filter identifiers, exported from the server object and stored in the client filter registry in response to an invocation of the method for retrieving the filter identifiers; and program code in the client object for selectively invoking at least one of the server filters using the filter identifiers in the client filter registry during a later method invocation in the distributed object system.
Claim 43
Dependent Claim 183 words
A computer program product for providing a framework for the execution of application program-specified code at selected points during a method invocation in a distributed object system having client and server objects, the computer program product comprising a computer usable medium having computer readable program code thereon including: program code for constructing a plurality of server filters, each of the server filters having an identifier and executing selected code during the method invocation; program code for constructing a server filter registry in the server object, the server filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; program code for constructing a client filter registry in the client object, the client filter registry containing filter identifiers, exported from the server object and stored in the client filter registry in response to an invocation of the method for retrieving the filter identifiers; and program code in the client object for selectively invoking at least one of the server filters using the filter identifiers in the client filter registry during a later method invocation in the distributed object system.
Claim 44
Dependent Claim 60 words
The computer program product of claim 40 wherein the distributed object system includes an object request broker which transmits the method invocation from the client object to the server object and wherein the program code for constructing filters comprises program code for constructing the server filters in implementation specific code which connects the server object to the object request broker.
Claim 45
Dependent Claim 30 words
The computer program product of claim 41 further comprising program code for constructing a plurality of client filters, each having an identifier and being located in the object request broker.
Claim 46
Dependent Claim 38 words
The computer program product of claim 42 wherein the program code for constructing a client filter registry comprises program code for constructing the client filter registry with filter identifiers for both the client filters and the server filters.
Claim 47
Dependent Claim 49 words
The computer program product of claim 41 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the program code for constructing the plurality of filters comprises program code for constructing a pre-filter which executes code before the marshaling and unmarshaling operates.
Claim 48
Dependent Claim 50 words
The computer program product of claim 41 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the program code for constructing a plurality of filters comprises program code for constructing a post-filter which executes code after the marshaling and unmarshaling mechanism operates.
Claim 49
Dependent Claim 92 words
The computer program product of claim 41 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the program code for constructing a plurality of filters comprises: program code for constructing a pre-filter which executes code before the marshaling and unmarshaling operates; program code for constructing a post-filter which executes code after the marshaling and unmarshaling mechanism operates; program code for constructing a transform filter which executes code before the pre-filter; and program code for constructing a transform filter which executes code after the post-filter.
Claim 50
Dependent Claim 44 words
The computer program product of claim 41 wherein the program code for invoking at least one of the server filters comprises program code for utilizing all the filters effected in the implementation specific code which connects the server object to the object request broker.
Claim 51
Dependent Claim 28 words
The computer program product of claim 47 wherein the program code for constructing a plurality of filters comprises program code for constructing each filter with a unique identifier.
Claim 52
Dependent Claim 30 words
The computer program product of claim 40 wherein the program code for constructing a plurality of filters comprises program code for constructing the plurality of filters with hierarchical filter identifiers.
Claim 53
Dependent Claim 38 words
The computer program product of claim 40 wherein the program code for constructing the server filter registry comprises program code for constructing the server filter registry to indicate an order in which the filters are to be invoked.
Claim 54
Dependent Claim 63 words
The computer program product of claim 40 wherein the program code for constructing the server filter registry comprises program code for constructing the server filter registry with an indication of parameters required by each filter, and the program code for constructing the client filter registry comprises program code for constructing the client filter registry with an indication of parameters required by each filter.
Claim 55
Dependent Claim 34 words
The computer program product of claim 40 further comprising filter registration application programmer interfaces for adding and removing filters from the plurality of filters and the server filter registry during distributed object system operation.
Claim 56
Dependent Claim 32 words
The computer program product of claim 52 further comprising program code for storing an indication reflecting the current composition of the plurality of server filters in a storage in the server object.
Claim 57
Dependent Claim 23 words
The computer program product of claim 53 further comprising program code for sending the indication from the server object to the client object.
Claim 58
Dependent Claim 64 words
The computer program product of claim 54 further comprising: program code for including the indication in the method invocation; program code for receiving the method invocation in the server object; and program code for alerting the client object if the indication in the received method invocation indicates that the client filter registry does not include the current composition of the plurality of server filters.
Claim 59
Dependent Claim 33 words
The computer program product of claim 40 further comprising program code for downloading filter code from the server object to the client object so that the client object can run the filter code.
Claim 60
Dependent Claim 173 words
A computer data signal embodied in a carrier wave for providing a framework for the execution of application program-specified code at selected points during a method invocation in a distributed object system having client and server objects, comprising: program code for constructing a plurality of server filters, each of the server filters having an identifier and executing selected code during the method invocation; program code for constructing a server filter registry in the server object, the server filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; program code for constructing a client filter registry in the client object, the client filter registry containing filter identifiers, exported from the server object and stored in the client filter registry in response to an invocation of the method for retrieving the filter identifiers; and program code in the client object for selectively invoking at least one of the server filters using the filter identifiers in the client filter registry during a later method invocation in the distributed object system.
Claim 61
Dependent Claim 173 words
A computer data signal embodied in a carrier wave for providing a framework for the execution of application program-specified code at selected points during a method invocation in a distributed object system having client and server objects, comprising: program code for constructing a plurality of server filters, each of the server filters having an identifier and executing selected code during the method invocation; program code for constructing a server filter registry in the server object, the server filter registry containing filter identifiers and a method for retrieving the filter identifiers from the registry; program code for constructing a client filter registry in the client object, the client filter registry containing filter identifiers, exported from the server object and stored in the client filter registry in response to an invocation of the method for retrieving the filter identifiers; and program code in the client object for selectively invoking at least one of the server filters using the filter identifiers in the client filter registry during a later method invocation in the distributed object system.
Claim 62
Dependent Claim 62 words
The computer data signal as defined in claim 57 wherein the distributed object system includes an object request broker which transmits the method invocation from the client object to the server object and wherein the program code for constructing filters comprises program code for constructing the server filters in implementation specific code which connects the server object to the object request broker.
Claim 63
Dependent Claim 32 words
The computer data signal as defined in claim 58 further comprising program code for constructing a plurality of client filters, each having an identifier and being located in the object request broker.
Claim 64
Dependent Claim 40 words
The computer data signal as defined in claim 59 wherein the program code for constructing a client filter registry comprises program code for constructing the client filter registry with filter identifiers for both the client filters and the server filters.
Claim 65
Dependent Claim 51 words
The computer data signal as defined in claim 58 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the program code for constructing the plurality of filters comprises program code for constructing a pre-filter which executes code before the marshaling and unmarshaling operates.
Claim 66
Dependent Claim 52 words
The computer data signal as defined in claim 58 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the program code for constructing a plurality of filters comprises program code for constructing a post-filter which executes code after the marshaling and unmarshaling mechanism operates.
Claim 67
Dependent Claim 94 words
The computer data signal as defined in claim 58 wherein the object request broker includes a marshaling and unmarshaling mechanism operable during the method invocation and the program code for constructing a plurality of filters comprises: program code for constructing a pre-filter which executes code before the marshaling and unmarshaling operates; program code for constructing a post-filter which executes code after the marshaling and unmarshaling mechanism operates; program code for constructing a transform filter which executes code before the pre-filter; and program code for constructing a transform filter which executes code after the post-filter.
Claim 68
Dependent Claim 46 words
The computer data signal as defined in claim 58 wherein the program code for invoking at least one of the server filters comprises program code for utilizing all the filters effected in the implementation specific code which connects the server object to the object request broker.
Claim 69
Dependent Claim 30 words
The computer data signal as defined in claim 64 wherein the program code for constructing a plurality of filters comprises program code for constructing each filter with a unique identifier.
Claim 70
Dependent Claim 32 words
The computer data signal as defined in claim 57 wherein the program code for constructing a plurality of filters comprises program code for constructing the plurality of filters with hierarchical filter identifiers.
Claim 71
Dependent Claim 40 words
The computer data signal as defined in claim 57 wherein the program code for constructing the server filter registry comprises program code for constructing the server filter registry to indicate an order in which the filters are to be invoked.
Claim 72
Dependent Claim 65 words
The computer data signal as defined in claim 57 wherein the program code for constructing the server filter registry comprises program code for constructing the server filter registry with an indication of parameters required by each filter, and the program code for constructing the client filter registry comprises program code for constructing the client filter registry with an indication of parameters required by each filter.
Claim 73
Dependent Claim 36 words
The computer data signal as defined in claim 57 further comprising filter registration application programmer interfaces for adding and removing filters from the plurality of filters and the server filter registry during distributed object system operation.
Claim 74
Dependent Claim 34 words
The computer data signal as defined in claim 69 further comprising program code for storing an indication reflecting the current composition of the plurality of server filters in a storage in the server object.
Claim 75
Dependent Claim 25 words
The computer data signal as defined in claim 70 further comprising program code for sending the indication from the server object to the client object.
Claim 76
Dependent Claim 66 words
The computer data signal as defined in claim 71 further comprising: program code for including the indication in the method invocation; program code for receiving the method invocation in the server object; and program code for alerting the client object if the indication in the received method invocation indicates that the client filter registry does not include the current composition of the plurality of server filters.
Claim 77
Dependent Claim 35 words
The computer data signal as defined in claim 57 further comprising program code for downloading filter code from the server object to the client object so that the client object can run the filter code.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-06-18 2004-12-18 2005-06-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-06-18 2008-12-18 2009-06-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-06-18 2012-12-18 2013-06-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag