Starting the server

From KitwarePublic
Revision as of 16:42, 23 August 2006 by Berk (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Overview

Past versions of ParaView have required users to start client and server manually, specifying connection protocols and parameters at the command-line. ParaView3 improves the user experience by allowing users to start the client and make/break server connections using the client's graphical user interface.

For this functionality to work, ParaView must be properly configured to start remote servers. Startup procedures are expected to vary from site-to-site, due to differences in network topology, firewalls, address translation, logging requirements, etc. To accomodate this, a flexible mechanism allows users to run arbitrary commands on a per-server and/or per-connection-scheme basis at server startup.


Managing Servers

The collection of configured servers can be accessed through the "Manage Servers" dialog, which presents a listing of all servers that are already configured for automatic startup. The dialog contains standard controls for editing, deleting, and adding new server configurations. Additions and changes to configured servers are stored in per-user preferences.

Server configuration data can be saved and loaded to the local filesystem in XML format.

If a server configuration file named default_servers.pvsc is located in the same directory as the ParaView binary executable, it will be loaded at startup time. Per-user preferences are loaded after default_servers.pvsc, so they can override its contents. Note that additions, deletions, and changes to the set of configured servers do not affect the contents of default_servers.pvsc.

Figure 1: "Manage Servers" dialog displaying the list of configured servers.

Configuring New Servers

If the user chooses Add Server in the "Manage Servers" dialog, the "Configure New Server" dialog opens. The user is prompted to select the type of server connection to configure (see Server Resources), and the host or hosts that will be used by the new configuration.

Figure 2: "Configure New Server" dialog

Editing Server Configuration

If the user attempts to connect to a server without any configuration, creates a new server, or selects Edit Server in the "Manage Servers" dialog, the "Configure Server" dialog opens.

Command Startup

For new server configurations, the dialog defaults to a Command startup configuration. In this case ParaView will run an external command to start the server. The external command will be run using exec() (Posix systems) or CreateProcess() (Win32), so shell-specific functionality such as redirection or "&" cannot be used (unless you invoke a specific shell directly).

The external command cannot block while the server is running, it should start the server in the background and return.

Users may configure a delay between the time the startup command returns and the time that the client attempts connection.

The following environment variables are used to communicate connection parameters to the command:

  • PV_CONNECTION_URI
  • PV_CONNECTION_SCHEME
  • PV_SERVER_HOST
  • PV_SERVER_PORT
  • PV_DATA_SERVER_HOST
  • PV_DATA_SERVER_PORT
  • PV_RENDER_SERVER_HOST
  • PV_RENDER_SERVER_PORT
  • PV_USERNAME
Figure 3: "Configure Server" dialog, specifying "Command" startup.

Manual Startup

Users who prefer to start servers manually can specify as such in the "Configure Server" dialog. In this case, the user must ensure that the server(s) are running before attempting to connect with the ParaView client.

Figure 4: "Configure Server" dialog, specifying "Manual" startup.

Sample Startup Commands

Win32

To start a server on the local host:

cmd /c start /b pvserver --server-port=%PV_SERVER_PORT% --use-offscreen-rendering

cmd /c start /b is used to start pvserver in the background.

GNU/Linux

python -c "import os; os.system('pvserver --use-offscreen-rendering &')" 

... in this case, os.system() allows us to use the shell "&" to start pvserver in the background.