Internet Accessibility of Mathematics

The Internet is an excellent medium for making computer programs accessible.  Users can run software without installation and without the requirement of a particular platform. The cost of distributing and maintaining software is reduced dramatically.

Client-side approach
This approach is illustrated by "applets" (called "mathlets" in mathematics circles) written in Java.  
The author of a program compiles the (Java) program to "byte code" (rather than native machine code). "Byte code" is a platform-independent code for a virtual machine. It can be executed on any machine that has a (relatively small) interpreter.  All recent browsers have plugins to interpret byte code.  The program executes on the client machine. This approach works well for fairly small programs. An example is the Groups15 demo.

The client-side approach  is similar to the approach used by the UCSD Pascal project in the 1980's. The problem, at that time, was to produce and distribute software in a machine-independent way, particularly for microcomputers too small to support compilers. The UCSD Pascal compilers produced an intermediate code (called P-code), which could be executed by relatively small interpreters on target computers.

Server-side approach
In this approach the software runs on a server.  The client interacts with the software over the Internet.  The software may be larger and more powerful than a client-side approach allows. The WIMS (WWW Interactive Mathematics Server) project explores a server-side interaction with a standard HTML browser on the client side. The WIMS server makes it possible for the user to interact with many different programs using a common interface.  This feature is particularly important with software for instruction -- where it must be possible for a user to make use of many programs without having to learn the syntax of each. A more complete discussion of the WIMS approach is found in a JOMA article.

Interaction based on HTML is transactional.  The client browser is never actually connected to the server. In its simplest form, the client puts a packet (a request with identifying information) on the Internet. The server takes any arriving packet, processes the commands, and submits a result packet to the Internet. The client retrieves the result packet and displays the results. This is something like two people communicating by leaving messages on each other's phone answering machine.

Some software requires a higher degree of interaction based on sessions. Groups32 is an example. This program is made accessible by having the user log on to the server via telnet. The user accesses a special account which is restricted to running this one program. This arrangement allows the same type of interactivity as if the software is installed on the user's computer (except programmability is disabled). Since information passes back and forth over a network connection, the user interface must be designed to minimize the amount of data transferred. The software must also be designed to provide security.  .

Hybrid approach
In the simplest form of server-client interaction, the client is a standard browser. The user can type commands and display results. The mathematical software running on the server just performs computations in response to commands, but each command is an isolated transaction.  Thus, neither client nor server retains information from command to command.

One hybrid approach is to develop a server-client pair.  The client and server software are designed to work together. The mathematics engine on the server still performs the bulk of the computation.  The IAMC Internet Accessible Mathematical Computation) group at Kent State University has done work on this approach.  An approach using JavaMath is discussed in a JOMA article by Cooper, Linton and Solomon.