webMathematica
Interactive mathematics in the webbrowser
New Version:
webMathematica 3.5
Compatible with Mathematica 12
What's New in Mathematica 12 »webMathematica is based on Mathematica and two standard Java technologies: Java Servlets and JavaServer Pages (JSP). Servlets are special Java programs that run in a Java-enabled web server, which is typically called a "servlet container" (or sometimes a "servlet engine"). There are many different types of servlet containers that can run on many different operating systems and architectures. The servlet containers can also be integrated into other web servers, such as the Apache web server.
webMathematica allows a site to deliver HTML pages that are enhanced by the addition of Mathematica commands. When a request is made for one of these pages, the Mathematica commands are evaluated and the computed result is inserted into the page. This is done with a standard Java technology, JSP, making use of custom tags.
webMathematica is online availabe in English.
The
Technology
Key Technology
webMathematica technology uses the request/response standard followed by web servers. Input can come from HTML forms, applets, JavaScript, and web-enabled applications. It is also possible to send data files to a webMathematica server for processing. Output can use many different formats, such as HTML, images, Mathematica notebooks, MathML, SVG, XML, PostScript, and PDF. The webMathematica User Guide includes examples that show how to produce these and other formats.
Security
Full compatibility with standard web-server security such as firewalls, trusted hosts, and HTTP-specific features; Mathematica-specific security to prevent execution of system-specific commands
Performance Overhead
Start-up overhead removed by Mathematica session caching, linear performance as load increases, multiple Mathematica licenses supported (suitable for multiprocessor machines), minimal overhead over normal Mathematica computation time
Specifications
Constituent Technology Included in webMathematica
- Mathematica
- The webMathematica web application, a special configuration of files arranged to run inside a servlet container (includes J/Link, webMathematica packages, and various Java class files)
- The webMathematica kernel manager, providing support for launching and shutting down Mathematica kernels and for configuring and monitoring the site as it operates
- LiveGraphics3D, a Java applet for displaying and manipulating three-dimensional graphics
Documentation and Examples Included in webMathematica
- webMathematica User Guide
- Example webMathematica pages and templates
- Sample configuration files
- Sample applets
- Sample web pages
- Sample images
- Mathematica and Java source code for all constituent technology except Mathematica 7 and LiveGraphics3D
Compatibility
- Server Technologies Java Servlets and JSP
- Supported Java Versions Minimum version: Java 1.4 Recommended: Java 5.0 or later
- Servlet Engines Any engine compatible with Servlet 2.4 or 2.5, such as Apache Tomcat.
- Web Servers with Tested Compatibility Apache HTTP server, Microsoft IIS
- Supported Server Systems Any system supporting Mathematica 7 and Java 1.4 or later
Miscellaneous
- Security Features Full compatibility with standard web-server security such as firewalls, trusted hosts, and HTTP-specific features; Mathematica-specific security to prevent execution of system-specific commands
- Performance Overhead Start-up overhead removed by Mathematica session caching, linear performance as load increases, multiple Mathematica licenses supported (suitable for multiprocessor machines), minimal overhead over normal Mathematica computation time
Webpage Processing
How webMathematica Processes a Request
1. Make Request
The browser sends an HTTP request to the web server. The request references a particular webMathematica page and includes variables and their values. Then the web server performs any preprocessing steps, such as authentication, and forwards the request to webMathematica.
2. Acquire Kernel
webMathematica's kernel manager acquires a Mathematica kernel for the request from a pool of preinitialized kernels. Any variables and values are sent to this kernel.
3. Process Page
The Mathematica kernel loads the web page and processes any webMathematica tags. The kernel builds and then returns the result.
4. Release Kernel
webMathematica accepts the response and adds all of the necessary HTTP headers for return to the browser. webMathematica then clears any temporary settings in the Mathematica kernel and releases the kernel to its pool of available kernels.
5. Return Result
The web server performs any postprocessing steps and returns an HTML response which may use applets, plug-ins, or other features of dynamic HTML to the browser. Alternatively, the response can be in some other format, such as MathML, TeX, or a Mathematica notebook.
Web Examples
Web Examples and Websites
webUnrisk Example
Live Examples webMatheamtica at the Wolfram Research website