NC State University

Department of Computer Science Colloquia 2000-2001

Date: Thursday, October 26, 2000
Time: 4: 00 PM (talk)
Place: 402A Withers, NCSU Historical Campus (click for courtesy parking request)

Speaker:  Franc Brglez, Computer Science, NCSU

Taskflow-Oriented Programming:
A Paradigm for Distributed Collaborative Computing

Abstract:  Emerging protocols such as SOAP (Simple Object Access Protocol) promise to facilitate the development and the  delivery of more powerful server applications to the next generation of http-based and XML-compliant clients (web-browsers). Still, users of such clients can only invoke one application at a time. If the application does support execution of task sequences,  the sequences and the tasks have been pre-configured by the server application -- not the user. Such limitations provide the motivation to introduce a client application that does support distributed collaborative computing in the context of two paradigms: (1) taskflow-oriented programming and computing, (2) project-specific task assignment and on-going task synchronization among participating members of the project team -- from the start to the end of the project.

The taskflow-oriented programming as introduced in this talk 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, each of which may represent a stand-alone legacy application on a specific server. A hardware description language relies on input/output ports to define, at any level of hierarchy, explicit data dependencies among tasks. A structured programming language provides the control to sequence the execution of all tasks. We apply these concepts to the design of a distributed user-configurable client that supports project-specific collaborative, networked, and taskflow-oriented programming as well as computing. Starting with the top-down decomposition of a project into tasks, the client supports the capture and rendering not only the tree hierarchy of tasks but also the user-defined graph-based dependencies, i.e. directed 'task=>task' control edges. Data dependencies are created 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, 'task=>task' control edges in particular. An executable program is written simply as a (hierarchical) taskflow in XML, interconnecting tasks and data. Most 'task=>task' edges are in the 'enabled' state by default and require no programming, while conditions to `enable/disable' the state of 'task=>task' edges are  short and simple and are an integral part of the task node encapsulation. Similarly, the 'data->task' and 'task->data' edges are always `enabled'. The protocols to invoke tasks and access data are transparent and extensible: they can range from telnet, ssh, http, rpc to SOAP.

This is a joint research project with Hemang Lavana. More information is available on the Web.

Short Bio: See the home page under Franc Brglez.

Host: M. Stallmann, Computer Science, NCSU

Colloquia Home Page.