## 1.2 System Structure

Data Explorer is designed as a client-server model. The Data Explorer client-server architecture incorporates system components such as TCP/IP, sockets, X Window System, and Motif.

In this client-server model, the user interface is the client. The executive, modules, and data management components, often referred to collectively as the executive, make up the server portion. The user interface client can be on a different platform from the server (executive), and the executive can run on multiple platforms simultaneously (distributed processing). Data Explorer allows you to switch among servers running on different hardware platforms.

The Data Explorer system can be thought of as consisting of four "layers," each with its own defined interface. These layers are described in the order in which you are likely to encounter them:

- Graphical user interface
- Executive
- Modules
- Data management.

### Graphical User Interface

The graphical user interface is built upon the X Window and Motif standards. These tools manage multiple application windows that allow a user to create and control the visualization process easily and effectively. The graphical user interface provides two levels of service. First, non-programmers or users with fixed requirements can execute previously created visual programs. These visual programs may consist of various menus, dials, sliders, and other interactors that provide fixed functions. Second, programmers can create customized visualizations by using the interface to interconnect modules in flexible ways, and to create new combinations of modules in the form of macros.

The Data Explorer graphical user interface lets you create or work with a visual program to easily realize sample, select, and transform data during visualization. You can use the Visual Program Editor (VPE) to create new scenarios by simply connecting module icons on the screen in any logical sequence.

Data Explorer provides the following primary windows:

Visual Program Editor | Lets you create and alter visual programs.
Control Panel | Lets you set and control the variable input parameters of the tools used in a visual program.
Image Window | Displays the image created by a visual program and allows direct interaction with the visualized image.
Help Window | Provides online access to the Data Explorer user manual and context-sensitive help information.

Data Explorer provides a Colormap Editor window that lets you map colors to specified data values and display the results in the visual image. The system also provides a Sequencer window, which has many uses, including controlling how a sequence of images is displayed (with forward and backward direction, repetition, and so on).

These windows are discussed in detail in Chapter 5. "Graphical User Interface: Basics". In addition, Data Explorer provides two stand-alone utilities:

`Data Prompter:` | a point-and-click interface for describing a data set for importing. (See IBM Visualization Data Explorer QuickStart Guide.)
`Module Builder:` | a point-and-click interface for describing the interface to a user-written module. The Module Builder creates the necessary makefiles and a template `.c` file for the module. (See IBM Visualization Data Explorer Programmer's Reference.)

### Executive

The executive is the component of the system that manages the execution of the modules specified in the scripting language. This scripting language is generated by the graphical user interface to invoke visualization functions for visual programs. Users can also use the scripting language to write their own programs, as described in Chapter 10. "Data Explorer Scripting Language".

### Modules

Data Explorer provides an extensive, powerful set of highly interoperable visualization modules. The modules used for visualization functions are available:

- As nodes, through the use of their icons in a visual programming network.

- As function calls, available in the scripting language interface provided by the executive layer.

- For integrated applications, as part of the visualization library programming interface. (See 13.10 , "Module Access" in IBM Visualization Data Explorer Programmer's Reference for information on this use of modules.)

### Data Management

The data management layer is the portion of the programming interface that provides modules with access to the data model, which is discussed in Chapter 3. "Understanding the Data Model". This layer includes general system services as well as routines for creating and managing the set of data objects. The data management layer also provides an application programming interface (API) for adding new modules to Data Explorer and for accessing the power and flexibility of the data model.

Detailed information on this API can be found in IBM Visualization Data Explorer Programmer's Reference.

### How the Data Model Facilitates Interoperability

The Data Explorer data model is not simply a convenient way to represent data objects. It also allows Data Explorer tools to be more powerful than they would be otherwise.

Tools can be used in multiple ways, because the components of the data set are described using a common structure. There is no distinction between "data," "positions," and "colors" in how they are represented within a Data Explorer field object. (For more information on Data Explorer fields, see Chapter 3. "Understanding the Data Model".) For example, you can use the Compute module to operate on the data to extract the magnitude, or x component of a vector (e.g., operate on the positions of a grid to warp the grid or on the colors of a field to negate an image). This also means that the user has the capability of modifying or inspecting all aspects of a data object.

Tools can be used on any object in Data Explorer; there is no distinction between "data objects" and "geometry objects." An isosurface or an image is represented in the same way in which an imported data field is represented. So for example, you can:

- create an isosurface (contour lines) of a mapped isosurface
- create an isosurface from an image
- map onto glyphs, streamlines, isosurfaces, etc.

The Data Model also ensures that the fidelity of the original data is maintained throughout the visualization process. In particular, all of the following are preserved throughout:

- the original coordinate space of the data
- the original range of data values (not scaled to 0 to 255, for example)
- attributes of the data (dependency on positions or connections)
- the presence of missing or invalid data.

Finally, the data model ensures that Data Explorer users and developers can add new components or new attributes without modifying current modules.

[ OpenDX Home at IBM | OpenDX.org ]