Go backward to 1 Introduction Go up to Top Go forward to 3 A Distributed Mathematica Environment |
The Mathematica environment consists of three major building blocks [11]:
In[1]:= Sum[i+1, i, 0, n+m] (m + n) (1 + m + n) Out[1]= 1 + m + n + ------------------- 2
Kernel and frontend are separate processes; they communicate by an external communication mechanism called MathLink designed for the portable exchange of Mathematica data (see Figure 2). Thus one may call external programs from within Mathematica or, vice versa, use Mathematica as a component of third-party applications. Moreover, this gives the possibility to run Mathematica kernel and frontend on different machines, to set up alternative frontends, or to exchange data between concurrent instances of Mathematica. The MathLink Developer's kit provides a C library for the development of programs that can exchange data with Mathematica via communication links built on top of the Unix socket mechanism.
A typical scenario for the use of Mathematica in scientific/technical education are lectures based on the presentation of Mathematica notebooks analogous to lectures supported by transparency slides: The lecturer loads a notebook on her own machine whose display is projected to an overhead screen. She scrolls through the document, changes the level of detail by opening and closing cells, and triggers the execution of active contents; the audience listens to the presentation and watches the screen.
Provided that the audience is equipped with own machines, the participants may then load the notebook via some file transfer protocol or network file system into their own instances of Mathematica and independently run exercises, work on assignments, develop own programs, and so on. In a similar way, results may be transferred back to the lecturer's host.
However, the use of Mathematica in this scenario is quite restricted and rather uncomfortable:
The following sections sketch a system that addresses these problems by integrating the individual instances of Mathematica on different machines into a unified distributed environment.