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

System for selectively setting a server node, evaluating to determine server node for executing server code, and downloading server code prior to executing if necessary

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1993-11-29
•
Granted: 1997-12-16
•
Expires: 2013-11-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for executing code remotely is provided. In a preferred embodiment, a client program executes on a client node and communicates with a network. The executing client program then requests the execution of server code corresponding to an object instance or object class instance with which the client program desires to communicate. In response to the client program request, the computer system determines a location where the server code will be executed. This determination is made using a set of rules that arbitrate between location contexts specified by the corresponding server program and a location context requested by the client program. Once the appropriate location is determined, the client program forwards its request to the appropriate network node, which requests execution of the requested server code.

Inventors

  • 👤 Andrew G. Held
  • 👤 Edward Jung
  • 👤 Mark Zbikowski

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 19:01
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5027; G06F9/54; G06F9/547

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 215 words
A method in a computer system network for specifying the execution of server code on a computer system node, the network having a plurality of computer system nodes, the method comprising the steps of: executing a client program on a client node; requesting execution of the server code; in response to the request to execute the server code, retrieving a client location context indicating a server node at which the server code is preferably to be executed, the client location context being selectively set to the client node a named node or a node where the persistent data is stored; retrieving a server location context indicating the server nodes at which the server code can be executed, the server location context being set to one or more of the client node, a named node, or a node where the persistent data is stored; evaluating the client location context and the server location context to determine the server node where the server code will be executed as either the client node, a named node, or a node where the persistent data is stored; downloading the server code to the determined server node when the server code is not located at the determined server node; and requesting execution of the server code on the determined server node.
Claim 2
Independent Claim 215 words
A method in a computer system network for specifying the execution of server code on a computer system node, the network having a plurality of computer system nodes, the method comprising the steps of: executing a client program on a client node; requesting execution of the server code; in response to the request to execute the server code, retrieving a client location context indicating a server node at which the server code is preferably to be executed, the client location context being selectively set to the client node a named node or a node where the persistent data is stored; retrieving a server location context indicating the server nodes at which the server code can be executed, the server location context being set to one or more of the client node, a named node, or a node where the persistent data is stored; evaluating the client location context and the server location context to determine the server node where the server code will be executed as either the client node, a named node, or a node where the persistent data is stored; downloading the server code to the determined server node when the server code is not located at the determined server node; and requesting execution of the server code on the determined server node.
Claim 3
Dependent Claim 36 words
The method of claim 1, the server code having a specified security context, and wherein the step of effecting the execution of the server code effects execution of the server code in the specified security context.
Claim 4
Dependent Claim 28 words
The method of claim 2, the computer system having a persistent registry, the method further including the step of specifying the specified security context in the persistent registry.
Claim 5
Independent Claim 192 words
A method in a computer system network for specifying the execution of server code on a computer system node, the server code implementing behavior of an object, the network having a plurality of computer system nodes, the method comprising the steps of: executing a client program on a client node; under control of the client program, requesting access to the object; in response to the request to access the object, requesting activation of the server code; and in response to the request to activate the server code, retrieving a client location context of a node at which the server code is to be executed; retrieving a server location context of a node at which the server code can be executed; evaluating the client location context and the server location context to determine a server node where the server code will be executed, wherein the determined server node is selectively set to one of the client node, a named node, or a node where persistent data of the object is stored; and downloading the server code to the determined server node when the server code is not located at the determined server node.
Claim 6
Independent Claim 192 words
A method in a computer system network for specifying the execution of server code on a computer system node, the server code implementing behavior of an object, the network having a plurality of computer system nodes, the method comprising the steps of: executing a client program on a client node; under control of the client program, requesting access to the object; in response to the request to access the object, requesting activation of the server code; and in response to the request to activate the server code, retrieving a client location context of a node at which the server code is to be executed; retrieving a server location context of a node at which the server code can be executed; evaluating the client location context and the server location context to determine a server node where the server code will be executed, wherein the determined server node is selectively set to one of the client node, a named node, or a node where persistent data of the object is stored; and downloading the server code to the determined server node when the server code is not located at the determined server node.
Claim 7
Dependent Claim 57 words
The method of claim 4, the client node having a client service control manager for activating the server code, wherein the step of requesting activation of the server code is performed under the control of the client program, and wherein the steps of retrieving and evaluating are performed under the control of the client service control manager.
Claim 8
Dependent Claim 15 words
The method of claim 4 including storing the server location context in a persistent registry.
Claim 9
Dependent Claim 20 words
The method of claim 4 wherein the step of requesting activation of the server code specifies the client location context.
Claim 10
Dependent Claim 35 words
The method of claim 5, the server code having a specified security context, and wherein the step of requesting activation of the server code causes execution of the server code in the specified security context.
Claim 11
Dependent Claim 58 words
The method of claim 5, the determined server node having a server service control manager for activating server code and communicating with the client service control manager, and wherein the step of requesting activation of the server code is performed under the control of the client service control manager and is requested of the server service control manager.
Claim 12
Dependent Claim 43 words
The method of claim 4, the determined server node having a server service control manager for activating server code, and wherein the step of requesting execution of the server code on the determined server node is requested of the server service control manager.
Claim 13
Dependent Claim 34 words
The method of claim 10, further including the step of, under control of the server code, specifying the server location context for executing the server code in a subsequent execution of the server code.
Claim 14
Dependent Claim 21 words
The method of claim 11 wherein the step of specifying the server location context stores the specification in a persistent registry.
Claim 15
Dependent Claim 23 words
The method of claim 10 wherein the step of requesting activation of the server code specifies a location for executing the server code.
Claim 16
Dependent Claim 35 words
The method of claim 10, the server code having a specified security context, and wherein the step of requesting activation of the server code causes execution of the server code in the specified security context.
Claim 17
Dependent Claim 40 words
The method of claim 4, the server code having a specified security context, and wherein the step of requesting execution of the server code on the determined server node causes execution of the server code in the specified security context.
Claim 18
Dependent Claim 28 words
The method of claim 15, the computer system having a persistent registry, the method further including the step of specifying the specified security context in the persistent registry.
Claim 19
Independent Claim 165 words
A method in a computer system network for specifying the execution of server code on a computer system node, the server code implementing behavior of an object, the network having a plurality of computer system nodes, the method comprising the steps of: executing a client program on a client node; under control of the client program, requesting access to the object; in response to the request to access the object, requesting activation of the server code; and in response to the request to activate the server code, retrieving a client location context of a server node at which the server code is to be executed; evaluating the client indication to determine a node where the server code will be executed, wherein the determined node is selectively set to either the client node or a node where persistent data of the object is stored; and downloading the server code to the determined server node when the server code is not located at the determined server node.
Claim 20
Independent Claim 165 words
A method in a computer system network for specifying the execution of server code on a computer system node, the server code implementing behavior of an object, the network having a plurality of computer system nodes, the method comprising the steps of: executing a client program on a client node; under control of the client program, requesting access to the object; in response to the request to access the object, requesting activation of the server code; and in response to the request to activate the server code, retrieving a client location context of a server node at which the server code is to be executed; evaluating the client indication to determine a node where the server code will be executed, wherein the determined node is selectively set to either the client node or a node where persistent data of the object is stored; and downloading the server code to the determined server node when the server code is not located at the determined server node.
Claim 21
Dependent Claim 69 words
The method of claim 17 wherein the server code is available as a separate executable and as a linkable library that is executable within an address space of the client program, and wherein the step of determining a node selects the client node, and further comprising the step of selecting either the separate executable or the linkable library as the server code to be activated on the client node.
Claim 22
Independent Claim 163 words
A method in a computer system network for specifying the execution of server code on a computer system node, the server code implementing behavior of an object, the server code having a server location context that specifies a plurality of locations to execute the server code, the network having a plurality of computer system nodes, the method comprising the steps of: executing a client program on a client node; under control of the client program, requesting activation of the server code, the request containing a request location context that specifies a plurality of locations to execute the server code; and in response to the request to activate the server code, selectively setting a determined node to where the server code will be executed based upon evaluating the plurality of locations of both the server location context and the request location context; and downloading the server code to the determined server node when the server code is not located at the determined server node.
Claim 23
Independent Claim 163 words
A method in a computer system network for specifying the execution of server code on a computer system node, the server code implementing behavior of an object, the server code having a server location context that specifies a plurality of locations to execute the server code, the network having a plurality of computer system nodes, the method comprising the steps of: executing a client program on a client node; under control of the client program, requesting activation of the server code, the request containing a request location context that specifies a plurality of locations to execute the server code; and in response to the request to activate the server code, selectively setting a determined node to where the server code will be executed based upon evaluating the plurality of locations of both the server location context and the request location context; and downloading the server code to the determined server node when the server code is not located at the determined server node.
Claim 24
Dependent Claim 30 words
The method of claim 19 wherein the server location context is a specific name of a node or an indication of how to determine a specific name of a node.
Claim 25
Dependent Claim 15 words
The method of claim 19 wherein the server location context symbolically indicates the client node.
Claim 26
Dependent Claim 22 words
The method of claim 19 wherein the server location context symbolically indicates a node where persistent data of the object is stored.
Claim 27
Dependent Claim 30 words
The method of claim 19 wherein the request location context is a specific name of a node or an indication of how to determine a specific name of a node.
Claim 28
Dependent Claim 24 words
The method of claim 19 wherein the step of determining where the server code will be executed is performed by a service control manager.
Claim 29
Dependent Claim 36 words
The method of claim 19 wherein the server location context specifies a security context and wherein the step of requesting execution of the server code causes execution of the server code in the specified security context.
Claim 30
Dependent Claim 129 words
A computer-readable memory device containing instructions for controlling a computer processor to perform the steps of: receiving a request from a client program on a client node to activate server code, the server code implementing behavior of an object; retrieving persistently-stored server location context of a server node at which the server code can be executed; determining, based upon the request and the server location context, a server node for executing the server code, the server node being selectively set to either the client node or a node where persistent data of the object is stored; downloading the server code to the determined server node when the server code is not located at the determined server node; and returning an indication of the server node to the client program.
Claim 31
Dependent Claim 129 words
A computer-readable memory device containing instructions for controlling a computer processor to perform the steps of: receiving a request from a client program on a client node to activate server code, the server code implementing behavior of an object; retrieving persistently-stored server location context of a server node at which the server code can be executed; determining, based upon the request and the server location context, a server node for executing the server code, the server node being selectively set to either the client node or a node where persistent data of the object is stored; downloading the server code to the determined server node when the server code is not located at the determined server node; and returning an indication of the server node to the client program.
Claim 32
Dependent Claim 60 words
The computer-readable memory device of claim 26 containing further instructions for controlling the computer processor to perform the steps of: determining whether a location for activating server code has been specified by the server code; and when the location has been specified by the server code, using the specified location in conjunction with the request to determine the server node.
Claim 33
Dependent Claim 141 words
A computer network system for determining the location of execution of server code on a computer system node, the system comprising: an object with persistent data stored on a node and having server code for implementing the behavior of the object; a client node; a service control manger that, in response to a request to activate the server code, determines a server node for executing the server code based upon a location context, the server node being selectively set to the client node or the node that stores the persistent data of the object and downloading the server code to the determined server node when the server code is not located at the determined server node; and a client program executing on the client node that, in response to invocation, requests activation of the server code from the service control manager.
Claim 34
Dependent Claim 141 words
A computer network system for determining the location of execution of server code on a computer system node, the system comprising: an object with persistent data stored on a node and having server code for implementing the behavior of the object; a client node; a service control manger that, in response to a request to activate the server code, determines a server node for executing the server code based upon a location context, the server node being selectively set to the client node or the node that stores the persistent data of the object and downloading the server code to the determined server node when the server code is not located at the determined server node; and a client program executing on the client node that, in response to invocation, requests activation of the server code from the service control manager.
Claim 35
Dependent Claim 14 words
The computer system of claim 28 wherein the activation request specifies the location context.
Claim 36
Dependent Claim 14 words
The computer system of claim 28 wherein the server code specifies the location context.
Claim 37
Dependent Claim 16 words
The computer system of claim 28 wherein the service control manager executes on the client node.
Claim 38
Dependent Claim 31 words
The computer system of claim 31 wherein the service control manager sends a request to activate the server code to a second service control manager executing on the determined server node.
Claim 39
Dependent Claim 23 words
The computer system of claim 28 wherein the service control manager causes the server code to be executed on the determined server node.
Claim 40
Dependent Claim 35 words
The computer system of claim 28 wherein the service control manager activates the server code without executing the server code on the determined server node by instead returning a reference to an object data structure.

References Cited (Backward Citations)

US5287537A Cited
US4887204A Cited
US5390297A Cited
US5167035A Cited
US5341477A Cited
US5157390A Cited
US5430876A Cited
US5440744A Cited
US5329619A Cited
US5325527A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag