日期:2013-06-18  浏览次数:20795 次

Web数据库两头件技术
曾晓金

  

(云南工业大学计算机使用重点实验室 昆明 650051)



摘要:引见了Web数据库的几种两头件处理方案,并比较了它们的特色与不足,以及Web数据库出现的相应最新技术。

关键词:两头件 CGI ASP ISAPI NSAPI JDBC



随着Internet/Intrranet的衰亡与发展,Web服务器与数据库服务器的连接显得越来越重要,许多厂家不断推出新技术、新产品,使得连接愈加简约、迅速和方便。Web与数据库连接技术已成为基于Web的信息管理系统的核心,为Internet上的电子商贸打下了基础。

普通来说,通过Web页实现对数据库访问的基本框图如图1,在整个系统中关键的技术是两头件的处理方案。



图1、Web页面访问数据库示意图



两头件担任管理Web服务器和数据库服务器之间的通信并提供使用程序服务。由于驻留在Web服务器上,因此两头件软件能够调用作为Web服务器和数据库服务器间"传输机制"的外部程序或"编码",并将执行查询等以HTML页面或纯文本的方式将信息前往给最终用户。数据库服务器担任管理驻留在数据库服务器中的数据。



一、现对当前几种流行的两头件的处理方案作一讨论。

1.通用网关技术(CGI)

CGI是一种Web站点上可以用来访问Web站点的用户交互的各种程序的标准,使用CGI脚本允许用户在浏览器中等服务器上的数据库交互,完成对数据库的各种操作。

几乎使用的服务器软件都支持CGI,开发者可以使用任何一种Web服务器内置言语编写CGI,包括Perl言语,C,C++,VB和Delphi等。

CGI的任务原理是浏览器通过Web页面的表单搜索参数,这些参数通过HTTP传递Web服务器,在服务器通过CGI脚本分析参数(命令行参数或环境变量),同时启动通路程序,把分析后的参数转化为SQL命令,交数据库服务器执行,然后CGI程序前往处理结果给Web服务器,最后向客户机前往HTML或纯文本格式的结果并断开连接。

CGI缺点是执行速度较慢,Web服务器每启动一个数据查询服务,就必须启动一个新的CGI进程,绝对服务器资源代价比较高。

2.ASP(Active Server Pages)

ASP是一种开放的,可以将HTML脚本及可重用的Active Server组件结合在一同以建立高效的动态的基于Web的使用程序环境,利用ASP,可以添加运转在服务器端的脚本的新特性,如访问数据库。

ASP支持Active Server组件的使用,Active Server组件通过组件对象模型(COM)为ASP提供了可编程的界面,其中组件之一Active Data Object(ADO)提供了与数据库相连的机制。且使用ASP可以直接在HTML文件中包含可执行的脚本,HTML开发和脚本开发可以变为一个过程,而不象CGI、ISAPI以及其他方法一样,程序和HTML文件要求在不同的设计环境导致程序产生和修正困难。

3.使用编程接口(API)

鉴于CGI的一些缺陷,Microsoft和Netscape开发了公用的Web服务器中的程序代码(如动态链接库DLL),且普通与Web服务器软件处在内存的同一地址空间中,因此每次调用时是在内存中运转相应的程序段,而不是像CGI那样需求启动新的进程,因此效率要比CGI高得多。

API技术次要缺点是开发难度大,且可移植性差,开发出的使用程序只能在相应的Web服务器上运转,缺乏通用性。

为了减轻开发使用程序的困难,Netscape和Microsoft在其各自的服务器中提供了基于API的编程接口。Netscape提供了基于NSAPI的Livewire,它是专门设计的全面开发方案,开发人员可以开发和管理WWW界面、WWW网点,并且可以利用SQL语句或ODBC直接访问数据库。Microsoft则提供了基于ISAPI的IDC模块,它是IIS的一个动态连接库(httpodbc.dll),并通过ODBC访问各类数据库。

4.JDBC技术

Java是一种简单、面向对象、易传送、稳固安全、多线程执行控制及3D空间设计的言语,它为Internet注入了交互性。Java支持数据库的访问,是由于SUN公司提供了一种标准的SQL访问数据库的Java言语使用程序编程接口(JDBC)。构成Java言语的基础是一系列类库,而JDBC正是定义了Java与数据库之间的接口类库(Java.sql包),它是Java言语中执行SQL语句的API,它由一系列类和接口所组成,这些类和接口均是由Java言语写成的,通过它一个程序开发者可以在Java言语中建立与数据库的链接,执行SQL语句和处理SQL语句前往的结果。

采用JDBC很容易用SQL语句访问异构数据库,如通过JDBC API,只需编写一个JDBC API,就可以把SQL查询语句送往Sybase,Oracle或 Informix数据库,同时采用Java言语编写使用程序,具有平台无关性,不要为不同的平台编写不同的使用程序。



图2、JDBC技术任务示意图



采用JDBC技术其任务方式为:客户端首先访问Web服务器,下载Java字节码文件,并将Applet相关类的字节码文件和JDBC接口字节码文件下栽到客户端,然后与Web服务器脱离,接着Applet依据数据库地址,端口号和帐号与数据库服务器连接进行交互,这样用户与数据库服务器的交互是由浏览器直接完成的。由于JDBC技术的可操作性、可维护性和安全性及事务处理能力、使用效率都比较高,因此具有很大的优势。

Java与数据库的连接机制与CGI和API有所不同,在客户机上运转Java Applet通过JDBC技术可以绕过Web服务器直接和数据库服务器连接,并直接把带有结果的HTML页前往客户机浏览器。

象ODBC一样,JDBC提供应程序员的编程接口是由两部分组成,一是面向使用程序的编程接口JDBC API,它是为使用程序员提供的,二是供底层开发的驱动程序接口JDBC Driver API,它是各个商业数据库厂商提供的。目前,JDBC曾经得到了许多厂商的支持,包括 Borland,IBM,Oracle和Sybase等公司,当前流行的大多数数据库系统都推出了本人的JDBC驱动程序。



二、结束语

数据库在Web上的使用无疑加强Web的功用和吸引力,我们可以采用不同的两头件处理方式把Web与数据库相集成,达到综合信息服务的目的。值得关注的是JDBC技术,JDBC作为新的联合Web服务器与数据库的桥梁,同时仍保留着Java本身许多有目共睹的特性,大多数流行的数据库系统都已推出了本人的JDBC驱动程序,其次要的问题则是代码的执行效率问题,同时,还面临着微软公司的ActiveX的无力挑战。





参 考 文 献

1、[美]Jeffry Dwight等著 ,CGI开发使用手册,机械工业出版社

2、[美]Daniel J.Berlin,etal著,清华大学出版社

3、张世永编,数据库与WWW,复旦大学出版社

4、陈品德,基于Web的信息系统的开发,计算机工程(1998、3)

5、邵立兵,Sybase数据库与Web的互连,计算机工程(1998、3)

6、陈喃,Java的近程数据库访问模型及其实现,计算机系统使用(1998、9)

7、刘东等,基于WWW的数据库使用,计算机系统使用(1998,4)

8、罗东川,JAVA言语与DataBase 之间的接口--JDBC,计算机系统使用(1998,3)

9、罗娟等,Web 与数据库技术,计算机工程(1998,8)

10、谭郁松等,基于Web环境下的异构数据库连接技术的研讨与实现,计算机工程(1998、8)