(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.)
ABSTRACT
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.
INTRODUCTION/MOTIVATION
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.
THE PIPER PARADIGM
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.
NODE TYPES
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
OPERATION
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 |