Handling of data sets during execution of task routines of multiple languages
First Claim
1. An apparatus comprising a processor and a storage to store instructions that, when executed by the processor, cause the processor to perform operations comprising:
- receive, at the processor and from a remote device, a request to perform a job flow defined in a job flow definition stored in at least one federated area, wherein;
the job flow definition specifies a set of tasks to be performed via execution of a corresponding set of task routines during the job flow performance;
at least one flow input data set is to be employed as an input to the job flow performance;
at least one mid-flow data set is to be exchanged between at least two of the set of task routines;
at least one result report is to be output during the job flow performance; and
the at least one federated area is maintained within at least one storage device to store the job flow definition, and multiple task routines, data sets and result reports;
retrieve, from among the multiple task routines, a most recent version of each task routine of the set of task routines to perform a corresponding task of the set of tasks when executed;
analyze each interface of each task routine of the set of task routines by which a data set is accepted as an input or is output during execution of the task routine to identify at least one dependency among at least two task routines in which a first task routine of the at least two task routines outputs a mid-flow data set that a second task routine of the at least two task routines accepts as an input, and in which the first task routine and the second task routine include executable instructions written in different programming languages;
execute the executable instructions of the set of task routines to perform the set of tasks to thereby perform the job flow;
in response to having identified at least one dependency in which the first task routine outputs a mid-flow data set that the second task routine accepts as an input, and in which the first task routine and the second task routine include executable instructions written in different programming languages, perform operations comprising;
instantiate a shared memory space to store at least one mid-flow data set during the job flow performance;
for each identified dependency of the at least one identified dependency;
convert the mid-flow data set from a first form supported by the programming language in which the executable instructions of the first task routine are written, and into a second form supported by the programming language in which the executable instructions of the second task routine are written;
store one of the first form and the second form of the mid-flow data set within the at least one federated area as one of the multiple data sets; and
store another of the first form and the second form of the mid-flow data set within the shared memory space as the mid-flow data set is converted;
un-instantiate the shared memory space; and
transmit the at least one result report output during the performance of the job flow to the remote device.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus includes a processor to: receive a request to perform a job flow defined in a job flow definition; retrieve the most recent versions of a set of task routines to perform a set of tasks of the job flow; analyze each interface of each task routine by which a data set is input or output during execution to identify dependencies where two task routines exchange a data set, and are written in different programming languages; execute the set of task routines to perform the job flow; in response to identifying such a dependency, convert the data set from a form supported by the programming language of one of the two task routines and into a form supported by the programming language of the other; store one of the forms within a federated area; and transmit a result report output during the performance to a remote device.
-
Citations
30 Claims
-
1. An apparatus comprising a processor and a storage to store instructions that, when executed by the processor, cause the processor to perform operations comprising:
-
receive, at the processor and from a remote device, a request to perform a job flow defined in a job flow definition stored in at least one federated area, wherein; the job flow definition specifies a set of tasks to be performed via execution of a corresponding set of task routines during the job flow performance; at least one flow input data set is to be employed as an input to the job flow performance; at least one mid-flow data set is to be exchanged between at least two of the set of task routines; at least one result report is to be output during the job flow performance; and the at least one federated area is maintained within at least one storage device to store the job flow definition, and multiple task routines, data sets and result reports; retrieve, from among the multiple task routines, a most recent version of each task routine of the set of task routines to perform a corresponding task of the set of tasks when executed; analyze each interface of each task routine of the set of task routines by which a data set is accepted as an input or is output during execution of the task routine to identify at least one dependency among at least two task routines in which a first task routine of the at least two task routines outputs a mid-flow data set that a second task routine of the at least two task routines accepts as an input, and in which the first task routine and the second task routine include executable instructions written in different programming languages; execute the executable instructions of the set of task routines to perform the set of tasks to thereby perform the job flow; in response to having identified at least one dependency in which the first task routine outputs a mid-flow data set that the second task routine accepts as an input, and in which the first task routine and the second task routine include executable instructions written in different programming languages, perform operations comprising; instantiate a shared memory space to store at least one mid-flow data set during the job flow performance; for each identified dependency of the at least one identified dependency; convert the mid-flow data set from a first form supported by the programming language in which the executable instructions of the first task routine are written, and into a second form supported by the programming language in which the executable instructions of the second task routine are written; store one of the first form and the second form of the mid-flow data set within the at least one federated area as one of the multiple data sets; and store another of the first form and the second form of the mid-flow data set within the shared memory space as the mid-flow data set is converted; un-instantiate the shared memory space; and transmit the at least one result report output during the performance of the job flow to the remote device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, the computer-program product including instructions operable to cause a processor to perform operations comprising:
-
receive, at the processor and from a remote device, a request to perform a job flow defined in a job flow definition stored in at least one federated area, wherein; the job flow definition specifies a set of tasks to be performed via execution of a corresponding set of task routines during the job flow performance; at least one flow input data set is to be employed as an input to the job flow performance; at least one mid-flow data set is to be exchanged between at least two of the set of task routines; at least one result report is to be output during the job flow performance; and the at least one federated area is maintained within at least one storage device to store the job flow definition, and multiple task routines, data sets and result reports; retrieve, from among the multiple task routines, a most recent version of each task routine of the set of task routines to perform a corresponding task of the set of tasks when executed; analyze each interface of each task routine of the set of task routines by which a data set is accepted as an input or is output during execution of the task routine to identify at least one dependency among at least two task routines in which a first task routine of the at least two task routines outputs a mid-flow data set that a second task routine of the at least two task routines accepts as an input, and in which the first task routine and the second task routine include executable instructions written in different programming languages; execute the executable instructions of the set of task routines to perform the set of tasks to thereby perform the job flow; in response to having identified at least one dependency in which the first task routine outputs a mid-flow data set that the second task routine accepts as an input, and in which the first task routine and the second task routine include executable instructions written in different programming languages, perform operations comprising; instantiate a shared memory space to store at least one mid-flow data set during the job flow performance; for each identified dependency of the at least one identified dependency; convert the mid-flow data set from a first form supported by the programming language in which the executable instructions of the first task routine are written, and into a second form supported by the programming language in which the executable instructions of the second task routine are written; store one of the first form and the second form of the mid-flow data set within the at least one federated area as one of the multiple data sets; and store another of the first form and the second form of the mid-flow data set within the shared memory space as the mid-flow data set is converted; un-instantiate the shared memory space; and transmit the at least one result report output during the performance of the job flow to the remote device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-implemented method comprising:
-
receiving, by a processor, and from a remote device, a request to perform a job flow defined in a job flow definition stored in at least one federated area, wherein; the job flow definition specifies a set of tasks to be performed via execution of a corresponding set of task routines during the job flow performance; at least one flow input data set is to be employed as an input to the job flow performance; at least one mid-flow data set is to be exchanged between at least two of the set of task routines; at least one result report is to be output during the job flow performance; and the at least one federated area is maintained within at least one storage device to store the job flow definition, and multiple task routines, data sets and result reports; retrieving, from among the multiple task routines, a most recent version of each task routine of the set of task routines to perform a corresponding task of the set of tasks when executed; analyzing, by the processor, each interface of each task routine of the set of task routines by which a data set is accepted as an input or is output during execution of the task routine to identify at least one dependency among at least two task routines in which a first task routine of the at least two task routines outputs a mid-flow data set that a second task routine of the at least two task routines accepts as an input, and in which the first task routine and the second task routine include executable instructions written in different programming languages; executing, by the processor the executable instructions of the set of task routines to perform the set of tasks to thereby perform the job flow; in response to having identified at least one dependency in which the first task routine outputs a mid-flow data set that the second task routine accepts as an input, and in which the first task routine and the second task routine include executable instructions written in different programming languages, performing operations comprising; instantiating, by the processor, a shared memory space to store at least one mid-flow data set during the job flow performance; for each identified dependency of the at least one identified dependency; converting, by the processor, the mid-flow data set from a first form supported by the programming language in which the executable instructions of the first task routine are written, and into a second form supported by the programming language in which the executable instructions of the second task routine are written; storing one of the first form and the second form of the mid-flow data set within the at least one federated area as one of the multiple data sets; and storing another of the first form and the second form of the mid-flow data set within the shared memory space as the mid-flow data set is converted; un-instantiating, by the processor, the shared memory space; and transmitting, from the processor, the at least one result report output during the performance of the job flow to the remote device. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification