Web数据库中间件技术
2024-07-21 02:10:55
供稿:网友
本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。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)