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 modules. workflow bundle and algorithm bundle.
- Work flow bundle - This bundle consists with 3 classes
inherits OSGI bundle, hence it includes an activator class that implements the start method of OSGI budle.
- The Activator start method will invoke a workflow listener instance where it listens the events of the scheduler listener.
- Once the user click 'start record' - this will invoke the algorithm start event and the isRecord flag inside the workflow class sets to true.
The detail of the algorithm is shown as following,
- CitationBibtexAlgorithm class defines the functions to accept user input parameters, initialize logger functionality and displaying the results.
It invoked DownloadAuthorCitation class to download the BibTeX File.
- DownloadAuthorCitation uses GoogleScholarReaderHelper class to get the number of authors for the given 'Author Name' and also to get the ID from the Google Scholars site.
- DownloadAuthorCitation contains the functionality to download the citations BibTeX file from the Google Scholars site using the ID returned.
- MergeTable contains the functionality to create and populate the merge table.
- Each function includes the coding to log the success,failure information on each step of the file download process.
Source Code :