You are here
A Tool for Live, Interactive Workflow Views over Programming Scripts
Michael Yoo has just finished his third year as a Computer Engineering major at the University of Illinois at Urbana-Champaign. His interests include data mining and analysis, algorithms, and distributed systems. In his free time, Michael enjoys break-dancing, cooking, and competing at hackathons.
YesWorkflow (YW) is software toolkit that provides some of the benefits of using a scientific workflow system without having to rewrite scripts and other scientific software. Rather than reimplementing code so that it can be executed and managed by a workflow engine, a YW user simply adds special comments to existing scripts to declare how data is used and results are produced, step by step, by the script. YW uses these comments to create a rendering of the script as a workflow. A YW graphing module currently produces static graphical views (in Graphviz DOT format) of the resulting workflow model of the script.
The static graphs produced by YW can be large and complex. We propose to develop an interactive viewer for YW graphical output that will make these graphs easier to explore and interpret. For example, clicking on a data item in the workflow view optionally will highlight the (prospective) direct and indirect data dependencies for that data item (the data from which it will be derived when the script is run). Features for expanding and collapsing nested subworkflows also will facilitate exploration of these graphs.
The interactive graph tool will also serve as an entry point to discovering and exploring the original scripts and relating them to the workflow graphs, e.g., clicking on a node in the YW view will allow the user to inspect the source code behind that node. Similarly, users of data products can view both the YW representation of the script, and the original data manipulation code corresponding to blocks in the workflow graphs.
Last not least, the interactive graph will facilitate use of YesWorkflow as a design tool when developing new scripts (or even before a script is written) via live-update features. Given a set of script files, the live-graph feature will monitor these files for changes and update the chosen graphical view automatically. Users of this feature will continue to be able use their favorite text editor or IDE for developing their scripts.