Workflows may be built using web services as building blocks. WFLOW is a browser-based workflow editor that uses Tigra Tree Menu, Graphviz, gSOAP, and bashlib to build, display, and invoke workflows built from WSDL described web services. Tigra Tree Menu Tigra Tree Menu (http://www.softcomplex.com/products/tigra_tree_menu/), an open-source JavaScript menu generator, is used to display the services published at a site in its WSDL (web services description language) document. Uploading a simple text file containing the URLs of desired WSDLs initializes the editor and menu. Nodes are added to a workflow by clicking on menu items. Graphviz Graphviz (http://www.graphviz.org) is an open-source graph visualization package that includes an option to produce clickable bitmaps for web pages. This feature is utilized by WFLOW to build a workflow where each node of the graph represents a web service that can be configured by clicking on it. Configuration options are displayed, along with drop-down menus that list potential edge sinks on downstream nodes. Future work could incorporate an ontology for our WSDL to further constrain graph semantics. gSOAP gSOAP (http://www.cs.fsu.edu/~engelen/soap.html) is an open-source web services development toolkit that offers the ability to invoke web services in C/C++. Pressing the "Run Workflow" button creates a C source file from the graph using gSOAP calls, which is then compiled and run. Once invoked, workflows do not require the client running the browser to stay online; status and results of the job are output to a web page that can be viewed at any time. The C source code can be saved and rerun by hand or incorporated into a larger script. bashlib bashlib (http://bashlib.sourceforge.net) "is a shell script that makes CGI programming in the bash shell easier, or at least more tolerable."
Displayed as a Graphviz bitmap, nodes are instantiated in the right pane by selecting a WSDL service from the left pane. Each node is configured by clicking on it, which opens a page within the pane displaying configuration options, along with drop-down menus that list potential edge sinks on downstream nodes.
Last updated 5/23/2013