This is documentation for an earlier version of webMathematica.
View current User Guide (Version 3.3)

Documentation1. Introduction


1.5 webMathematica Technology

webMathematica is based on two standard Java technologies: Java Servlet and JavaServer Pages (JSP) technologies. 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 container that will run on many different operating systems and architectures. They 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 placed in the page. This is done with the standard Java templating mechanism, JavaServer Pages, making use of a special tags; examples of these are given in a later section.

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 be many different formats such as HTML, images, Mathematica notebooks, MathML, SVG, XML, PostScript, and PDF. This user guide includes examples of working with all these different technologies.

webMathematica provides a large library of Mathematica commands to handle the many possible ways of working with Mathematica computations. An important part of webMathematica is the kernel manager which calls Mathematica in a robust, efficient, and secure manner. The manager maintains a pool of one or more Mathematica kernels and, in this way, can process more than one request at a time. An overview of the workings of a webMathematica site is shown below.

Browser sends request to webMathematica server.

webMathematica server acquires Mathematica kernel from the pool.

Mathematica kernel is initialized with input parameters, it carries out calculations, and returns result to server.

webMathematica server returns Mathematica kernel to the pool.

webMathematica server returns result to Browser.

1.5.1 Requirements

The aim of webMathematica and MSP technology is to reduce the amount of extra knowledge required for developing a site to a minimum. In practice, this means knowing something about HTML and Mathematica. You do not need any special knowledge of Java, nor do you need to know anything about JavaScript. webMathematica also aims to automate the management of the site to make running, maintenance, and configuration as convenient as possible. Administrators of webMathematica sites do not need any knowledge of Java beyond its installation.

The minimum technical components for webMathematica are:

A Servlet container supporting both the Servlet Specification 2.2 (or higher) and JSP Specification 1.2 (or higher)

A Java Development Kit (JDK) 1.2 (or higher), Java 2 Version 1.4 (or higher) is recommended

There are many different combinations of hardware and operating systems that support these components. Most systems that run Mathematica will support webMathematica. At present Intel/Windows, Intel/Linux, Sun/Solaris, IBM-RISC/AIX, PA-RISC/HP-UX, Mac OS X, Alpha/Tru64, Alpha/Linux, SGI IRIX, and Linux PPC are fully supported. For information on other platforms, check with Wolfram Research. Note that webMathematica will run on many of the Microsoft operating systems such as Windows 2000, Windows XP, Windows NT, Windows 98, and Windows 95. It is probably better to use webMathematica on Windows 95/98 only for testing and demonstration purposes. Setting up the servlet container is discussed in a later section.

If your servlet container only supports JSP 1.1 API you can still use webMathematica via the Classic webMathematica Technology as described in a later section.