Method and apparatus for facilitating scalability during automated data processing
First Claim
1. A method, comprising the steps of:
- providing a computer system having a plurality of processors, including first and second processors;
executing in said computer system on one of said processors thereof a first procedure which selectively launches execution in said computer system of respective project definitions in response to respective requests for execution thereof, each said project definition including;
a plurality of function portions which each correspond to one of a plurality of predetermined function definitions that are different, and which each define at least one input port and at least one output port that are functionally related according to the corresponding function definition;
a further portion which includes a source portion identifying a data source and defining an output port through which data from the data source can be produced, and which includes a destination portion identifying a data destination and defining an input port through which data can be supplied to the data destination; and
binding information which includes binding portions that each associate a respective said input port with one of said output ports;
providing second and third procedures which can be respectively executed by said first and second processors and which can each effect execution of said project definitions;
causing said first procedure to respond to a request for execution of a first said project definition by launching execution in said first processor of said first project definition by said second procedure; and
causing said first procedure to respond to a request for execution of a second said project definition during execution of said first project definition in said first processor by evaluating at least one of said second project definition and a current operational characteristic of said first processor, by selecting one of said first and second processors in dependence on a result of said evaluating step, and by then launching execution in said selected one of said first and second processors of said second project definition by a respective one of said second and third procedures.
22 Assignments
0 Petitions
Accused Products
Abstract
A number of items of data from a data source (12) can be processed and supplied to a data destination (16, 17). The data can include image data, text data, numeric data or other types of data, or a combination of these types of data. The processing of the data is controlled by a project definition (14, 71, 101), which includes a plurality of modules selected from a variety of available modules (Tables 1-4). The modules have input and output ports which are interrelated by binding information. Where a project definition is complex and/or is assigned to process a large data set, capability is provided to launch multiple instances of the same project definition, each of which processes a respective portion of the data. Further, capability is provided to launch multiple instances of the same or different project definitions on each of one or more computers, in order to efficiently execute project definitions in a centralized processing facility.
53 Citations
44 Claims
-
1. A method, comprising the steps of:
-
providing a computer system having a plurality of processors, including first and second processors;
executing in said computer system on one of said processors thereof a first procedure which selectively launches execution in said computer system of respective project definitions in response to respective requests for execution thereof, each said project definition including;
a plurality of function portions which each correspond to one of a plurality of predetermined function definitions that are different, and which each define at least one input port and at least one output port that are functionally related according to the corresponding function definition;
a further portion which includes a source portion identifying a data source and defining an output port through which data from the data source can be produced, and which includes a destination portion identifying a data destination and defining an input port through which data can be supplied to the data destination; and
binding information which includes binding portions that each associate a respective said input port with one of said output ports;
providing second and third procedures which can be respectively executed by said first and second processors and which can each effect execution of said project definitions;
causing said first procedure to respond to a request for execution of a first said project definition by launching execution in said first processor of said first project definition by said second procedure; and
causing said first procedure to respond to a request for execution of a second said project definition during execution of said first project definition in said first processor by evaluating at least one of said second project definition and a current operational characteristic of said first processor, by selecting one of said first and second processors in dependence on a result of said evaluating step, and by then launching execution in said selected one of said first and second processors of said second project definition by a respective one of said second and third procedures. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-readable medium encoded with a computer program executable in a computer system having a plurality of processors, including first and second processors, said program being operable when executed to facilitate:
-
execution in said computer system on one of said processors thereof of a first procedure which selectively launches execution in said computer system of respective project definitions in response to respective requests for execution thereof, each said project definition including;
a plurality of function portions which each correspond to one of a plurality of predetermined function definitions that are different, and which each define at least one input port and at least one output port that are functionally related according to the corresponding function definition;
a further portion which includes a source portion identifying a data source and defining an output port through which data from the data source can be produced, and which includes a destination portion identifying a data destination and defining an input port through which data can be supplied to the data destination; and
binding information which includes binding portions that each associate a respective said input port with one of said output ports;
execution by said first and second processors of second and third procedures which can each effect execution of said project definitions;
a response by said first procedure to a request for execution of a first said project definition by the launch in said first processor of execution of said first project definition by said second procedure; and
a response by said first procedure to a request for execution of a second said project definition during execution of said first project definition in said first processor by evaluation at least one of said second project definition and a current operational characteristic of said first processor, by selection of one of said first and second processors in dependence on a result of said evaluation, and by the launch in said selected one of said first and second processors of execution of said second project definition by a respective one of said second and third procedures. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method, comprising the steps of:
-
providing a computer system having a plurality of processors;
executing in said computer system a first procedure which selectively launches execution by at least one second procedure in said computer system of project definitions in response to respective requests for execution thereof, each said project definition obtaining data from a data source, processing the data according to a project definition, and placing the data in a data destination; and
causing said first procedure to respond to a request for execution of a selected said project definition by evaluating a predetermined characteristic of said selected project definition, said first procedure being responsive to a determination that said characteristic does not exceed a threshold for launching execution in said computer system of one instance of said selected project definition to process all of the data from the corresponding data source, and being responsive to a determination that said characteristic exceeds said threshold for launching execution in said computer system of separate first and second instances of said selected project definition to respectively process mutually exclusive first and second portions of the data from the corresponding data source. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
wherein said processors of said computer system include first and second processors; - and
including in response to a determination that said characteristic exceeds said threshold the further step of causing said first procedure to;
evaluate a current operational characteristic of said first processor;
launch execution of said first instance on said first processor; and
launch execution of said second instance on one of said first and second processors selected as a function of said evaluations of said selected project definition and said operational characteristic.
-
-
19. A method according to claim 17, including the step of carrying out said launching of said first instance in a first of said processors in said computer system, and carrying out said launching of said second instance in a second of said processors.
-
20. A method according to claim 17, including the step of carrying out said launching of said first and second instances so that said first and second instances are both launched in the same processor of said computer system.
-
21. A method according to claim 17, including the step of causing said characteristic to be a function of the complexity of said selected process definition.
-
22. A method according to claim 17, including the step of causing said characteristic to be a function of the amount of data in the data source corresponding to said selected project definition.
-
23. A method according to claim 17, including the step of causing said first procedure to be responsive to a determination that said characteristic exceeds said threshold for launching execution in said computer system, in addition to said first and second instances, of at least one further instance of said selected project definition, each said further instance processing a respective further portion of the data from the corresponding data source, said first, second and further portions of the data being mutually exclusive from each other.
-
24. A method according to claim 17, including the step of providing within each said project definition:
-
a plurality of function portions which each correspond to one of a plurality of predetermined function definitions that are different, and which each define at least one input port and at least one output port that are functionally related according to the corresponding function definition;
a further portion which includes a source portion identifying the data source associated with that project definition and defining an output port through which data from the data source can be produced, and which includes a destination portion identifying the data destination associated with that project definition and defining an input port through which data can be supplied to the data destination; and
binding information which includes binding portions that each associate a respective said input port with one of said output ports.
-
-
25. A method according to claim 19, including the step of causing said first procedure to be executed in a third processor which is separate from said first and second processors.
-
26. A method according to claim 19, including the step of causing said first procedure to be executed in one of said first and second processors.
-
27. A method according to claim 20, including the step of causing said first procedure to be executed in a processor different from the processor in which said first and second instances are launched.
-
28. A method according to claim 20, including the step of causing said first procedure to be executed in the same processor as said first and second procedures.
-
29. A method according to claim 23, including the step of accepting data from the corresponding data source which includes image data.
-
30. A method according to claim 23, including the step of accepting said image data in a form which includes multiple images.
-
31. A computer-readable medium encoded with a computer program executable in a computer system having a plurality of processors, said program being operable when executed to facilitate:
-
execution in said computer system of a first procedure which selectively launches execution by at least one second procedure in said computer system of project definitions in response to respective requests for execution thereof, each said project definition obtaining data from a data source, processing the data according to a project definition, and placing the data in a data destination; and
a response by said first procedure to a request for execution of a selected said project definition by evaluation of a predetermined characteristic of said selected project definition, said first procedure being responsive to a determination that said characteristic does not exceed a threshold for launching execution in said computer system of one instance of said selected project definition to process all of the data from the corresponding data source, and being responsive to a determination that said characteristic exceeds said threshold for launching execution in said computer system of separate first and second instances of said selected project definition to respectively process mutually exclusive first and second portions of the data from the corresponding data source. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
evaluating a current operational characteristic of a first said processor;
launching execution of said first instance on said first processor; and
launching execution of said second instance on a selected one of said first processor and a second said processor, said selected processor being selected as a function of said evaluations of said selected project definition and said operational characteristic.
-
-
33. A computer-readable medium according to claim 31, wherein said program is operable when executed to facilitate said launching of said first instance in a first of said processors in said computer system, and said launching of said second instance in a second of said processors.
-
34. A computer-readable medium according to claim 31, wherein said program is operable when executed to facilitate said launching of said first and second instances so that said first and second instances are both launched in the same processor of said computer system.
-
35. A computer-readable medium according to claim 31, wherein said program is operable when executed to facilitate said evaluation of said characteristic as a function of the complexity of said selected process definition.
-
36. A computer-readable medium according to claim 31, wherein said program is operable when executed to facilitate said evaluation of said characteristic as a function of the amount of data in the corresponding data source.
-
37. A computer-readable medium according to claim 31, wherein said program is operable when executed to facilitate launching by said first procedure, in response to a determination that said characteristic exceeds said threshold, of execution in said computer system of at least one further instance of said selected project definition in addition to said first and second instances thereof, each said further instance processing a respective further portion of the data from the corresponding data source, said first, second and further portions of the data being mutually exclusive from each other.
-
38. A computer-readable medium according to claim 31, wherein said program is operable when executed to facilitate acceptance by at least one of said first and second instances of data from the corresponding data source which includes image data.
-
39. A computer-readable medium according to claim 31, wherein said program is operable when executed to cause each of said project definitions to include:
-
a plurality of function portions which each correspond to one of a plurality of predetermined function definitions that are different, and which each define at least one input port and at least one output port that are functionally related according to the corresponding function definition;
a further portion which includes a source portion identifying the data source associated with that project definition and defining an output port through which data from the data source can be produced, and which includes a destination portion identifying the data destination associated with that project definition and defining an input port through which data can be supplied to the data destination; and
binding information which includes binding portions that each associate a respective said input port with one of said output ports.
-
-
40. A computer-readable medium according to claim 33, wherein said program is operable when executed to facilitate execution of said first procedure in a third processor which is separate from said first and second processors.
-
41. A computer-readable medium according to claim 33, wherein said program is operable when executed to facilitate execution of said first procedure in one of said first and second processors.
-
42. A computer-readable medium according to claim 34, wherein said program is operable when executed to facilitate execution of said first procedure in a processor different from the processor in which said first and second instances are launched.
-
43. A computer-readable medium according to claim 34, wherein said program is operable when executed to facilitate execution of said first procedure in the same processor as said first and second instances.
-
44. A computer-readable medium according to claim 38, wherein said program is operable when executed to facilitate acceptance of said image data in a form which includes multiple images.
Specification