从网络通信技术的观点来看,Internet是一个以TCP IP(Transmission Control Protocol Internet Protocol,传输控制协议网际协议)为基础,连接各个国家、部门、机构等计算机网络的数据通信网。从信息资源的观点来看,Internet是一个集各个部门、各个领域的各种资源为一体的用户网络共享的数据资源网。
1.网络互联设备
根据OSI参考模型的分层观点,互联划分为四个层次,即物理层、链路层、网络层和高层,与之对应的网络设备分别是中继器(Repeater)、网桥(Bridge)、路由器(Router)和网关(Gateway)等。
(1)中继器
中继器(Repeater)工作在OSI模型的最低层(物理层),只能用来连接具有相同物理层协议的局域网,其作用是放大电信号,用以扩充局域网电缆的物理距离限制。如粗以太网电缆最长为2.5公里,但每500米之间都要通过中继器进行连接。
(2)网桥
网桥(Bridge)是在OSI的数据链路层连接局域网的存储转发设备,它可以实现不同拓扑结构和不同传输介质的局域网连接。网桥也独立于高层协议,但在实际应用中,它只有连接协议一致并采用相同网络操作系统的局域网才有实用价值。能过网桥还可将局域网连接到高速主干网上,实现局域网和远程网连接。使用网桥可以分散信息流量,隔离错误,提高网络性能和安全性。
网桥可以是单一设备,也可以是一对“半网桥”,半网桥由中间通信设备连接起来,这种中间通信设备可以是直接链路、交换线路或宽域网络。
(3)路由器
路由器(Router)工作在OSI的网络层。它需要通过处理网络层的数据分组或网络地址来决定数据分组的转发,路由器比网桥具有更强的网络互连功能,网桥只能检查所传送数据分组的目的地址是在本网内,还是需要转发,路由器则根据网络图来检查连到目的地址的各通路状态,根据路径、历经的转发点及费用,从中选择“最佳”路由。
(4)网关
网关(GateWay)工作在OSI的传输层或更高层,它又称作协议转换器。网关用于连接不同体系结构的网络或将大型主机和局域网连接。目前,远程网大多使用X 25公用数据网,而局域网上的通信协议和X 25协议存在很大差别,前面几种网络连接设备都不能实现它们之间的连接,只有通过网关实现,它是最为复杂的网络互联设备。另外,大型主机一般都不支持局域网协议,如果将大型主机和局域网相连,也要使用网关。
2.TCP IP协议
TCP IP协议是指Internet各子网之间相互遵守的网络通信协议,泛指所有与Internet有关的网络协议簇。它不仅包括TCP与IP这两个协议,而且还包括诸如DNS,FTP,Telnet等协议。对于TCP IP协议的问世,大约比目前的国际标准OSI模型早了10年,所以TCP IP协议看起来似乎不太符合国际标准。但由于TCP IP协议是由非专利性质的协议组成,并且这些协议不隶属于任何一家公司,只要愿意,任何人都可以使用这些技术,因此,TCP IP协议得到了绝大多数厂商的支持,从而成为一个成熟的工业标准协议,并且被各种各样的网络所支持,最终发展成异种网之间较为完美的互联协议。可以说,没有TCP IP协议,就没有今天的Internet。
TCP IP协议不是单个协议,而是一个协议组,主要包括传输控制协议(TCP)、用户数据协议(UDP)、互联网协议(IP)等主要内容。
Internet中有数百万台主计算机,为了明确地标识每一台主机,TCP IP建立了一套编址方案,为每台主机分配一个IP地址。IP地址就是主机的代号,一台主机至少拥有一个IP地址。任何两台主机的IP地址不允许相同,但是一台主机可以拥有多个IP地址。如果一台计算机虽然也连入Internet,并使用Internet的某些功能,但它没有自己的IP地址,就不能称为主机,它是通过连接某台具有IP地址的主机实现这些功能的,因此只能作为上述主机的仿真终端,其作用如同该主机的普通终端一样,而不论其自身的功能有多强。
IP地址是由32位二进制数,即4个字节组成的,通常用4个十进制数表示,每个十进制数的取值范围为0~255,中间用圆点分隔,通常表示为mmm.ddd.ddd.ddd.例如:123.121.321.就可以表示网络中某台主机的IP地址。
在mmm.ddd.ddd.ddd中,mmm用来表示网络类别。mmm取值范围为1~126时,表示主机号所在网络为大型网,即A类网。mmm就是网络的网号,其余的数字用来表示主机号,mmm取值范围为127~191时,表示主机所在网络为中型网,即B类网。这时,前两个数字合在一起就是该网络的网号,第三个数字代表子网号,第四个数字则是主机号。mmm取值范围为192~223时,表示主机所在网络为小型网,即C类网。在这种情况下,前三个数字合在一起为该网络的网号,第四个数字是主机号。
由于IP地址由数字构成,不便于用户记忆和使用,人们又建立了与IP地址相对应的一套域名管理系统DNS(Domain Name System)。该管理系统为每台主机分配一个特定的标准名称,并由分布式命名体系自动翻译成IP地址,这种翻译过程就是“名称解析”。每台主机的标准名称包括域名和主机名,由4部分构成,各部分之间也用圆点分隔,总长度不能超过254个字符。如bobcat.csc.wsu.edu。
标准名称的命名规则与IP地址相反,自右向左越来越小。例如,上述名字最右边的edu是最高层次的域名。edu表示该主机是美国教育部门;wsu是下一层次的域名,表示该机属于华盛顿州立大学;csc是最低层次的域名,表示该机位于华盛顿州立大学的计算机服务中心;bobcat是主机名,表示该机叫做bobcat(实际为VAX11785机)。
域名应尽可能通俗易懂,美国常用的最高层次域名如:edu(美国教育部门),gov(美国政府部门),mil(美国军事部门),org(事业机构),com(工商界)等。国家和地区的域名常使用两个字母表示。例如:CN(中国),JP(日本),US(美国),FR(法国)等。
随着Internet的商业化,Internet已经成为世界范围关注的焦点。作为一个企业或者机构,如果想进入这个领域,增强同外部之间的交流与合作,接入Internet只是一个时间问题,而拥有一个网上名称——域名也是迟早的事情。域名可以简单理解成接入Internet的单位在Internet上的名称,在网上,人们可以通过域名来查找入网单位的网络地址。如果选取与自己单位名称、注册商标相一致的域名,就便于别人查找,也与单位平时所作的一系列广告宣传统一起来,形成完整的单位形象。
3.接入技术
广域网互联可以解决远程的局域网和计算机之间的连接,但是,大多数网络都是公用网络,不可能直接接入用户的家中或办公室里,接入技术负责将用户的局域网或计算机与公用网络连接在一起,由于这是用户与Internet连接的最后一步,因此,又叫最后一公里技术。对接入的基本要求是:
①有很高的传输率(即带宽),以便支持多媒体通信。一般情况下,人们对接收速率(即下行信道)的要求较高,而对发送速率(即上行信道)的要求较低,因此,传输率可以是不对称的。
②随时接通或至少可以迅速接通。像目前用的模拟信号Modem连通时间较长,并占用电话线,且不能在使用电话的同时保持连接状态,显然这不是一种理想的方式。
③价格便宜,工作可靠,随处可用。
Internet接入作为一种通信基础设施,它具有极大的市场前景,这也是当前IT产业界予以重视并投入巨资发展的原因。
传统的接入技术是采用Modem通过电话网接入,也就是我们常说的拨号网络。它的主要缺点是速度低,目前最新的Modem也仅是56Kbps,它也不能满足视频信号的要求。另外,它独占电话线,Modem和电话就不能同时使用,而且,Modem每次建立连接所需时间也较长。这些缺点充分表明,它不是理想的接入手段。
现在,性能更高的几种接入技术是:ISDN、低轨卫星网、同温层电信网、ADSL Modem、电缆Modem和光纤网。
其中ISDN是成熟技术,确立了工业标准,目前比较现实的几种技术是:低轨卫星网、电缆Modem和ADSL Modem。
(1)低轨卫星网
这是用许多运行在低轨道上的卫星构成的一个覆盖全球的宽带空间网络。众所周知,如果用高轨道的同步卫星,只要三颗就可以覆盖全球,但是用同步卫星通信时会有半秒的传输延时,这在多媒体通信中是不允许的,所以,采用延时小的低轨卫星,而这样就需要大量卫星才能覆盖全球。而计划中,支持全球Internet接入的Teledesic系统,则需要由分布在12个平面上的288颗卫星构成,它们作为用户和地面网络之间的链路,或作为用户之间的链路将能覆盖全球100%的人口和95%的表面,且提供与光纤相仿的服务质量:即低延时、低误码、高可用性、高灵活性和足够的带宽,并可以同时支持多达数百万个用户。
Teledesic系统的地面部分包括终端、网关、网络控制和操作系统,空间部分包括基于卫星的开关网络。地面终端进行卫星网、地面网络和用户之间的协议转换,终端与卫星网络可以用各种速率进行通信,终端可以和各种标准协议相连接(如IP,ATM,ISDN等)。该系统的下行速率是64Mbps。上行速率是2Mbps。空间网络采用快速数据包开关技术,兼有电路开关网络和数据包开关网络二者的优点,既能做到延时小,又能支持多速率、突发数据和网络连接方式,以使终端之间的传输延时最短,是一种动态的拓扑结构。
(2)电缆Modem
电缆Modem利用有线电视网作为接入网。传统的有线电视网只能单向传输,即从发送端把有线电视信号传输到各个用户。早期的电缆Modem也只能用光缆传输下行数据,而另外用电话线作为上行通路,但新近的电缆Modem具有双向通信能力,不再需要用电话线。
(3)ADSL Modem
利用电话线作为数字传输线的技术总称为xDSL,例如ADSL,VDSL,VADSL,HDSL,DSL,SDSL,BDSL等,其中ADSL即不对称传输率的数字传输线技术,适合作为接入技术。目前,ADSL的标准有G.lite,国际电联(ITU)最近将它定为G.992.2标准,这将有助于ADSL技术的推广,以避免出现类似56K Modem的不同标准之争。ADSL虽然可提供最高达1.5Mbps的下行速率,但现在它只可提供较低的速率(256~384Kbps),这是因为现在Internet本身的速率不高,即使接入速率很高也无法发挥其作用。
ADSL用户端同时可以接几个设备,包括普通的电话机和PC机等,因此,通过线路进入的各种信号(电话话音的模拟信号、上行和下行的数字信号)必须加以分离。在PC机等数字设备端,需用高通滤波器过滤掉低频的声音干扰;在电话端则需用低通滤波器过滤掉高频的数字信号干扰。这可以加上带滤波器的分线器实现,但也可以不加分线器而将相应的功能放在设备中实现,一个ADSL Modem可被多个设备共享,设备和ADSL的接口可以采用以太网、ATM—25、USB等标准接口,或者直接把它安装在设备的主板上。
当然,上述各种技术,既有自身的优点,也有其缺点,目前还不能说哪一种技术占优势。在一段时期里,它们可能会一起发展,然后在竞争中逐渐分出高低。有些技术则可能相互补充,满足不同的需求。
4.Web编程语言
Web编程语言的发展随着人们对Web主页的交互性要求越来越高,以完成现在C S架构所能完成的大部分功能而不断发展。最初的HTML只能提供静态的页面,没有交互,也没有复杂的动画,这样的页面只能完成简单的信息发布功能。而加入嵌入式语言,如Java Script,VBScript等以及使用Java Applet技术,使页面有了一些简单的交互功能,如分层菜单等,另外还提供了动态主页和动画的功能,使得信息发布方式更加丰富多彩。但是,由于这些语言都是在客户端浏览器上运行的,规模不能太大,否则下载时间会很长,也不可能支持很多高级的功能,因为这样会占用过多的客户机资源,因此,无法实现诸如数据库操作等复杂操作,自然也就无法用在Internet和网上购物等应用中了。CGI(common gateway interface)是一种在服务器端运行的应用程序,用户通过浏览器调用CGI程序并传递参数,CGI程序运行后将结果返回用户的浏览器,这样就允许在Web上实现更多更复杂的任务,使得Web上的电子商务应用成为可能。但是,CGI程序编写比较复杂,不同平台上的CGI程序也无法重用,因此,各种应用服务器应运而生。应用服务器支持使用功能更强大甚至是人们以前用于C S架构的编程语言,如VB,PL SQL等编写Web上的应用程序,由应用服务器负责对这些程序进行解释,并转换成HTML在Web上发布,且能够从客户的浏览器处获得参数运行Web应用程序,应用服务器往往提供更好的与数据库连接的性能,使用户可以更容易地编写更复杂的Web应用程序,下面,根据上面介绍的几类Web编程语言详细介绍它们的功能、特点和主要产品。
(1)HTML语言
HTML称为超文本标记语言(hypertext markup language),它是Web上的专用表述语言,是SGML(standard generalized markup language ,标准通用标记语言)的一个简化版本。HTML可以规定网页中信息陈列的格式,指定需要显示的图片,嵌入其他浏览器支持的描述型语言,以及指定超文本连接对象,如其他网页、Java Applet 、CGI程序等。
HTML语言的来源文件是纯文本文件,所以,可以使用任何文本编辑器如Unix的vi,DOS的edit,Windows中的书写器等。
(2)Java技术
Java技术可分为几个部分:Java语言和类库,Java运行系统、Java Applet Servlet和JavaScript脚本语言。
Java语言是Sun公司近年推出的最适合于Internet环境编程的语言,具有简单、面向对象、分布性、安全性、体系结构中立、可移植性、解释执行、高性能、多线程、动态性等优点,成为网络计算及Internet应用的最优的开发和应用平台。
由于Java与生俱来的跨平台优势,最适合涉及到多种计算平台的商务应用。Java的安全性又满足了电子商务中极其重要的一面。因此,在电子商务的开发应用中,Java已显示出了极大的活力。
Java运行系统主要是指Java虚拟机,负责将Java与平台无关的中间代码翻译成本机的可执行机器代码。Java的源代码经过一次编译后,首先生成一种与操作系统无关的中间代码,由于在编译中进行了一些优化,因此,它比直接对源代码进行解释的程序要快。Java就是通过这种方式实现与平台无关的。
Java Applet是用Java语言编写的小应用程序,通常存放在Web服务器上,可以嵌入HTML中,当调用网页的时候,自动从Web服务器上下载并在客户机上运行,用户的浏览器就作为一个Java虚拟机。Applet被编译成中间代码,然后再解释成本机代码加以执行,因此运行速度较慢,而且要占用本机资源,不少用户在浏览器端都设置禁用Applet,使得包含Applet的网页起不到理想中的作用。Applet现在已经向在服务器端运行并把结果返回浏览器的Servlet发展。
Java技术成功的首要原因,就在于Java语言本身的结构和设计。Sun从C++语言中吸取了许多强有力的成分,而且带来了许多新的特性,例如,更加简洁、更易于使用,而且增加了许多高级的安全功能。
另外,Java标准类库中提供了内建的Internet和Web支持,使得编制Internet和Web应用非常简单,而如果使用C++或其他语言编于网络应用,开发者需要了解许多技术细节。
最后,Java是第一个真正的跨平台语言,Java程序本身是以与平台无关的中间代码的形式存在的,在不同的平台上由各自的Java虚拟机来解释执行。跨平台的特性使得Java程序可以很容易地和Web环境无缝集成。
Sun公司不想将Java仅仅看作一种编程语言,它希望Java能够成为一个Internet平台。因此,Sun公司提出了Java OS、Java处理器、Java服务器、Java设备等一系列和Java有关的产品设想,以进一步巩固Java作为Internet平台和编程语言的地位。
(3)ActiveX技术
Microsoft公司开始并没有认识到Internet的潜力。事实上,直到Sun公司推出Java,使Web出现了激动人心的景象后,Microsoft才最终决定重新考虑它们的Inernet和Web战略,由于Microsoft在PC软件业的霸主地位,因此,它选择的是在保持现有技术的兼容性的基础上进行扩展,以支持Internet。于是,ActiveX技术应运而生,由于ActiveX和Java是一对竞争性的产品,因此,把它们对照起来研究可以加深对这类技术的了解。
OLE(object linking and embedding,对象连接和嵌入)伴随着Windows 3.1推出以来,一直是将不同的Windows应用程序联系在一起的一个重要技术,应用十分广泛,而且也具有扩展到Internet上使用的潜力,因此,Microsoft将OLE技术加以扩展,形成了ActiveX。OLE技术的底层基础是COM(component object model,构件对象模型),OLE在COM的基础上提供了一整套广泛的服务,包括应用自动化、标准拖放、对象链接和嵌入,以及可视化编辑等。而ActiveX技术在继承了OLE技术的同时,在规模和速度方面针对网络应用的需要进行了优化,另外它还包含了对Internet的编程支持。
ActiveX技术包括下面几个部分:ActiveX控件、ActiveX脚本语言、ActiveX文档和ActiveX服务器扩展。
另外,由于Microsoft的大多数商用软件都是基于OLE技术的,并且现在市场上大多数的Windows软件也是基于OLE技术的。因此,通过把OLE扩展到Internet上的方式,给软件开发商带来了很大的好处,因为开发者可以很容易地对原来基于OLE的程序加以修改,就可以支持Internet了。Microsoft也是试图以OLE技术的广泛支持作为基础,通过这种简单的扩展,尽快地在Intetnet市场上占一席之地,获得较大份额。
(4)ASP
ASP即Active Server Pages (ASP)是微软的Internet Information Server 3.0(IIS)的一个部件。利用ASP,用户可以在服务器端执行用Vbscript或Javascript编写的嵌入在HTML文件中的小程序。而在以前,这些小程序都是在客户端的浏览器上执行的。由于是在服务器上执行,程序可以不必考虑与各类浏览器的兼容问题。虽然在服务器上执行会增加服务器的负担,但由于此时可以存取服务器的有关资源,这些用解释型语言编写的程序将具有强大的交互能力。实际上,微软的基于Win95和NT Workstation平台的Web服务器,在安装了相关部件后,同样也支持Active Server Pages。通常使用Active Server Pages的Web网页具有后缀名.asp。当客户端用户的请求是一个ASP文件时,服务器将在传送该文件之前执行文件中的程序脚本,并把程序的输出放在页面中相应的位置。ASP文件中所有位于“<”和“>”之间的字符串,都将被服务器解释为程序代码。
ASP本身提供了很多Active Server部件以扩展ASP的编程能力。这些部件对调用者隐藏了具体的编程细节,通过对这些部件的调用,编程人员用很少的代码就可以完成许多复杂的任务。用户也可以用其他编程语言开发自己的ActiveX Server部件。
Server是ASP的一个内置的对象,它可以用来控制ASP文件的运行环境。除了Server对象,ASP还有Request,Response,Session和Application等内置对象。这些对象可以用来获取客户端用户信息,向用户发送信息和存储、共享客户端用户信息。
(5)CGI
HTML只能反映静态信息,要使主页能够响应客户的动作,并与本地的数据库联系,并将数据库的内容传送给远端的浏览器,则可通过CGI实现。
CGI(Common Gateway Interface)意即公共网关接口,它为HTTP服务器定义了一种与外部应用程序共享信息的方法。当服务器接收到来自某一客户机的请求,要求启动一个网关程序(即CGI脚本)时,它把有关该请求的信息综合到一个环境变量集合中,然后CGI脚本程序将检查这些环境变量,以试图找到那些为响应请求而必需的信息。此外,CGI还将为它自己的脚本程序定义一些标准的方法,以确定如何为服务器提供必要的信息,如脚本程序的MIME类型等。
组建一个Web网络数据库服务系统,网络上需要一个Web服务器、客户端浏览器和通用网关接口CGI(Common Gateway Interface)应用程序。
CGI接口通常有三种方式;CGI WIN(Windows CGI),CGI BIN(基于Script语言)及CGI DOS。
Windows CGI接口程序主要是通过Windows CGI标准与Web服务器通信。当Web服务器接收到客户端浏览器的服务请求时,服务器将客户请求信息数据发送到相应的映射Windows CGI接口程序(CGI程序通常是可以在主机上运行的某一端可执行代码),CGI WIN程序从接收到的请求信息数据中提取运行参数并利用主机资源运行,当完成任务后,将执行结果提交给Web服务器,由服务器完成与客户端浏览器的通信。CGI IN和CGI DOS接口原理与此相同。
对于Web数据库服务,CGI接口可以接收对数据库的各项服务请求,其中包括查询、修改、添加、删除等服务,然后将结果返回给Web服务器。CGI数据库管理接口程序的常用编程工具有Visual Basic,Shell Script,Perl,Java以及C C++等。
(6)构件技术:DCOM与CORBA
由于同一个软件不能在不同的平台上使用,给Web上的应用程序带来了不少麻烦。TCP IP已经成为了网络上的标准协议,使得异种网络可以互联。人们也希望能找到一个操作系统级的“TCP IP”,使二进制的应用程序只要遵循一种标准,就可以在不同的平台上运行。
构件技术是解决这个问题的一个途径。人们本来希望使用软件构件解决软件重用的问题,软件重用就是希望在一个程序中编写的功能也能够在其他的程序中使用,以前的结构化编程和面向对象的编程技术也都是为了解决这一问题,但它们都是在源代码级的复用,而构件技术是二进制级,即希望在一个操作系统平台上编译的构件,也能在其他操作系统上运行。软件构件的设想来自无线电中的集成电路:使用者不必过问封闭芯片的内部细节,只根据其接口特性进行维护、升级和重构,以此提高系统的计算能力,减少升级、维护费用。软件构件又称为软件部件或软件组件,是具有特殊计算功能的、独立的软件模块,这种软件模块按照一定的接口规范可以实现互操作,进而完成软件系统的集成,构件软件(component software)技术,是一种以软件构件组合起来建立应用系统的技术,它涉及支持这种应用的开放式构件库,以及把库中构件组合起来的应用开发工具、标准和环境。
尽管当前软件构件已在软件复用上呈现巨大优势,但时至今日,软件构件尚无确切定义。在实际应用中,只有两种被产业界普遍接受的标准,即OMG(object management group,对象管理组织)的CORBA(common object request broker architecture,公共对象请求中介代理结构)和Microsoft的COM DCOM(distributed common object model,分布式公共对象模型)。这两种标准提供了相应构件软件的底层支持,它们所定义的软件构件都在应用软件层上(二进制级)。除此底层标准外,还有构架在它们之上的应用技术体系,即以CORBA为基础的Opendoc和以COM DCOM为基础的OLE和ActiveX。当前,CORBA得到OMG组织成员和产业界的广泛支持,而COM DCOM则因为Microsoft系列及其应用产品的普及而得到广泛应用。二者孰优孰劣,尽管世界上很多专业讨论组、软件制造商们众说纷纭,也已经形成了不少值得借鉴的观点,但结论仍然是模糊的,决定权要看用户的选择。