第 18卷第 10期
1998年 10月
计算机应用
Computer Applications
Vol. 18, No110
Oct. 1998
收稿日期: 1998-06-03 冯国臻 博士生,主要研究兴趣为网络与数据库。
Web数据库技术综述
冯国臻 国家智能计算机研究开发中心 北京( 100080)
摘 要 本文全面介绍了Web数据库技术、产品, 并对它们进行了对比和点评。
此外, 文中对该领域中两项易于认识不清的问题提出来进行了专门说明,并分析了该
技术的行业发展状况。
关键词 Web数据库, 中间件,公共网关接口
REVIEW ON WEB DATABASE TECHNIQUES
Feng Guozhen
National Research Center for Intelligent Computing Systems (NCIC) , Beijing 100080
Abstract This paper g ives a complete introduction to Web database techniques and products, along with
comparison and comments. Also two confusing problems in this area are discussed and the situation of this in-
dustry is analysed.
Keywords Web- database, Middleware, Common gateway interface( CGI)
1 引言
Web 数据库访问技术是 Internet 和数据库技术
共同的发展方向, 也是 Intranet应用研究的关键。该
技术主要采用中间件实现,目前有 CGI, Web API, JD-
BC, Object Web 方式。
近年来 Internet/ Intranet的蓬勃发展对数据库技
术产生了巨大的影响。Internet 的核心应用Web 上
信息量大面广,缺乏管理; 数据库技术则发展成熟,
结构严谨而灵活不足。二者这种对立互补的特性使
其结合成为大势所趋, 这也是当前数据库技术研究
的热点所在。
另一方面, Intranet 由于具有高度的兼容性, 使
用界面简单一致, 技术开放, 产品丰富价廉的优点,
是一种优秀的系统集成
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。企业已有的生产管理
系统常用数据库实现,如何将二者有机地互联, 也是
Intranet应用研究中的关键问题。
2 Web数据库访问技术
总的思路是采用中间件将二者/粘合0起来。对
Web 浏览器和数据库服务器的变动要求都不大。目
前有以下实现技术:
CGI
Web 服务器专用 API
JDBC
Object Web
2. 1 CGI
CGI( Common Gateway Interface,即公共网关接口)
是Web 服务器在调用外部程序时的接口
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
,
它规定了一套标准的参数格式和环境变量。CGI 程
序的作用是扩展Web 服务器的功能, 使之能够执行
一些Web 服务器本身不能完成的任务,比如与各类
应用服务器通讯。访问数据库也是其重要应用。
CGI程序可用 Perl, C, C+ + , FORTRAN 等一切可形
成可执行程序的语言来编写。CGI 程序以进程方式
运行。
2. 2 Web服务器专用 API
这是专用于编制 Web 服务器侧可执行应用的
API,通常以动态连接库的形式提供。用这类 API 编
制的用户应用作用与 CGI程序类似, 也是为了扩展
Web 服务器的功能。用Web API编制的用户应用被
编译为动态连接库, 是Web服务器的一个函数, Web
服务器用线程方式运行之。由于 API与Web 服务器
结合紧密, 该方式比传统的 CGI 方式在性能和灵活
性这两个关键方面都强大许多。
API是各Web 服务器专用的, 互不兼容, 目前主
要的 Web API 有: 微软 IIS 的 ISAPI, NetScape 的
NSAPI, 以及 O. Reilly WebSite的WSAPI。
2. 3 JDBC
JDBC( Java DataBase Connectivity, Java 数据库连
接)是 JavaSoft 公司设计的 Java 语言的数据库访问
API包。其目的在于为 Java程序提供对各种数据库
的统一一致访问接口。JDBC 与 ODBC 的原理机制
相同,只是 JDBC 用纯 Java 实现, 而 ODBC 则用纯 C
实现。用 JDBC 来实现Web 数据库访问时, 将 Java
Applet的 URL 嵌于网页中, 当该 Applet被下载执行
时,它通过 JDBC 便可与数据库服务器直接建立联
系,实现从浏览器对各类数据库服务器的访问。
2. 4 Object Web
Object Web是最新一代的动态网页技术, 主要
是 Java/ CORBA和 ActiveX/ DCOM 两种相互激烈竞争
的技术。它们认为带 CGI 的 HTTP 速度太慢, 无状
态协议使用困难, 其主要根源在于 HTTP/ CGI机制
需要Web服务器作为中介来协调通讯。
而Object Web 通过分布式对象技术允许客户机
直接调用服务器上的方法, 开销相当小, 并避免了
CGI形成的Web 服务器瓶颈。同时, 可伸缩的服务
器到服务器体系结构可运行在多个服务器上, 动态
平衡客户机端请求负载。
两种 Object Web 技术都是独立于语言的 (可用
多种 面 向 对 象 的 语 言, 如 Java, C+ + , Ada,
SmallTalk, COBOL 开发) , 并支持已有的应用,即现有
代码的重用。但ActiveX/ DCOM 目前只在微软的 NT
和 95 平台上支持, Java/ CORBA 则有着跨平台的特
性。从 96 年起该技术已出现, 但目前一些关键组件
还有待开发研制。这是一项有着突出优点, 极其值
得关注的新技术。
3 对各种技术的对比和点评
下面对上述各种技术从各方面进行对比和点
评,以深入揭示其实质。
3. 1 连接模型
采用CGI/ API 方式访问Web 数据库时各软件模
块及相互间关系如图:
图 1
因而这两种方式最大特点是Web 服务器是通
信中介,由之启动中间件 CGI或 API应用, 并由
后者完成数据库访问,结果信息再经Web 服务器返
回浏览器。由于Web 服务器任务多, 易于形成瓶
颈。
在 JDBC 和 Object Web 的Web 数据库访问方式
下,浏览器端和应用服务器之间不需Web 服务器作
为中介,其连接模型可简示为:
这两种方式由于位于浏览器端的客户机与应用
服务器直接建立连接进行交互, 克服了 HTTP无状
态特性,能够提供面向连接的连续查询。
3. 2 效率
CGI方式的进程本质使其效率不高。作为Web
服务器外部进程运行的 CGI 程序与Web 服务器之
间的通讯属于进程间通信, 开销大速度低;当有多份
并发的同样请求时, 必须为每个请求建立一个进程;
若Web 服务器重复收到多个同样的请求, 必须不断
重复准备地址空间、建立运行进程、回收空间、撤销
进程的过程。
图 2 JDBC Web数据库访问方式软件模块图
图 3 Java/ CORBA Web数据库访问方式软件模块图
Web API应用效率非常高, 其设计初衷正是为
了改进 CGI方式的低效。该方式高效的根本原因在
于线程运行方式。用Web API 编写的用户应用以线
程方式运行于Web 服务器的地址空间中, 可方便地
存取Web 服务器的各资源数据,省去了进程间通信
的开销, 并且从第一次调用起便常驻内存。此外线
程启停开销也很低。在重复和并发收到同样请求
时, 其效率的改进更是显著。
JDBC方式是低效的, 主要由两方面的原因: Java
程序需要由 JVM 解释执行,占用资源多, 效率低; JD-
BC访问数据库要调用 JDBC Driver Manager, 后者再
调用相应 Driver, 再由 Driver 与数据库服务器交互,
结果又经相反途径返回, 层次多,效率低。
Object Web技术由于没有Web 服务器作为中
介, 直接通信较高效。其特出之处在于可运行于多
个服务器上的可伸缩性, 在访问非常密集的场合应
用也不会造成性能的明显下降。适合运行在高负载
的场合, 此时性能优势最为明显。
3. 3 复杂性
编写 CGI程序必须了解 CGI规范、HTTP协议和
Web服务器的运作方式, 是比较复杂的。但 CGI 程
序可用任何语言编写, 因此程序员可选用自己方便
熟悉的语言。
Web API 技术解决了 CGI 的低效问题, 其代价
2 计算机应用 1998年
是编程极为复杂。不仅要求 CGI 编程的全部知识,
还要求对该API的全面掌握。它要求编程人员至少
是中高级程序员,熟悉Windows 程序设计, 面向对象
编程,深入掌握线程、进程、内存管理技术, 并有着高
超的调试技巧。
使用 JDBC 访问Web 数据库主要要求 Java, JD-
BC 编程接口和 HTML、HTTP 的知识, 对于熟悉C+ +
的程序员来说并不难,较之前两种方式都更容易。
使用 Object Web 方式时需要掌握的是 DCOM,
CORBA等分布式程序设计规范及其开发工具产品。
开发语言是面向对象语言, 可选用产品支持的任意
一种。这种方式的程序设计比 CGI 方式更加复杂。
3. 4 兼容性
Web 服务器专用 API 顾名思义是各Web服务器
的专用技术。其他三者都是开放技术。
CGI方式是最早得到支持最普遍的方式, 几乎
每种平台上的每种Web服务器都支持。
JDBC 方式由于 Java语言的跨平台特性具有高
度的兼容性。
Java/ CORBA的兼容性不仅
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
现在其规范的开
放性,具有广泛的支持平台, 可以升级,而且支持已
有的代码, 能与用各种不同 OO 语言实现的应用通
信。ActiveX/ DCOM也是独立于语言的, 但目前只在
微软的平台 95和 NT 上支持。
3. 5 成熟程度
CGI是真正成熟的技术。Web API 也是成熟可
用的技术。后面介绍的产品大多用 CGI技术实现,
也有API产品。
JDBC 的实现语言 Java目前仍处于标准化、实现
过程中。各种/ 品牌0的 Java 将如何发展, 令人拭目
以待。Java的开发工具也不很成熟。
DCOM和 CORBA都是先于HTTP和 CGI存在的
技术,但 ActiveX 和 DCOM 以及 Java 和 CORBA 的结
合形成 Object Web 技术则是最近的发展。它们都尚
在不断的完善之中。与 1990 年开始制定的 CORBA
相比, DCOM 更是非常不成熟的。
4 对两项特别技术的说明
在Web 数据库访问技术中有两项值得专门说
明之处。
4. 1 ODBC 技术
ODBC 是微软制定的数据库访问接口, 得到各
数据库厂商的普遍支持, 它与Web 数据库访问技术
之间没有直接的关系。但在实际情况中, 很多Web
数据库访问中间件采用 ODBC 实现 , 以致有些文献
中将之作为Web 数据库访问机制的一部分。实际
上采用ODBC是为了实现对大多数数据库的统一一
致访问。各数据库专用接口则不采用 ODBC, 由中
间件直接与数据库交互, 层次少, 效率高。可以看
出,不同技术的采用正反映了各中间件提供商的不
同出发点。
4. 2 HTML内嵌SQL语句的Web 数据库访问方式
在有的资料中介绍一种称为/ HTML 语言内嵌
SQL语句0的Web 数据库访问方式, 其特征为: 将数
据库访问 SQL 语句嵌入在 HTML 网页源代码中, 直
接对Web 上的数据库进行操作, 使用非常直观方
便。
这种方式实际是很多数据库厂商为自己的数据
库提供的专用Web 访问中间件的使用方式。它对
HTML 进行扩展, 从而提供将数据库处理 SQL 语句
嵌入 HTML的能力。例如 Sybase公司的扩展为标记
对< Syb> 和< / Syb> 。同时Web 服务器端有相应
中间件(或提供自己的专用Web 服务器, 将这些能
力集成进去, 并进行优化)对来自网页中的数据库操
作语句进行一定的编译处理,再访问相应数据库服
务器, 并构成结果网页。Oracle公司的方案中便有
自己专用的Web 服务器。
而这种方式的实现核心 中间件, 则是采用
CGI或Web API开发的。
5 产品大观
Web 数据库概念提出短短几年时间, 市面上已
出现了许许多多的Web 数据库访问中间件。它们
对复杂的Web 数据库访问底层技术进行封装,提供
给用户一个高级友好的接口。各种产品可大致分为
以下几类:
不需程序设计的
这种中间件将用户已有的文档或数据库调入并
建立一个专用数据库, 同时提供定义简单搜索模式
的手段对于不熟悉程序设计语言和 SQL 的主页创
作人员比较适合。
可访问各种数据库的通用型产品
这类产品在使用时, 将访问数据库的语句按接
口规范安排在 HTML 源代码中, 能够实现对各种数
据库的一致访问。
Web 服务器的专用产品
主要代表是微软 IIS 的 IDC 和 NetScape Web 服
务器的 LiveWire. 这种中间件是采用的Web 服务器
的专用 API实现, 其目的正是为复杂的 Web API 提
供一个简单的高级接口。
数据库厂商提供的专用产品
是数据库厂商一整套方案中的Web 数据库访
问中间件, 都有如下特点:只支持对自己的数据库的
访问;与数据库直接高效交互 (不用 ODBC) ; 支持各
种操作系统平台上的大多数Web 服务器。
除了上述几类之外, 还有风格各异的产品。上
述产品多采用 CGI或Web API 实现。
3第 10期 冯国臻: Web数据库技术综述
6 行业状况分析
在研究各种Web 数据库访问技术和中间件产
品时笔者观察到:
6. 1 各操作系统平台的情况
Windows 平台上情况最为活跃。从技术种类看,
特有复杂但十分高效强大的若干 API, 是进行产品
开发的成熟的可选技术。从产品来看更是琳琅满
目,种类繁多。
UNIX是Web的起源地, 产品技术也较为丰富活
跃。
曾占据网络操作系统 70% 份额的 Novell Net-
Ware平台则甚为冷清。由于该操作系统平台上自
己开发工具的贫乏, 与 UNIX, Windows 平台又不兼
容,大量的中间件产品都不能应用其上。
6. 2 产品情况
各数据库厂商, Web 服务器厂商以及相关研究
机构, 第三方软件提供商都迅速推出了自己的中间
件产品。
大型数据库厂商的中间件是其一整套Web 数
据库方案中的一个部件, 高效、专用于自己的数据
库,同时采用成熟技术对大多数主流Web 服务器提
供支持。
Web 服务器或网络操作系统厂商的中间件产品
则注重能与大多数流行数据库方便一致地接口(所
以多采用 ODBC技术) ,但在Web 服务器侧则只与自
己的产品接口。
第三方产品的情况一类是提供对各种Web 服
务器, 网络操作系统以及数据库广泛的兼容性, 如
WebDBC, 有 NT, 95, UNIX平台上的产品,能与大多数
数据库接口。另一类则是提供富有特色的产品, 如
上面介绍的第一类 (不需程序设计的) , 还有 Intra-
Builder 等。
6. 3 EasyWeb 针对我国国情的中间件产品
从上述分析可见,国外各类软件厂商, 研究机构
都迅速对Web数据库技术投入了大量研究,但由于
各自最关心的方面不同,切入研究、推出的产品也不
同,其中对 FoxPro 这种小型台式数据库的研究是相
对薄弱的。
另一方面,我国的国情是 FoxPro 应用得相当广
泛。同时我国正在大力推进信息化网络化建设, 很
多企业计划或正在建立 Intranet 系统。因此研究
FoxPro与Web 的接口问题, 研制这方面的中间件产
品, 在我国有着迫切的需求和广阔的市场。
针对这种情况, 笔者研制了一种 FoxPro 专用的
Web 数据库访问中间件( EasyWeb 1. 0) , 采用 CGI 技
术开发, 与 FoxPro 数据库直接交互, 能支持大多数
Windows 平台上的Web 服务器和所有版本的 FoxPro
数据库, 具有小巧快捷,简单易用, 经济实用的特点。
目前 EasyWeb在北京市汽车修理三厂在线系统( QX_
online)建设中应用。关于 EasyWeb 的详细信息, 可
访问 http: / / www. fortunecity. com/ skyscraper/ gigahertz/
296/ easyweb. html。
7 结束语
Web数据库技术从出现至今只有短短几年时
间, 已发展出若干代技术,产品更是丰富多彩。今天
它仍是发展极为活跃的一个领域, 工业标准尚未形
成, 各种技术竞争激烈。
在这一崭新的领域中, 我们与世界处于同一起
跑线上, 此时及时地投入研究,推出有自己特色的产
品, 将使我们处于与世界同步的发展水平。
Web 数据库访问技术是当今 Internet/ Intranet 技
术和数据库技术的交叉点, 是二者共同的技术发展
方向, 不但是值得研究的前沿技术,在目前的应用中
也有着迫切的需求。理解各种技术的本质, 理解其
特点、不足和相互关系, 理清 Web 数据库技术的发
展脉络, 对于科技人员应该如何创新,在思想方法上
是有着相当启发意义的。
参考文献
[ 1] IETF, the WWW Common Gateway Interface Version 1. 1,
1996, 2. 15
[ 2] Kevin Clements, et s, Inside ISAPI, New Riders, 1997
[ 3] Robert Orfali, Dan Harkey, Jeri Edwards, The Essent ial Dis-
tributed Objects Survival Guide, Jonh Wiley&sons, Inc
[ 4] 唐常杰,于中华,朱敏,张天庆 1论数据库技术与 Web
技术的融合 1 计算机世界, 1998, 312
[ 5] Vivekanand P.Kochikar. The object- powered Web. IEEE
Software,May/ June 1998
5计算机应用6征订
通知
关于发布提成方案的通知关于xx通知关于成立公司筹建组的通知关于红头文件的使用公开通知关于计发全勤奖的通知
亲爱的读者:下半年期刊杂志订阅工作已经开始。欢迎广大读者速到邮局订阅5计算机应用6。
5计算机应用6月刊,每期价为 4 元,下半年订阅价六期共24元。
1999年全国报刊征订工作即将开始, 请广大读者注意当地邮局具体征订时间, 不要错过订阅机会。1999
年本刊全年价( 12 期)仍为 48 元。邮发代号: 62) 110
4 计算机应用 1998年