Routing objects on action paths in a distributed computing system
First Claim
1. A method of routing an object in a distributed computing system, said distributed computing system having a number of nodes, each node being a processor able to execute processes, said each node having at least one principal associated therewith, the nodes communicating with one another by a network, said method comprising the steps of:
- (a) creating by one of said nodes in said computing system a data structure forming a routed object and creating by said one of said nodes in said computing system another data structure forming an action path object attached to said routed object, the data structure forming said action path object defining a sequence of action stops for the routed object, said action stops naming other ones of said nodes in said data structure forming said action path object, said data structure forming said routed object being accessible by a process executing on each one of said other nodes, said data structure forming said action path object describing for each of said action stops a name or functional description of one of said principals associated with one of said other nodes;
(b) dispatching said data structure forming said routed object by said one of said nodes in said computing system via said network to one of said action stops at one of said other nodes in said sequence of action stops;
(e) receiving at said one of said other nodes of said computing system said data structure forming said routed object and said data structure forming said action path object attached to said routed object;
(d) performing an action, at said one of said other nodes, on said data structure forming said routed object, said action including modifying at least part of said data structure, and when done, indicating so by requesting dispatch of said data structure forming said routed object and said data structure forming said action path object attached to said data structure forming said routed object, by said computing system, to another one of said other nodes; and
(e) dispatching said data structure forming said routed object by said one of said other nodes of said computing system to said another one of said nodes associated with an action stop of said sequence;
wherein the method includes routing said routed object to at least two action stops in parallel, andwherein the method includes inspecting a migration hint in said action path object, and if the migration hint recommends no migration, then not performing migration of said routed object, and if the migration hint recommends migration, then following a migration policy for migrating said routed object.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for routing an "object" (in the sense that object means an abstraction that encapsulates data in a known way, with a known list of operations or methods to access the data, and the object has a unique identity, is mobile, and possibly persistent). The "object" is routed in a distributed computing system along an action path (itself an "object") which defines the logical path to be traversed by the object. The action path consists of action stops naming or describing functionally principals (people or automated mechanisms) required to act upon the routed object in a prescribed order. The object routing system propagates the object along this action path, and monitors and controls its progress until it completes the path. The system includes mechanisms of dispatching the routed object between principals, finding the principals required to act on the routed object, notifying the principals in turn of their required action, and potentially relocating the routed object to the nodes of the principals. Optionally, the object routing system may use mechanisms for nagging principals about pending actions (if no progress occurs within a specified period), reporting such lack of action or progress to other principals, supporting the sharing of an action path by multiple routed objects, and facilitating the routing of an object in parallel to multiple principals. This object routing system is constructed as a generic service layer above services for object management, migration, persistence and interobject communication.
183 Citations
19 Claims
-
1. A method of routing an object in a distributed computing system, said distributed computing system having a number of nodes, each node being a processor able to execute processes, said each node having at least one principal associated therewith, the nodes communicating with one another by a network, said method comprising the steps of:
-
(a) creating by one of said nodes in said computing system a data structure forming a routed object and creating by said one of said nodes in said computing system another data structure forming an action path object attached to said routed object, the data structure forming said action path object defining a sequence of action stops for the routed object, said action stops naming other ones of said nodes in said data structure forming said action path object, said data structure forming said routed object being accessible by a process executing on each one of said other nodes, said data structure forming said action path object describing for each of said action stops a name or functional description of one of said principals associated with one of said other nodes; (b) dispatching said data structure forming said routed object by said one of said nodes in said computing system via said network to one of said action stops at one of said other nodes in said sequence of action stops; (e) receiving at said one of said other nodes of said computing system said data structure forming said routed object and said data structure forming said action path object attached to said routed object; (d) performing an action, at said one of said other nodes, on said data structure forming said routed object, said action including modifying at least part of said data structure, and when done, indicating so by requesting dispatch of said data structure forming said routed object and said data structure forming said action path object attached to said data structure forming said routed object, by said computing system, to another one of said other nodes; and (e) dispatching said data structure forming said routed object by said one of said other nodes of said computing system to said another one of said nodes associated with an action stop of said sequence; wherein the method includes routing said routed object to at least two action stops in parallel, and wherein the method includes inspecting a migration hint in said action path object, and if the migration hint recommends no migration, then not performing migration of said routed object, and if the migration hint recommends migration, then following a migration policy for migrating said routed object. - View Dependent Claims (2, 3, 4)
-
-
5. A system for handling a routed object in a distributed computing network, said system having a plurality of nodes, each node including a digital processor, said routed object having an action path object attached thereto, the action path object defining a sequence of action stops for the routed object, said action path object also defining a name or functional description of a principal associated with one of said nodes;
- said system comprising;
(a) said digital processor at said one of said nodes including means for providing basic services, said means for providing basic services including means for memory management and means for internodal communication; (b) said digital processor at said one of said nodes including an object supervisor means for supporting object-oriented applications, said object-oriented applications including applications composed of objects that are dispersed over multiple ones of said nodes and objects that are shared among the applications, said object supervisor means including means for creating objects, means for managing object migration and persistence, and means for managing interobject communication; (c) said digital processor at said one of said nodes including routing means for routing objects between said nodes, said routing means being supported by said basic services and services of said object supervisor means, said routing means including (i) means for receiving said routed object and said action path object attached to said routed object, said one of said nodes being associated with one of said action stops in said sequence of action stops; (ii) means for performing an action on said routed object by said principal associated with said one of said nodes, and when done, indicating so by generating a dispatch request; (iii) means for dispatching said routed object by said network to another one of said nodes associated with one of said principals identified in another action stop of said sequence; (iv) means for accessing said action path object for data identifying the name or functional description of said principal and using the data identifying the name or functional description of said principal to notify said principal that said routed object needs the principal'"'"'s attention; (v) means for reminding said principal of said action if said action is not performed within a selected time period; and (vi) means for monitoring said routed object including means for detecting whether said one of said nodes has finished said action and reporting to other principals if said one of said nodes has not finished said action, and means to report to other principals when said routed object is dispatched. - View Dependent Claims (6, 7, 8, 9, 10, 11)
- said system comprising;
-
12. A system for handling a routed object in a distributed computing network, said system having a plurality of nodes, each node including a digital processor, said routed object having an action path object attached thereto, the action path object defining a sequence of action stops for the routed object, said action path object also defining a functional description of an organization structure or role of a principal associated with one of said nodes;
- said system comprising;
(a) said digital processor at said one of said nodes including means for providing basic services, said means for providing basic services including means for memory management and means for internodal communication; (b) said digital processor at said one of said nodes including an object supervisor means for supporting object-oriented applications, said object-oriented applications including applications composed of objects that are dispersed over multiple ones of said nodes and objects that are shared among the applications, said object supervisor means including means for creating objects, means for managing object migration and persistence, and means for managing interobject communication; (c) said digital processor at said one of said nodes including routing means for routing objects between said nodes, said routing means being supported by said basic services and services of said object supervisor means, said routing means including (i) receiving means for receiving said routed object and said action path object attached to said routed object, said one of said nodes being associated with one of said action stops in said sequence of action stops; (ii) functional translation means for finding a name of said principal from said functional description of an organization structure or role associated with said one of said nodes; (iii) notification means for notifying said principal when said routed object needs attention of said principal; (iv) means for reminding a principal of said requested action if said requested action is not performed within a selected time period; (v) action means for performing an action on said routed object by said principal, and when done, indicating so by generating a dispatch request; and (vi) delivery means for performing a logical or physical move of said routed object to a next action stop in said sequence of action stops. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
- said system comprising;
Specification