System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
First Claim
1. A method for implementing remote programming in a computer network comprising:
- defining a plurality of object-oriented classes including an agent class and a place class;
forming instructions for a computer process, said instructions including said object-oriented classes, subclasses of said object-oriented classes, and a go operation; and
interpreting said instructions on a processor in said computer network wherein, in response to said go operation, an agent process is transported to a place process and further wherein said agent process is a member of said agent class and said place process is a member of said place class.
7 Assignments
0 Petitions
Accused Products
Abstract
A distributed computing environment in which agent processes direct their own movement through a computer network. Place processes provide a computing context within which agent processes are interpreted. An agent process controls its movement from one place process to another within the network by using a ticket. An agent process which moves from one place process to another transports definitions of classes of which objects included in the agent process are members. An agent process which moves from one place process to a second place process avoids unnecessary transportation of objects included in the agent process by substituting equivalent objects which are found in the second place process. An agent process sends clones of the agent process to several place processes simultaneously. If two clones travel along paths which are coextensive for an initial portion thereof, a single clone is transported along the initial portion of the paths and other clones are formed from the single clone, thereby avoiding transferring redundant information along communications media. Two agent processes, which occupy a single place process, interact by exchanging references to one another. The single place process ensures that neither agent process receives a reference to the other agent process without simultaneously giving to the other agent process a reference to the former agent process. Unauthorized or inadvertent excessive use of network resources by an agent process, or a place process, is prevented by associating with each process a permit which defines various capabilities and resource allowances of the process.
402 Citations
165 Claims
-
1. A method for implementing remote programming in a computer network comprising:
-
defining a plurality of object-oriented classes including an agent class and a place class; forming instructions for a computer process, said instructions including said object-oriented classes, subclasses of said object-oriented classes, and a go operation; and interpreting said instructions on a processor in said computer network wherein, in response to said go operation, an agent process is transported to a place process and further wherein said agent process is a member of said agent class and said place process is a member of said place class. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for implementing remote programming in a computer network comprising:
-
defining a plurality of object-oriented classes including an agent class and a place class; forming instructions for a computer process including said object-oriented classes, subclasses of said object-oriented classes, and a send operation; and interpreting said instructions on a processor in said computer network wherein, in response to said send operation, a clone Of an agent process is transported to a place process and further wherein said clone and said agent process are each a member of said agent class and said place process is a member of said place class. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method for interprocess communication in a computer comprising:
-
defining a plurality of object-oriented classes including an agent class; forming instructions for a computer process including said object-oriented classes, subclasses of said object-oriented classes, and a meet operation; and interpreting said instructions on a processor in said computer network wherein, in response to said meet operation, a meeting place process provides a first agent process access to a second agent process and provides said second agent process access to said first agent process and further wherein said first and second agent processes are members of said agent class. - View Dependent Claims (31, 32)
-
-
33. A method for controlling movement of processes in a computer network, said method comprising:
-
defining a plurality of object-oriented classes including an agent class, a place class, and a ticket class; forming a plurality of place processes in said computer network wherein each of said plurality of place process is a member of said place class; forming an agent process wherein said agent process is a member of said agent class and occupies a first place process in said plurality of place processes; and forming a ticket wherein said ticket is a member of said ticket class and defines a trip involving the movement of said agent process from said first place process to a second place process in said plurality of place processes.
-
-
34. A method for limiting capabilities of processes in a computer network, said method comprising:
-
defining a plurality of object-oriented classes including a process class and a permit class; forming a process wherein said process is a member of said process class; and forming a permit wherein said permit is a member of said permit class and specifies one or more capabilities of said process. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. In a computer, a method of interpreting processes of various versions of an instruction set, said method comprising:
-
defining a plurality of object-oriented classes including a class of classes and a class of citations; forming one or more class objects wherein said class objects are members of said class of classes; forming within a first of said class objects a citation wherein said citation specifies said first class object and specifies which of said class objects are backward compatible with said first class object.
-
-
46. In a computer network having a plurality of computers, a communication process comprising:
-
providing a plurality of place processes within said computer network wherein each place process is a locale in one of said computers for zero or more agent processes; specifying, by a ticket means, a trip for an agent process to a destination place process in said plurality of place processes; and transporting, in response to a send operation within said agent process, a clone of said agent process to said destination place process. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80)
-
-
81. In a computer, a communication process comprising:
-
providing a first agent process and a second agent process; specifying a meeting between said first and second agent processes by a petition means; and arranging said meeting between said first and second agent processes as defined by said petition means. - View Dependent Claims (82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99)
-
-
100. In a computer network having a plurality of computers, a communication system comprising:
-
an agent means having a ticket means and a send operation; and a plurality of place means wherein each place means is operative in one of said plurality of computers; wherein said agent means is at a first place means in said plurality of place means; said ticket means specifies a trip for said agent means to a destination place means in said plurality of place means; and said send operation transports a clone of said agent means to said destination place means. - View Dependent Claims (101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133)
-
-
134. In a computer, a communication system comprising:
-
meeting place means having a meet operation wherein said meeting place means is a locale for a plurality of agent means; a petition means; a first agent means in said plurality of agent means; and a second agent means in said plurality agent means wherein; said first and second agent means can meet with any of said plurality of agent means; said petition means specifies a meeting between said first and second agent means; and in response to said meet operation, said meeting place means arranges said meeting. - View Dependent Claims (135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152)
-
-
153. In a computer network having one or more computers, a method for transferring data from a first engine process to a second engine process, said method comprising the steps of:
-
(a) providing means for executing one or more agent processes wherein said executing means comprises said first and second engine processes and further wherein each said agent process comprises instructions from a computer instruction set and has an execution state; (b) providing within said computer instruction set a go instruction wherein said go instruction is contained within a first agent process executing within said first engine process and further wherein performance of said go instruction causes; (i) suspension of execution of said first agent process by said first engine process; (ii) representation of said first agent process such that said execution state of said first agent process is preserved; (iii) transfer of said representation of said first agent process from said first engine process to said second engine process; and (iv) resumption of execution of said first agent process by said second engine process; (c) causing execution of said agent process by said first engine process, thereby causing performance of said go instruction. - View Dependent Claims (154, 155, 156, 157, 158)
-
-
159. A method for transferring data from a first engine process to one or more engine processes, said method comprising:
-
(a) providing means for executing a plurality of agent processes which comprise instructions from a computer instruction set wherein said agent process execution means comprises said first and one or more engine processes and further wherein each said agent process has an execution state; (b) providing within said computer instruction set a send instruction wherein said send instruction is contained within a first agent process in said plurality of agent processes and further wherein, execution of said send instruction, includes; (i) forming one or more copies of said first agent process wherein said copies preserve and include said execution state of said first agent process; (ii) transferring each of said copies of said first agent process from said first engine process to a respective one of said one or more engine processes; and (iii) effectuating execution of each of said copies of said first agent process by said respective one of said one or more engine processes so as to simulate the resumed execution of said first agent process. - View Dependent Claims (160)
-
-
161. A method of transferring data from a first agent process which is executing within a computer system to a second agent process which is executing within said computer system wherein said first and second agent processes are occupants of a place process, said method comprising:
-
causing, in response to a meet instruction issued by said first agent process, execution of a procedure by said second agent process wherein said procedure is a portion of said second agent process and comprises a collection of computer instructions contained within said second agent process; and providing to said first agent process, in response to a second instruction which is issued by said second agent process and which is part of said procedure, means for accessing said second agent process. - View Dependent Claims (162, 163, 164)
-
-
165. A method for transferring a first computer process from a first computer system to a second computer system, said first computer system comprising a first CPU and a first memory and said second computer system comprising a second CPU and a second memory, said method comprising:
-
initiating execution of said first computer process within said first CPU wherein said computer process has an execution state; suspending execution of said first computer process within said first CPU; representing said first computer process as data in said first memory wherein said data includes said execution state of said first computer process at the time execution of said first computer process is suspended; transferring said data from said first memory to said second memory; forming a second computer process on said second computer system from said data wherein said second computer process has said state of execution represented in said data; and causing execution of said second computer process, thereby effectively simulating resumption of execution of said first computer process, within said second CPU.
-
Specification