Speaker: Franc Brglez, Computer Science, NCSU
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.
Stallmann, Computer Science, NCSU
Colloquia Home Page.