Mechanism for dispatching requests in a distributed object system
Abstract
Data structures, methods and devices for reducing computing overhead associated with dispatching a distributed object invocation and improving the flexibility of the dispatch framework in a distributed client/server based computing system are disclosed. In one aspect of the invention, a request received on an end point in a transport layer is dispatched from the transport layer to a subcontract in a subcontract layer where the request is partially unmarshaled and dispatched from the subcontract to a skeleton function in a skeleton layer where a servant is invoked. In another aspect of the invention a method for initializing a subcontract which includes a skeleton dispatch function arranged to dispatch a received request to an appropriate skeleton after the subcontract has unmarshaled at least a portion of the received request involves registering the subcontract with at least one cluster end point registry, creating a subcontract meta object associated with the subcontract, and storing the subcontract meta object in a subcontract registry.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method for dispatching a distributed object invocation, the method comprising:
receiving a request at a transport end point, the transport end point being a part of a transport layer;
dispatching the request from the transport layer to a subcontract arranged to unmarshal at least a part of the request, the subcontract being a part of a subcontract layer;
at least partially unmarshaling the request using the subcontract;
dispatching the partially unmarshaled request from the subcontract to a skeleton function, the skeleton function being a part of a skeleton layer; and
invoking a servant from the skeleton function.
2. A method as recited in claim 1 wherein dispatching the request to the subcontract is accomplished by invoking a closure with a marshal buffer that holds the received request.
3. A method as recited in claim 2 wherein the closure includes a pointer to a dispatch function that forms at least a part of the subcontract, and a pointer to a cookie provided by the subcontract.
4. A method as recited in claim 1 wherein the skeleton function is arranged to unmarshal an additional part of the request.
5. A method as recited in claim 4 wherein the additional part of the request is an argument.
6. A method as recited in claim 1 wherein the subcontract is independent of the language mapping of the servant.
7. A method as recited in claim 1 further including identifying the skeleton function as being appropriate for invoking the servant.
8. A method as recited in claim 7 wherein the subcontract identifies the skeleton function as being appropriate for invoking the servant.
9. A computer program product for dispatching a distributed object invocation within a distributed client/server based computing system, the computer program product comprising:
computer code for receiving a request at a transport end point, the transport end point being a part of a transport layer;
computer code for dispatching the request from the transport layer to a subcontract arranged to unmarshal at least a part of the request, the subcontract being a part of a subcontract layer;
computer code for at least partially unmarshaling the request using the subcontract;
computer code for dispatching the partially unmarshaled request from the subcontract to a skeleton function, the skeleton function being a part of a skeleton layer;
computer code for invoking a servant from the skeleton function; and
a computer readable medium that stores the computer codes.
10. A computer program product as recited in claim 9 wherein the computer code for dispatching the request to the subcontract includes computer code for invoking a closure with a marshal buffer that holds the received request.
11. A computer program product as recited in claim 10 wherein the closure includes a pointer to a dispatch function that forms at least a part of the subcontract, and a pointer to a cookie provided by the subcontract.
12. A computer program product as recited in claim 9 wherein the skeleton function is arranged to unmarshal an additional part of the request.
13. A computer program product as recited in claim 12 wherein the additional part of the request is an argument.
14. A computer program product as recited in claim 9 wherein the subcontract is independent of the language mapping of the servant.
15. A computer-implemented method for dispatching a distributed object invocation using a multi-layered dispatch mechanism, the multi-layered dispatch mechanism including a transport layer, a subcontract layer, and a skeleton layer, the computer-implemented method comprising:
receiving a request at a transport end point, the transport end point being a part of the transport layer;
identifying a subcontract suitable for receiving the request from the transport layer, the suitable subcontract being associated with the transport end point, the suitable subcontract being a part of the subcontract layer, the subcontract layer including a plurality of subcontracts, wherein the subcontract layer is arranged as an interface layer between the transport layer and the skeleton layer;
dispatching the request from the transport layer to the suitable subcontract, the suitable subcontract being arranged to at least partially unmarshal the request, the suitable subcontract further being arranged to identify a skeleton function that is included in the skeleton layer, the skeleton function being appropriate for invoking a servant;
at least partially unmarshaling the request using the suitable subcontract;
identifying the skeleton function using the suitable subcontract;
dispatching the partially unmarshaled request from the suitable subcontract to the skeleton function; and
invoking the servant from the skeleton function.
16. A computer-implemented method as recited in claim 15 wherein the transport layer is arranged to unmarshal a part of the request.
17. A computer-implemented method as recited in claim 15 wherein the transport end point is associated with the plurality of subcontracts.
18. A computer-implemented method as recited in claim 15 wherein the suitable subcontract is independent of a language mapping of the servant.
19. A computer-implemented method as recited in claim 15 further including:
identifying the end point as being suitable for receiving the request.
20. A computer-implemented method for dispatching a distributed object invocation using a multi-layered dispatch mechanism, the computer-implemented method comprising:
receiving a request at a transport end point, the transport end point being a part of the multi-layered dispatch mechanism;
identifying a subcontract suitable for receiving the request from the transport end point, the suitable subcontract being a part of the multi-layered dispatch mechanism, the multi-layered dispatch mechanism including a plurality of subcontracts;
dispatching the request from the transport end point to the suitable subcontract, the suitable subcontract being arranged to at least partially unmarshal the request, the suitable subcontract further being arranged to identify a skeleton function that is included in the multi-layered dispatch mechanism, the skeleton function being appropriate for invoking a servant;
at least partially unmarshaling the request using the suitable subcontract;
identifying the skeleton function;
dispatching the partially unmarshaled request from the subcontract to the skeleton function; and
invoking the servant from the skeleton function.
21. A computer program product arranged to dispatch a distributed object invocation using a multi-layered dispatch mechanism, the multi-layered dispatch mechanism including a transport layer, a subcontract layer, and a skeleton layer, the computer program product comprising:
computer code for receiving a request at a transport end point, the transport end point being a part of the transport layer;
computer code for identifying a subcontract suitable for receiving the request from the transport layer, the suitable subcontract being associated with the transport end point, the suitable subcontract being a part of the subcontract layer, the subcontract layer including a plurality of subcontracts, wherein the subcontract layer is arranged as an interface layer between the transport layer and the skeleton layer;
computer code for dispatching the request from the transport layer to the suitable subcontract, the suitable subcontract being arranged to at least partially unmarshal the request, the suitable subcontract further being arranged to identify a skeleton function that is included in the skeleton layer, the skeleton function being appropriate for invoking a servant;
computer code for at least partially unmarshaling the request using the suitable subcontract;
computer code for identifying the skeleton function using the suitable subcontract;
computer code for dispatching the partially unmarshaled request from the subcontract to the skeleton function;
computer code for invoking the servant from the skeleton function; and
a computer readable medium that stores the computer codes.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.