Go backward to 2 Mathematica Go up to Top Go forward to 4 Notebook Control |
Our basic idea of integrating Mathematica into a distributed education environment is to insert a process between frontend and kernel that intercepts their communication and communicates with other interceptor processes in order to implement a distributed session (see Figure 3). This model assumes that each session participant has an instance of Mathematica running (although in some scenarios only a notebook frontend is sufficient) whose interceptor process communicates with the interceptor process of the lecturer. We deliberately concentrate on a star-shaped communication structure, on the one hand to avoid the difficulties of a fully distributed system design, on the other hand because it already serves the purposes of the envisioned usage scenarios. This is however not a principal restriction; on demand we may employ more general communication patterns.
There exist two basic possibilities how this interception may be utilized (see Figure 3):
In both cases, only the messages from one frontend are forwarded to the respective kernel; messages from all other frontends are blocked by the respective interceptors.
Both alternatives have their advantages: forward interception allows to put multiple kernels into a single state from which independent execution becomes possible; backward interception only requires a single kernel and thus avoids inconsistency problems. The protocols sketched in the following sections represent appropriately adopted combinations of these possibilities.