Interactive mathematics in the webbrowser
Compatible with Mathematica 12What'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.
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
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
Constituent Technology Included in webMathematica
- 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
- 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
- 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
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.