Distributing Scientific Applications with Pied/Piper
By J.W. Bizzaro

(This document was modified from a poster presented at the Open Source/Open Science Conference at the Brookhaven National Laboratory, New York, in October of 1999.  Since then, the application's name has been changed from The Loci Project to Pied/Piper.  Many of the terms used below have also been changed, and their use is now deprecated.  The basic concepts remain, however.)


Piper is a network-distributed system of clients and servers for data processing. Client types include programs that process data (perform analysis, translation and visualization). (These are not part of the system but come as extensions, making Piper independent of data-type and thus general-purpose.) Other clients include control structure (e.g., if and while) and user interface (UI) components. In the Pied UI, clients can be represented as the nodes of a "Work Flow Diagram" (WFD), joined by lines that depict network connections. The Pied/Piper system therefore provides a workspace for connecting and combining nodes, allowing Piper to functioning as a graphical scripting language. And, the network-distributed nature of Piper permits the user to deal with large data sets in a unique way: UI components will reside on a local workstation while compute-intensive, data-processing nodes execute remotely on high-performance computers. Linking nodes across the Internet can also be used to form world-wide collaboratives and provide access to an infinitely extensible set of tools for the user.


Scientific programming for the UNIX environment has mostly been about making rudimentary, non-interactive programs for one user: the person who writes the program. The result is, there are thousands of programs that are extremely difficult for the non-programming scientist to use. What is needed is a system that can provide an easy way to access and interconnect such programs using a modern GUI. This is the goal of Pied/Piper. The system appears to be very straight-forward in design, but the Piper developers are striving to provide the simplest facade to the obfuscated world of scientific programs.


1. Everything is a self-contained object or "node".

2. Certain nodes can input and/or output data flow.

3. Nodes can be linked to define paths of data flow, procedural steps, and relationships.

4. Every node has a network "location".

5. Nodes are only represented locally, if possible.


Documents are files that contain one or more data that can be processed (Figure 1).

Converters change data formats from one type to another. They are often needed between every other node (Figure 1).

Processors modify data. They will always have both input and output (Figures 1 & 2).

Viewers display data for the user. They have no output other than to the user himself (Figure 1).

Containers are nodes that store other nodes. They act as both database and file system by allowing a query of documents stored as files (Figure 3).

Decisions are control structures that allow Piper to be a graphical programming language (Figure 4).

Widgets are GUI components for the construction of interfaces (Figure 4).

Terminators start or stop the workflow (Figure 4).

Composites are nodes that represent an entire portion of a WFD (Figure 4).

Figure 1: Nodes forming a Workflow Diagram (WFD)

Figure 2: An example of a processor and its "windowlet"

Figure 3: Nodes can be removed from containers by attaching a processor that queries the container or by drag-and-drop.

Figure 4: Composite, widget, decision and terminator nodes


Individual nodes initially appear as icons in the Pied/Piper Workspace, which is akin to a desktop in a modern windowing system.

There is no menubar for Pied/Piper, as all operations are performed via pull-down menu from a right mouse button click or some other use of the mouse. The nodes are "opened" from the file system by removing them from a container node (Figure 3).

Nearly all nodes possess their own GUI, which is contained in a miniature window, called a "windowlet" (Figure 2). Container nodes can therefore show their contents within their windowlet.

Connecting output lines to input lines constructs a Workflow Diagram (WFD; Figure 1). Work progresses through numerous workpaths in the WFD.

The operation of Pied/Piper compares favorably to that of a World Wide Web browser (Table I), which has become increasingly more popular for scientific data processing.

Table I: Comparison of Pied/Piper and a typical WWW browser
Pied/Piper WWW Browser
Workpath Type Tree Linearized Tree
Display of Workpath Graphical Pull-Down Menu
Workpath Prespecified? Yes No
Data Incorporation Via Filesystem Cut & Paste
GUI Type Dynamic Static