Just-in time workflow
First Claim
1. A method, implemented in a computer system, of constructing a distributed process engine comprising an ordered list of network services that forms a process for performing a task, wherein said network services are drawn from a pool of network services executing on a plurality of computing devices communicating over a network, said method comprising:
- a processor executing the steps of;
providing a template comprising a plurality of constraints on network services forming said process for performing the task;
analyzing the provided template to select a first network service, executing on a first one of the plurality of computing devices, from said pool of network services, depending on a first of a plurality of constraints in said template;
instantiating the selected first network service and appending the instantiated first network service to the ordered list of the distributed process engine;
identifying, by the first network service, a subset of potential second network services from the pool of network services depending on a second of the plurality of constraints in said template;
selecting, by the first network service, a second network service, executing on a second one of the plurality of computing devices, from the subset of potential second network services based on a constraint monitored by said first network service;
instantiating, by the first network service, the selected second network service and appending the instantiated second network service to the ordered list of the distributed process engine; and
transferring, by the first network service, responsibility for further construction of the ordered list for the distributed process engine to the instantiated second network service, said transfer applying, by the first network service, an event stimulus to the instantiated second network service, thereby enabling the instantiated second network service to perform the steps of;
(i) analyzing the template to identify a subset of potential third network services from the pool of network services depending on a third of the plurality of constraints in said template;
(ii) selecting, by the second network service, a third network service executing on a third one of the plurality of computing devices, from said pool of network services; and
(iii) instantiating the selected third network service and appending the instantiated third network service to the ordered list of the distributed process engine.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are arrangements, referred to as just-in-time workflow (JITW) arrangements, which provide a decentralised process (900) for performing a sequence of tasks, in which individual network services successively identify (961), assemble (960) and execute (962) a chain of subsequent network services on the basis of their suitability to communicate over a network and to perform their associated tasks.
66 Citations
20 Claims
-
1. A method, implemented in a computer system, of constructing a distributed process engine comprising an ordered list of network services that forms a process for performing a task, wherein said network services are drawn from a pool of network services executing on a plurality of computing devices communicating over a network, said method comprising:
-
a processor executing the steps of; providing a template comprising a plurality of constraints on network services forming said process for performing the task; analyzing the provided template to select a first network service, executing on a first one of the plurality of computing devices, from said pool of network services, depending on a first of a plurality of constraints in said template; instantiating the selected first network service and appending the instantiated first network service to the ordered list of the distributed process engine; identifying, by the first network service, a subset of potential second network services from the pool of network services depending on a second of the plurality of constraints in said template; selecting, by the first network service, a second network service, executing on a second one of the plurality of computing devices, from the subset of potential second network services based on a constraint monitored by said first network service; instantiating, by the first network service, the selected second network service and appending the instantiated second network service to the ordered list of the distributed process engine; and transferring, by the first network service, responsibility for further construction of the ordered list for the distributed process engine to the instantiated second network service, said transfer applying, by the first network service, an event stimulus to the instantiated second network service, thereby enabling the instantiated second network service to perform the steps of; (i) analyzing the template to identify a subset of potential third network services from the pool of network services depending on a third of the plurality of constraints in said template; (ii) selecting, by the second network service, a third network service executing on a third one of the plurality of computing devices, from said pool of network services; and (iii) instantiating the selected third network service and appending the instantiated third network service to the ordered list of the distributed process engine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system for constructing a distributed process engine comprising an ordered list of network services that forms a process for performing a task, wherein said services are drawn from a pool of network services executing on a plurality of computing devices communicating over a network, said system comprising:
-
at least one memory module for storing a program; and at least one processor for executing the program, said program comprising; code for providing a template comprising a plurality of constraints on network services forming said process for performing the task; code for analyzing the provided template to select a first network service, executing on a first one of the plurality of computing devices, from said pool of network services, depending on a first of the plurality of constraints in said template; code for instantiating the selected first network service and appending the instantiated first network service to the ordered list of the distributed process engine; code for identifying, by the first network service, a subset of potential second network services depending on a second of the plurality of constraints in said template; code for selecting, by the first network service, a second network service, executing on a second one of the plurality of computing devices, from the subset of potential second network services based on a constraint monitored by said first network service; code for instantiating, by the first network service, the selected second network service and appending the instantiated second network service to the ordered list of the distributed process engine; and code for transferring, by the first network service, responsibility for further construction of the ordered list for the distributed process engine to the instantiated second network service, said transfer applying, by the first network service, an event stimulus to the instantiated second network service, thereby enabling the instantiated second network service to perform the steps of; (i) analyzing the template to identify a subset of potential third network services from the pool of network services depending on a third of the plurality of constraints in said template; (ii) selecting, by the second network service, a third network service executing on a third one of the plurality of computing devices, from said pool of network services; and (iii) instantiating the selected third network service and appending the instantiated third network service to the ordered list of the distributed process engine.
-
-
20. A non-transitory computer readable medium storage medium having recorded thereon a computer program for directing a processor to execute a method for constructing a distributed process engine comprising an ordered list of network services that forms a process for performing a task, wherein said network services are drawn from a pool of network services executing on a plurality of computing devices communicating over a network, said program comprising:
-
code for providing a template comprising a plurality of constraints on network services forming said process for performing the task; code for analyzing the provided template to select a first network service, executing on a first one of the plurality of computing devices, from said pool of network services, depending on a first of the plurality of constraints in said template; code for instantiating the selected first network service and appending the instantiated first network service to the ordered list of the distributed process engine; code for identifying, by the first network service, a subset of potential second services from the pool of network services depending on a second of the plurality of constraints in said template; code for selecting, by the first network service, a second network service, executing on a second one of the plurality of computing devices, from the subset of potential second network services based on a constraint monitored by said first network service; code for instantiating, by the first network service, the selected second network service and appending the instantiated second network service to the ordered list of the distributed process engine; and code for transferring, by the first network service, responsibility for further construction of the ordered list for the distributed process engine to the instantiated second network service, said transfer applying, by the first network service, an event stimulus to the instantiated second network service, thereby enabling the instantiated second network service to perform the steps of; (i) analyzing the template to identify a subset of potential third network services from the pool of network services depending on a third of the plurality of constraints in said template; (ii) selecting, by the second network service, a third network service executing on a third one of the plurality of computing devices, from said pool of network services; and (iii) instantiating the selected third network service and appending the instantiated third network service to the ordered list of the distributed process engine.
-
Specification