\"\" \"\" \"\"
Go backward to Embedding Mathematica
Go up to Building CONCERT Instruments
RISC-Linz logo

Mathematica as a CONCERT Instrument

Summarizing the discussion of the previous session, integrating Mathematica as a concert instrument involves the following tasks:

Control Interface
A control interface program has to be implemented that handles the execution modes of the instrument ensemble. This program is based on low-level concert services and can be implemented as a Java application. The low-level communication services of the MathLink libraries have to be integrated via the Java native interface (JNI).
DB Interface
A database interface program has to be implemented that handles network database access for Mathematica programs. This program makes use of the architecture's database services and can be implemented as a Java application integrating via JNI the MathLink facilities for communication with the Mathematica kernel.

Furthermore a corresponding Mathematica library has to be provided that handles the datatype "network file" with the corresponding operations by communication with the database interface program.

Java Class
Finally, a Java class has to be provided that allows the use of Mathematica as an instrument within the concert score. This class serves as the interface to the Mathematica frontend, kernel, control interface and database interface that run as independent processes. The Java component class invokes these external programs and establishes the appropriate communication links (by denoting the machine ports through which the three MathLink layers shall communicate).

Ultimately the central part of the control interface (the only part interacting with the instrument running on other machines) may be taken by the interface class itself.

The consistent organization of the locations where the native code involved in such a Mathematica session (Mathematica frontend, Mathematica kernel, MathLink libraries) may become a difficult problem in distributed heterogeneous environments. One possibility is to let the administrator of the corresponding host take care of this task (by placing the code in standard locations or denoting the locations by environment variables).

Another possibility is to let the Java interface class load the (appropriate variant of the code) from the global database. While technically feasible and organizationally advisable, this in general imposes problems with license contracts of commercial software packages (such as Mathematica). Consequently both solutions should be supported.

Maintainer: Wolfgang Schreiner
Last Modification: March 11, 1997

\"\" \"\" \"\"