Client / Server Fiswidgets

Client / Server Overview

With all versions of Fiswidgets, most application wrappers can be broken down into two component parts. The first part is the Java GUI display that the user interacts with directly. The purpose of this part is to collect needed information to perform a series of tasks. The second part is the command invocation manager that is responsible for actually performing the tasks themselves. The invocation manager runs commands based upon the data given from the Java GUI. The invocation manager and the Java GUI communicate by calling methods on each other. With Fiswidgets versions 2.1 and lower, the invocation manager and Java GUI have to be running on the same machine to communicate.

Starting with version 2.2, the command invocation manager and Java GUI can communicate to each other from separate machines. Using features of the Java language, the two components can call methods on each other via a network connection. This new feature in Fiswidgets is called client / server mode. When put into this mode, the Java GUI becomes a client and connects to a Java program running on another machine. The Java program on the other machine is called a server. It is responsible for coordinating communication between GUIs and invocation managers. The server will receive information from a client and give it to the corresponding invocation manager to run on the server machine. If the backend commandline program generates any information that the user would need to access on the client machine, it will be sent back to the client by the server.

So far, there is little difference in running in client / server mode and not. However, there are some issues that are unique to client / server mode. Security is one issue that is very important.

Since the propose of the server is to run commands, a way is needed to prevent harmful commands from being run on the server machine. When a server is started, it runs under a username on the server machine. The server will execute commands using the same permissions as the user it is running under. The server cannot run commands that user cannot run himself. In addition, to make sure that a client may connect to a server, a username and password is sent to the server using SSL. The server receives the username and password and checks it against the password file on the server machine. If the authentication is successful, the client is granted access to the server.

Another issue is how multiple servers and clients interact with each other. An example of this interaction is that multiple clients may connect to a single server. This allows multiple applications to be run from a single server simultaneously. Also, when using a meta-application environment such as GlobalDesktop or GlobalWorkbench, it is possible to have multiple clients run on different servers or even in normal mode.

Another example of client / server interaction is that multiple servers can run on the same server machine. Since a server executes commands using the permissions of user whom started it, it is recommended that a user run his own server for client / server mode. A user may also run multiple servers from the same server machine as well. This allows a user to run a server with different settings without interfering with any currently running applications on another server.

Finally, it should be noted that not all Fiswidgets applications are capable of being run in client / server mode. Most of the applications that cannot be run in this mode cannot be easily broken down into a GUI and invocation manager. To see if an application is capable of client / server mode, please look a the button bar at the bottom of the GUI. If it is not enabled, then it cannot be run in client / server mode.
 

Client / Server setup and usage

To make use of client / server mode, some tasks must be done first.

Server side install/setup
This part should be done once on a server machine by a system administrator  who wants to install Fiswidgets.

Server side usage
In addtion, to the installation and setup by the system administrator, each user must also go through a setup routine on the server machine to make use of client / server mode. This setup routine entails the starting of a server for that user's exclusive use.
 

Client side install/setup
This part should be done once by a system administrator on a client machine.

Client side usage
This part should be done every time on a client machine by  a user who wants to use fiswidgets in client/server mode.

If you encounter problems during setup or usage check out our FAQ before contacting us.