Internet 上的技术和工具 李晓明、李继灿 1998年 第26期 07版   李继灿:晓明,在你介绍了Internet的“基础设施”与“网上服务”后,这次该谈到第三个方面即Internet上的“技术和工具”了。看来,这部分的内容相对前面两个方面来说要更专业化一些。   李晓明:应当说,这一部分问题专业性比较强。我尽量讲得通俗一些。我首先谈谈技术和工具的重要性。我这里谈到的技术和工具,主要是指近三年多来人们开发出来的各种软件和技术。它们的主要作用是为了“网上服务”。目前,多个计算机公司的竞争焦点就在这里,它们都希望开发出新的软件与技术。其目的是为了推出更新颖的服务,或者是为了更高效地提供某种服务。这是目前计算机软件行业的主战场。   ●不同类型的服务要求不同的技术和工具来支持,比如提供信息服务,基本的工具需求就是要能迅速将信息以“网页”形式表达出来。   李继灿:由于网上服务类型的不同,相应地,技术与工具也不相同吧。   李晓明:对。不同类型的网上服务,会要求用不同的技术和工具来支持。比如,为提供信息服务,基本的工具需求就是要能迅速将信息以“网页”形式表达出来。HTML(超文本标识语言)文本规范给出了最基本的方式,但效率不高。于是各种编辑器(例如HotDog、FrontPage等)应运而生,提高生产“网页”的效率。另一方面,多年来人们已积累了大量的、各种格式的文本信息(例如Word文本、Latex文本),提供能将它们转换成HTML文本的自动工具显然是很有意义的。英国人Nikos Drakos写的免费软件Latex2html大受欢迎就是一例。现在凡开发文字处理器者,若不提供能以HTML文本格式存储的功能显然是一大缺点。   又比如,为提供交易服务,Web与数据库的连接是核心问题。人们希望能够从浏览器方,安全可靠地访问服务器方的数据库。继“原始的”CGI方式后,现在流行的是JDBC。安全问题自然也是至关重要的,于是有了SSL、S-HTTP等协议,有了数字签名、证书技术等。   再比如,为提供合作服务,需有一种基础环境的支持,来保证协同工作对象的有效共享,以及网上交流的畅通。例如几个人一起在网上对一份文件进行推敲修改,需要能同时看到这份文件,而且每个人的意见能够被及时地表达。修改一旦发生,也应能同时反映在每个人的计算机显示器上。不像JDBC已经成为了网络与数据库连接的公认主流技术,支持合作的主流技术尚未有定论。这里的主要原因大概是因为目前网络基础设施还没有达到能广泛支持合作的水平。尽管如此,一些公司还是推出了网上合作工具,例如Microsoft NetMeeting、Lotus Notes等。   ●要理解Web技术,必须建立起客户机 /服务器的概念   ●使Web运行的协议有:HTTP、HTML、MIME、CGI   李继灿:许多用户关心网页的建立,你能不能先介绍一下有关Web的基本工作原理。   李晓明:要理解Web技术,首先,要在头脑里想象一个基本的模型:有两台远距离的电脑,它们之间是由一个网络连接起来的;其中,一台是请求服务的客户机,另一台是应答服务的服务机。在客户机与服务机之间的通信是由一些特定的协议来支持的。其中,最基础的协议是TCP/IP协议。在TCP/IP之上,提供Web服务的最基本技术即是HTML(超文本标注语言)、HTTP(超文本协议)、MIME(多用途Internet邮件扩展协议)和CGI(应用程序和Web服务器之间的交互协议)等构成的基本协议组。   李继灿:能不能具体谈谈客户机 /服务器的计算模型和支持它们之间进行通信的协议?   李晓明:80年代中期,计算机工作站和局域网技术的发展推动了一种新的计算模型(方式)的形成,这就是Client/Server computing,客户/服务器计算方式。其基本意思是,一个计算过程的完成(或一次计算服务的实现)总是要涉及至少两台计算机,一台作为客户机,另一台作为服务器。用户直接和客户机打交道(不一定感觉得到服务器的存在),客户机将用户的要求(例如读一个文件,查询一个数据等)以特定的内部形式转送给服务器,服务器根据这个要求完成一定的工作,并将结果返回给客户机,客户机再以特定的方式将结果表现给用户。   浏览网络的最基本操作是用鼠标点击网页的含有“超链”的文字。其背后发生的过程是:浏览器用URL(统一资源定位器)查询DNS(域名系统),DNS访回IPO(网间协议)地址:浏览器用这个IP地址建立一次TCP/IP连接;浏览器通过该连接向服务器发一HTTP请求;基于该请求的内容,服务器找到相应的文件,并根据该文件的扩展名,形成一个MIME类型的HTTP回答消息,发送给浏览器,关闭本次连接;根据消息头,浏览器按某种方式显示该文件内容。   这里,URL通常指的是站点地址,例如http://arch.cs.pku.edu.cn(URL的一般含义比这要广一些)。所谓HTTP(超文本传协议),是Web的核心协议。它以“客户/服务器”工作模型,规定了一套浏览器和服务器之间对话的方式。使得Web能够运行的是由一组协议来支持的,一般有4个协议,其中,HTTP是一个基本协议,它规定了客户机与服务器请求与应答的方式。比如,当客户机中的浏览器向服务器发出一个请求时,它要在请求中指明现在它所需要的是服务器中的哪一张“网页”。而“网页”是由一种称为HTML的语言编写的,HTML也是一种协议。第3种协议是MIME,它是一个开放的多语言、多媒体电子邮件标准,它的作用是使服务器识别该网页的特性(如区分它是图形还是文字)。第4种协议是CGI,它的作用是使服务器能在收重叠HTTP请求后执行一个程序,将程序的执行结果返回到浏览器。   ●Java是以一种语言串起来的一套软件技术   ●Java Script不同于Java,它能使人们在网页中直接嵌入程序   李继灿:网络上有各种各样的不同硬件平台,在网上运行用各种语言编写的程序或文件是一个相当复杂的难题。据说Java解决了这一难题。是这样吗?   李晓明:广义地来讲,我们应该把Java看成是一个以一种语言为线索串起来的一套软件技术。Java技术的出现,又在本来已很澎湃的Web浪潮后面刮起了一股强劲的风。在已有了2000多种计算机语言的今天,出来一种新的语言,马上被工业界普遍接受,是让人惊叹的。以后有可能出现比Java更有市场的语言,但像Java这么快地流行则难以想象,除非出现一个比Web的意义更大的背景。   李继灿:你刚才谈Java是一套软件技术,能解释一下它在Web技术中的地位与作用吗?   李晓明:我们讲Web的软件技术包括三个层次。第一是前面介绍的基本协议组。第二是自1995年以来爆发出来的各种软件技术,其中,Java是一颗最明亮的“星”。此外,还有Javascript、Plug-in、VRML等。有人认为Javascript是Java的一个变种语言,其实,它们是完全不同的两种语言。Javascript是美国网景公司(Netscape)在Sun宣布Java后不久推出的一种脚本语言,其主要用途是提供一种方式,使人们在网页中能直接嵌入程序,而该程序在浏览器一方可以执行,这使得所传送到浏览器的汉字,图像等信息可以通过运行该程序产生动态的交互效果;而过去的网页只能传递静态的文字、图像等信息。第三是分布式构件技术,它是使分布在不同计算机上的软件模块可以很方便地被组装成一个所需要的软件系统,它代表了Web技术发展的方向。   李继灿:你能不能再具体地谈分布式构件技术的几个方面。   李晓明:首先,我们应当看到的是,从计算机软件工业的发展来看,计算机软件发展的趋势是Internet潮流和分布式构件技术潮流的融合。Internet是需求,是市场;分布式构件技术是满足这种需求的唯一可行技术,是参与市场竞争的必由之路与生存之道。其次,几十年软件开发和工程的实践使得绝大多数人认识到(或者说盼望)软件系统的建造应该像硬件那样:系统由构件装配而成,构件由更小的构件构成;构件满足一定的标准化,适用于任何提供同样接口的系统。这是软件产业的一种理想境界,其核心是希望做到计算机软件的重用。于是出现了“软总线”标准,出现了专门按照标准开发“软构件”的公司,也出现了将软构件配置在软总线上以构成软件系统的生产活动。工业界考虑构件技术已有上十年的历史了,尽管目前(由于成熟性、开销等原因)尚没有被普遍采用,但普遍认为这是希望的所在。第三,网络服务软件的功能在本质上是分布的。这不仅因为网络服务的实现在客观上至少要由在地域上分布的客户方和服务器方两方完成,而且因为许多(越来越多)的服务系统本身要由多个在地域上分布的服务器的参与,有些服务内容(便如某些游戏)也必须要由多个客户参与才有意义。我们说网络软件也是大软件,有两方面的含义。一是那些典型软件通常都很重要,比如Sendmail、浏览器等;二是未来的服务软件通常都是综合的、集成的,在网络环境中要和其它未知的软件交互作用。因此,分布式构件技术是开发网络服务软件的根本技术。记得原来写程序,总是写主程序调用给定的的子程序库,或者是写库,准备将来被 别的主程序调用。现在情况很有些不同了,写一个主程序,准备调用将来开发的子程序,或者是写子程序,被已经开发好的主程序调用。WWW服务器和浏览器就是典型的例子。应该说,这也是网络软件必然构件化的一种提示。   ●计算机将更多的是“生活用品”   ●Internet上的非技术问题也值得关心   李继灿:晓明,通过我们以上几次对话,你对Internet技术已经做了一个比较全面与深入的介绍。那么,我最后还希望你谈谈,Internet仅仅是计算机领域里的一个技术问题吗?它为什么会如此引人地吸引世界上那么多人的关心与追逐?   李晓明:尽管我们这几次讨论的是与Internet有关的各种技术,但由于它标志着一种真正的“信息时代”,关心它的不再仅是计算机专业人员,而是整个社会。计算机将成为家庭必需品,如同电视、电冰箱等家电;更多的将是“生活用品”,它的健康运行就不仅是技术问题了。在此,我仅举几个例子,说明Internet上的非技术问题也是值得关心的。首先,作为一种无比广泛的信息传播媒体,什么能在网上发布?什么样的网上信息可以自由使用,不仅不付钱,也不需要指明出处?现在撰写学术论文,允许使用网址作为参考文献的出处,这其中的合理性是值得推敲的。网上的东西可以随时改变,作者并没有义务维护其稳定性甚至正确性。一张网页的内容,明天完全可以是另一种样子,甚至根本就消失了。这与印刷出版的书刊,白纸黑字,一旦发行流传,就不能收回,是一种本质的差别。作者的责任感要强得多。域名的版权,也是个问题,只要没有已经被用过,任何公司都可以用http://www.microsoft.com作为其网址。这显然有可能增加该公司的自我宣传机会(那些随意的浏览者很有可能就用这个网址),而使Microsoft的利益受到损害。另一种情形是用容易混淆的网址,例如http://www.apache.com和http://www.apache.org。另外,现在的网址只能由英文字母(包括啊拉伯数字等ASCⅡ字符)构成,那么,网址能否用中文?现在是不行的(DNS不支持)。但对大多数中国人来说,“http://www.茅台.商用.cn”显然比“http://www.maotai.com.cn”有更明确的含义。诸如此类问题,常在一些大学的信息技术(IT)系或学院研究,属于“信息政策”的范畴。   李继灿:在经过长达近一个月的专题采访和《电脑报》5次专题报导之后,我们这次对话即将暂时告一段落。谢谢《电脑报》对我们的支持,也谢谢读者耐心地看完了这次采访对话。