\documentstyle[11pt]{article}
%
\addtolength{\headheight}{5pt}
\setlength{\parindent}{12pt}
%
\setlength{\textheight}{8.5in}
\setlength{\textwidth}{6.25in}
\setlength{\oddsidemargin}{8pt}
\setlength{\evensidemargin}{8pt}
\setlength{\topmargin}{0pt}
%
\input{../psfig}

\begin{document}

\title{Introduction to Web Technologies and Their Applications}

\author{
Geoffrey C. Fox
\thanks{Syracuse University, Northeast Parallel
Architectures Center, 111 College Place, Syracuse, New York  13244,
gcf@npac.syr.edu, http://www.npac.syr.edu}
}
\maketitle

\begin{abstract} 
This paper discusses basic Web technologies, PERL, Java, JavaScript,
VRML, databases (web-linked), and digital multimedia in contact of a
layered WebWindows software architecture in which applications are
built on top of multi-use services.  We assume a community technology
approach to both hardware and software.  Perhaps the hardware model
will be ATM connected PC's while the community software approach will
not involve applications written for Windows NT/95 or UNIX, but rather
for WebWindows, with interfaces defined by the standards of Web servers
and clients.  This universal environment will support WebTop
productivity tools, such as WebWord, built in modular dynamic fashion,
and will undermine the business model for large software companies.  We
illustrate these ideas with some examples including business enterprise
systems (IntraNets), health care, financial services, command and
control, manufacturing, and education.
\end{abstract}

\section{Introduction}

This article is meant to introduce and illustrate the use of six
central Web technologies, which are described in Section~3.  We assume
the continuing trend to pervasive computers and networks implementing
the National Information Infrastructure (NII) as the melding of today's
Web, consumer PC, computer and communication infrastructure.  Perhaps
this will embody Gordon Bell's SNAP concept (Scalable Networks And
Platforms), which suggests universal commodity PC and ATM network
hardware with probably a growing use of Windows NT as the dominant
operating system \cite{Bell:95a}.  In Section~2.1, we describe the
classic Web client server architecture and Section~2.2 describes the
standard turn of the century ($\sim 2000+$) NII scenario.  Section~2.3
is devoted to WebWindows, which describes the new universal API
(application program interface) offered by the world viewed as a
collection of Web servers and clients.  We believe WebWindows is so
much productive and powerful than conventional software interfaces that
it will become the dominant and hardware independent ``operating
system'' \cite{Fox:96c}.  In the final part of Section~2, we discuss
NII applications and services briefly to show how they are built in
terms of Web technologies and the WebWindows interfaces.

Section~3 discusses and illustrates our six chosen technologies---PERL,
Java, JavaScript, VRML, web-linked databases, and digital multimedia.

Finally, in Section~4, we describe the role of the six particular
applications---IntraNets and Business Enterprise Systems, Healthcare,
the Financial Industry, Education, Manufacturing, and finally, Crisis
Management, or command and control.  The last three applications are
described in greater detail than the first three.

Already, the Web links some 400,000 Web servers together \cite{IDS:97a}
but technologies, such as Java and a growing use of interactive and
collaborative applications will either directly (run a server on client
machine) or indirectly (enhanced browsers) turn all clients into
servers.  Furthermore, JavaVM (Virtual Machine) supports client side
multithreading, and so differences between (multitasking, e.g., UNIX)
servers, and (multithreading, e.g., JavaVM) client technologies are,
indeed, fading away.

\section{Framework for the Web and National Information\hfill\break
Infrastructure}

\subsection{Client-Server Computing}

\begin{figure}
\centerline{\psfig{figure=fig01.web.ps,clip=true,width=5.5in}}
\caption{Synergy of InterNet and IntraNets}
\label{fig1.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig02.web.ps,clip=true,width=4.75in}}
\caption{Simple representation of ``old'' (pre-1996) WWW software
architecture showing emerging advanced services, as well as basic
technology}
\label{fig2.web}
\end{figure}

Figure~\ref{fig1.web} shows a classic Web set up indicating it is
``just'' a client server application, and its implementation requires
appropriate client, server, and network technologies.  We will learn
mainly about the client and server software issues in this paper, and
only describe enough about network hardware and protocols to put the
other issues in contact.  The original Web architecture, shown in
Figure~\ref{fig2.web} was comparatively simple with clear functionality
in each component.  However, as the Web evolves, we move to the richer
confusing scenario of Figure~\ref{fig3.web} with many overlapping
concepts.  Actually, the natural Web model is probably a server-server
architecture, as all machines need capabilities embodied in servers.
This fits with Vice President Gore's view of the NII where everybody is
both a consumer and producer of information.  We can, of course,
implement this (crudely) already by running a Web server and Web client
on every machine (see Figure~\ref{fig4.web}(b)), as well as the
distributed environment, Figure~\ref{fig4.web}(a).  The growing
functionality in clients is natural because, although individual
servers are typically much more powerful than individual clients, the
total compute power (and dollar investment) is probably an order of
magnitude for clients than servers (Figure~\ref{fig5.web}).

\begin{figure}
\centerline{\psfig{figure=fig03.web.ps,clip=true,width=4.25in}}
\caption{1996 Java/Netscape client-server model with
evolving/confusing/overlapping capabilities}
\label{fig3.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig04.web.ps,clip=true,width=4.75in}}
\caption{WebWindows for (a) the World or (b) one PC}
\label{fig4.web}
\end{figure}

\subsection{The National Information Infrastructure (NII)}

Gordon Bell's SNAP vision \cite{Bell:95a} recognizes that the World
Wide Web (NII), parallel supercomputers, and your organization's
enterprise network will be built from the same pervasive communication
infrastructure---twisted pair, coaxial cable, optical fiber, satellites
and cellular phones connecting everybody and every institution together
\cite{Fox:97a}.  Of course, different parts of this hardware will
perform with different speeds and will be upgraded at different times
in different parts of the country.  However, a similar software base,
Web technology, will dominate applications on this diverse
infrastructure because it is built for the largest market, and
therefore, will best leverage the software development effort into
lower costs and higher functionality.  Obviously, we now have an
imperfect realization of this SNAP vision today, but there is enough
infrastructure in pace to create the opportunity now being explored and
created by America Online, Netscape, Microsoft, WebTV, and others.

In Figure~\ref{fig5.web}, we estimate the compute and communication
capability of the NII and find it 100 to 1,000 times that of
conventional supercomputers.  However, we expect large-scale 
parallel processors to be used not only in classic supercomputers,
but also in the network of video servers, and more generally,
WebServers that supply information to these clients.  We term this
scenario {\em InfoVISiON\/} for {\em Info\/}rmation, {\em V\/}ideo, 
{\em I\/}magery, and {\em Si\/}mulation {\em ON\/} Demand.  
\begin{figure}
\centerline{\psfig{figure=fig05.web.ps,clip=true,width=4.5in}}
\caption{An estimate of the communication bandwidth and compute
capability contained in the NII and supercomputer industries}
\label{fig5.web}
\end{figure}

\newpage
InfoVISiON includes the storage, query, and dissemination of this wide
range of multimedia data.  There is surely at least 100,000 hours of
interesting video material in the archives of Hollywood studios, CNN,
Routers, and network TV.  If compressed in MPEG format, this
corresponds to some 100 Terabytes of needed storage capacity.  MPEG2 or
other formats, such as motion JPEG, would require much more storage and
are probably necessary to support editing and other video production
applications.  Note that the current WWW has only a small percentage of
its storage devoted to video, whereas the future NII will presumably be
dominated by video data.

Each NII offramp will, as shown in Figure~\ref{fig6.web}, connect homes
(offices, school desks) at the rate of 1--20 Megabits/sec to the set of
NII InfoVISiON servers.  This rate covers the range from MPEG
compressed VHS to HDTV picture quality.  Note that this performance is
100--1,000 times greater than today's conventional 28.8 Kbaud modem on
a twisted pair (plain old telephone service POTS) connection.

\begin{figure}
\centerline{\psfig{figure=fig06.web.ps,clip=true,width=4.5in}}
\caption{Basic InfoVISiON home scenario in the year
2000: Intelligent settop box interfacing the digital home to a
hierarchical network of InfoVISiON servers}
\label{fig6.web}
\end{figure}

Returning to Figure~\ref{fig5.web}, we estimate  that with an
investment in large servers that is 10\% of that in clients gives an
InfoVISiON or WebServer market that is at least an order of magnitude
larger than that for traditional supercomputers.  This illustrates that
it is the NII, and not large-scale number crunching, that is the best
opportunity for (high-end) parallel processing.  Notice also that the
compute power contained in the year 2000 NII is some 10--100
PetaFLOPS---far larger than the compute capability of an individual
TeraFLOPS supercomputer.  This is explored in more detail in
\cite{Bhatia:97a}, \cite{Fox:97a}, \cite{Fox:97c} which discuss
extending the Web to compute services, and harnessing the power of the
World Wide Metacomputer.

\begin{figure}
\centerline{\psfig{figure=fig07.web.ps,clip=true,width=4.5in}}
\caption{Typical hierarchical server network for Hollywood master
system cascading down through a fragment of node systems shown for
central New York}
\label{fig7.web}
\end{figure}

One could view this InfoVISiON scenario as the most amazing
client-server application with $10^8$ client/small servers and $10^4$
large servers, but as mentioned in Section~2.1, we could instead
implement this as a heterogeneous server-server architecture with
$10^8$ distributed nodes.  This can be viewed as a fascinating parallel
computer with many more nodes than traditional tightly coupled systems
(by a factor of $10^5$ compared to typical large 1,000 node parallel
processor).  It appears that although powerful, the communication
backbone of Figure~\ref{fig5.web} will not allow every ``client'' long
distance simultaneous access to every other client or server.  Rather,
we must enforce the guiding principle of all computer
architectures---namely, data locality.  This is illustrated in
Figure~\ref{fig7.web}.  When Jurassic Park VI is released on the
Hollywood Server, one will not have everybody accessing it there at an
average distance of some 1,500 miles.  Rather, this ``hot'' movie will
be cascaded down (cached) through the hierarchy of servers so that any
individual will find it on a server a few miles away.  This strategy
reduces the needed fiber for the NII trunks by a factor of about 100.

\subsection{WebWindows}

Figures~\ref{fig2.web} and \ref{fig3.web} illustrate the overall
architecture of Web software linking multimedia servers and clients
with standard interfaces and technologies, such as HTML, VRML, and
Java---some key concepts are defined in Table~\ref{tab1.web}.

\begin{table}[h]
\begin{center}
\caption{Some WorldWide Web Technologies and Their Role}
\label{tab1.web}
\vspace*{10pt}
\begin{tabular}{|p{1.0in}|p{4.5in}|}
\hline
{\bf Clients} (such as Mosaic and Netscape) & support browsing of
hyperlinked documents, but have no internal interactive/compute
capability \protect\cite{Andreessen:93a} \\
\hline
{\bf Servers} & read HTTP and deliver requested service to client \\
\hline
{\bf HTML} & document format supporting hyperlinks \\
\hline
{\bf HTTP} & transport protocol defining interaction between
Web servers and clients \\
\hline
{\bf URL} & universal resource locator or addressing scheme for items
on the Web \\
\hline
{\bf MIME} & data format allowing agent-like (extended e-mail)
communication \\
\hline
{\bf CGI} & standard Web Server interface allowing sophisticated server
extensions \\
\hline
{\bf PERL} & rapid prototyping language (Script) aimed at text
and file manipulation (systems programming) \\
\hline
{\bf Java} & semi-interpreted C++ like language
supporting an applet model of distributed computing \\
\hline
{\bf JavaScript} & interpreted language for manipulating
Web components in documents \\
\hline
{\bf VRML 1.0} & universal description for static
three-dimensional objects \\
\hline
{\bf VRML 2.0} & dynamic 3D descriptor for virtual
environments \\
\hline
{\bf JDBC} & set of methods and drivers linking Java to
general relational databases (Java Database Connectivity) \\
\hline
\end{tabular}
\end{center}
\end{table}

We believe that the current trend to build applications for this
architecture will accelerate.  Today, we already see WebMail,
WebDatabase (see Figure~\ref{fig8.web}), WebEditor, WebFoil, WebChat,
but soon we see a set of more advanced products, such as ``WebWord,''
which will offer the functionality (and more) of Microsoft Word (and
similar products) but be built with Web technologies.  WebWord is quite
different (in architecture and hence implementation) from linking Word
to the Web (Weberizing Word as in today's useful intermediate tool,
Microsoft's Internet Assistant) and so Microsoft has no special
advantage (other than a lot of money and resources) in this emerging
WebTop Productivity field.  WebWord will use Web standards for all
internal and external representations, and so allow easy integration of
new functionality, and customization of WebTop environments for
particular markets.  The Web will not only allow new technologies to
develop better versions of current applications (such as word
processors) but also produce new uses of computers.

\begin{figure}
\centerline{(a) \psfig{figure=fig08a.web.ps,clip=true,width=4.85in}}
\vspace*{10pt}
\centerline{(b) \psfig{figure=fig08b.web.ps,clip=true,width=5.0in}}
\caption{(a) Oracle-Web Integration Architecture; (b) Choices of
Formats and Filters in Web Systems}
\label{fig8.web}
\end{figure}

Remember that when we talk of products using Web technology, it does
not have to be applied to the full world-wide Internet.  Rather,
WebWord could run a single PC which has both server and client
capabilities (Figure~\ref{fig4.web}(b)).  Again, Web linked relational
or object databases (Figure~\ref{fig8.web} and Section~3.5), and a
future WebLotusNotes product could use Web Technology and Webserver
systems to support a Business Enterprise Information system or
IntraNets on a closed corporate network.

The Web naturally supports virtual organizations with several small
entrepreneurial companies linked dynamically together.  It will be
hard for the large monolithic systems and software companies to be
competitive.  There will, however, be an interesting systems
integration business, which will put together and support linked sets
of Web technology modules for particular services in targeted markets
and organizations.

The above implicitly defines WebWindows as the target architecture for
the future replacing UNIX, Apple Macintosh or the Win32 interface to
Windows 95/NT.  Bell argues that Windows NT will be the operating
system of SNAP; we say that this may be correct but perhaps irrelevant
as the real ``action'' will be at the higher level defined by the Web
\cite{Fox:96c}.  This leverage of the highly functional high volume Web
technology to particular applications on particular networks is shown
in Figure~\ref{fig9.web}.  Note that some applications will require
enhancements in the services provided by base Web technology.  Security
is a good example of a service that is a critical requirement for
sectors, such as commerce and defense.  In fact, the role and structure
of operating systems could change for they need not support users
directly, but just Web servers and clients.  This changing operating
system architecture is shown in the comparison of Figure~\ref{fig10.web}
and Figure~\ref{fig11.web} where the latter also illustrates the
blurring of the distinction between (Web) servers and clients.

\begin{figure}
\centerline{\psfig{figure=fig09.web.ps,clip=true,width=4.75in}}
\caption{This illustrates how economies of scale combined with the
richness of the underlying distributed computing model imply that Web
technologies with well-chosen enhancements can be used for IntraNet
applications.}
\label{fig9.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig10.web.ps,clip=true,width=5.25in}}
\caption{Architecture of Web Client-Server Software---Netscape
and Internet Explorer Today}
\label{fig10.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig11.web.ps,clip=true,width=5.25in}}
\caption{Architecture of Web Client-Server Software---The Future as
suggested by Hotjava and Java Servers, such as Jeeves and Jigsaw?
[Bhatia:97a]}
\label{fig11.web}
\end{figure}

\nocite{Bhatia:97a}

\subsection{Generic Services on the NII}
\label{sec3.snap}

We can define a simple layered architecture for Web (NII) applications
which are built in terms of multi-use services as shown in
Figure~\ref{fig13.web}.  ``Multi-use'' extends the well known
dual-use civilian-military interplay to a set of capabilities shared
by many different applications.  Note the Web is an excellent
implementation technology for the COTS (customer off the shelf) choice
used in many new defense software systems.  There is no precise
definition of services and their difference from applications, for
services are essentially generic applications, and most applications
are complex metaproblems built recursively from services and
``sub-applications'' \cite{Fox:95c}.  Table~\ref{tab2.web} maps
services onto seven application areas.  

Thus, there is a grey fuzzy line distinguishing services and
applications.  Five possible NII services include:
\begin{table}
\begin{center}
\caption{Services used by seven NII applications}
\vspace*{5pt}
\begin{tabular}{|l|cc|ccc|}
\hline
\multicolumn{1}{|c|}{\bf Applications}&{\bf WebTop}&{\bf Info}
&{\bf Commerce/}&{\bf Collab-}&{\bf Meta} \\
&{\bf Productivity}&{\bf VISiON}&{\bf Security}&{\bf oration}
&{\bf Computing} \\
&&&&& \\
Society&X&X&X&X& \\
Education&X&X&&X& \\
Enterprise Systems&X&X&X&X& \\
Health Care&X&X&X&X& \\
Command and Control/&X&X&X&X&X \\
\ \ Crisis Management&&&&& \\
Manufacturing&X&X&X&X&X \\
Collaboratory&X&X&&X& \\
&&&&& \\
\hline
\end{tabular}
\label{tab2.web}
\end{center}
\end{table}
\begin{itemize}
\item {\bf WebTop Services}---Publishing, Productivity, Software
Engineering

Here, we put base productivity tools including ``WebWord,''
``WebLotus123,'' Web linkage to relationship databases, etc.
Essentially, all applications use this service.

\item {\bf InfoVISiON}---Information, Video, Imagery, Simulation, ON demand

As described in Section~2.2, this includes base database storage,
management, query, and dissemination of the full range of multimedia
archives of the World's distributed digital libraries.  Note delivery
of results of a simulation---such as access on demand to a weather
model---is included in this service.

Considering the two examples from Section~4, in manufacturing,
InfoVISiON corresponds to delivery of data in a configuration
controlled database.  In command and control, this service allows
commander to index and access videos of battle damage videos or
real-time engagements.

\item {\bf Electronic Funds and Security}---Digital Cash, Security,
Authentication, etc.

This collection of services enables electronic commerce, including
on-line banking and shopping.  These services are also essential for
the use of the WWW for processing and exchange of proprietary
(manufacturing), and classified (military) data.

\item {\bf Collaboration}---Real-Time Interactive and ``Batch''

This includes desktop video conferencing, three-dimensional graphics
MOOs, geographically distributed CAVEs leading to full televirtual
interactions.  Java-based client-server systems, such as Tango
\cite{Beca:97a} and Habanero \cite{NCSA:97b} are very promising.  The
emerging VRML 2.0 standards will be very important in building virtual
environments.  As discussed earlier, a wide variety of other types of
interactive information exchange is necessary.  This underlies the
concepts of collaboratories (virtual research groups or scientific
laboratories), and the virtual company of the next century's agile
manufacturing environment.  In the more static mode, we see workflow
and configuration control, which allows tightly integrated projects,
such as those needed to build a complex system including an aircraft
(see Section~4.4) or a large software module with a distributed team.

\item {\bf Metacomputing}---A worldwide collection of computers organized
together as a single computational engine for simulation or
information processing \cite{Fox:95a}, \cite{Fox:97a}. 

This service can be used to control remote medical and scientific
instruments; search the world for information; simulate the weather
expected in a military engagement, or link computers in different
companies for a multi-disciplinary optimization of a new vehicle.
\end{itemize}

In several articles (\cite{Beca:97a}, \cite{Bhatia:97a}, \cite{Fox:97a}),
we have explored the use of Web software as the basis of the operating
and programming environments of parallel processors.  In the pyramid
view of computing (Figure~\ref{fig12.web}), this uses the philosophy of
Figure~\ref{fig9.web} to extrapolate software from the base to the
top of the pyramid.  This implies Web hardware (the collection of
clients from Figure~\ref{fig5.web}) could provide the world's fastest
computer while Web software will run the largest tightly coupled
parallel computers.

\begin{figure}
\centerline{\psfig{figure=fig12.web.ps,clip=true,width=5.0in}}
\caption{Integration of Large Scale Computing and Web Technologies}
\label{fig12.web}
\end{figure}
 
Some services listed above can be already prototyped in terms of
today's Web technologies. For example, base WebTop or early
Collaboration services are now becoming available.  Some other services
are still waiting for their pervasive enabling technologies, such as
the physical infrastructure that will enable InfoVISiON or security that
will enable Internet Commerce.  Finally, the computationally extensive
NII services, characterized above broadly as ``Metacomputing'' require
a major extension of the whole Web paradigm, currently still focused on
image and document services, but already gradually expanding towards
computation and interactive simulation via technologies such as Java
and VRML.

\section{Some Specific Web Technologies}

In this section, we discuss some of the specific technologies shown in
Table~\ref{tab1.web} and Figures~\ref{fig2.web} and \ref{fig3.web}.
We give simple examples of their use, and for languages, their syntax.
We cover, in the following sub-sections, PERL, Java, JavaScript, VRML,
Web-linked databases, and digital video (multimedia).

\subsection{PERL4 and PERL5---CGI Scripts}

PERL is a very well-know interpreted language that was developed
(before the Web) as a powerful systems programming language.  Although
aimed at UNIX, PERL is also available on PC Windows platforms.

PERL is commonly used in so-called CGI Scripts that conveniently
extend the capability of servers, as shown in Figures~\ref{fig2.web}
and \ref{fig3.web}.  In theory, one can use any language in a CGI
Script, including higher-level shell Scripts or high-performance
languages, such as C or C++.  In fact, as shown in
Figure~\ref{fig3.web}, one can expect Java to be increasing used for
server side extensions for both CGI and more sophisticated mechanisms.
However, PERL currently has the most powerful text processing and
(UNIX) file system handling capabilities of any common language, and
is clearly currently superior to Java and JavaScript in this regard.
The most common use of CGI Scripts is processing of HTML form input
(see Figure~\ref{fig13.web}) and this is dominated by text and file
manipulation.  Further, such work is often not compute intensive, and
a flexible interpreted implementation has adequate performance.  Thus,
PERL remains the language of choice for CGI programs.  Further, many
Web applications require substantial use of (off-line) utilities to
reformat text, and prepare information.  Here again, PERL currently is the
best implementation language.  Note that hybrid approaches for CGI
Scripts are quite common with a PERL interpreted ``wrapper'' invoking
special applications, such as database engine or an optimized C or
Fortran numerical simulation.

\begin{figure}
{\bf a) Request}

\noindent The client sends a request, conforming to the URL standard
and formatted with a MIME header, to the server.  The server parses the
request and decides what to do:
\begin{description}
\item{--}for FTP and other services, the server makes an appropriate
request of its operating system and responds,
\item{--}for HTTP service, it retrieves the file named by the URL and
decides what to do based on file type.  An HTML, MPEG, AU, or any
other file with recognizable file extensions is returned directly to
the client with no further processing (except in the case of Server
Side Includes---SSI),
\item{--}if the file is executable, the server executes it as a CGI
program.  The server processes the header to pass execution parameters
as environment variables or as a STDIN stream to the CGI program.
\end{description}
\centerline{\psfig{figure=fig13a.web.ps,clip=true,width=5.0in}}
\vspace{10pt}

{\bf b) Answer}

\noindent The CGI program parses the input from the server and MUST
generate a response---even if there is no data to send back, the CGI
program must send an error or empty message since the http connection
is still open and must be closed by the server.  The CGI program will
send a header to the server:
\begin{description}
\item{--}If the header is type ``Location,'' the server will send the
indicated file to the client.
\item{--}If the header is ``Content-type,'' the server will send all
the data back to the client.  This should be a properly formatted HTML
page.
\end{description}
When the CGI program terminates, the server closes the connection.

\vspace*{10pt}
\centerline{\psfig{figure=fig13b.web.ps,clip=true,width=5.0in}}
\caption{}
\label{fig13.web}
\end{figure}

When we describe JavaScript, it provides an alternative way of
processing HTML forms solely on the client side.  However, this is
only appropriate for some Web applications, and many require server
side processing either due to the complexity of the computation, or
the need to access information stored on the server file systems.
Thus, PERL and JavaScript offer complementary capabilities.

Java is already the preferred implementation of customized servers,
such as those described in Section~4 for supporting collaboration.
However, until Java has the same convenient text processing and
flexible interpreted implementation, PERL will continue to be used
extensively for CGI Scripts.

The most recent version, PERL5, has important extensions---especially
in the area of multi-dimensional arrays and object-oriented features.
However, although the new arrays features are very helpful, we find
the object-oriented implementation much less elegant than Java, and it
has not been broadly adopted.

In Figure~\ref{fig14.web}, we show a simple ``Hello World'' program in
PERL, showing the use of so called variable interpolation in character strings.
In Figure~\ref{fig15.web}, a HTML page allows the user to input a name
that generates a ``Hello World'' HTML page using the PERL CGI Script
in Figure~\ref{fig16.web}.

\begin{figure}
\begin{verbatim}
#!/usr/local/bin/perl5 -w
#  Simple non CGI Hello World Example
#
print "what is your name?"; # Prompt User
$hero=<STDIN>; # Read Name Input
chomp ($hero); # Remove Trailing Newline
#
$today =`date`;
chomp($today); # Today's date captured from UNIX
#
print "Hello World to you my friend $hero on a great $today\n";
exit; # End Program
\end{verbatim}
\caption{Simple PERL Program to read in name input and output a Cheery
Greeting}
\label{fig14.web}
\end{figure}

\begin{figure}
{\bf (a)}
\begin{verbatim}
<head>
<title>My Hello World CGI Script Tester</title>
</head>
<body>
<h1>Enter Your name in Text field of Form Please</h1>
<FORM ACTION="http://boss.npac.syr.edu:8080/cgi-bin/webwisdom/helloworld.pl" >
My name is: <input name="username" type="text" size="40">
</form>
</body>
\end{verbatim}
\vspace*{10pt}

{\bf (b)} 
\vspace*{5pt}

{\Large\bf Enter Your name in Text field of Form Please} 

My name is:

\vspace*{10pt}

{\bf (c)}
\vspace*{5pt} 

{\Large\bf Hello World to you my friend Geoffrey Fox on a
great Sun Mar 23 14:21:55 EST 1997}
\caption{HTML Page defining Hello World with (a) HTML displaying as
shown in (b).  The result is displayed in (c).}
\label{fig15.web}
\end{figure}

\begin{figure}
\begin{verbatim}
#!/usr/local/bin/perl5 -w
#  Simple Hello World Example
#
require "cgi-lib.pl"; # Public Domain library to read form data
#
$statusofread =  &ReadParse(*formdata); # read data in associative array formdata
#
$hero="Anonymous"; # if no good form data!
if( $statusofread )     { # If $statusofread nonzero, data read OK
        $hero = $formdata{"username"}; # The input user name
}
#
$today =`date`;
chomp($today); # Today's date captured from UNIX
#
print <<EOF; # Generate the HTML responding page starting with HTTP line
Content-Type: text/html

<html>
<head>
<title>This is Result of my Hello world CGI Script </title>
</head>
<body color="white" >
<h1>Hello World to you my friend $hero on a great $today</h1>
</basefont>
</body>
</html>
EOF
exit; # End Program
\end{verbatim}
\caption{CGI Script used in previous example}
\label{fig16.web}
\end{figure}

\subsection{Java and Its Use on the Web}

Java is an object-oriented language that has similarities to C and
C++.  Its introduction, in 1995, had a major impact on the Web, as it
allowed one to incorporate customized computer programs on the client
(Web browser) side, as shown in the complicated Figure~\ref{fig3.web}.
Thus, Java, for the first time, allowed one to build balanced
client-server applications.  Note, Figure~\ref{fig5.web} points out
that there is substantially more compute capability on clients than
servers.  Further, any server-based system is likely to have
nontrivial latency (delay in response) and so Java can be used to
build user interfaces where many relatively simple computations are
involved, and the low-latency client-side approach is clearly
preferable.  However, Java is turning out to be of even greater
importance than these Web architecture issues suggest.  In particular,
one expects it to challenge C++ and Fortran (\cite{Fox:97e}) as the
future language of choice for software engineering and scientific
computation, respectively.  This trend is due to a variety of reasons.
For instance, the WebWindows approach suggest future large software
engineering projects will build to Web standards, which implies Java
will often be a natural implementation language.  Again, Java offers an
attractive object-oriented environment with the potential of optimizing
Java compilers being able to generate comparable performance to
Fortran.  Further, we can expect a growing trend to learn Java as a
first language, as children are exposed to it from Web browsing and
find using Java to enhance their home pages as an inducement to learn
programming at school.  These positive indicators are tempered by the
immaturity of technology, which is only to be expected, but implies
today (1997) that one should use traditional languages to build robust
high-performance languages.

Java is used on the Web in a semi-interpreted mode shown in
Figure~\ref{fig17.web}.  Here, the {\em javac\/} compiler converts
Java language (java) into JavaVM (class files), which can be thought
of as universal machine code.  The JavaVM files and libraries are
downloaded as needed from the server to client.  At the client, the
``bytecodes'' of the JavaVM are interpreted, checked for security
issues, and converted to native machine code.

\begin{figure}
\centerline{\psfig{figure=fig17.web.ps,clip=true,width=4.0in}}
\caption{Structure of Interpreted Java Applets}
\label{fig17.web}
\end{figure}

Java comes with a powerful runtime that is aimed in particular at the
graphics, networking, and user interface features that one needs for
interactive Web pages.  There is, in particular, a comprehensive AWT
(abstract windowing toolkit) that supports such things as buttons,
forms, windows, and their layout.

In Figures~\ref{fig18.web} and \ref{fig19.web}, we give, respectively,
the Java source, and invoking HTML page that will display ``Hello
World!''  Note this uses built-in (runtime) classes, {\bf Applet\/} and
{\bf Graphics}.

\begin{figure}
\centerline{\psfig{figure=fig18.web.ps,clip=true,width=5.5in}}
\caption{The Java Code for the Simplest Java Applet: Hello, World!.}
\label{fig18.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig19.web.ps,clip=true,width=5.0in}}
\caption{Displaying Your Hello World Applet from a Web Page}
\label{fig19.web}
\end{figure}

We can expect Java technology to improve in many ways that will
increase its performance and functionality.  We will see better ``Just
in Time'' compilers---essentially, clever interpreters of JavaVM that
generate reusable compiled code on the fly.  We will see a wide
variety of new libraries (runtime) supporting areas as diverse as
commerce and scientific computing.  Again, as well as the
self-distributing software model of Figure~\ref{fig17.web}, one will
see native Java compilers that will get high performance by direct
compilation of the Java language into the native machine code for
particular machines.

\subsection{JavaScript}

JavaScript is a language that has some similarities, but many critical
differences, from Java.  One can view Java as an extension of a
computer language (C++) and JavaScript as an extension of a text
formatter HTML.  Both are aimed at ``animating Web pages'' that is a
superficial description of an interactive client-side application.

Figure~\ref{fig20.web} shows the simplest JavaScript ``Hello World!''
application.  However, more interesting is the example of
Figures~\ref{fig21.web} and \ref{fig22.web}, which shows a new HTML
tag attribute ONCLICK being used to specify a JavaScript routine {\em
compute\/} to process data specified in an HTML Form.  We discussed,
in Section~3.1, how this can be used to build very responsive
client-side applications.  Our final example, in
Figure~\ref{fig23.web} shows how JavaScript can be used to generate
parameterized HTML where JavaScript variables---possibly input in
forms---are used to specify dynamic pieces of HTML pages.  JavaScript
is particularly useful in windows built from multiple frames as it
allows actions in one frame to control the URL location and other
properties of another frame.

\begin{figure}
\begin{verbatim}
<HTML>
<HEAD>
<Title>A Test of JavaScript</Title>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--A Conventional comment to hide JavaScript from old browsers
document.writeIn("<h1>Hello World!</h1>");
//scriptend-->
</SCRIPT>
<b>Continue with conventional HTML</b>
</BODY></HTML>
\end{verbatim}
\caption{Hello World Example of Javascript}
\label{fig20.web}
\end{figure}

\begin{figure}
\begin{verbatim}
<HTML><Head><TITLE>Javascript with Forms</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--A Conventional comment to hide JavaScript from old browsers
function compute(form) {
if(confirm("Is this what you want?"))
  form.result.value=eval(form.expr.value);
else alert("Enter a new expression then!"); }
//scriptend-->
</SCRIPT></HEAD>
<BODY><FORM>
Enter an Expression:
<INPUT TYPE="text" NAME="expr" SIZE=15>
<INPUT TYPE="button" VALUE="DoIt!"
ONCLICK="compute(this.form)">
<BR>Result:
<INPUT TYPE="text" Name="result" SIZE=15>
<BR>
</FORM></BODY></HTML>
\end{verbatim}
\caption{HTML Page for JavaScript}
\label{fig21.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig22.web.ps,clip=true,width=4.5in}}
\caption{HTML Display for JavaScript}
\label{fig22.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig23.web.ps,clip=true,width=5.0in}}
\caption{Parameterized HTML in JavaScript}
\label{fig23.web}
\end{figure}

Java was developed by Sun and is an industry standard.  JavaScript was
developed by Netscape and partially supported by other browser vendors
including Microsoft.  We believe that although it is no such a well
established standard.  JavaScript fulfills a clear role, and one can
expect one or more technologies like this to be part of the Web ``bag
of tricks.''  In Section~3.2, we mentioned the AWT as the basic Java
windowing toolkit.  One can view JavaScript as the equivalent
programmable AWT, but with the (Netscape) browser as the runtime.  One
can use the Java AWT to mimic JavaScript and have the advantage of a
much more powerful and better defined language.  However, JavaScript
has a major advantage in that the current browsers essentially define
a far more powerful runtime than that currently available to the Java
AWT.  In particular, the Hot Java browser, written entirely in Java,
is currently not competitive with the standard non-Java browsers.
JavaScript has a built-in advantage (independent of browser
capabilities) that is fully interpreted, and it is much easier to
rapidly prototype and modify new Web capabilities in JavaScript than
in Java.

JavaScript is a more limited language than Java; JavaScript has
objects, but no inheritance as in Java; Javascript relies implicitly on
the undefined (to the user) browser multitasking threads whereas Java
offers the user substantial control over the execution environment
with well-developed thread support in the language.  JavaScript is
used for relatively simple client-side document processing; Java can
be used much more extensively including applications involving image
processing, simulation, and networking on client and server.

\subsection{VRML for the Real World on the Web}

VRML was inspired by the simple observation that the world is
three dimensional, and one needs to manipulate and view on the Web
three-dimensional objects, as well as the images and text supported so
well by the earlier technologies.  The initial VRML~1.0 was not a
programming language, but rather a data descriptor allowing one to
specify arbitrary static three-dimensional scenes with general
dynamic viewpoint allowing navigation.  The three-dimensional scenes
could embed clickable regions (spawning arbitrary Web locations) in a
natural generalization of the two-dimensional image maps available in
HTML.  VRML was first proposed in Spring 1994 with the initial 1.0
version available a year later.  There is now an extended standard
VRML~2.0, which we will discuss briefly later on.  Note that VRML is
an acronym for Virtual Reality (VR) Modeling Language, but VRML is
applicable to any application involving three-dimensional objects, and
is more general than Virtual Reality.

We illustrate VRML in Figure~\ref{fig24.web}, which shows six lines
of VRML~1.0 defining two unit size objects separated by three units in
the $x$ direction.  VRML is based on SGI's Open Inventor graphics
object database format with some restrictions and extensions allowing
linking objects with particular Web sites.  VRML three-dimensional
worlds are built in a hierarchical fashion in terms of nodes grouped
together by separators.  {\em Cube\/} and {\em Sphere\/} are types of
node as is {\em material\/} shown in Figure~\ref{fig25.web}.  Nodes
have attributes, such as {\em diffusecolor\/} and {\em translation\/}
in Figure~\ref{fig25.web}.  Grouping is illustrated in
Figure~\ref{fig26.web} where the extra separator limits the effect of
the {\em Material\/} node to the cube.  The detailed syntax in
Figures~24--26 are the old VRML~1.0 standard.  There are some changes
in VRML 2.0, but the essential ideas are unchanged.

\begin{figure}
\centerline{\psfig{figure=fig24.web.ps,clip=true,width=4.5in}}
\caption{White Cube and White Sphere in VRML}
\label{fig24.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig25.web.ps,clip=true,width=4.5in}}
\caption{Yellow Cube and Yellow Sphere in VRML}
\label{fig25.web}
\end{figure}

\begin{figure}
\centerline{\psfig{figure=fig26.web.ps,clip=true,width=4.5in}}
\caption{Yellow Cube and White Sphere in VRML}
\label{fig26.web}
\end{figure}

A sophisticated use of VRML is shown in Figure~\ref{fig27.web} with a
terrain overlayed by clouds from a weather simulation.  However, the
use of this technology has been handicapped by its need for high
performance for both CPU and network.  Some of this is inevitable---it
takes more data to specify and more CPU processing to render
three-dimensional objects than to process HTML text.  However, much of
the performance degradation was due to simplistic language design
(data was transmitted as uncompressed ascii) and immature VRML
browsers.  We expect a combination of improved hardware and
refinements in language and software to increase the use and
usefulness of VRML.

\begin{figure}
\centerline{\psfig{figure=fig27.web.ps,clip=true,width=4.5in}}
\caption{VRML for 3D Terrain with Weather Simulation Superimposed}
\label{fig27.web}
\end{figure}

The new version VRML~2.0 addresses some of the performance issues, but
more importantly adds the concept of events ``behaviors'' that are
essentially computer programs (scripts) that can be attached to the
VRML nodes, and modify their attributes.  Currently, Java and
JavaScript scripts are supported.  This allows scenes with
objects moving with respect to each other, and interacting in ways
defined by the scripts.  This will allow one to generate true virtual
worlds and has natural application to both VR and Web-based computer
games.  Although there is an agreed VRML~2.0 standard, which is
becoming ``official'' as VRML97, there are other approaches.  One can
extend ({\em Java3D}) the Java runtime to support three-dimensional
objects in a similar way to its current two-dimensional image support.
Clearly, the ideas present in VRML~1.0 and VRML~2.0 will be part of
critical base Web technologies; however, the particular implementation
is much less clear than for Java, and we can only follow the Web
community and see what paths are chosen.

\subsection{Web-Linked Databases}

This represents a different type of Web resource---namely, databases
have been around a long time, but what's new is that they are now much
cheaper and easier to use.  Until two years ago, NPAC used essentially
no commercial databases, except for a single research activity using
parallel Oracle.  Now, we have some dozen activities using them.  These
include
\begin{enumerate}
\item Newsgroup and ``chat'' multimedia messages stored in databases
giving a searchable record of collaboration or discussion

\item Enterprise intranets with a Fortune 500 product catalog made
available to the public through NPAC's Web database interface 

\item Support of financial modelling ``on demand'' prototype with a
database of stock information

\item Set of New York State images indexed in a database for
educational use

\item Commercial CD-roms stored in databases for school reference

\item Storage of close-captioned text and metadata to index video

\item Electronic mail server with database replacing UNIX mail
folders

\item Storage of full text of books to allow rapid search

\item Complete index of text in NPAC Web site

\item Index of customized chemistry information

\item Object database storage of three-dimensional maps of New York
State

\item Publication and other information from NPAC's technical reports.
\end{enumerate}

All these applications use Web-linked relational (Oracle) or object
(Illustra) databases.  The explosion at NPAC and other places of
(relational) database use is easy to understand.  Historically, we
would have used flat files, or UNIX file system structure, to store
such data.  Note that Web site information organization or many UNIX
mail systems use file systems to ``label'' data.  The trend to
substantially lower database prices (especially on PC platforms) and
the convenience of Web interfaces has changed this, and given us
systems that combine the indexing and secure storage capabilities of
traditional databases with the friendly HTML or Java interfaces of the
Web.  Figure~\ref{fig8.web}(a) shows a typical setup with a simple CGI
Script linking Oracle to the Web.  We have most experience with WOW,
which has a very simple CGI Script, and the user query (input through
an HTML form) is interpreted by Oracle's PL/SQL language.  WoW PL/SQL
libraries HTP and HPF that make it relatively easy to produce HTML
pages that are passed from the database server to the client.

PL/SQL is a convenient high-level language for generating standard SQL
queries, but it is Oracle specific.  We expect the so called Java
Database Connectivity (JDBC) with a host of Java methods for accessing
any SQL database to be very important in the future.

In Figure~\ref{fig8.web}(b), we emphasize that a complete Web delivery
system could well involve many filters as data is stored in natural
application oriented form, but transformed to suit network (e.g.,
compression) or browser (e.g., conversion to VRML).  Java is a
convenient language for building such filters.

Figure~\ref{fig28.web} illustrates the PL/SQL function to access a
simple phone number database with simple HTML form
(Figure~\ref{fig29.web} and resultant HTML Figure~\ref{fig30.web}).

\begin{figure}
\begin{description}
\item{} CREATE PACKAGE EXAMPLE IS \\
\hspace{3em} procedure {\em get\_phoneno\_by\_name(name\/} IN VARCHAR2); --
only one procedure
\item{} END EXAMPLE;
\end{description}
\vspace{.5em}
\begin{description}
\item{} CREATE PACKAGE BODY EXAMPLE IS
\begin{description}
\item{} CREATE PROCEDURE {\em get\_phoneno\_by\_name(name\/} IN VARCHAR2) IS
\item{} CURSOR {\em person\_cur(cname\/} IN VARCHAR2) IS
\item{} SELECT {\em last\_name,first\_name,phone\_no,phone\_type}
\begin{description}
\item{} from {\em person\_info\_table,phone\_list\_table\/} WHERE
\item{}
{\em (person\_info\_table.person\_id=phone\_list\_table.person\_id)\/} AND
({\em last\_name\/} LIKE (`\%' $\|$ LOWER({\em cname\/}) $\|$ `\%') OR 
{\em first\_name\/} LIKE (`\%' $\|$ LOWER({\em cname\/}) $\|$ `\%'));
\begin{description}
\item{*} {\em lname\/} person\_info\_table.last\_name\%TYPE; -- a variable to
hold last name
\item{*} {\em fname\/} person\_info\_table.first\_name\%TYPE; -- a variable to
hold first name
\item{*} {\em phone\/} phone\_list\_table.phone\_no\%TYPE; -- a variable to
hold phone no
\item{*} {\em ptype\/} phone\_list\_table.phone\_type\%TYPE; -- a variable to
hold phone type
\end{description}
\end{description}
\end{description}
\item{} BEGIN
\begin{description}
\item{} {\em htp.htitle\/}(`Query Results');
\item{} {\em htp.ulistOpen\/};
\item{} OPEN {\em person\_cur(name)\/}; -- open the cursor
\item{} LOOP; -- Fetch each row matching the query into variables
repeatedly
\item{} FETCH {\em person\_cur\/} INTO {\em lname,fname,phone,ptype\/};
\item{} EXIT WHEN person\_cur%NOTFOUND; -- check end of result buffer
\end{description}
\begin{description}
\item{} /* print out the query result */
\item{} {\em htp.p(htp.item\/} $\|$' The `$\|$ {\em ptype\/} $\|$'
phone no. of `$\|$ {\em fname\/} $\|$' `$\|$ {\em lname\/} $\|$' :
`$\|$ {\em phone\/});
\item{} END LOOP;
\item{} CLOSE {\em person\_cur\/}; -- close the cursor after it is done
\item{} {\em htp.ulistClose\/};
\item{} END {\em get\_phoneno\_by\_name\/};
\item{} END EXAMPLE;
\end{description}
\end{description}
\caption{the PL/SQL Package for a Phone Example}
\label{fig28.web}
\end{figure}

\begin{figure}
\begin{itemize}
\item A HTML form page to accept user search input and invoke the CGI
script on the Web server to access the database
\begin{verbatim}
<html><header><title>A Web/Oracle
Phonebook Example</title></header>
<body>
<form action="http://myhostcps616/wow/get_phoneno_by_name">
Enter Last or First Name: <input type = "text" name="name" value="">
</form></body></html>
\end{verbatim}
\end{itemize}
\caption{Web Page Search Interface to Wow Phone Example}
\label{fig29.web}
\end{figure}

\subsection{Remarks on Digital Audio and Video}

Multimedia is of growing importance for the Web.  Given the
expectation that the Web will subsume current TV and cable services we
can expect increasing amount of multimedia information.  This implies
important consequences for both the underlying network, and for the
client and server.  Initially, the Web offered downloaded (MPEG
compressed) video, but this is not an appropriate approach except for
short clips.  Rather, one must use streaming servers where data is
passed continuously from server to client.  This implies important
quality of service constraints on the network as one cannot afford
delays.  The current internet does not have the necessary bandwidths
or reliable service except for audio (where the well-known Real Audio
commercial product can deliver AM quality audio over modern phone
lines).  Of course, this audio and video delivery depends on
compression technologies, such as fractal, MPEG, and Wavelet methods, 
whose details are closely guarded corporate secrets.

New networking hardware approaches, such as ISDN, ATM, and cable modems are
very important for digital video as they offer high enough performance
to support reasonable quality.  However, the time scale and nature of
their deployment is still unclear.  One uncertainty is just how
important to consumers, digital video is!

\section{Six Typical Web Windows Application Areas}

\subsection{IntraNets and Business Enterprise Information Systems}

Intranets have been popular recently.  These correspond to building
enterprise information systems using WebWindows technology
Figure~\ref{fig9.web}, as discussed in Section~2.1.  WebWindows
can encompass the world (clients talking to large servers around the
globe) or just a single machine (a PC Web browser linked to a server on
the same machine) (Figure~\ref{fig4.web}.  Further, we can apply these
ideas flexibly to any enterprise of intermediate size and use Web
technology to build general information services.  These will use
traditional concepts (e.g., databases) but link these to the rich
WebTop environment.  Note that this means one should not reject Web
technologies because of today's low bandwidth or insecure Internet.  If
we build, today, a WebWindows Intranet, it can have whatever bandwidth
and security the enterprise network supports.  One of the applications
explored by NPAC is a politics information system built around
Newt~Gingrich's recent visit of a politician to the University
\cite{Maxwell:96a}.  This illustrates how WebWindows systems can be
built for information storage and on-line discussion of any loosely
knit enterprise from political parties through special interest
organizations.

\subsection{WebMed: Web Technologies in Health Care}

The Intranet ideas above can, of course, be applied to medical
enterprises where one can use Web-linked databases combined with
several different user interfaces.  Here, we use Java so that we can
customize the `look and feel' and access privileges so that doctors,
hospital administrators, insurance companies, nurses, and patients can
share the same information.  NPAC has two interesting local
projects---one with the University College of Nursing with a prototype
system to help K--12 school nurses; the second uses simple virtual
reality technology from David Warner, \cite{Pulsar:97a}
\cite{Warner:95a}, to allow disabled persons to both navigate the Web
and to transmit medical sensor data from their homes to Web servers
where it can then be analyzed conveniently by doctors.
\begin{figure}
\begin{center}
\begin{verbatim}
<html><header>
<title>Query Results</title></header>
<body><h1>Query Results</h1>
<ul>
<li> The office phone no. of Geoffrey Fox: 3154432163
<li> The home phone no. of Geoffrey Fox: 315xxxyyyy
</ul>
</body>
</html>
\end{verbatim}
\end{center}
\caption{Result of Wow Phone Query is Another Page (assume user typed
in `geoffrey')}
\label{fig30.web}
\end{figure}


\subsection{Web Technology in the Financial Industry}

An area of interest to NPAC is use of WebWindows in the
financial industry.  Here, Java can be used to provide excellent PC
(home, office) interfaces to real time trading data.  Java will allow
downloading of simple modeling packages to aid on-line trading.
However, today's complex financial instruments require computationally
intensive Monte Carlo algorithms for accurate simulation.  Here, we
use Web technology to allow investors access to stock data, and
simulation systems running on the classic MPPs developed in the HPCC
program.

\subsection{Web Technology in Distance Education}

The Web can be expected to greatly improve education, both in
traditional and distance formats.  There is much debate as to the most
effective learning methods---asynchronous or synchronous---and as to
possible changes in the business model for education coming from the
separation of the teaching and residential function of say,
universities in a distance education model.  We expect that these
important questions can only be answered by a set of experiments using
the approaches and technologies exemplified by the discussion below.
 
\subsubsection{Infrastructure issues}

{\bf Bandwidth}\hspace{1em} The basic principle of multiple-use
(Section~2.6) says that for distance education, we will use the
hardware infrastructure, software, and other technology produced for
the suite of NII applications including business, health care, and
entertainment.

End-user access to the Web can be based on 28.8~kilobits/second or
similar speed modems using POTS (Plain Old Telephone Service)
connections, which in practical terms, limits us to displaying audio,
text and graphics.  Applications involving quality video delivery
require ISDN access (128 kilobits/second) or ATM service (scales to
Gigabit speeds, individual user typically requires a maximum of a few
megabits/second).

Full screen NTSC video display requires about 1.5~megabits/second of
bandwidth assuming MPEG1 compression.  By comparison, a quad speed
CDROM provides transfer rates of 0.6~megabits/second.  We note that
ISDN provides 10\% of  the performance needed for full motion video,
but for educational applications we need perhaps only quarter screen
displays with 15 frames per second (typical educational clip is one to
two minutes).  Improved compression schemes such as wavelets are
becoming available but are not standardized and built into PCs as is
MPEG.

The bandwidth required for digital video transmission (1.5
megabits/second) also supports the following applications relevant to
distance education:

\begin{itemize}
\item Collaboration with real-time video of participants, supporting
student-teacher and student-student and other individual interactions
such as networked world-wide collaborations of students doing real
science including remote control of instruments (telescopes,
microscopes) and fetching data over web \cite{NCSA:97b},
\cite{TANGO:97b};

\item Simulations based on video animation produced either in batch
mode or in real-time by a computer, including display of physical
phenomena with tagged annotations linking beginning students with the
insights of experts;

\item Navigation in Geographical Information Systems using transmission
of rendered scenes of 3-dimensional terrain (VRML based vector
representation of video is more efficient than transmitting pixels),
used for homework and student projects including electronic
laboratories and field trips (see Figure~27);

\item Text-indexed video clips selected from a large (100,000 hour or
70 terabyte) digital archive, supporting pedagogical (electronic books
and similar material, also InfoVISION servers) and exploratory learning
using the World Wide Web as a ``virtual library'' for projects.
\end{itemize}

{\bf Role of caching\/}\hspace{1em}  Caching content for use in
distance education applications has important performance and quality
of content implications.  Education is typically carried out in a
classroom setting, therefore  a group of students browsing related
content will naturally provide efficient use of cached resources. In a
school experiment conducted by NASA Langley, 95\% of the material
accessed by students was found in cache, allowing a 28.8~kilobaud
connection purchased by a school to look like a dedicated T1 line
\cite{Fox:95m}.

Caching is also important to content quality.  Pre-selecting material
for later use in class can be used to ensure students browse relevant
and appropriate material, and maintain efficiency in teacher
preparation.  Many schools limit Internet access due to the perception
of easily accessible inappropriate material.  Datamining the World Wide
Web for resources relevant to K--12 classroom adds great value to Web
content.  KidsWeb \cite{Kids:95a} was initially developed to
support an educational program at NPAC for eighth graders in the
Syracuse Area \cite{YSP:95a}, and is NPAC's most popular
Internet access point.

As described in Section~2.2 and Figure~\ref{fig7.web}, 
caching is also needed to support a hierarchical Web server/InfoVISION
server scenario where content in high demand is replicated and stored
close to end-user populations for bandwidth efficiency, and migrated
to centralized archives for storage efficiency when demand lowers.

In future distance education experiments, we intend to distribute a
CD-ROM to each student.  Lessons will be delivered synchronously  (all
students are on the same page) by transmitting the same relative URL to
each client.  This approach uses modern  (Java) collaboration
technology such as Habanero \cite{NCSA:97b} or Tango \cite{TANGO:97b}
to fetch data from the local CD-ROM, to display the same page
on each client, for example a 100~kilobyte image.  This effectively
saves a factor of 1,000 in needed bandwidth and allows simple
28.8~kilobaud lines to support a graphically rich curricula.

\subsubsection{Human interaction issues}

{\bf Collaboration\/}\hspace{1em}  Collaboration is the aspect of the
virtual K--12 school or university which is most sensitive to
teacher-pupil separation.  Distance education implies a distribution of
students, an obvious obstacle to learning.  However, Web technologies
also allow school children to interact with their peers
internationally.  Distance education holds the promise of
individualized learning on the users timeframe, but two-way
communication between student and teacher must be supported.
Collaboration between the learner and leading experts is technically
possible through a hierarchical structure linking learners and a mix of
distance university and leading expert partnerships.  Learning remains
a group activity even if conducted electronically, therefore multi-user
collaboratory tools are needed to support group navigation, sharing of
group experiences, and group authoring of content.

Collaboration is a particularly demanding distance education
application because it cannot use caching and a hierarchical server
structure, approaches which serve information access and delivery
applications so well.  Collaboration is sensitive to available
bandwidth and requires the best compression and transport technology.
As discussed above, a hybrid scheme involving a mix of locally cached
(CD-ROM) material with high value interactive access at a distance is
quite promising.  Our Java collaboratory Tango supports this model, and
we hope to perform a set of experiments with it soon.

Our project experience with videoconferencing suggests that 56~kilobaud
is the lowest practical speed, ISDN (128~kbaud) is adequate, but full
screen video at 30 frames per second requires the standard
1.5~megabits/sec bandwidth with MPEG1 compression.  We are
experimenting with the use of audio (which is practical at
28.8~kilobaud) as a form of annotation to enhance on-line course
material.  This can be supplemented by images or new video codecs such
as Java H263 applets on low speed lines.
\vspace{5pt}

{\bf Authoring\/}\hspace{1em}  As discussed in Section~2.3, the
ubiquity of the Web suggests that we will soon see Web operating
systems replacing proprietary operating systems, and the growth of  a
Webtop (rather than proprietary desktop) personal productivity
environment.  Content authoring in a Web environment will become a
central function in distance education.

Homework will be done in an electronic environment as part of the
learning experience.  Web-based content must therefore be interactive,
and editable.  Students must be ably to create, modify, and edit
on-line hypermedia material as part of the learning process.  As part
of our computer science classes we have developed a virtual
programming laboratory where students can develop, compile, and run
(homework) problems \cite{Dincer:97a}, \cite{Dincer:97b}.
\vspace{5pt}

{\bf Active simulation\/}\hspace{1em}  Simulation support is needed to
provide two-way interactivity that enables real-time interaction with a
simulated world.  Students must be able to interact with active
simulations by guiding the process (e.g., setting parameters,
triggering events), navigating regions of interest, and accessing
explanatory annotations (written either by teachers, application
experts, or other students).

Virtual reality could be a revolutionary technology to improve the
learning environment by immersing student in physical or more abstract
information spaces.
\vspace{5pt}

{\bf Navigation\/}\hspace{1em}  The Web is an excellent source of
educational content (see Kids Web \cite{Kids:95a}, and ThinkQuest
\cite{Thinkquest:96a}) but the growing volume and complexity makes it
too easy for students to get lost in cyberspace.  Disciplined
navigational tools are need, perhaps incorporating multi-sensory
feedback [19] to create a coherent integration model of various
multimedia modalities (hypertext, sound, video, simulations).

Structured navigation and free exploration must be balanced to allow
the teacher to efficiently guide the investigation and the student to
employ his or her own optimal model of learning.  We have experimented in
existing NPAC projects with unstructured exploration (e.g., KidsWeb,
and a video archive) and structured courses and tutorials (e.g.,
on-line computational science courses \cite{CPS:96a}, \cite{Ed:96a},
\cite{Fox:95n}).

Assessing the impact of new technologies and approaches on learning is
itself an application where Web technologies are useful.  Tools are
needed to track students navigation pathways and their reactions to
selected sequences, then we must use this information for evaluation
and individual-student course refinement.  It is straightforward to
log the URLs of the pages accessed by teachers and students.  We are
using this today to link recorded audio of lectures to particular
pages being discussed.  Tango supports complete logging of a multimedia
collaborative session.  Related research on navigational patterns
termed cognitive throughput by disabled learners is designed to
anticipate the response of users in an information environment.
Tracking navigational pathways and inter-target intervals allows us to
anticipate future navigational direction (to pre-download content and
improve performance), and support cognitive studies of user needs for
improved information design \cite{Sherman:97a}. 
\vspace{5pt}

{\bf The Unit of Information\/}\hspace{1em}  In traditional models, we
teach and learn using lectures supported by books, notes, and
presentations in the form of bulleted items and summary lists in a
linear sequence.  In the Web-based environment we envision, where a
distributed hierarchy of information-on-demand servers are available,
and students interactively explore active simulations, we must consider
what is an appropriate unit of information.

The hyperlinked environment of the Web makes ``sequential'' books
unnatural---people are better than computers at flipping sequentially
through electronic pages.  This may suggest an electronic encyclopedia
model as the optimal model for the Web.  This model would likely
contain short, linked, modular entries produced by multiple authors
having several different levels of description for a given subject.

The natural size of an information nugget is roughly a computer
screenful.  It is interesting to note that this is similar to the amount
of data displayed on a viewgraph on an overhead projector.  Thus we
can expect presentation technology and techniques to be an important
source of ideas for Web education.

\subsubsection{Some Base NPAC Technology Experiments}

{\bf Text-indexed video\/}\hspace{1em} NPACs text-indexed video
project  combines basic research in video-on-demand technology,
software design and implementation, and systems to provide an
operational VoD service for educational applications.  All development
in this project is Web-based.

In contrast to entertainment oriented video dialtone systems where the
content stream is nearly 100\% video content, NPACs VoD project
integrates video server technology within a larger information
system.  A video server management layer is linked to full text
searchable databases and metadata used to access video content.  This
approach allows us to deliver digital video news-on-demand,
educational documentary content, and multimedia coverage of events
with educational relevance (e.g., a national political campaign event
\cite{Maxwell:96a}).

Examples of distance education applications of our VoD system
include:

\begin{itemize}
\item Searching a database on topics such as siege of Stalingrad,
arrest of Mahatma Ghandi, or threat to the Apollo 13 moon mission to
retrieve the original, unedited film clips (in digital video format)
from a Reuters historical video archive;

\item Searching a documentary transcript database on technology in the
classroom to retrieve segments of The Discovery Channel Assignment
Discovery series on video graphics technology;

\item Searching a transcript database on streamlining government
bureaucracies to retrieve a segment of video from House Speakers Newt
Gingrichs presentation and dialog with political science graduate
students during a visit to Syracuse University \cite{Maxwell:96a}.
\end{itemize}

NPAC has focused on developing operational video server systems for
education and related applications (e.g., decision support), while
examining tradeoff s between image quality and bandwidth
requirements.  Transporting variable bit rate video streams (naturally
occurring in video content) over a constant bit rate network channel
(required in digital network delivery) requires a trade-off between
image quality and bandwidth.  Video compression techniques attempt to
minimize the information content transmitted in each successive frames
by carrying only the difference in scenes forward.  The data
requirements of displaying an action scene such as a sports event are
much more demanding than for example a talk show \cite{Podgorny:97a}.

\subsubsection{WebWisdom}

Web Wisdom is a hierarchical tree of knowledge built from JavaScript
and aimed at Netscape~3.0 Navigators \cite{Fox:97e}.  Web Wisdom
is set up to display worlds of self defining Web Pages where the header
of documents have appropriate JavaScript calls to define recursive,
hierarchical structures.

This structure has natural applicability in education and in mail
archives.  Web Wisdom can handle several different worlds (limited
only by the strength of JavaScript).  We have currently implemented
``Foilworld'' which archives foils produced by NPAC, Family PhotoWorld
and Administration.

FoilWorld is a part of WebWisdom devoted to accessing basic materials
sorted by different criteria such as:

\begin{itemize}
\item  Foilsets arranged in a simple alphabetic sort.  This is for
users who know the Foilset collection and want access to a particular
set.

\item  Foilsets arranged by topics.  This is for users who wish to
browse topic areas.  The user first accesses a list of areas, then an
index to resources in each topic area.
\end{itemize}

FoilWorld has full support for Persuasion, Powerpoint, collections of
screendumps, and general HTML pages.  Family PhotoWorld uses the same
technology to manage a collection of family photos.  The digital
images may come from scanning original prints, disks now available
from commercial photofinishers, and images directly from digital
cameras.  The Administration area of WebWisdom allows users to select
useful parameters, log URLs, and read and writing parameter sets.

The page syntax used in WebWisdom uses JavaScript to store metadata on
each page which defines associated pages (children in the hierarchical
structure).  The page syntax also accommodates quick HTML versions of
graphically rich pages, notes, associated illustrative (Java)
programs, and multimedia material.  We also have linked WebWisdom with
an Oracle server which allows the user to search all pages at a given
level or below a particular node.

A key facility of WebWisdom is a Java front-end which can create
play-lists which produce new composite foilsets (the set of pages at
any level of the WebWisdom world) with  a mix of pages from different
foilsets.

\subsection{Manufacturing and the National Information Infrastructure}
\label{sec3.ieee}

HPCC (High-Performance Computing and Communication) and the NII are
used today, and can be expected to play a growing role in
manufacturing, and more generally, engineering.  For instance, the
popular concept of agile manufacturing supposes the model where virtual
corporations generate ``products-on-demand.''  The NII is used to link
collaborating organizations.  Powerful computers are needed to support
instant design (or more accurately redesign or customization) and
sophisticated visualization and virtual reality ``test drives'' for the
customer.  At the corporate infrastructure level, concurrent
engineering involves integration of the different component
disciplines---such as design, manufacturing, and product life cycle
support---involved in engineering.  These general ideas are tested
severely when they are applied to the design and manufacturing of
complex systems such as automobiles, aircraft, and space vehicles such
as shuttles.  Both the complexity of these products, and in some sense
the maturity of their design, places special constraints and challenges
on HPCC and the NII.

High-performance computing is important in all aspects of the design of
a new aircraft.  However, it is worth noting that less than 5\% of the
initial costs of the Boeing~777 aircraft were incurred in computational
fluid dynamics (CFD) airflow simulations---the ``classic'' Grand
Challenge in this field.  On the other hand, over 50\% of these sunk
costs could be attributed to overall systems issues.  Thus, it is
useful but not sufficient to study parallel computing for large scale
CFD.  This is ``Amdahl's law for practical HPCC.''  If only 5\% of a
problem is parallelized, one can at best speed up and impact one's
goals---affordability, time to market---by this small amount.  HPCC,
thus, must be fully integrated into the entire engineering enterprise
to be effective.  Very roughly, we can view the ratios of 5\% to 50\%
as a measure of ratio of 1:10 of the relevance of parallel (classic
MPPs) and distributed computing (i.e., the NII or Web!) in this case.

The maturity of the field is illustrated by the design criterion used
today.  In the past, much effort has been spent on improving
performance---more speed, range, altitude, size.  These are still
critical under extreme conditions, but basically these just form a
given design framework that suffices to buy you a place at the table
(on the short-list).  Rather, the key design criteria is
competitiveness, including time to market, and total affordability.
Although the design phase is not itself a major cost item, decisions
made at this stage lock in most of the full life cycle cost of an
aircraft with perhaps 80\% of total cost split roughly equally between
maintenance and manufacturing.  Thus, it certainly would be important
to apply HPCC/NII at the design phase to both shorten the design cycle
(time to market) and lower the later ongoing costs of manufacturing
and maintenance.

We take as an example the design of a future military
aircraft---perhaps 10 years from now.  This analysis is taken from a
set of NASA sponsored activities centered on a study of
ASOP---Affordable Systems Optimization Process \cite{ASOP:95a}.
This involved an industrial team, including Rockwell International,
Northrop Grumman, McDonnell Douglas, General Electric, and General
Motors.  ASOP is one of several possible approaches to
multidisciplinary analysis and design (MAD) and the results of the
study should be generally valid to these other MAD systems.  The
hypothetical aircraft design and construction project could involve six
major companies and 20,000 smaller subcontractors.  This impressive
virtual corporation would be very geographically dispersed on both a
national and probably international scale.  This project could involve
some 50 engineers at the first conceptual design phase.  The later
preliminary and detailed design stages could involve 200 and 2,000
engineers, respectively.  The design would be fully electronic and
demand major computing, information systems, and networking resources.
For instance, some 10,000 separate programs would be involved in the
design.  These would range from a parallel CFD airflow simulation
around the plane to an expert system to plan location of an inspection
port to optimize maintainability.  There is a corresponding wide range
of computing platforms from PCs to MPPs and a range of languages from
spreadsheets to High-Performance Fortran.  The integrated
multidisciplinary optimization does not involve blindly linking all
these programs together, but rather a large number of suboptimizations
involving at one time a small cluster of these base programs.  Here we
see clearly, an essential role of the NII to implement these set of
optimizations, which could well need linking of geographically
separated compute and information systems.  An aircraft is, of course,
a very precise system, which must work essentially flawlessly.  This
requirement implies a very strict coordination and control of the many
different components of the aircraft design.  Typically, there will be
a master systems database to which all activities are synchronized at
regular intervals--perhaps every month.  The clustered suboptimizations
represent a set of limited excursions from this base design that are
managed in a loosely synchronous fashion on a monthly basis.  The
configuration management and database system are both critical and
represent a major difference between manufacturing and command and
control, where in the latter case, real time ``as good as you can do''
response, is more important than a set of precisely controlled
activities.  These issues are characteristic of the high-performance
distributed computing (HPDC) where, although loosely coupled, the
computers on our global network are linked to ``solve a single
problem.''

ASOP is designed as a software backplane (the NII or Web) linking eight
major services or modules shown in Figure~\ref{fig31.web}.  These are
design (process controller) engine, visualization, optimization engine,
simulation engine, process (manufacturing, productibility,
supportability) modeling toolkit, costing toolkit, analytic modeling
toolkit, and geometry toolkit.  These are linked to a set of databases
defining both the product and also the component properties.  

\begin{figure}
\centerline{\psfig{figure=fig31.web.ps,clip=true,width=5.0in}}
\caption{Affordable Systems Optimization Process (ASOP) Implemented on the
NII for Aeronautics Systems}
\label{fig31.web}
\end{figure}

\subsection{Command and Control or Crisis Management on the NII}
\label{sec4.ieee}

Command Control (sometimes adding in Computing, Communications,
Intelligence Surveillance, and Battle Management with abbreviations
lumped together as BMC$\,^4$IS) is the task of managing and planning a
military operation.  It is very similar to the civilian area of Crisis
management, where the operations involve combating effects of
hurricanes, earthquakes, chemical spills, forest fires, etc.
\cite{NRC:96a}.  Telemedicine was once considered a video conferencing
application, but now this is becoming like command control in the
interventional informatics concept \cite{Warner:95a} where the doctor
(cf. commander) needs a rich interactive information to win the
``battle'' i.e., treating the patient.  Both the military and civilian
cases have computational ``nuggets'' where parallel computing is
relevant.  These include processing sensor data (signal and image
processing) and simulations of such things as expected weather patterns
and chemical plumes.  One also needs large-scale multimedia databases
with capabilities similar to these described in Section~4.4.3.  We have
built a powerful Web based command and control prototype on top of
TANGO \cite{Beca:97b}, \cite{Fox:97c} that illustrates many of these
concepts..

The NII is needed to link military planners and decision makers, crisis
managers, experts at so-called anchor desks, workers (warriors) in the
field, information sources such as cable news feeds, and large-scale
database and simulation engines.

A key characteristic of the required NII support is adaptivity.
Crises and battles can occur anywhere and destroy an arbitrary
fraction of the existing infrastructure.  Adaptivity means making the
best use of the remaining links, but also deploying and integrating
well mobile enhancements.  The information infrastructure must exhibit
security and reliability or at least excellent fault tolerance
(adaptivity).  Network management must deal with the unexpected
capacity demands and real time constraints.  Priority schemes must
allow when needed critical information (such as chemical plume
monitoring and military sensor data) precedence over less time
critical information, such as background network video footage.

Needed computing resources will vary from portable handheld systems to
large backend MPPs.  As there will be unpredictable battery (power) and
bandwidth constraints, it is important that uniform user interfaces and
similar services be available on all platforms with, of course, the
fidelity and quality of a service reflecting the intrinsic power of a
given computer.  As with the communications infrastructure, we must
cope with unexpected capacity demands.  As long as the NII is deployed
nationally, computational capacity can be exploited in remote sites.
The Department of Defense envisages using the basic NII (GII)
infrastructure for command and control, augmented by ``theater
extensions'' to bring needed communications into critical areas.  The
``take it as it is'' characteristic of command and control requires
that operating systems and programming models support a general
adaptive mix (metacomputer) of coordinated geographically distributed
but networked computers.  This network will adaptively link available
people (using perhaps personal digital assistants) to large-scale
computation on MPPs and other platforms.  There are large computational
requirements when forecasting in real-time physical phenomena, such as
the weather effects on a projected military action, forest fires,
hurricanes, and the structure of damaged buildings.  On a longer time
scale, simulation can be used for contingency planning and capability
assessment.  Training with simulated virtual worlds supporting
televirtuality, requires major computational resources.  In the
information arena, applications include datamining to detect anomalous
entries (outliers) in large federated multimedia databases.  Data
fusion including sensor input and processing, geographical information
systems (with perhaps three-dimensional terrain rendering), and stereo
reconstruction from multiple video streams are examples of compute
intensive image processing forming part of the needed Web-based
distributed collaborative computing environment.

A critical need for information management involves the best possible
high-level extraction of knowledge from databanks---the crisis manager
must make judgments in unexpected urgent situations---we cannot
carefully tailor and massage data ahead of time.  Rather, we need to
search a disparate set of multimedia databases.  As well as knowledge
extraction from particular information sources, the systematic use of
metadata allowing fast coarse grain searching is very important.  This
is a specific example of the importance of standards in expediting
access to ``unexpected'' databases.  One requires access to databases
specific to crisis region or battlefield, and widespread availability
of such geographic and community information in electronic form is
essential.  There are very difficult policy and security issues, for
many of these databases need to be made instantly available in a
hassle-free fashion to the military commander or crisis manager---this
could run counter to proprietary and security classification
constraints.  The information system should allow both network news and
warriors in the field to deposit in near real-time, digital versions of
their crisis and battlefield videos and images.  Web linked databases
should make this universal convenient access more feasible.

As mentioned, we expect that human and computer expertise to be
available in ``anchor desks'' to support instant decisions in the heat
of the battle.  These have been used in a set of military exercises
called JWID (Joint Warrior Interoperability Demonstrations).  We note
that this information scenario is a real-time version of the InfoVISiON
service needed to support the society of the Information Age.

Command and Control has historically used distributed computing, as the
relevant computer and communication resources, are naturally
distributed, and not centralized into a single MPP.  We see this
growing into a Web-based information infrastructure for all the
nation's enterprises, including business, education, and society.
\clearpage

\section*{Glossary of Concepts and Acronyms}

\begin{description}

\item [Applets] An application interface where referencing (perhaps by a
mouse click) a remote application as a hyperlink to a {\em server\/} causes
it to be downloaded and run on the {\em client}.

\item [ASOP] (Affordable Systems Optimization Process) refers to a
process using multidisciplinary optimization to produce more affordable
systems

\item [CAVE] A room with stereo images on the walls designed to create a
televirtual environment.

\item [CFD] (Computational Fluid Dynamics) refers to computational
solutions of differential equations, such as the Navier Stokes set,
describing fluid motion.

\item [CGI] Standard Web server interface allowing sophisticated
server extensions.

\item [Clients] Support browsing of hyperlinked documents, but have no
internal interactive/compute capability.

\item [COTS] (Customer Off The Shelf)---An important concept in Defense
Systems, labelling the use of commercial software snf system components
rather than specialized limits which are expensive and hard to upgrade,
even if initially of higher capability.

\item [Data Fusion] A common {\em command and control\/} approach where the
disparate sources of information available to a military or civilian
commander or planner, are integrated (or fused) together.  Often, a {\em
GIS\/} is used as the underlying environment.

\item [Distributed Computing] The use of networked heterogeneous
computers to solve a single problem. The nodes (individual computers)
are typically loosely coupled.

\item [Geographical Information System (GIS)] A user interface where
information is displayed at locations on a digital map.  Typically, this
involves several possible overlays with different types of information.
Functions, such as image processing and planning (such as shortest path)
can be invoked.

\item [Global Information Infrastructure (GII)] The GII is the natural
world-wide extension of the {\em NII\/} with comparable exciting vision 
and uncertain vague definition.

\item [High-Performance Computing \& Communications] {\bf (HPCC)\/} Refers
generically to the federal initiatives, and associated projects and
technologies that encompass {\em parallel computing}, {\em HPDC}, and
the {\em NII}.

\item [High-Performance Distributed Computing] {\bf (HPDC)\/} The use of
distributed networked computers to achieve high performance on a
single problem, i.e., the computers are coordinated and
synchronized to achieve a common goal.

\item [Hypertext Markup Language (HTML)] A syntax for describing documents
to be displayed on the {\em World Wide Web}.

\item [Hypertext Transport Protocol (HTTP)] The {\em protocol\/} used in
the communication between {\em Web Servers\/} and {\em clients}.

\item [InfoVISiON] Information, Video, Imagery, and Simulation ON
demand is scenario where {\em multimedia servers\/} deliver multimedia
information to clients on demand---at the click of the user's mouse.

\item [Integrated Service Data Network (ISDN)] A digital multimedia
service standard with a performance of typically 128 kilobits/sec, but
with possibility of higher performance.  ISDN can be implemented using
existing telephone ({\em POTS}) wiring, but does not have the
necessary performance of 1--20 megabits/second needed for full screen
TV display at either VHS or high definition TV (HDTV) resolution.
Digital video can be usefully sent with ISDN by using quarter screen
resolution and/or lower (than 30 per second) frame rate.

\item [Internet] A complex set of interlinked national and global
networks using the IP messaging protocol, and transferring data,
electronic mail, and {\em World Wide Web}.  In 1995, some 20 million
people could access Internet---typically by {\em POTS}.  The Internet
has some high-speed links, but the majority of transmissions achieve
(1995) bandwidths of at best 100~kilobytes/sec.  the Internet could be
used as the network to support a {\em metacomputer}, but the limited
{\em bandwidth\/} indicates that {\em HPDC\/} could only be achieved
for {\em embarrassingly parallel\/} problems.

\item [Java] A distributed computing language ({\em Web Technology\/})
developed by Sun, which has similarities with C++ but supports {\em
Applets}.

\item [JavaScript] Interpreted language for manipulating Web
components.

\item [JPEG] A compression technology for images based on using
discrete fourier transforms on subimages.  The compressed image
quality can be varied and typically one chooses a compression factor
of about 20:1.

\item [JDBC] (Java Database Connectivity) set of methods and drivers
linking Java to general relational databases.

\item [MAD] (Multidisciplinary Analysis and Design, or Multidisplinary
Optimization) refers to the coupling of several areas, such as
structural dynamics and fluid flow in a combine tradeoff to produce
higher capability vehicles.

\item [Massively Parallel Processing (MPP)] The strict definition of
MPP is a machine with many interconnected processors, where `many' is
dependent on the state of the art.  Currently, the majority of
high-end machines have fewer than 256 processors.  A more practical
definition of an MPP is a machine whose architecture is capable of
having arbitrarily many processors---that is, it is scalable.  In
particular, machines with a distributed memory design (in comparison
with shared memory designs) are usually synonymous with MPPs since they
are not limited to a certain number of processors.  In this sense,
``many'' is a number larger than the current largest number of
processors in a shared-memory machine.

\item [Metacomputer] This term describes a collection of heterogeneous
computers networked by a high-speed wide area network.  Such an
environment would recognize the strengths of each machine in the
Metacomputer, and use it accordingly to efficiently solve so-called
{\em Metaproblems}.  The {\em World Wide Web\/} has the potential to be
a physical realization of a Metacomputer.  

\item [Metaproblem] This term describes a class of problem which is
outside the scope of a single computer architectures, but is instead
best run on a Metacomputer with many disparate designs.  These problems
consist of many constituent subproblems.  An example is the design and
manufacture of a modern aircraft, which presents problems in geometry
grid generation, fluid flow, acoustics, structural analysis,
operational research, visualization, and database management.  The
Metacomputer for such a Metaproblem would be networked workstations,
array processors, vector supercomputers, massively parallel processors,
and visualization engines.

\item [MIME] Data format allowing agent-like (extended e-mail)
communication.

\item [MPEG, MPEG2, MPEG4] Compression technologies for video based on
combining JPEG like compression for individual frames with
differencing schemes for the motion between frames.

\item [Multimedia Server or Client] Multimedia refers to information
(digital data) with different modalities, including text, images,
video, and computer generated simulation.  Servers dispense this data,
and clients receive it.  Some form of browsing, or searching,
establishes which data is to be transferred.  See also {\em InfoVISiON}.

\item [Multipurpose Internet Mail Extension (MIME)] The format used in
sending multimedia messages between {\em Web Clients\/} and {\em Servers\/}
that is borrowed from that defined for electronic mail.

\item [National Information Infrastructure (NII)] The collection of
{\em ATM}, cable, {\em ISDN}, {\em POTS}, satellite, and wireless
networks connecting the collection of $10^8$--$10^9$ computers that
will be deployed across the U.S.A. as set-top boxes, PCs, workstations,
and MPPs in the future.

The NII can be viewed as just the network infrastructure or the full
collection of networks, computers, and overlayed software services.
The {\em Internet\/} and {\em World Wide Web\/} are a prototype of the
NII.

\item [PERL] An interpreted language particularly targeted at text
manipulations and systems programming.

\item [Petaop or Petaflop] The performance unit for a computer capable
of $10^{15}$ (floating point) operations per second.  Expected peak
performance of high-end supercomputers in 2007 (aggressive technology)
or later \cite{Fox:97a},
[http://www.aero.hq.nasa.gov/hpcc/petaflops/peta.html]. 

\item [POTS] The conventional twisted pair based Plain Old Telephone
Service.

\item [Servers] Read HTTP and deliver requested service to client.

\item [SNAP] (Scalable Networks and Platforms) Gordon Bell's concept
of a growing trend to commodity computers, and networks exemplified by
ATM connected PCs running Windows NT.

\item [Supercomputer] A term describing the most powerful available
computers with a price tag in the range \$10$\rightarrow$\$100~M.
Supercomputers can either use massive parallelism or a more
conventional design.

\item [Televirtual] The ultimate computer illusion using {\em Virtual
Reality\/} where the user is fully integrated into a simulated
environment and so can interact naturally with fellow users distributed
around the globe.

\item [Teraflop] A performance unit for computers capable of $10^{12}$
floating point operations per second.  Currrent (1997) {\em
supercomputers\/} can reach this level on selected applications
[http://www.intel.com/pressroom/archive/releases/cn121796.htm].

\item [URL] Universal resource locator or addressing scheme for items
on the Web.

\item [Virtual Reality] An illusion created by immersing a computer
user in a three-dimensional interactive simulated environment.

\item [Virtual Reality Modeling Language (VRML)] A ``three-dimensional''
HTML that can be used to give a universal description of three-dimensional
objects that supports {\em hyperlinks\/} to additional information.

\item [WebTop] refers to the implementation of a set of standard desk
top and personal computer tools, which are essential in any computing
environment.

\item [Web Clients and Servers] A distributed set of clients (requesters
and receivers of services) and servers (receiving and satisfying requests
from clients) using {\em Web Technologies}.

\item [WebWindows] The operating environment created on the World Wide
Web to manage a distributed set of networked computers.  WebWindows is
built from {\em Web clients\/} and {\em Web servers}.

\item [WebWork] \cite{Fox:95a} An environment proposed by Boston University,
Cooperating Systems Corporation, and Syracuse University, which integrates
computing and information services to support a rich distributed
programming environment.

\item [World Wide Web and Web Technologies] A very important software
model for accessing information on the Internet based on hyperlinks
supported by {\em Web technologies}, such as {\em HTTP}, {\em HTML},
{\em MIME}, {\em Java}, {\em Applets}, and {\em VRML}.
\end{description}
\newpage

\bibliography{/home/sashimi2/kea/bib/SCCS,/home/sashimi2/kea/bib/outside,/home/sashimi2/kea/bib/1_fox}
\bibliographystyle{gcf_unsrt}

\end{document}

