Bernd Oberknapp and Konrad Polthier
We propose a simple concept for distributed computing. In a first stage this allows stand-alone programs to communicate and exchange data across computer networks. Existing stand-alone programs need very little adaptation to participate in such a system of (temporarily) connected programs. In a second stage the concept is extended to allow remote-objects and remote-methods. All network related functionality is located in the network manager, therefore adapted stand-alone programs may still run stand-alone without the network manager.
C.2.4 [Computer-Communication Networks]: Distributed Systems ä Distributed applications; I.3.2 [Computer Graphics]: Graphics Systems ä Distributed/network graphics; I.3.4 [Computer Graphics]: Graphics Utilities ä Application packages;
Full Paper: .pdf 761 KB, w/o Appendix .ps.gz 507 KB, Appendix .ps.gz 483 KB
In the mathematical community exist a number of excellent software packages developed at different sites in the world. Each package provides fairly complete functionality for specific mathematical problem areas but surely none of them is universal or has the aim to be.
Our net-manager concept is an general approach to combine the functionality of specialized stand-alone programs to a net of packages. Inside the net different packages may have connections to others, exchange messages and transport arbitrary data through information channels (figure ). The programs may run on different computers with their display directed to different terminals, therefore several people may use the programs at the same time and exchange information with other programs through the information channels.
An important feature of the concept is that programs need very little adaptation for working inside the net and that they still have the ability to run stand-alone even though they are used as modules in the net. This is a major difference to other net concepts as for example the network system in AVS  or PVM .
The net-manager was created to extend the capabilities of GRAPE, the object-oriented GRAphics Programming Environment developed at the Sonderforschungsbereich 256 in Bonn, by adding remote objects (figure 2 and ) and remote methods. Objects in the data hierarchies of GRAPE programs running simultaneously on different computers, e.g. a c_grape on a mainframe for large computations and a g_grape on a graphic machine for post-processing (this can of course be the same executable running on both machines), can be linked together using the net-manager. The c_grape performs large computations and updates the hierarchy node of the g_grape after each computation cycle or on request from the g_grape. The user at the graphic machine may post-process the data as usual when working with GRAPE, i.e. apply rotation, clipping and different display methods on the data set. But he has to be aware that the data is updated from time to time by the computation process on the mainframe, in this sense the object at the hierarchy node of the g_grape is a remote object. The user can control the computation on the mainframe by sending methods in g_grape to the node which represents the remote object, these remote methods are executed by c_grape.
This kind of application which allows the parallelisation and distribution of computations was the initial reason to start working on the net-manager. The application of linking separate main programs to a net was the first stage in this development, it came out as a by-product of the more general aim of allowing remote objects and methods. But from the user's point of view linking separate programs is the first demand he makes on a net-manager: without bigger changes he can work with the programs he is used to at a higher level of interactivity. After having gained experience with this kind of distributed computing and working together of programs the user will much more efficiently apply the concept of remote objects and remote methods in an environment like GRAPE.
Let's now discuss the working principles of the net-manager in more detail. The description is first restricted to the linking of separate programs, remote objects and methods are discussed in the last section.