Web技术及其应用引论

杰弗瑞.福克斯 (Geoffrey C.Fox)

1997年4月9日


摘要

本文讨论基本Web技术, PERL, Java, JavaScript, VRML, Web下的数据库,以及多媒体。该讨论将在一种层次结构的WebWindows软件体系的背景下进行,在这种软件体系结构中,应用软件建筑于多用途的服务设施之上。我们认为WebWindows是一种很有前途的观念,其界面由Web客户/服务器标准来确定。这种普适的环境将支持各种WebTop工具, 例如Webword,将动摇大型软件公司现行的经营模型。我们将通过商业,医疗保健,金融,教育等例子解释这些概念。

1.引言

本文旨在介绍和解释六种基本Web技术及其应用。我们认为,当前融合Web, PC, 以及通信基础设施以建设国家信息基础设施(NII)的潮流.将会继续。也许这将成为Gordon Bell的“可伸展网络及平台”(SNAP)概念的具体体现[Bell:95a]。

2.1小节,我们介绍经典的Web客户/服务器体系结构。2.2小节概述人们常提的世纪之交(~2000+)时NII的情形。2.3小节讲WebWindows,作为一种普及的API(应用程序界面),它将被看作是Web客户和服务器的一个集合。比起常规软件界面,我们认为Webwindows要有用得多,它将成为主导性的,与硬件无关的“操作系统”[Fox:96C].在第2节最后,我们简略地讨论NII应用及服务内容,看它们如何能建立在Web技术和WebWindows界面之上。

第3节介绍我们选择的六种Web技术------PERL, Java, Java Script, VRML, Web下的数据库,以及多媒体。

第4节我们讨论六种典型应用-----Intranets,医疗保健,金融,教育,生产加工,以及危机管理或指挥与控制。

到目前为止,Web上已经有了400,000个服务器[IDS:97a]。但不断发展的技术将直接或间接地将所有客户也变成具有服务器功能的实体.客户与服务器之间的功能差异逐渐缩小。

2. Web和国家信息基础设施的框架

图1是经典Web的情形。作为一种客户/服务器应用,它的实现要求适当的客户,服务器,以及网络技术。在本文中,我们将主要讨论涉及客户与服务器的一些问题,基本不涉及网络技术。最初web的体系结构,如图2所示,相对比较简单,各个部件的功能也很清楚.然而,随着Web的演化,我们进入了一种丰富同时也有些“混乱”的情景,如图3所示, 许多概念重叠交错在一起。实际上,自然的Web模型也许应该是一种服务器/服务器结构,这表现在所有计算机都需要有服务器的能力。这与Gore副总统的NII观念是一致的,他认为每个人既是信息的生产者,又是信息的消费者。当然,这种观念的实现可以粗略地在每台机器上运行一个服务器和一个客户来完成,如图4(b)所示,也可由一种分布式环境来完成,如图4(a)所示。尽管从计算能力的角度来看,单个服务器计算机通常要比单个客户计算机要强,但由于所有客户机的总计算能力要比所有服务器总计算能力大得多(如图5所示),不断加强客户方的功能是很自然的。


Figure 1:Synergy of InterNet and IntraNets


Figure 2: Simple representation of "old" (pre-1996) WWW software architecture showing emerging advanced services,as well as basic technology


Figure 3: 1996 Java/Netscape client-server model with evolving/confusing/overlapping capabilities


Figure 4: WebWindows for (a) the World or (b) one PC


Figure 5: An estimate of the communication bandwidth and compute capability contained in the NII and supercomputer industries


2.2 国家信息基础设施(NII)

Gordon Bell的SNAP观念认为万维网,并行超级计算机,以及各种单位的内部网络将都建筑在相同的,普通的通信基础设施之上,即双绞线,同轴电缆,光纤, 以及移动电话,这些技术将每个人每个单位都连接起来[Fox:97a]。这种硬件基础设施是多样化的,各自都有广泛的用途,都在不同的时期得到更新和发展。但作为软件基础的Web技术,尽管建立在多样化的硬件之上,其本身在不同的应用场合将会相对一致。这是因为只有这样才能提高软件的生产率,降低软件生产费用。显然,SNAP观念的实现目前尚未完美,但我们已经有足够的基础设施,为社会创造了各种机遇。近年来American Online, Netscape,Microsoft,WebTV等的发展明显地证实了这一点。

图5提供了NII计算机通信能力的一种估计,它是常规超级计算机能力的100至1000倍,并且我们认为大规模并行计算机将不仅被用来做传统的超级计算,也将被用来做Web服务器,为客户提供各种多媒体信息。我们称这种情形为InfoVISiON,即Information, Video, Imagery和Simulation ON Demand。

InfoVIsiON包括各种多媒体数据的存贮,查询和传播。好莱坞,有线新闻电视台等至少存有100,000小时以上有价值的录像。如果将它们用MPEG压缩起来,大约需要一亿兆字节的存贮容量。注意到当前WWW中存放的录像数据和其它数据比起来是相对很少的,我们认为未来的NII中录像数据将会占支配地位。

图6所示,NII将以1~20兆位的数据率连接到各个家庭和办公室,这种数据率大约是目前典型调制解调器数据率的1000倍,将覆盖从文字到视频数据传输的需要。

图5中,我们估计在大型服务器机器上的投资只是在客户机上投资的10%。这说明是NII,而不是数值计算,为并行处理事业的发展提供了最好的机遇。同时我们还注意到,2000年NII所包容的计算能力约为10~100PetaFlops,远远超出一台TeraFlops超级计算机的能力。对此[Bhatia:97a],[Fox:97a][Fox:97c]作了进一步地探讨,旨在扩展Web成为一个超巨型计算资源。

可以将这种InfoVIsiON的情形看作是最了不起的客户/服务器模型的应用,其中有108个客户或小型服务器,还有104个大型服务器。但正如2.1节所提到的,我们也可以用一种含有108个结点的异构型服务器/服务器的结构来实现这一想法。于是我们就有了一个超巨型大规模并行计算机,其结点数是典型大规模并行计算机的105倍。当然,尽管讲起来有那么大的总体计算能力,通信是个问题,不可能每个服务器都随机地访问其它任何服务器。为使这种超巨型计算机能发挥作用,计算机体系结构的基本原理之一,追求数据的局部性,应该能得到有效地应用。图7表示了这样一种情形,当Jurassic Park VI,在好莱坞的服务器上发行时,不应该让美国每个人都直接访问该服务器,那样的平均距离是1500英哩。适当的做法应该是让这种热门电影沿不同层次的服务器级联下来,使得任何人的访问距离只有几英哩。这种策略将用于NII主干线上的光纤需求量减少约100倍。


Figure 6: Basic InfoVISiON home scenario in the year 2000: Intelligent settop box interfacing the digital home to a hierarchical network of InfoVISiON servers


Figure 7: Typical hierarchical server network for Hollywood master system cascading down through a fragment of node systems shown for central New York

2.3 Web Windows

图2图3示意了Web软件的总体结构。应用HTML,VRML,以及Java等标准界面和技术是其得以蓬勃发展的基础。表1给出了一些关健概念的基本含义。

Table 1: Some WorldWide Web Technologies and Their Role

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

我们相信在这种结构上发展应用软件的潮流将会加速推进。现在,我们已经看到了WebMail,WebDatabase(如图8所示),WebEdifor,WebFoil,WebChat,很快我们还会看到更高级些的产品,例如“WebWord”,它将提供至少是Microsoft Word的所有功能,但是建筑在Web技术之上。WebWord从体系结构和实现上与为Word提供一个Web界面是完全不同的,于是在新生的WebTop产品领域Microsoft将没有什么特别的优势。


Figure 8:(a) Oracle-Web Integration Architecture; (b) Choices of Formats and Filters in Web Systems

WebWord将Web标准用于其内部及外部表示,从而允许方便的系统集成,新功能的增加,以及适应不同要求的定制。Web不仅能使得人们能应用新技术,为成熟的应用软件发展更好的版本,它同时也开发了计算机的新应用领域。

值得一提的是,当我们讲用Web技术开发出来的产品时,并不一定要求它必须在整个Internet上运行。WebWord可以就在一台PC机上运行,这台PC机具有如图4(b)那样的客户和服务器能力。进而,要求Web连接起来的数据库(图8)以及未来的WebLotusNotes之类的产品,都将基于Web技术,但往往只运行在相对封闭的企事业信息系统或Intranets上。

Web也很自然地支持虚拟组织机构,其中若干小型公司动态地连接在一起,这将使得大型板块系统和软件公司失去竞争力。另一方面,软件系统集成将会成为一种显著的行业,它根据不同市场及机构的需要将适当的基于Web技术的模块装配在一起。

上述隐含地提出了WebWindows将是未来软件开发的基础,它将取代UNIX,Apple MacOS,以及Windows95/NT。Gorden Bell讲Windows NT将会是SNAP的操作系统,我们认为这也许是对的,但不相关。这是因为实际的“行为”将会发生在比Windows NT更高的层次上,这种层次就是由Web所确定的[Fox:96c]。图9示意了这种上层的Web技术对下层具体应用程序的影响作用。我们注意到,有些应用将对基础web技术提出新的要求,安全性就是这样一个例子。在这种观念下,传统操作系统的作用和结构可能会改变,因为它们不需要直接支持用户了。这种改变操作系统结构的情形可从图10图11的比较中看出。


Figure 9: 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.


Figure 10: Architecture of Web Client-Server Software--Netscape and Internet Explorer Today


Figure 11: Architecture of Web Client-Server Software --The Future as suggested by Hotjava and Java Servers, such as Jeeves and Jigsaw? [Bhatia:97a]

2.4 NII的一般性公共设施

对于Web(NII)应用,我们可以定义一种简单的层次结构,基于如图13所示的多用途公共设施的概念。“多用途”可以看作是众所周知的“军民两用”概念的扩展,其中一些功能能被许多不同应用共享。从COTS的角度看,Web也是一种极好的实现技术。自然,难以将公共设施和应用准确区别开来,且大多数应用又是递归地建筑在公共设施和“子应用”之上的[Fox:95]。尽管如此,我们还是可以识别5种NII的公共设施如下。表2将这些设施与7种应用领域作了一个对应。

Table 2: Services used by seven NII applications

Applications WebTop Productivity Info VISiON Commerce/Security Collaboration MetaComputing
Society

X

X

X

X

 
Education

X

X

 

X

 
Enterprise Systems

X

X

X

X

 
Health Care

X

X

X

X

 
Command and Control/Crisis Management

X

X

X

X

X

Manufacturing

X

X

X

X

X

Collaboratory

X

X

 

X

 

在几篇论文中[Beca:7a],[Bhatia:97a],[Fox:97a],我们探讨了用Web软件作为并行处理操作环境和程序设计的基础。从如图所示的计算金字塔的观点看,这采用了一种自底向上的哲学。这意味着Web硬件能提供世界的最快的计算机,而Web软件也将在最大的紧耦合并行计算机上运行。


Figure 12: Integration of Large Scale Computing and Web Technologies

上面列举的那些公共设施中有一些已由当前的Web技术实现了。例如,基础WebTop和初步的合作设施已经能用。另外一些仍然等待着新技术的出现,例如使InfoVisiON.成为可能的基础设施,以及使电子贸易成为可能的安全保障。最后,要使如上所述的总体计算成为现实,整个web运作的方式也许需要一种实质性的扩展。目前,Web主要还是集中在文件与图象的服务上。不过,通过Java和VRML技术,我们已经看到了一种向计算机交互式模拟方面的伸展。

a) Request
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:
-for FTP and other services, the server makes an appropriate request of its operating system and responds,
-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),
-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.

b) Answer
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 server:
-If the header is type "Location," the server will send the indicated file to the client.
-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.
When the CGI program terminates, the server closes the connection.


Figure 13:

3.几种Web技术

在这一节里,我们讨论在表1图2图3中提到的一些技术,即PERL,Java,JavaScript,VRML,Web下的数据库,以及多媒体。通过一些简单的例子,我们介绍它们的语法和应用特点。

3.1 Perl4和Perl5---CGI文本

早于Web的出现,Perl是一种很有名的解释型程序设计语言。最初只是针对于UNIX系统,现在也有了PC/Windows版本。 在Web出现后,Perl常用于编写所谓CGI文本,如图2,3所示,CGI文本主要用来方便地扩充Web服务器的功能。从理论上讲,CGI文本可用任何计算机语言编写,例如C,C++,甚至Fortran等。事实上,如图3所示,Java越来越多地被用在扩充服务器的功能方面,包括CGI文本和更复杂的机制。尽管如此,由于它极强的文字处理和文件处理的功能,Perl在CGI的编写中仍然占主导地位,这因为CGI文本的主要功能是处理HTML表格,其具体内容就是文字和文件处理。值得一提的是,一些混合型方式也常见于CGI文本的编写中,其用Perl作为一种上层包装,启动下层由其它语言编写的具体应用程序,例如数据库和模拟软件包。

后面我们将会谈到JavaScript,对比起来,它提供处理HTML表格的另一种方式,即处理过程运行在客户方。尽管如此,服务器方的操作有时是不可避免的。因此,PERL和JavaScript提供了互补的能力。至于Java,尽管已用于编写Web服务器等,它的文字处理能力远不如Perl。因此,Perl将继续广泛地用于CGI文本的编写。

Perl的最新版本是Perl5。相对于Perl4,它在多维数组以及面向对象方面有了重要扩充。然而,尽管它的新数组特点是有用的,但它的面向对象的机构远不如Java,因此并没被广泛采用。

图14是一个简单的Perl程序,其用到了字符串变量内插的功能.图15是一HTML表格定义,它使得流览器方的用户能输入一个名字,然后服务器调用这个图16所示的一段Perl程序(其是图14程序的一个扩充),返回一段问候给用户。

#!/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

Figure 14: Simple PERL Program to read in name input and output a Cheery Greeting

(a)
<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>

(b)
Enter Your name in Text field of Form Please
My name is:

(c)
Hello World to you my friend Geoffrey Fox on a great Sun Mar 23 14:21:55 EST 1997

Figure 15: HTML Page defining Hello World with (a) HTML displaying as shown in (b). The result is displayed in (c).

#!/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

Figure 16: CGI Script used in previous example

3.2 Java及其在Web上应用

Java是一种面向对象程序设计语言,语法和C及C++相似。由于它使得浏览器方(客户方)能运行由HTML文件带过去的程序,它在1995年一出现,就给Web带来了重大影响。Java开创了平衡客户/服务器应用的新局面,将一些处理放到客户方来做,减少了通信开销,在很多场合都是受欢迎的。不仅如此,人们发现Java有更重要的意义。特别地,我们认为它向C++和Fortran提出了挑战,很可能成为未来软件工程和科学计算的主导语言[Fox:97e]。这个潮流有多方面的原因,例如,WebWindows的概念认为未来大型软件工程项目将基于web标准,这就意味着Java将成为自然的实现语言。另外,Java提供一种漂亮的面向对象机制,且具有优化编译产生能和Fortran性能相当代码的潜力。进而,我们可以看到一种以Java作为第一计算机语言学习的潮流,这种潮流发自于孩子们通过浏览Web首先接触了它,并用它来构造自己的homepage。

图17所示, Java在Web上以一种半解释的模式得到应用。javac编译器将Java源码转换成一种面向Java虚拟机的中间码,bytecode。Java虚拟机解释执行这种中间码。

Figure 17: Structure of Interpreted Java Applets

Java虚拟机带有一套很强的运行系统,支持图形,网络和交互式用户界面。特别地,AWT(抽象窗口工具箱)支持诸如按钮,表格,窗口等界面机构.

图1819分别给出了一段Java源程序以及引用这段程序所对应的中间码(类文件)的HTML页,我们称这种嵌入的类文件为Applet。

Figure 18: The Java Code for the Simplest Java Applet: Hello, World!

Figure 19: Displaying Your Hello World Applet from a Web Page

可以指望Java技术将在许多方面得到改进,以提高其性能,增强其功能。"适时编译"技术就是一个例子,它嵌入在Java虚拟机中,在执行时将byfecode转换成机器码。我们将会看到各种支持库的出现,包括商业应用和科学计算等。同时,我们也会看到将Java源码直接编译成本地机器码的编译的出现。

3.3 JavaScript

JavaScript看起来有些像Java,但是完全不同的一种语言。我们可以大至认为Java是一种计算机语言的扩展,而Java Script是一种文本描述语言(HTML)的扩展。

图20是一段简单的JavaScript,显示"Hello,World!"。真正表示JavaScript特点的是图2122所示的内容。在图21所示的程序中,一种新的HTML标记属性ONCLICK用来指出用JavaScript的过程Compute去处理表格的数据。这个过程就定义在HTML文件中,在客户方执行。图23示出了JavaScript怎样能用来生成参数化的HTML页,其中JavaScript的变量(可能从表格的输入中取值)被用来确定HTML页的动态特性。由于它允许在一个框架中的动作去控制另一个框架的特性, Java Script特别适合用来构造多框架的HTML文件。

<HTML>
<HEAD>
<Title>A Test of JavaScript</Title>
<HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript"> 
<!--A Conentional comment to hide JavaScript from old browsers
document. writeIn("<hi>Hello World!<hi>");
//scriptend-->
</SCRPT>
<b>Continue with conventional HTML</b>
<BODY></HTML>

Figure 20: Hello World Example of Javascript

<HTML><Head><TITLE>JavaScript with Forms</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--A Conventional comment to hide javaScript from old browsers
function computr(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>

Figure 21:HTML Page for JavaScript

Figure 22: HTML Display for JavaScript

Figure 23: Parameterized HTML in JavaScript

Java是由SUN公司开发的,现在已成了工业标准。JavaScript由Netscape开发,现在也得到了包括Microsoft在内的一些流览器厂家的支持。我们相信,尽管它尚不是一个标准,JavaScript的作用是很清础的,将会作为Web技术之一长期存在。在第3.2节里,我们提到了AWT,其功能与JavaScript相似。我们可以用Java AWT来模仿Java Script的效果,但实现同样的效果,用Java Script要方便得多。

和Java比起来, JavaScript有许多局限性。JavaScript支持对象,但没有继承。JavaScript依赖于浏览器去执行多任务线索,而Java直接提供语言级的多线索支持。JavaScript通常只用于相对于简单的客户方界面信息的处理,Java的用途则要广泛得多,它是一通用程序设计语言。

3.4 VRML及Web上的真实世界

VRML的动机是很清础的.这个世界三维的,人们应该能够在Web上看到和操纵三维物体。最初的VRML1.0不是一种程序设计语言,它只是一种静态三维场景加上动态视点的描述语言。这样一个三维场景能象图像链(imagemap)一样嵌入到HTML文本中。VRML于1994年春初提出来,1995年出了1.0版本,现在的版本是2.0。VRML是虚拟现实模型语言的简略语.

图24是VRML的一个例子.六行VRML1.0定义了被3个单位长度沿X轴方向分开的两个单位尺寸的物体。VRML的基础是SGI的Open Inventor图形数据库格式,做了些适合Web应用的限制和扩充。VRML的三维世界建筑在一种层次结构之上,其基本概念包括结点,组,分隔符。上面例子中的cube和Sphere,以及图25中的Material都是结点。每个结点有些属性,例如图25中的diffusecolor和translation。图26解释成组的概念。

Figure 24: White Cube and White Sphere in VRMl

Figure 25: Yellow Cube and Yellow Sphere in VRML

Figure 26: Yellow Cube and White Sphere in VRML

图27是一个复杂的例子,一个由云层所复盖的地形区域。由于有效三维图形的处理对计算机通信的要求都极高,现在这种技术目前还没能在Web上广泛应用。尽管这样,许多性能方面的改进有可能通过语言设计和VRML浏览器的改进得到。我们相信硬件,软件以及语言本身的进步将会增加VRML的实际应用。

Figure 27: VRML for 3D Terrain with Weather Simulation Superimposed

在新的VRML2.0版本中,对性能问题有了些考虑,但主要是加进了事件"行为"的概念,其允许程序代码与结点相关,用以修改结点的属性。目前VRML支持Java和JavaScript。这允许场景中的物体相互运动,按照程序代码的描述交互作用。于是,虚拟现实的效果,以及基于Web的游戏等就可以被创造出来。当然,VRML并不是支持三维物体的唯一途径,我们可以通过扩充Java运行环境使它支持三维图形,就像它现在支持二维图像一样。很清础,VRML的思想是基本Web技术的不可或缺的一部分,但如何有效实现的途径似乎尚未找到。

3.5 Web下的数据库

和Web比起来,数据库已有很长的历史了。由于数据库系统现在代价不高,且容易使用,NPAC有许多与数据库有关的应用。

  1. 共同兴趣组的多媒体资料存放在数据库中
  2. 企业intranets和Fortune 500的产品目录通过Web可以从NPAC的数据库中得到
  3. 股票信息数据库支持需求驱动的金融模型的运行
  4. 供教育用的纽约州图象数据库
  5. 商用CD-ROM数据库
  6. 录像标题和索引数据库
  7. 电子邮件数据库取代UNIX邮件分析
  8. 提供全文搜索的教科书数据库
  9. NPAC Web Site完整的文本索引
  10. 定制化学信息索引
  11. 纽约州三维地图的对象数据库
  12. NPAC技术报告数据库

所有这些都能通过Oracle关系数据库或Illustra对象数据库和Web相连得以实现。数据库在NPAC以及其它单位,近年来的普遍应用是可以理解的。传统上,我们用UNIX的文件系统来管理我们的数据和资料。现在数据库大规模降价,以及Web方便的界面自然改变了这种情形,使我们能够在不变的费用上通过HTML提供的友好界面享受数据库系统提供的各种功能,图8(a)是一个典型的通过简单CGI文本使Web与Oracle数据库相连的例子。我们已经积累了许多应用WOW的经验,它有一个很简单的CGI文本,用户通过HTML表格输入的查询命令由Oracle的PL/SQL解释执行。WoW提供的几个工具库,使得将数据库服务器生成的数据转换成HTML文本发送给客户端相对比较容易。

PL/SQL是一种方便的高级语言,生成标准的SQL查询,但它只适用于Oracle系统,我们认为Java数据库连接工具(JDBC),其可以访问任何SQL数据库,在将来会是十分重要的。

图8(b)中,我们强调了一个复杂的Web服务器可能包含许多数据转换(过滤)器。这是因为数据往往以具体应用程序特有的格式存放,而包含在返回给浏览器的HTML文件中数据的描述往往是不同的。Java很适合编写这种数据转换器。图28是一个利用PL/SQL访问简单电话号码数据库的例子,图2930是相应的两个HTML文件。

CREATE PACKAGE EXAMPLE IS
procedure get_phoneno_name (name IN VARCHAR2);-- only procedure
END EXAMPLE;

CREATE PACKAGE BODY EXAMPLE IS
 CREATE PROCEDURE get_phoneno_by_name(name IN VARCHAR2) IS
 CURSOR person_cui(cname IN VARCHAR2)IS
 SELECT last_name,first_name,phone_no,phone_type
  from person_info_table,phone_list_table WHERE
  (person_info_table.person_id=phone_list_table.person_id) AND (last_name LIKE
  ('%'//LOWER(cname)//'%')OR fist_name LIKE('%'//LOWER(cname)//'%'));
   *lname person_info_table.last_name%TYPE;- a variable to hodl last name
   *fname person_info_table.fist_name%TYPE;- a variable to hold fist name
   *phone phone_list_table.phone_no%TYPE; a variable to hold phone no
   *ptype phone_list_table.phone_type%TYPE;- a varible to hold phone type

BEGIN
 htp.htitle('Query Results');
 htp.ulistopen;
 OPEN person_cur(name);- open the cursor
 LOOP;-Fetch eatch row matching the query into variables repeatedly
 FETCH person_cur INTO lname,fname,phone,ptype;
 EXIT WHEN person_cur

 /* print out the query result*/
 htp.p(htp.item //' The //'ptye//' phone no. of '//fname//''//lname//':phone);
 END LOOP;
 CLOSE person_cur;-close the cursor after it is done
 htp.ulistCLOSE;
 END get_phoneno_by_name;
 END EXAMPLE;


Figure 28: the PL/SQL Package for a Phone Example

A HTML form page to accpet user search input and invoke CGI script on the Web
server to access the database
<html><header><title>A Web/Oracle
phonebook Example</title></header>
<body>
<form action="http://myhostcp616/wow/get_phone_by_name">
Enter Last or First Name : <input type="text" name"name" value="">
</form></body></html>


Figure 29:Web Page Search Interface to Wow Phone Example

<html><header>
<title>Query Reslts</title></header>
<body><hi>Query Results</hi>
<ul>
<li> The office phone no. of Geofftey Fox: 3154432163
<li>The home phone no. of Geofftey Fox: 315xxxyyyy
</ul>
</body>
</html>

Figure 30: Result of Wow Phone Query is Another Page(assume user typed in 'geoffrey)

3. 6关于数字语音和录像

多媒本在Web上的作用越来越重要。不少人认为Web将要覆盖当前电话和电视的作用,而且已有了许多这方面的努力。这将给网络以及客户和服务器软件带来新的要求。起初,从Web服务器上可以取下MPEG压缩的录像,但这只能适用于很短的一个剪节。我们必须用到流服务器,其数据连续不断地流向客户。由于不能有中断和延迟,这就对网络提出了很高要求。目前的Internet可以支持语言流,例如有名的RealAudio产品可以给出AM质量的语音效果,但还支持不了录像。当然,这种语音和录像的传送也依赖于压缩技术,例如分形,MPEG,小波等,这些技术的实现细节通常都是商业机密。

新的网络硬件设备,例如ISDN,ATM等也是在Web上发送高质量录像数据的希望所在,但它们真正被部署,投入广泛使用的时间和方式仍然是不清楚的。一个确定的因素是到底视频数据在Web上发送对消费者来说有多么重要!

4. 六种WebWindows的应用领域

4.1 Intranets和企业的信息系统

Intranets最近流行起来。它们相当于用WebWindows技术建设企业的信息系统如2.1节中的图9所示。这些系统将应用传统的数据库技术,但和丰富的WebTop环境连接起来。注意,这意味着人们不会因为今天Internet的带宽不变和不够安全而拒绝Web技术。如果我们今天建设一个WebWindows Intranet,它能够具有该企业所能提供的带宽和安全保障。NPAC在去年Newt Gingrich访问Syracuse大学的时候曾开发了一个政治信息系统[Maxell:96a],该系统显示了信息存贮和在线讨论在WebWindows概念下的一种实现。

4.2 Web Med:Web技术在医疗保健方面的应用

Intranet的想法当然也能应用于医疗事业,Web技术可以将医生,医院管理人员,保险公司,护士,以及病人联系起来,共享有关信息,NPAC有两个这样的项目.一是和Syracue大学的护士学院合作开发一个帮助中小学校护士的系统,二是利用简单的虚拟现实技术使残疾人能够流览Web,从他们家中将医疗感应数据传送到远方的Web服务器中供那里的医生分析.

4.3 Web技术在金融工业中的应用

NPAC有兴趣的领域之一是将WebWindows用于金融工业中,这里Java用来提供响应实时交易数据的界面,也允许下载简单的模型代码以辅助在线的交易活动。不过,当今复杂的金融环境要求应用Monte Carlo等计算量很大的算法来做精确模拟。这里我们应用Web技术让投资者访问股票数据,而让模拟系统运行在大规模并行计算机上。

4.4 Web技术在远程教育方面的应用

有理由期望Web将对教育事业有一个很大的促进,这既包括传统的学院式教育,也包括远程教育。这方面已有不少研究与讨论。例如什么是最有效的学习方法,异步还是同步?教育单位的经营模型的可能改变也是一个论题。我们认为这些重要问题只能通过一些实际的实验来回答。下来讨论一些从事这些实验的方式和技术。

4.4.1基础设施问题

带宽。第2.4节提出的多用途的基本原理告诉我们, 搞远程教育,我们将用NII所提供的,商业,医疗,娱乐行业同样也在用的基础设施。

用户访问Web可基于28.8Kb的POTS连接。这就是说只能指望文字,语音和图象的传送,高质量视频数据的传送将要求ISDN(12 Kb/sec)或ATM。假定MPEG1压缩,全屏NTSC录像显示要求大约1.5Mb/sec带宽。作为对比,4速CD-ROM的数据传输率只是0.6Mb/sec。我们注意到ISDN的能力只能应付上述要求的10%。当然,作为教育应用,我们也许只需1/4屏,每秒15帧的质量。小波变换等较先进的压缩技术现在已可用,但还没标准化,没有像MPEG那样在PC中已有普遍应用。

这种能支持视频数据传送的带宽也能支持如下与远程教育有关的活动。

缓存(Caching)的作用。在远程教育应用中缓存既对性能也对内容都有影响,教育通常是在教室环境中进行的,一组学生浏览相关的内容自然地有效利用了缓存资源。在由NASA LangLay做的一项学校实验中,95%学生用的资料都在Cache中找到,这就使得一个28.8kb的连接看起来像一个专用T1线[Fox:95m]。

缓存也影响内容的质量。在教室里用事先选好的材料能够保证学生浏览相关的,适当的内容,维持教师备课的效率。考虑到一些不适当材料的影响,一些学校对学生访问Internet做了一些限制,在Web上进行数据开采,收集与中小学教室相关的资源为Web的内容增加了很大的价值.NPAC的KidsWeb项目[Kids:95a]开发了一个系统,支持Syracuse地区8年级的教学计划,它是NPAC的Web;服务器上被最经常访问的一个内容。

第2.2节图7所示,缓存也用来支持层次型Web服务器的情形。需求量大的内容被复制存放到与用户靠近的服务器上以减轻对带宽的压力。

在今后的远程教育实验中,我们打算给每个学生一片CD-ROM,通过传送同样的URL,授课将以一种同步的方式进行(在同一时刻所有学生都看同一页). 这种方式利用诸如Habanero[NCSA:97 b]或[TANGO:97b]之类的先进合作手段来从本地CD-ROM上获取数据,在每个客户上显示同样的内容,例如一个100Kb的图象。这就有效地降低了对带宽的要求,使得28.8Kb的线路能支持图象丰富的教学内容。

4.4.2人与人之间交流的问题

合作。人们关心Web所带来的这种虚拟学校,虚拟教育的模式引起的教师与学生间,学生与学生间的隔离,这显然是不利于学习的。但另一方面Web技术使得学生的交流范围扩大到了全世界。远程教育使得学生能根据自己的情况安排时间,但也应该支持学生和教师间的双向交流。在很多情景,学习也应该是一个集体行为,因此应该有多用户的合作工具,支持集体讨论,写作等活动。

合作对基础设施提出了高要求,因为是实时交互进行的,像缓存,层次型,服务器结构等技术都用不上了.如上所介绍的,与CD-ROM结合的一种方案似乎是很有前景的。我们的基于Java的Tango系统就支持这种模型.我们希望能很快用它做一组实验。

我们在视话会议方面的经验显示56Kb是最低要求,ISDN(128kb)足够了,但远不是指每秒30帧的全屏录像,我们正在实验用语言来做注解,以增强在线教材的有效性。

写作。如果2.3节所讨论的,Web的广泛性使我们会看到专有操作系统将被Web操作系统所取代,将会看到大批WebTop 工具的出现,在Web环境下的写作将成为远程教育的中心内容。

家庭作业将在电子环境下完成,学生必须能够创造,修改,编辑在线超文本材料,这将成为他们学习过程的一部分。作为我们计算机课程的一部分,我们开发了一个虚拟程序设计实验室,通过浏览器,学生可以编写,编译和运行程序[Dincer:97a],[Dincer:97b ]。

主动性模拟。模拟可以提供一种学生与模拟世界双向交互的手段,学生应该能够通过设置参数,激活事件来引导模拟的过程,观察有兴趣的部分,获取有关注释性信息。虚拟现实是提供一种身在其中之感环境的技术。它们成熟和应用将大大改善模拟的质量。

巡游。尽管Web是教育材料和内容无比丰富的源泉,但不断增加的信息量和复杂性使学生很容易在其中迷茫,我们需要有针对性较强的巡游工具,使得在其中寻找我们需要的内容能更有效。

结构化的巡游和自由随意浏览之间要求得一个平衡,既使教师能有效地引导学习过程,也要使学生能应用对他自己最适合的学习方式。NPAC从事的 KidsWeb和录像档案项目属于非结构化的,而为计算机科学课程提供的在线电子教材属于结构化的。[CPS:96a], [Fox:95n]。

评估新技术和方式对学习效果的影响是重要的, 而Web本身在这方面也很有用。一些工具用来记录学生巡游的路线以及他们对所选择序列的反应,这些信息可用来分析学习的有效性。记录所访问过的URL是最简单容易的,我们现在用它来使有关教材的文字内容(以HTML页的形式出现)和事先录制好的语音联系起来。Tango支持对多媒体合作过程的完整记录,记录巡游路线以及在两个目标间的时间间隔使我们可以预测以后的巡游方向,改善停息设计[Sherman:97a]。

信息的单位。在传统的模型里,教学通常是由授课加上教材,笔记等实现的,在基于Web的环境下,信息高度分布,学生可以进行交互式模拟,我们必须考虑什么是最合适的信息单位.一种电子百科全书的模型也许是合适的,条目短小,模块化,相互连接,对一个条目,可以包含多作者,多层次的解释。

从物证上看,信息的自然单位应该约为一屏计算机显示.我们注意到这类似于一张投影胶片上的内容,因此我们可以认为报告技术可能是Web教育实现技术的一个来源。

4.4.3 NPAC的一些实验

NPAC的文字索引录像的项目将需求驱动的放映,软件系统等技术结合起来,提供一种以教育为中心的需求驱动的放映服务。该项目的所有工作都是基于Web的。

以娱乐为服务内容的放映系统所给出的几乎是100%视频内容。NPAC的VoD项目以教育为服务内容,录像放映服务系统被集成到一个大信息系统之中,放映服务器和一个全文搜索数据库连接起来,这样,在放映录像的同时可以伴有解释文字材料等[Maxwell:96a]。

在放映服务系统的开发过程中,我们研究了图象质量和带宽要求之间的权衡,这是在固定位率的网络通道上传输可变位率的视频数据流必须考虑的。压缩技术总是希望能最有效地表达两帧相继图象之间的差异,但这种差异在不同的情景下是不一样的[Podgorny:97a]

4.4.4 WebWisdom

这是一个层次结构的知识树,用JavaScript实现[Fox:97b],在Netscape3.0上应用。它是一种有效地显示一组相关内容的方式,在顶层JavaScript的一些函数调用,定义了一种递归的,层次式结构,这些函数调用自动生成包含被显示内容的HTML页,使其能在Netscape出显示出来。

这种结构在教育和邮件归档方面有自然的应用,我们目前已实现了,"Family "和"Family Photoworld". Foilworld将NPAC所有报告宣讲材料归档,使得它们可被按字母序或内容主题查询,浏览,Family Photworld使我们能将家庭历年来的照片有序地整理好,在Web上得以方便地浏览,当然照片需事先用扫描仪之类的设备变成计算机文件。我们已将WebWisdom与Oracle数据库连接起来,其提供了更高的搜索功能。WebWisdom的一个重要功能是其Java前台,其可以从不同层次的结点中抽取内容,组成新的结点。

4.5生产加工和NII

高性能计算和通信技术以及NII目前都在实际生产中得到应用,流行的"灵敏加工"概念使人们必须用高性能计算机来做快速设计与模拟试验,而NII将不同的加工过程以及相关单位联系起来。

在飞机生产的各个方面,高性能计算是十分重要的,但我们注意到流体力学计算的开销在波音777费用中只占5%,而整个系统问题要求的计算机开销要超过50%,因此,针对CFD研究并行计算是有用但是不充分的。这就是实用HPCC的Amdahl定律。CFD算得再快,它在整个系统中只占那个份量,因此,HPCC必须考虑集成整个过程,上述那个5%与50%之比,即1:10,可以看作是在大规模,高技术生产过程中对并行计算(传统HPCC)和分布计算(NII或Web)之比。

这种观点的被接收可从目前所用的设计标准看出来。以前,重点在于提高性能:速度,范围,高度,尺寸,这些仍然是重要的。但现在更重要的标准是竟争力,包括投放市场的时间,整体承受能力。设计费用是这个承受力的一部分,但80%的费用通常都花在生产加工和维护上。因此,HPCC/NII的应用需既描准设计过程,也描准生产过程以及产品的整个生命周期。

以生产未来的战斗机为例,ASOP(可承受系统优化过程)是一种新的指导思想[ASOP:95a],及其有关的一个项目。这种假想的飞行器将涉及到六家重要的飞机生产厂家和20.000个子任务单位,这就构成了一个遍布全国甚至全世界的"虚拟公司",最初可能需要50个工程师来做概念设计。之后的初步设计和详细设计可能分别涉及到200和2000个工程师。整个设计过程将需要大规模计算,信息系统,以及网络资源的支持.例如,设计过程可能要涉及到10000个不同的计算机程序.这些程序的覆盖面可能从并行空气动力学计算到确定检测点位置的专家系统.这些程序的运行相应地会涉及到各类计算机,从PC到MPP,以及各种语言工具,从电子表格到高性能Fortran.这种集成的,多学科的优化将会由大量的子优化问题构成,每个子优化问题涉及到若干基本系统.这里,我们可以清楚地看到NII在其中所扮演的关键角色,将地域分布的各类计算和信息系统有效地连接起来.飞行器是一种精密的系统,不能有差错.这种要求隐含着对设计过程各个部分的严格控制和协调.典型做法是,用一个主系统数据库按某种规则的时间间隔,例如每个月,同步各方面的活动.

图31所示,ASOP被设计成一种连接八种主要设施的软件框架,包括设计,可视化,优化,模拟,工艺过程,耗费,分析,以及规格.以数据库作为基准,它们确定了产品及其部件的特性.

4.6 NII对指挥与控制和危机管理的作用

指挥与控制(有时还加上计算,通信, 情报以及战斗管理,简称为BMCIS)是管理与计划军事动的任务,这与民用的危机管理很相似,例如台风,地震,化学物质的扩散,森林火灾如[NRC:96a],远程医疗等作为视话会议技术的一种应用,但在有些情形下有些关似乎指挥与控制的要求了[Warner:95a], 很可能需要丰富的交互式信息才能有效地处理好病人,不论是军事远是民用,上述应用中都有需要并行计算的部分.这包括图象与信息号处理以及各种模型的模拟运行,也需要如4.4.3节所述的大规模多媒体数据库.我们基于TANGO所实现的一种可在Web上应用的指挥与控制原型系统[Beca:97a],[Fox:97c]体现了许多上述概念.

在这个领域NII支持的一个关键特色是适应性,危机和战斗可能在任何地方发生,可能毁坏现有基础设施的任何一个部分.适应性意味着要最好地利用没被毁坏的部分,而且还要能部署和集成流动的设施.这样的信息基础设施必须显示出安全性和可靠性或容错能力. 网络管理必须要能对付意外的容量要求和实时限制,应该能够允许关键信息获取较高的优先级.

所需的计算资源将是各种各样的,从手持系统到大规模并行系统.由于电源和带宽的情形有时是不可预测的,在各种平台上提供统一的用户界面和类似的设施是很重要的.当然,保真性和质量会随系统的不同而不同.对于通信设施,我们必须能对付意外的容量要求.只要NII是在全国范围部署,计算能力可以由远程点来提供.国防部考虑用基本NII来搞指挥与控制,但在关键的地方安排一些增强,以满足通信需求.这种"就地取材"的做法要求操作系统和程序设计模型都支持一种通用的适应性混合模式来将地域分布但联网了的计算机协调起来.当预报实时物理现象时,例如天气对一次军事行动的影响,森林火灾,毁坏的建筑物的结构等,有大量的计算需求.在较长一些的时间尺度上,模拟常可用来拉计划和评估.利用模拟虚拟环境搞训练对计算资源的要求很高.在信息领域,应用包括数据开采,以从大规模联合数据库中发掘非寻常的内容.数据融合包括传感输入和处理,地理信息系统,以及从多视频流中重构总体图景等.所要求的高性能图像处理能力成为基于web的分布计算环境的一部分.

信息管理很需要能从数据库中提取重要知识.危机管理人员必须从意料之外的紧急情况中作出判断,不可能事先对数据作详尽分析,和从特定信息源中提取知识.同样,系统地利用元数据来做大粒度搜索也是十分重要的.这显示了在便利访问"意外数据库"方面建立标准的重要性.人们要能访问与特定地域和战场有关的数据库,有关地理和社区信息应该以电子形式广泛可用.这里,政策和安全方面的问题往往是非常困难的.一方面要使指挥员或危机管理人员能迅速方便地获得那些信息,另一方面又涉及到所有权的保护以及安全等级的限制等.这种信息系统应该能允许关于危机和战场的录像和图像实时地投放进来.用web连接起来的数据库可使这种做法更加可行.

如前面所提到的,我们期望以前积累起来的知识和经验能放在计算机里随时可用,以支持在战斗中作出迅速决定.这在代号为JWID的一组军事演习中已有体现.我们注意到这种情形可看作是一种实时的InfoVISion设施.

指挥与控制一直是分布式计算的典型范例.有关计算和通信资源总是自然分布的,而不是集中在单个MPP中.我们可以看到这种情形演变为一种基于web的信息基础设施,不仅针对军事,而是整个国家,包括商业,教育和社会.


Copyright NPACT