Patent EP0604010A1 successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0604010A1 Expired / Lapsed EP ⏱️ 0.0 years remaining

Method and apparatus for subcontracts in distributed processing systems

Assignee: Sun Microsystems Inc
•
Filing: 1993-11-10
•
Granted: —
•
Expires: 2013-11-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides an elegant and simple way to provide mechanisms for invocation of objects by client applications and for argument passing between client applications and object implementations, without the client application or the operating system knowing the details of how these mechanisms work. Moreover, these mechanisms functions in a distributed computer environment with similar ease and efficiency, where client applications may be on one computer node and object implementations on another. The invention includes a new type of object, termed a "spring object," which includes a method table, a subcontract mechanism and a data structure which represents the subcontract's local private state.

Inventors

  • 👤 Graham Hamilton
  • 👤 Michael L. Powell
  • 👤 James G. Mitchell
  • 👤 Jonathan J. Gibbons

Bibliographic Details

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

Claims Analysis

Total Claims: 60
Claim 1
Independent Claim 76 words
In an object oriented system wherein there exists client applications, objects, object type definitions, object implementations and servers, a spring object comprising: a method table containing an entry for each operation implied by said spring object's type definition; a subcontract mechanism coupled to said method table, the subcontract mechanism specifying which subcontract operations said spring object may perform; and a data structure coupled to said subcontract mechanism, said data structure representing said subcontract's local private state.
Claim 2
Dependent Claim 52 words
The spring object of Claim 1 wherein the subcontract mechanism comprises: a client-side program mechanism for executing operation invocations on an object associated with said subcontract; and a server-side program mechanism associated with said client-side program mechanism for exchanging messages and for processing other operation calls initiated by said client-side program mechanism.
Claim 3
Dependent Claim 38 words
The spring object of Claim 2 wherein the client-side program mechanism portion of said subcontract mechanism comprises the ability to execute operation calls to generate a new spring object which is closely related to an existing spring object.
Claim 4
Dependent Claim 28 words
The spring object of Claim 2 wherein the client-side program mechanism portion of said subcontract mechanism comprises the ability to execute operation calls to delete a spring object.
Claim 5
Dependent Claim 30 words
The spring object of Claim 2 wherein the client-side program mechanism portion of said subcontract mechanism comprises the ability to marshal information about its associated object into a communications buffer.
Claim 6
Dependent Claim 33 words
The spring object of Claim 2 wherein the client-side program mechanism portion of said subcontract mechanism comprises the ability to marshal a copy of information about its associated object into a communications buffer.
Claim 7
Dependent Claim 34 words
The spring object of Claim 2 wherein the client-side program mechanism portion of said subcontract mechanism comprises the ability to unmarshal information representing an object from a communications buffer to create a new object.
Claim 8
Dependent Claim 32 words
The spring object of Claim 2 wherein the client-side program mechanism portion of said subcontract mechanism comprises the ability to transmit an argument buffer to a destination and receive a result buffer.
Claim 9
Dependent Claim 51 words
The spring object of claim 7 wherein the ability of the client-side program mechanism portion of said subcontract mechanism to transmit an argument buffer to a destination comprises the ability to: transmit a copy of an object from one location to another; and transmit an object from one location to another.
Claim 10
Dependent Claim 28 words
The spring object of Claim 2 wherein the server-side program mechanism portion of said subcontract mechanism comprises the ability to execute operation calls to create a spring object.
Claim 11
Dependent Claim 26 words
The spring object of claim 2 wherein the server-side program mechanism portion of said subcontract mechanism comprises the ability to provide support for processing incoming calls.
Claim 12
Dependent Claim 26 words
The spring object of claim 2 wherein the server-side program mechanism portion of said subcontract mechanism comprises the ability to provide support for revoking an object.
Claim 13
Dependent Claim 59 words
In an object oriented system wherein there exists client applications, objects, object type definitions, object implementations and servers, a subcontract comprising: a client-side program mechanism for executing operations on an object associated with said subcontract; and a server-side program mechanism associated with said client-side program mechanism for exchanging messages and for processing operation calls from said client-side program mechanism.
Claim 14
Dependent Claim 19 words
The subcontract of claim 13 wherein the client-side program mechanism comprises the ability to generate a new spring object.
Claim 15
Dependent Claim 17 words
The subcontract of claim 13 wherein the client-side program mechanism comprises the ability to delete an object.
Claim 16
Dependent Claim 24 words
The subcontract of claim 13 wherein the client-side program mechanism comprises the ability to marshal information about its associated object into a communications buffer.
Claim 17
Dependent Claim 28 words
The subcontract of claim 13 wherein the client-side program mechanism comprises the ability to unmarshal information representing an object from a communications buffer to create a new object.
Claim 18
Dependent Claim 26 words
The subcontract of claim 13 wherein the client-side program mechanism comprises the ability to transmit an argument buffer to a destination and receive a result buffer.
Claim 19
Dependent Claim 45 words
The subcontract of claim 18 wherein the ability of the client-side program mechanism to transmit an argument buffer to a destination comprises the ability to: transmit a copy of an object from one location to another; and transmit an object from one location to another.
Claim 20
Dependent Claim 22 words
The subcontract of claim 13 wherein the server-side program mechanism comprises the ability to execute operation calls to create a spring object.
Claim 21
Dependent Claim 20 words
The subcontract of claim 13 wherein the server-side program mechanism comprises the ability to provide support for processing incoming calls.
Claim 22
Dependent Claim 20 words
The subcontract of claim 13 wherein the server-side program mechanism comprises the ability to provide support for revoking an object.
Claim 23
Dependent Claim 88 words
In an object oriented system wherein there exists client applications, objects, stubs, object implementations, name registries, program code mechanism libraries, dynamic linker mechanisms and servers, a method of processing an operation invoked on an object by a client, said method comprising the following steps: receiving an operation invocation on an object by a client-side stub of said object; transforming the operation invocation into an operation call on a subcontract; executing said subcontract operation call; and returning a result by said subcontract to the client-side stub of said object.
Claim 24
Dependent Claim 68 words
The method of Claim 23 wherein the step of transforming the operation invocation into an operation call on a subcontract comprises the following steps: determining by the client-side stub whether said operation invocation requires any arguments to be marshalled; marshaling said arguments into a communications buffer; and passing said communications buffer to a first subcontract which is associated with said object on which said client invoked said operation.
Claim 25
Dependent Claim 94 words
The method of Claim 24 wherein the step of marshaling said arguments into a communications buffer comprises the following steps: determining by said client-side stub whether any of said arguments to be marshaled is an object; calling a second subcontract associated with said object which is an argument; directing said second subcontract associated with said object which is an argument, to marshal said object which is an argument; receiving said marshaled object from said second subcontract by said client-side stub; and marshaling any non-object arguments along with said marshaled objects into said communications buffer.
Claim 26
Dependent Claim 50 words
The method of Claim 23 wherein the step of transforming the operation invocation into an operation call on a subcontract comprises the additional step of the client-side stub passing the communications buffer to the subcontract wherein the subcontract may place data in the communications buffer before any arguments are marshaled.
Claim 27
Dependent Claim 48 words
The method of Claim 24 comprising the additional step of the first subcontract, which is associated with said object on which said client invoked said operation, transmitting said operations call with the associated communications buffer, to an implementor of the object on which said client invoked said operation.
Claim 28
Dependent Claim 60 words
The method of Claim 27 comprising the additional steps of a server-side third subcontract, which is associated with said first subcontract, receiving said operations call with the associated communications buffer, and passing said operations call with the associated communications buffer to a server-side stub which is associated with said implementor of the object on which said client invoked said operation.
Claim 29
Dependent Claim 30 words
The method of Claim 28 comprising the additional steps of said server-side stub unmarshaling said communications buffer, and passing said operations call and associated unmarshaled arguments to said object implementor.
Claim 30
Dependent Claim 36 words
The method of Claim 28 comprising the additional steps of said object implementor executing said received operations call, and passing any results and any related arguments back to said server-side stub for relay to said client.
Claim 31
Dependent Claim 56 words
The method of Claim 30 comprising the additional steps of said server-side stub marshaling any arguments of said results into a return communications buffer, passing said results and said associated return communications buffer to said third subcontract, and said third subcontract transmitting said results and said associated return communications buffer back to said calling first subcontract.
Claim 32
Dependent Claim 45 words
The method of Claim 31 comprising the additional steps of said first subcontract passing said results and said associated return communications buffer to said client-side stub, said client-side stub unmarshaling said return communications buffer, and passing said results and related unmarshaled arguments to said client.
Claim 33
Dependent Claim 114 words
The method of Claim 31 wherein said step of said server-side stub marshaling any arguments of said results into a return communications buffer comprises the additional steps of determining by said server-side stub whether any of said arguments to be marshaled is an object; calling a fourth subcontract which is associated with said object which is an argument of said results; directing said fourth subcontract associated with said object which is an argument, to marshal said object which is an argument of said results; receiving said marshaled object from said fourth subcontract by said server-side stub; and marshaling any non-object arguments of said results along with said marshaled objects into said return communications buffer.
Claim 34
Dependent Claim 95 words
The method of Claim 32 wherein said step of said client-side stub unmarshaling said return communications buffer comprises the additional steps of: determining by said client-side stub whether any of said arguments to be unmarshaled is an object; if an argument to be unmarshaled is an object, directing said first subcontract to unmarshal said object which is an argument of said results; receiving said unmarshaled object from said first subcontract by said client-side stub; unmarshaling any non-object arguments of said return communications buffer; and collecting all unmarshaled results arguments together for return to said client.
Claim 35
Dependent Claim 123 words
The method of Claim 34 wherein said step of directing said first subcontract to unmarshal said object which is an argument of said results, comprises the steps of: calling said first subcontract to unmarshal said object which is an argument to be unmarshaled; said first subcontract checking the returned communications buffer to determine a subcontract identifier for said object to be unmarshaled; said first subcontract sending said subcontract identifier to a subcontract name registry requesting said registry to unmarshal the object to be unmarshaled; said registry identifying said fifth subcontract as being associated with said object to be unmarshaled, and directing said fifth subcontract to unmarshal the object to be unmarshaled; and said fifth subcontract returning said unmarshaled object to said first subcontract.
Claim 36
Dependent Claim 124 words
The method of Claim 34 wherein said step of said registry identifying said fifth subcontract as being associated with said object to be unmarshaled, comprises the steps of: checking said registry to determine if a subcontract associated with said subcontract identifier is contained in said registry; constructing a shared library rename based upon said subcontract identifier; calling a dynamic linker program mechanism to link a program code mechanism identified by said shared library filename based upon said subcontract identifier to said registry, said program code mechanism identified by said shared library filename based upon said subcontract identifier being said fifth subcontract; calling said fifth subcontract to unmarshal said object to be unmarshaled; and said fifth subcontract returning said unmarshaled object to said first subcontract.
Claim 37
Dependent Claim 162 words
In an object oriented system wherein there exists client applications objects, stubs, object implementations and servers, a method for communicating messages between a client application and a server, wherein the messages include arguments, at least one element of which includes an object, said method comprising the following steps: generating an operation invocation on a local object by a client application; receiving said operation invocation by a client-side stub of said object; marshaling arguments associated with said operation invocation into a communications buffer; transforming said operation invocation into an operation call on a client-side subcontract by said client-side stub; using said client-side subcontract to transmit said operation invocation and associated communications buffer from said client application to said object's implementation; using said client-side subcontract to receive a reply from said object's implementation, and to deliver a return communications buffer to said client-side stub; unmarshaling said results and returned communications buffer by said client-side stub; and making said results available to said client application.
Claim 38
Dependent Claim 103 words
The method of Claim 37 wherein the step of using said client side stub to marshal arguments associated with said operation invocation into a communications buffer comprises the steps of: determining whether any of the arguments to be marshaled is an object; for each object which is an argument to be marshaled, identifying a subcontract which is associated with said object to be marshaled; using said identified subcontract which is associated with said object to be marshaled, marshal said object which is being used as an argument to be marshaled into a communications buffer; and returning a completion signal to said client-side stub.
Claim 39
Dependent Claim 15 words
The spring object of Claim 1 wherein said object operates in a distributed computer system.
Claim 40
Dependent Claim 23 words
The spring object of Claim 39 wherein said client applications and object implementations may reside on different computers in said distributed computer system.
Claim 41
Dependent Claim 20 words
The spring object of Claim 1 wherein said subcontract is unknown by said client applications or any operating system kernel.
Claim 42
Dependent Claim 14 words
The subcontract of Claim 13 wherein said subcontract operates in a distributed computer system.
Claim 43
Dependent Claim 22 words
The subcontract of Claim 42 wherein said client applications and object implementations may reside on different computers in said distributed computer system.
Claim 44
Dependent Claim 19 words
The subcontract of Claim 13 wherein said subcontract is unknown by said client applications or any operating system kernel.
Claim 45
Dependent Claim 14 words
The method of Claim 23 wherein said method operates in a distributed computer system.
Claim 46
Dependent Claim 22 words
The method of Claim 45 wherein said client applications and object implementations may reside on different computers in said distributed computer system.
Claim 47
Dependent Claim 19 words
The method of Claim 23 wherein said subcontract is unknown by said client applications or any operating system kernel.
Claim 48
Dependent Claim 95 words
A computer program product having a computer readable medium having a computer program recorded thereon for use in an object oriented system wherein there exists client applications, objects, object type definitions, object implementations and servers, for processing operations invoked on an object by a client application, said computer program product comprising: a subcontract program code means comprising; a client-side program mechanism for executing operations on an object associated with said subcontract; and a server-side program mechanism associated with said client-side program mechanism for exchanging messages and for processing operation calls from said client-side program mechanism.
Claim 49
Dependent Claim 21 words
The computer program product of claim 48 wherein the client-side program mechanism comprises the ability to generate a new spring object.
Claim 50
Dependent Claim 19 words
The computer program product of claim 48 wherein the client-side program mechanism comprises the ability to delete an object.
Claim 51
Dependent Claim 26 words
The computer program product of claim 48 wherein the client-side program mechanism comprises the ability to marshal information about its associated object into a communications buffer.
Claim 52
Dependent Claim 30 words
The computer program product of claim 48 wherein the client-side program mechanism comprises the ability to unmarshal information representing an object from a communications buffer to create a new object.
Claim 53
Dependent Claim 28 words
The computer program product of claim 48 wherein the client-side program mechanism comprises the ability to transmit an argument buffer to a destination and receive a result buffer.
Claim 54
Dependent Claim 47 words
The computer program product of claim 53 wherein the ability of the client-side program mechanism to transmit an argument buffer to a destination comprises the ability to: transmit a copy of an object from one location to another; and transmit an object from one location to another.
Claim 55
Dependent Claim 24 words
The computer program product of claim 48 wherein the server-side program mechanism comprises the ability to execute operation calls to create a spring object.
Claim 56
Dependent Claim 22 words
The computer program product of claim 48 wherein the server-side program mechanism comprises the ability to provide support for processing incoming calls.
Claim 57
Dependent Claim 22 words
The computer program product of claim 48 wherein the server-side program mechanism comprises the ability to provide support for revoking an object.
Claim 58
Dependent Claim 16 words
The computer program product of claim 48 wherein said subcontract operates in a distributed computer system.
Claim 59
Dependent Claim 24 words
The computer program product of claim 58 wherein said client applications and object implementations may reside on different computers in said distributed computer system.
Claim 60
Dependent Claim 21 words
The computer program product of claim 48 wherein said subcontract is unknown by said client applications or any operating system kernel.

References Cited (Backward Citations)

US5095522A Cited

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