Thomas Haase
Computer-generierte audio-visuelle Medien
Startseite    Philosophie    Digital Processing    Kontakt    Impressum    


Mathematica CGI Web Interface
© Copyright 2000-2015 by Thomas Haase. Alle Rechte vorbehalten.

Das Mathematica CGI Web Interface ermöglicht einen bequemen Fernzugriff auf eine bestehende Installation von Wolfram Mathematica über das Internet bzw. über jede TCP/IP-Verbindung im allgemeinen. Durch diesen Fernzugriff ist es zudem möglich, Mathematica von jeder Art von Betriebssystem aus zu benutzen.
Das Interface besteht zu 100% aus reinem Mathematica-Code. Die Nutzung dieses Interfaces ist kostenlos, auch für kommerzielle Zwecke.

Es bietet zweidimensionale Textausgabe und unterstützt die Ausgabe von Grafik und Ton.

Eingabebeispiel:



Resultierende Ausgabe: (wenn möglich, wird auch der berechnete pulsierende Ton abgespielt)


Bei Verwendung von Mathematica 9.x treten einige kleinere Probleme mit einigen multimedialen Ausgaben auf. Dies ist kein Fehler im Interface, sondern eine Folge der nachteilig geänderten Aufruf-Auslösung der Konsolen-Anzeigefunktionalität von Mathematica. Allgemein können diese Probleme umgangen werden durch einen Wechsel der Multimedia-Ausgabetechnik des Interfaces von der Verwendung zugeschnittener umleitender Definitions-Voreinstellungen für die Anzeigefunktionen zu einer ausdrücklichen Anwendung einer zugeschnittenen Funktion, welche die eingebauten Symbole der multimedia-spezifizierenden Funktionen durch solche zugeschnittener umleitender Funktionen ersetzt. Diese alternative Technik bewirkt jedoch den Verlust anderer wichtiger Funktionalitäten.
Nachfolgend eine Teilübersicht über das Ausgabeverhalten mit Mathematica 9.x:


Um möglichst vielen Anforderungen gerecht zu werden, ermöglicht das Interface nun ein Umschalten zwischen beiden Multimedia-Ausgabetechniken. Ebenso ist ein Umschalten zwischen den beiden Übertragungsmethoden "GET" und "POST" möglich:


Multimedia Output Method: Standard -- Probleme mit Mathematica Ver. 9+
* Viele Grafikobjekte werden nicht dargestellt ohne einen zusätzlichen Aufruf von Show[].
* Einige Grafikobjekte werden mehrfach ausgegeben.

Multimedia Output Method: Alternative for Ver. 9+ -- Probleme
* Ein multimediales Ergebnis wird nur dann ausgegeben, wenn es von der letzten Operation der gesamten Eingabe produziert wird.
* Ein multimediales Ergebnis wird nicht zusätzlich in seiner eindimensionalen rohen InputForm angezeigt ("Last Out"), um so kopiert und wiederverwandt werden zu können.
* Es tritt ein Verlust von Rückwärtskompatibilität mit älteren Versionen von Mathematica auf.

Transmission Method: GET
Die maximale Gesamtlänge der URL-kodierten Eingabe (einschließlich der URL der Skript-Datei selbst) beträgt ca. eintausend bis mehrere tausend Zeichen, je nach Konfiguration des Web-Servers. (Beachte, daß bei URL-Kodierung einzelne Sonderzeichen durch jeweils drei neue Zeichen ersetzt werden!)

Transmission Method: POST
Die maximale Gesamtlänge der URL-kodierten Eingabe ist quasi unbegrenzt - sofern keine alte Version von Mathematica benutzt wird, welche sie bis hinunter auf nur ca. 500 Zeichen begrenzen kann. (Beachte, daß bei URL-Kodierung einzelne Sonderzeichen durch jeweils drei neue Zeichen ersetzt werden!)


ANFORDERUNGEN:
  • Serverseitig:
    • Windows 95 oder höher;
      zur Nutzung unter Unix/Linux (nicht getestet) ist beim Konfigurieren des Web-Servers math.exe durch math zu ersetzen sowie %1 durch $1, und in der Interface-Skript-Datei ist jedes Vorhandensein von \\ durch / zu ersetzen (unter Mac OS ist math.exe durch eine Referenz zu MathKernel bzw. MathKernel64 zu ersetzen)
    • Jeder Web-Server, der eine ausführbare Datei mit Argumenten für CGI verwenden kann
    • Mathematica Ver. 4.0 oder höher (möglicherweise können auch ältere Versionen verwandt werden)
    • Das ist alles! - Keine andere Skriptsprache, Middleware, MathLink-Executable usw. werden benötigt!
  • Clientseitig:
    • Jedweder Web-Browser, welcher Grafik unterstützt
    • Kein JavaScript, Java, Flash und keine sonstige zusätzliche Software wird benötigt!

WICHTIG: Dieses Web-Interface ist nicht sicher, da es uneingeschränkten Zugriff auf die Funktionalitäten von Mathematica bietet und durch diesen ebenso einen Zugriff auf den
Host-Computer ermöglicht!
Dies kann aber durch entsprechende Konfiguration von Mathematica selbst unterbunden werden.


RECHTLICHE HINWEISE: Für dieses Interface werden keinerlei Gewährleistungen übernommen!
Der Autor ist nicht verantwortlich für jeglichen Schaden oder Verlust, der als Folge einer Benutzung dieses Interfaces entsteht!
Die Fa. Wolfram Research untersagt eine allgemeine öffentliche Verfügbarmachung der Funktionalitäten einer Installation von Mathematica!


EINRICHTUNG:

Die Interface-Skript-Datei muss im HTDOCS-Verzeichnis des Web-Servers abgelegt sein.

Erforderliche Einstellungen des Web-Servers:
  * CGI Interpreter Executable: math.exe (des Mathematica-Installationsverzeichnisses)
  * CGI Interpreter Executable, Argumente für Mathematica 4.0 bis 7.0.1: -noprompt -initfile "%1"
  * CGI Interpreter Executable, Argumente für Mathematica 8.0 und höher: -noprompt -script "%1"
  * CGI Interpreter Executable, assoziierte Dateinamenserweiterung: m
Unter Unix/Linux oder bei Verwendung eines Apache-Web-Servers mag es einfacher sein, stattdessen einen "ScriptAlias" für das HTDOCS-Verzeichnis und ein "AddHandler cgi-script" für die Dateinamenserweiterung .m zu definieren und am Kopf der Interface-Skript-Datei eine geeignete Shebang-Zeile einzufügen, welche den Pfad zu "math" enthält, gefolgt von den Argumenten, z.B. in der folgenden Form:
#!/usr/local/bin/math -noprompt -script
Hierfür mag es erforderlich sein, eine Anpassung einzurichten, welche die Übergabe von mehreren Argumenten vom Shebang ermöglicht, oder man kann es unter Weglassen des Argumentes -noprompt versuchen.


Vor der Benutzung muss im HTDOCS-Verzeichnis des Web-Servers manuell ein Unterverzeichnis mit Namen "TMPMATH" angelegt werden.

Die Bereitstellung von Rechenzeit und Arbeitsspeicher pro Eingabe kann beliebig eingeschränkt werden.

Weitere Einzelheiten sind den Kommentierungen innerhalb der Interface-Skript-Datei selbst zu entnehmen.

-> DOWNLOAD <- (Ver. 002/2014, 09.06.2014)



© Copyright 2008-2015 by Thomas Haase. Alle Rechte vorbehalten.

Startseite    Philosophie    Digital Processing    Kontakt    Impressum