We'll begin with a short overview, of how to launch a database program, and how the communication between db-program and remote GUI is established (using Windows as frontend system). The user clicks on an icon, and a rlogin connection to the UNIX database host is established, the command line is automatically transferred, and the 4GL-program starts.
Figure: Starting a 4GL-program at the UNIX-Server
It then reverse connects to the Windows-machine (it reads an environment- variable FGLSERVER comparable with the DISPLAY variable for X11-applications) with our 4GL Server at a specified port (6400) and transferres Tcl/Tk-commands like button or entry to the windows-machine. These commands are evaluated and shape the GUI. Because the rlogin window can be kept hidden, the user images locally the program started.
Figure: Communication between 4GL-program and remote GUI
If the user clicks on a button or writes to an entry, special bindings guarantee that this action is sent back over the socket as a simple text command.
The rlogin connections and the socket-connections of the 4GL-programs run in one application at the windows side, this is our product 4GL Server ,completely written in Tcl (WTK =Tk3.6+some extensions).