7.3 Internet的关键技术
Internet是建立在整套关键技术基础上的,这些技术是计算机网络发展的关键技术,也是建立网络地理信息系统的关键技术。
7.3.1 计算机网络的互连与协议
一、网络的互连
网络的互连技术是计算机网络发展到一定阶段的必然产物。通过网络技术可以高效率地实现原来一个或几个网络无法或很难实现的功能。局域网的广泛使用,使得网络的互连技术变得越来越重要;经济的发展和技术的进步使得网络的互连成为现实。网络的互连最主要的目的是在地理位置不同的网络之间建立通信链路,完成信号的交换。从而使任何两台计算机之间可传送信息,其中首先需要解决的是如何从一台计算机向另一台计算机传输文件,此外,还需解决网络之间的不兼容等问题。
网络互连的内容包括局域网和局域网的互连,局域网和广域网的互连。网络互连时需要硬件设备和网络协议的支持。
Internet就是全球最大的互连网。图7-3为Internet网络的互连结构。
二、网络的协议
协议(protocol)是指网络通信过程的规则或条约。协议中规定了如何在链路上传输信号,如何在宿主计算机上将信息包重新组成计算机数据等问题。
TCP/IP协议即传送控制协议/网际协议,已成为网络互连的标准,也是支持世界上最大的网络Internet的协议标准。
1.TCP/IP协议的结构
Internet网规定采用TCP/IP协议,它可以使具有不同结构和操作系统的计算机之间传送信息。在Internet网中信息不是以固定的形式传送,而是以分解成较小的数据包形式从一台主机向另一台主机传送的。比如当你发一个长的E-mail时,TCP将其分解成较小的数据段,并加上TCP包控制头,形成TCP包,并将其交给IP,IP将这些数据包选择路由,并将它们发送到网络的另一端。总之,计算机间的通信由传送控制协议TCP负责,网络的路由和定位由网际协议IP负责。TCP/IP的网络体系结构如图7-4所示。
应用层 支持用户,提供通信工具和相关服务如FTP,Telnet等;
传输层 传输控制,保证端到端数据传送的完整性;
网际层 数据传送,功能由IP来提供;
网内层 访问具体网络如以太网、令牌环网。
7.3.2 客户机/服务器技术
一、客户机/服务器(Client/Servers简写为C/S)的基本概念
客户机/服务器技术包括一定的硬软件环境,从硬件的角度将客户机/服务器系统分成客户计算机,服务器及连结客户机和服务器的网络。从技术的角度看客户机/服务器系统更重要的是一种软件结构。这种结构将一个应用分解成多个任务,然后由多台机器分别执行,共同实现整个应用。尽管在实现多任务时存在多种交互关系,但最基本为“请求/响应”关系。即客户机向服务器提出对某种信息的请求,服务器针对请求完成处理,并将结果作为响应返回客户,进而提交给用户。客户机执行前台功能,如采集数据、格式化数据库、管理用户接口等;服务器执行后台功能,如控制对共享数据库的存取、接收和回答用户请求等。
一般来说,客户机/服务器应用系统工作在用网络相连的不同机器上,但从技术上亦可以在一台计算机上实现客户机/服务器应用系统。
总之,客户机/服务器系统的概念非常简单,但实际应用可能非常复杂。客户机/服务器的角色非常不固定,在某种应用情况下的服务器,会在另一种情况下成为客户机并与其它服务器交互。
二、客户机/服务器的分布模式
客户机/服务器的分布模式是指将不同任务分布到客户平台和服务器平台上的多种形式,如图7-5所示。其中(a)(b)分别是一个客户同一个和多个服务器交互,(c)不同于(b)之处在于它只要求服务器接收,(d)指客户调用某服务器,该服务器执行操作时又调用其它一个或多个服务器。
三、客户机/服务器的结构
客户机/服务器的结构是将客户机/服务器的应用分成几个部分,分配到整个网络上,使其中的某些应用由客户机实现,某些应用由服务器完成以达到资源的最佳利用。
1.“肥客户机”结构
最初的客户机/服务器结构是一种简单的二层模型,即一端为客户端,另一端是服务器端,之间通过网络相连。这种结构的缺点是客户机肥大,所有的客户必需安装应用程序和工具及公用程序,因此效率低,可伸缩性及扩展性差。
2.“瘦客户机”结构
为提高效率出现了对客户端减肥的“瘦客户机”结构,即基于客户端一应用服务器一数据库服务器的三层客户机/服务器结构模型。这里把服务器分成两部分,即应用服务器和数据库服务器。应用服务器中包含从客户端划分出来的一部分应用及从专用服务器划分出来的一部分内容。Brower/Server就是一种瘦客户机模式。
从应用的角度看,客户机/服务器结构如图7-6所示,可以分为表示层、功能层和数据层。图7-6(a)中功能层和数据层放在一台服务器上,(b)中功能层放在客户机上,(c)中功能层和数据层放在两台服务器上。其中表示层担负用户和应用之间的对话功能,用于输入数据并显示输出数据;功能层是应用的主体,从表示层或数据层取得处理所用的数据,表示层和功能层之间的数据交换要尽可能简洁;数据层是DBMS,它负责对数据库数据的读写,由于目前数据库的主流是关系数据库,因此从功能层到数据层大多使用结构化查询语言SQL(Structured Query Language)。
从客户机/服务器的角度看WWW浏览器实际上是一种客户端软件。在Web数据库中客户端已变“瘦”,通常只有表示层存在于客户端,从而使客户端非常简单,用户只要增加中间层服务器便可满足不同的需要。
7.3.3 Web技术
WWW(World Wide Web,又称万维网,Web网)是一个分布式多媒体超文本信息系统,也是当前Internet上最流行、最新的多媒体信息检索系统。
一、Web概述
WWW起源于欧洲粒子物理实验室(the European Laboratory for Particle Physics),起初是一些科学家为寻求快速共享世界各地最新研究信息而提出的学术交流的方法。在1990年实现以后,立即引起有关人士的广泛注意,纷纷仿效。在1994年夏WWW开始商业应用,并成为访问Internet资源的最流行手段。在我国于1994年末正式建立了Internet上WWW服务器。
WWW把 Internet上现有的资源统统连接起来,使用户能在Internet上查询已经建立的WWW服务器站点提供的超文本/超媒体资源文挡。WWW把各类信息如文本,图象,声音和影像集成起来,为全世界的人们提供查找和共享知识的手段。
WWW来自Internet之中,后来成为Internet的一部分,而今天WWW几乎成为Internet的代名词。通过它,人们可以瞬间地抵达世界的各个角落。
WWW的最大的成功在于它的简单性和可扩充性的完好结合,因为它提供了一种非常易于使用的界面,从而吸引了越来越多的用户去创建和开发各种应用程序,并使网络超文本/超媒体技术的潜力迅速的被发掘出来。
二、Web的结构
Web的结构又称浏览器/服务器(Brower/Server,简称B/S)结构,其工作方式采用典型的客户机/服务器结构。实质上它是一种瘦客户机模式,由三层客户机/服务器结构转换而来。从硬件的角度看,一个最小的完整的Web系统至少包括网络支持下的一个Web服务器和多个Web客户机,且只要基本框架存在,系统能力许可,就可以扩充到几千个乃至无数个Web客户机。从软件的角度看,Web系统由Web服务器软件、Internet协议和Web 浏览器组成。任何一个与Internet互连的机器,只要配上Web服务器,提供Web资源,便可为本地或异地Web用户服务。
1.Web服务器
Web服务器是Web环境中的主角。从硬件角度看Web眼务器是高速度、大容量的网络计算机;从软件角度看Web服务器上必需安装高性能、多任务操作系统如Windows NT、Windows 98及服务器软件。
在Web结构中,把客户机/服务器结构中的服务器进一步分解成一个应用服务器(Web服务器)及一个或多个数据库服务器。Web服务器将信息组成分布式的超文本标记语言HTML,通过HTML和超文本传输协议HTTP来描述和组织信息,从而实现以Internet为背景的超文本/超媒体数据的存取。
2.Web 浏览器
Web 浏览器(Web Browser)是Web上客户端的的软件,是Web的窗口,其作用是从网络上进行上下载操作。由于它支持Internet协议,已成为Internet的图形用户界面。Web浏览器采用超链接功能及非线性的网状交叉索引结构组织信息,使用户对信息的浏览可以按照联想思维方式进行,使Web浏览器可以访问超链接的正文、图象、声音等文本。
HTTP通过激活嵌在超文本文挡中HTML定义的超链接来支持客户浏览器和服务器之间的通信。
三、Web技术
WWW全球信息网采用了先进的超文本技术和网络技术,总称为Web技术。它主要包括超文本标记语言的格式规范HTML、传输超媒体文挡的协议HTTP及确定信息对象在网络中位置的格式URL。
1.超文本/超媒体技术
超文本技术是一种按信息之间关系非线性地存储、组织、管理和浏览信息的技术。在现实世界中,信息本身和信息之间的关系是同等重要的。传统的信息技术对信息之间的关系重视不够,超文本技术不仅注意所要管理的信息本身,更注意信息之间关系的建立和表达。它的表示方式就像人的联想方式那样以信息和信息之间的关系来全面表示现实世界中的关系。所以说,超文本技术为计算机和人的交流提供了一种新的更符合人的习惯的方式。
WWW用超文本技术作为它同用户交互的基本手段。当用户阅读超文本文档时,不像阅读传统文档资料那样从头到尾顺章节阅读,而是按非线性或非顺序方式可以从文档中跳来跳去,亦可从一个文档跳到另一个文档。这是由于在超文本里包含一些可作连接(link)的字、短语或图标,从而可以使用户从当前文档跳到与当前相关的新地点或新文档。
超媒体是用超文本技术来管理多媒体信息,即超媒体=超文本+多媒体。
在超媒体中连接的不只是文本文档,还可以连接其它形式的媒体,如图形、图象、声音、动画等。超文本、多媒体及数据库之间的关系可用图7-7表示。
2.超文本标记语言(HTML)
HTML是建立超文本的工具,也是Web的核心技术之一。它是由一组特定的标记和规则组成的标记性语言。严格的说HTML不是编程语言,而是一种描述语言。其特点是使用文本标记来说明结构元素、输出格式、显示图象和超文本链接等。实际上,在超文本文挡中并不含有多媒体信息,只含有指向多媒体数据的指针,这种指针称作链接。在超文本文挡中,用户只要通过简单的点击操作就可得到所要的文挡,不管该文挡是何种类型,也不管该文挡在本机上,局域网上还是在Internet上。
HTML 文挡的标准结构如下:
<HTML> 表示HTML文挡的开始
<HEAD> 表示HTML文挡的头部,主要定义文档标题
<TITLE>
…… 表示标题的内容
</TITLE>
</HEAD>
<BODY>
…… 表示HTML文挡的实体
</BODY>
</HTML> 表示HTML文挡的结束
一个HTML文挡的全部内容在文档标记<HTML>和</HTML>之间;<HEAD>和</HEAD>之间表示HTML文挡的头部;<TITLE>和</TITLE>之间为标题内容;<BODY>和</BODY>之间表示HTML文挡的实体。
下面是一个简单的实例:
<HTML>
<HEAD>
<TITLE> A simple HTML example </TITLE>
</HEAD>
<BODY>
<H1> A simple HTML example</H1>
<P> This document is to give you an outline of how to write HTML file and how the <B>< markup tags > </B> work in the HTML file.
</P>
<P> This is the link to <A HREF = http: //www. cdnet. edu. cn> ednet </A>
</P>
</BODY>
</HTML>
该文本将在浏览器上显示如下内容:
A simple HTML example
This document is to give you an outline of how to write HTML file and how the <markup tags> work in the HTML file.
This is the link to ednet
当点击ednet便可通过Internet转向ednet主页。
其中<H1> …</H1>,<H2>…</H2> 标记元素字体;
<P>…</P>定义文本的段落;
<B1>…</B>间的文字是黑体;
<A>…</A>间构成一个访问点,表示对某文挡或资源的链接及当前位置的内容被链接;
<和>分别代表特殊符号<和特殊符号>。
3.超文本传输协议HTTP
Internet的基本协议是TCP/IP协议,目前广泛采用的FTP、Gopher协议是TCP/IP应用层的协议,不同的协议对应着不同的应用。
Web网使用的主要协议是超文本传输协议HTTP。用在客户机和服务器之间通信的超文本传输协议是Web的基础。HTTP本身通过TCP/IP协议在Internet上通信,它位于TCP/IP网络体系结构的应用层。
HTTP协议支持客户机和服务器模式。严格的说,它是一种无状态、无连接的协议。从而使它简单、灵活、快速。无状态是指协议对事务处理没有记忆力,以提高应答速度。无连接是指每次连接只处理一个请求,处理完请求即断开连接,以节省传输时间。
HTTP对每一事务的处理是独立的。通常HTTP对每个事务创建一个客户机和服务器TCP连接链路,将超媒体对象从服务器端传到客户机。传输时,一方运行HTTP服务器程序,另一方运行HTTP的客户机程序。事务处理结束时,HTTP就切断客户机和服务器的连接链路。
HTTP工作可归纳成下面方式:
建立连接:打开连接过程;
发送请求:打开连接以后,HTTP将浏览命令由Web浏览器传送给服务器。即客户机把请求信息送到服务器,完成提出的请求动作;
发送响应:HTTP将服务器的响应返回给Web浏览器。即服务器在处理完客户的请求之后,向客户机发送响应信息;
关闭连接:双方关闭连接。
4.统一资源定位器URL
URL完整地描述了Internet网上信息资源的地址,这些地址可以是本地磁盘,亦可以是Internet上的站点,还可以具体到目录和文件名。地址的访问可以是绝对的,亦可以是相对的。
在相对方式时,假定主机名和路经名就是当前正使用的名字。URL不仅可描述WWW文档地址,还可以描述其它服务器如FTP地址。
典型的URL地址格式为:
四、Web的交互方式
目前,Web同它诞生之初已有很大的不同,这同Web的交互功能的不断加强密切相关。因此,Web的交互应用技术已成为Web应用中的关键性技术之一。
Web的交互应用主要表现在两个方面,其一是对动态数据链接的用户查询,其二是对动态数据的处理。目前,通过扩充HTML文档,Web可用多种方法实现交互性。常用的Web交互方式主要有如下几种:
1.提供Web服务器扩展功能的方法。主要为公共网关接口CGI(Common Gateway Interface)。CGI是Web最早提供的具有较完善功能的交互手段,是外部应用程序与Web服务器交互的一种标准接口。CGI程序运行在服务器端,遵循CGI标准编写的服务器端程序可使客户机的浏览器和Web服务器之间进行交互操作,并可通过数据库编程接口与数据库服务器等外部数据流进行通信。目前几乎所有的Web服务器软件均支持CGI。CGI程序与服务器、客户机的Web交互的过程如图7-8所示。首先,客户端根据某资源的URL向Web服务器提出请求,Web服务器将此请求递给指定的CGI程序,并起动该程序进行处理,处理结果通过HTML返回给客户端,由浏览器负责解释执行,并将最终结果显示在用户面前。
CGI的跨平台性能极佳,但一个CGI一般只能处理一个用户请求,当用户数量多时运行效率低下。
2.把应用程序语句嵌入到HTML文挡中,供含有相应解释器的浏览器下载执行,从而实现交互功能。如Netscape公司提供的Java Script和Microsoft公司提供的Vbscript脚本语言等,都是可直接插入到HTML文挡中的脚本语言。这种脚本语言可完成部分交互操作的逻辑功能,但对大量复杂的处理逻辑,通常交给下面所说的部件化软件(Java applet或ActiveX)处理,脚本语言主要对它们进行执行控制。
3.部件化软件技术。Web交互操作时,浏览器下载HTML文挡中所标明的部件,予以执行。这种部件按照严格的规范编写,部件之间可以相互通信。目前市场上的部件化软件主要由Java、ActiveX、Open Doc等。Java对Web的交互式应用产生极大的影响,目前已成为Web的交互式应用的主要技术。当通过HTML页面交互操作时,给出需要引用的Java applet标记(Java的应用程序),浏览器将其下载并执行之。由于Java应用程序在客户端执行的,它大大减轻了Web服务器的负担。
7.3.4 Web数据库
数据库系统和Web技术相结合就出现了Web数据库。Web数据库实质上是Web技术和数据库的集成,在Web上提供用户访问和修改数据库的接口,使用户可通过Web浏览器在异地访问这些数据。在Internet网络浏览中,交互式动态HTML页面的实现,要以大量的数据资料为基础,Web数据库为数据资源进行高效存取提供了条件。
随着Intranet的发展,Web技术和数据库的结合越来越显得重要,实现动态数据库应用已是网络应用的一个重要方面,也是网络地理信息系统的核心之一。
一、Web技术访问数据库的特点
数据库应用的一个重要内容是对数据库的访问,传统的数据库访问方式往往要开发一个图形界面,而且开发的程序都不能跨平台运行。随着Internet技术的发展,只要建立了Web服务器,就可通过Web服务器实现对数据库的访问。
同传统方式相比,用Web技术访问数据库的优点为:
1.借用现有的浏览器软件,无需开发数据库前端,且因为所有的数据库应用都通过浏览器实现,用户界面统一、使用方便;
2.由于所有的Web服务器和浏览器都使用了标准的超文本标记语言HTML组织Web信息,标准统一、开发过程简单,使新技术的传布变得容易;
3.由于为一个Web服务器编写的HTML文挡,可被所有平台的浏览器浏览,从而实现跨平台操作。
二、Web访问数据库的方法
Web访问数据库有多种方法,主要采用两类方法:一类是在Web服务器端提供中间件来连接Web服务器和数据库服务器;另一类是把应用程序下载到客户端,在客户端执行对数据库的直接访问。
1.中间件连接Web服务器和数据库服务器的实质是以Web服务器为中介,通过在Web服务器端执行对数据库的操作,把浏览器和数据源连接起来。这时,同数据库服务器的通信是由Web服务器完成的。也就是说,Web服务器端的主机上安装相关的数据库服务器的前端工作软件,Web服务器通过该软件访问数据库服务器。
CGI是最早的Web数据库连接技术。CGI既可使Web服务器同Web浏览器进行交互,也可通过数据库的调用接口和数据库服务器通信。如CGI可从数据库服务器中获取数据,转为HTML,由Web服务器发给浏览器;也可从浏览器获取数据,存入指定的数据库中。
Web API作用与CGI类似,其实质都是扩充Web服务器的功能。这时,同数据库服务器的通信都是由Web服务器完成的。
这里,Web服务器执行基于HTML的服务器软件,数据库服务器为网络管理提供信息,数据库应用程序一般驻留在Web服务器上。Web 浏览器借助HTTP超文本传输协议访问Web服务器的客户端软件。Web服务器与数据库的连接原理如图7-9所示。
其中Web网关(gatway)是Web服务器同外部应用系统之间传递信息的一种接口规范,负责管理Web服务器和数据库服务器之间的通信,为应用程序服务。工作时,首先在客户端的浏览器中写查询请求,并附加到URL上发送给Web服务器。Web服务器根据URL参数起动相应程序,登录到数据库服务器上,按条件查询。最后将查询结果格式化成HTML页返回到客户端。
2.把应用程序下载到客户端,在客户端执行对数据库的直接访问。这时,同数据库服务器的通信是由Web浏览器直接完成的。
ActiveX技术访问数据库,在Web服务器上需要编写一个ActiveX控件,其中包括用户可能需要对数据库进行的操作。在Web页面中使用Qbject标志嵌入该对象,在Web客户端只要一个支持ActiveX技术的浏览器。访问该页面时,浏览器自动从网上获取ActiveX控件,并执行之。这时,同数据库的交互直接在数据库服务器和浏览器之间进行。
Java是一个面向对象、与平台无关、简单而可移植的高性能程序语言。最初,Jave无访问数据库的能力,JDBC(Jave DataBase Connectivity)是支持Jave的数据库的API。JDBC工作时,Web浏览器将嵌入HTML文挡中的Java Applet直接下到客户机上运行,其中的Java Applet调用了JDBC。浏览器运行Java Applet,直接完成与数据库服务器的通信。其结构如图7-10所示。
7.3.5 异构数据库互联
随着计算机的发展和普及,数据库的应用范围不断扩大,以关系数据库为代表的产品种类不断增加。因此,当今的用户在网络上所面对的是多厂商的异种数据库。造成数据库系统之间差异的原因既同数据库的外部环境如操作系统、网络环境等有关,又同数据库自身的DBMS及数据库语义差异有关。为实现数据的共享、互相通信、最大限度地方便用户,异种数据库间的互联已成为人们越来越迫切的要求。
解决数据共享通常有三种方法,即集中式数据库、分布式数据库及异构数据库互联。集中式数据库中共享数据采用公用数据库的方法;分布式数据库采用分布式数据库管理系统技术;异构数据库互联介于两者之间是目前常用的解决数据共享的方法。
解决异种数据库互联的方法主要采用基于客户机/服务器体系结构的公共编程界面、公共数据库信关和公共协议。
公共编程界面 包括客户应用编程界面和服务器应用编程界面。前者是一组过程库,可装载后端专用的驱动程序,后者控制服务器与客户应用请求和目标数据库之间的交互。
公共数据库信关 网络中的信关是一种协议转换器。这里的数据库信关实际上相当于界面转换器,客户通过它可访问异种数据库。很多数据库厂商如Oracle、Sybase、Ingress等都提供自己的信关产品。通过信关可把第三方的开发工具接到自己的数据库产品上。
公共协议 指对客户机和服务器间通信的格式和协议及对数据库语言进行标准化,这是最理想的异种数据库互联的方法。
为了解决异种数据库间的互联问题,国际标准化组织及各个数据库厂商作了大量工作。由40多家公司组成的成立于1989年的SAG(SQL Access Group)和IBM各自实现了基于SQL的异构数据库互联规范。Microsoft公司于1991年提出了一个开放型数据库互联(Open DataBase Connectivity)即ODBC的体系结构,如图7—11所示。其目的是使Windows具有对任何异构数据库访问的能力。
基于SAG规范的ODBC是用户访问数据库的统一界面标准,即异种数据库访问接口。它是一种使用SQL的应用编程接口,其最大优点是它生成的程序与数据库或数据库引擎无关。
由于ODBC是一种独立于数据库的应用编程接口,在ODBC层之上的用户看来,各种异构的关系数据库只是相当于几个不同的数据源。应用时,Web服务器通过数据库驱动程序ODBC向数据库服务器发出SQL请求,数据库服务器接到的是标准的SQL查询语句,数据管理系统执行SQL查询,并将查询结果再通过ODBC经Web服务器返回给用户。对用户的应用程序来说,只要安装有驱动程序就能注册不同的数据库。
Java与数据库的接口是JDBC。JDBC(Java DataBase Connectivity)是执行SQL操作的Java API。JDBC为数据库提供了一种标准的应用编程接口。通过JDBC开发人员可以方便的将SQL语句传送给相应的数据库管理系统,实现对数据库的访问。用JDBC访问数据库时Web浏览器将嵌入HTML文挡中的Java Applet直接下到客户机上运行,由Java Applet调用JDBC接口,绕过Web服务器,直接同数据库服务器交户,并直接将查询结果的HTML页返回给用户。JDBC保持了ODBC的基本特色。同ODBC一样,JDBC包括底层的驱动程序接口和面向高层的应用编程接口。由于JDBC利用了Java的跨平台特色,它成为Internet环境下访问异构数据库的一种较优的方式。