Workflow module is an addition to the CIShell framework functionality. It allows the users to save multiple algorithms as a single workflow bundle.Once a user selects "start record" all the algorithms invoked by the user will be saved as a workflow in the system until user clicks "stop records". "stop record" pops up a save file dialog box in which the user specify where to save the xml file containing the workflow information. "play workflow" button requires the user to upload the xml document with workflow information. Once the workflow xml is loaded pla button will invoke all the algorithms saved in the workflow xml.
Pros & Cons
This algorithm facilitates the recording and playing a workflow inside CIShell framework but currently there is no implementation for handling user inputs except for input files.
This algorithm can be used to record a workflows of the CIShell framework and play them using the saved workflow information file.
Workflow implementation mainly consists with 2 distinct modules. workflow bundle and algorithms.
- Work flow bundle - This bundle consists with 3 classes
- Activator -
workflow bundle inherits the OSGI bundle, hence it includes an activator class that implements the start method of OSGI budle.
The start method instanciates the workflowlistener class as well as workflow class.
Workflow class includes a flag that sets to true once a user selects 'start record' button and sets to false, on 'stop record' button click.This functionality is activated through the workflow listener class.
Workflow listener class inherits the existing scheduler listener class. Hence it includes all the algorithm related events.
Once an 'AlgorithmFinished' event is invoked the listener class reads the algorithm information and saves it in a list.
The information in this list is later output as a workflow xml file.
- Activator -
This includes the algorithms that start, stop and play the workflow. Once the workflow record is clicked the startworkflow algorithm will set the isRecord flag to true in workflow module and on stop it'll be set to false
Play Algorithm will get the workflow related xml file from the user and invokes each algorithm.
Listed are the steps for using the workflow
- Make sure you are connected to the internet.
- Select 'Workflow' -> 'Start Record' from the menu bar.
- Invoke the algorithms that needs to be recorded as a workflow.
- Select 'Workflow' -> 'Stop Record' from the menu bar.
- Save the workflow xml.
- Select 'File' ->'Load' from the menu bar.
- Select the xml file containing workflow information.
- Select 'Workflow' -> 'Play workflow' from the menu bar.
- Source Code: