@comment FROM: Z-Cite-Z_Citations4CBL.bib via BibSplit on Wed Oct 13 11:32:41 EDT 2004 @inproceedings{ 2000-CTS-Brglez, author = "F. Brglez and H. Lavana ", title = "{ Taskflow-Oriented Programming: A Paradigm for Distributed Collaborative Computing}", booktitle = "{12-th IASTED International Conference on Parallel and Distributed Computing, Collaborative Technologies Symposium}", publisher = "{ACTA Press}", month = "November", year = "2000", note = "{Also available at {\tt http://www.cbl.ncsu.edu/\-publications/\-2000-CTS-Brglez}}", abstract = { Taskflow-oriented programming merges concepts from structured programming, hardware description, and mark-up languages. A mark-up language such as XML supports a well-defined schema that can capture the decomposition of a program into a hierarchy of tasks. A hardware description language such as VHDL relies on well-defined and explicit input/output port definitions to create, at any level of hierarchy, explicit data dependencies among tasks. A structured programming language provides control to sequence the execution of all tasks. We apply these concepts to the design of a distributed user-configurable environment that supports project-specific collaborative, networked, and taskflow-oriented programming as well as computing. Starting with the top-down decomposition of a computing project into task, we capture not only the hierarchy of tasks but also {\em explicit and user-defined} dependencies, i.e. directed \verb+task=>task+ control edges. Data dependencies are created implicitly only during the detailed bottom-up implementation of input/output assignments for each task. Task-flow programming is not about programming the tasks. Rather, it is about programming dependency edges between the tasks, \verb+task=>task+ control edges in particular. An executable program is written simply as a (hierarchical) taskflow in XML, interconnecting tasks and data. Most \verb+task=>task+ edges are in the 'enabled' state by default and require no programming, while conditions to `enable/disable' the state of \verb+task=>task+ edges are short and simple and are an integral part of the task node encapsulation. Similarly, the \verb+data->task+ and \verb+task->data+ edges are always `enabled'. } }