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.