Modules are the computational units in an AVS dataflow network. AVS applications are created by connecting modules from several extensive libraries to perform the desired visualization functions [4]. There are four types of modules in AVS: (1) input, (2) filters, (3) mappers and (4) output. A module may have one or more ports, through which it is connected to other modules in the network. The ports have data types associated with them and connections between ports represent the flow of data in the network.
Most modules also have control panels which allow parameters to be set for each instance of a module. The parameters on a module control panel can be assigned values interactively, through command line scripts, or by assigning them to ports which are connected to other modules in an AVS network.
Another convenient feature of AVS is that it supports the execution of modules on remote AVS hosts of heterogeneous hardware types. Multiple hardware types are possible because the network communication and data transfer mechanism between the AVS kernel (see below) and the remote module are based on standard Unix TCP/IP network protocols and the data representation is based on Sun's External Data Representation (XDR) [5].
Remote module execution involves three aspects: remote system requirements; the local hosts file that AVS uses to locate remote modules; and the AVS Network Editor user interface to remote modules. Remote modules cannot be part of the AVS kernel and must be compiled and linked on the remote machine. On the local system the AVS kernel refers to the hosts file to locate remote module host names and directories. The Network Editor is used to access remote modules from the local machine by selecting the desired remote host and modules from the Module Tools menu. The module icon for a remote AVS module is identified in an AVS network by coloring the module control button pink.