Server Connections

From ParaQ Wiki
Jump to navigationJump to search

Overview

ParaView3 introduces new capabilities for making-and-breaking client/server connections. In particular, it improves the user experience by making it possible to provide a graphical user interface for server connections, versus the command-line interface of previous ParaView versions. See Server Connection Dialog for a graphical user interface design. This document covers the requirements and implementation details for making connections.

Connection Types

ParaView must support several different types of connection between client and server:

  • Builtin - the client process "connects" to its own "builtin" PV server.
  • Remote/Forward/No Startup - the client connects to an already-running PV server.
  • Remote/Forward/With Startup - the client starts a PV server, then connects to it.
  • Remote/Reverse/No Startup - the client waits for a PV server to connect to it.
  • Remote/Reverse/With Startup - the client starts a PV server, then waits for the server to connect to it.

Networking Protocols

Connections between client and server are normally made using unencrypted TCP/IP networking, but provisions should be made for other possibilities - in particular, Secure Connections via SSL.

Startup Mechanisms

When the client "starts" a server for either forward or reverse connections, it must be able to handle a wide variety of situations:

  • Starting the server directly on the local host.
  • Starting the server via a user-configurable script on the local host.
  • Starting the server directly on a remote host via ssh.
  • Starting the server via a user-configurable script on a remote host, via ssh.

... as a generalization, we likely want to allow the user to specify any arbitrary command-line for starting a server.

One case we have to have is a way to start client and a specified number of servers, connect them and load a specified set of files from the server file system using a simple command line or shell script.

Authentication

When starting the server on remote hosts via ssh, it will be necessary for the user to provide authentication first. Using standard ssh command-line prompts to do this would be impractical, since it would not integrate well with the ParaView client's graphical user interface. There are a number of workarounds:

  • Posix ssh clients
    • OpenSSH - the SSH_ASKPASS environment variable can be used to specify an executable that will be used to prompt the user for a password. Although this executable is a separate process, its look-and-feel can match that of the ParaView client.
  • Windows ssh clients - we assume that they can be started via a command-line, and that they will provide a GUI prompt, but that needs to be confirmed.
    • Putty - opens a window and prompts the user for a password using a terminal-style interface.
    • F-Secure -