Database 版 (精华区)
发信人: joy ( 雨送黄昏花易落), 信区: Database
标 题: 连接数据库 让Web服务器结硕果
发信站: 紫 丁 香 (Sun Jul 26 09:22:28 1998), 转信
如果你正在为你的公司规划配置Web服务器,迟早会遇到对它们进行
实际应用开发的问题。也许,你会创建一些用GIF图片装饰的静态HTML
文件。但是,如果利用访问关系型数据库的方法,你的Web服务器将能
处理更大量、更复杂的类似任务。
许多公司每天都把大部分的商业数据存储在像Informix、Oracle
或Sybase这样的数据库服务器中。最典型的访问数据方法是使用Powe
rBuilder或Visual Basic开发出来的传统客户/服务器应用程序。但
是,凭借合适的工具一样可以用Web服务器和浏览器去完成相同的工作
。比如,你可以利用传统的客户 /服务器软件的升级和支持跨平台的
特性解决许多移植过程中的问题。Web服务器访问数据库信息主要有
三个途径,它们是微软的Internet Databaseon nector(IDC)——Inte
rnet Information Server(IIS)的组成部分——和dbWeb、Netscae公
司的LiveWire1.0、Oracle公司的WebServer 2.0与Designer/2000。
这些产品在市场上也并非是孤立存在的,有好几家第三方厂家在
开发相关的产品。例如,来自Spider 技术公司的NetDynamics可以帮
助WebServer与数据库相连接;微软公司的Mico soft Web Assistant
可以帮你在一个SQL Server 6.5数据库中直接创建HTML页面,不论什
么时候指定域的内容发生了变化,数据库都将自动创建一个固定格式
的HTML页面。用户可以直接访问HTML页面,而不需要实时地访问数据
库。
增添动态数据 以上所提的这三种产品都打破了Web服务器和浏览
器的静态HTML模式它们发布的内容是Web服务器响应一个实时更新要求而动态产生的。
当一个请求从浏览器传来时,Web服务器查询数据库,并利用结果按固
定格式实时生成一个HTML页面,然后把该页面发回给发出请求的浏览
器。
Web服务器动态产生页面的能力使得符合Web协议的新一代应用的
产生成为可能。开发者们能够写出运行在Web服务器上的程序去执行
查询、更新数据库和其他任务。当这种程序运行完毕,便会把结果以H
TML的形式传回给浏览器。
这种新能力使Internet和Intranet都大大受益。例如,你可以在
一个外部的Web站点上安装一个定制的购买应用程序,用户根据自己的
喜好填写表中的一些域,而这些域被存入数据库。当该用户再次登录
时,Web应用程序就会对有关该用户的内容进行查找,根据他填写的内
容设计一系列标准的Web页面反馈给用户。如果这个Web服务器和目前
的客户端和帐目数据库全连在一起,一旦用户提交了在线的命令表单,
该请求就会被立即处理。
实际的运作过程
通过Web服务器来访问数据库的思想其实并不新鲜,但是这三种产
品的出现使这个处理过程干净利落了许多。传统的做法是Web服务器
利用CGI(通用网关接口)来处理涉及数据库访问的网上请求。其关键
是Web服务器调用服务器上的一个专门处理数据库的请求并把想要的
信息通过Web服务器传给浏览器的外部程序。这个外部程序要完成打
开和关闭与数据库的连接、查询数据库和利用结果生成标准格式的HT
ML文档的功能。
上述的三种产品都避开了CGI,使用了更加紧密的集成和高性能的
技术连接数据库。Nes cape的LiveWire 1.0是一个基于Netscape Web
服务器顶层的Netscape Server API(NSAPI的应用。微软的Internet
Database Connector(IDC)是集成在Internet Server API(ISAP)的应
用。这些API都处于Web服务器的最内层,因此用它们写出的应用不存在CGI应用程序的性能开销问题。Oracle的Web Request Broker(WRB)
也同样绕过了CGI,但是并没有公布Serer的接口。WRB可以让软件盒(S
oftware Cartridge)、编程接口、打包的应用和Web服务器共同运行
。
从开发者角度看
三家厂商的代表曾被邀请到实验室安装各家的产品,并做了一个W
eb应用的样例。很明显,每个厂家实现Web服务器和数据库相连(Web-t
o-database)的方法迥然不同。
开发者会发现微软的IDC相当简易,它只是去访问一个包含了处理
数据库请求和用于把查询结果生在标准格式的类似HTML模版的文件。
而Netscape和Oracle都提供了全套的编程语言,可以利用它们写出专
门用于服务器的应用。
LiveWire使用的是类似于Sun Java的JavaScript(更易学),它适
于IS的管理者和初学者使用。Oracle使用的是PL/SQL(Oracle SQL的
过程化扩展),用于创建Oracle数据库内部的存储过程。虽然微软的解
决方案不涉及脚本编程,但该公司正在研制一种名为Denali的产品。D
enali将可以实现开发者在Visual Basic Script或JavaScript中编写
代码并允许把Activ控件直接集成到Web服务器内部。
开发者也一定会关心Web服务器是否支持Java。举例来说,Netsca
pe和Oracle允许开发者编写的Java应用程序在Web服务器上运行。这
两个服务器都集成了Java编译器。当一个面向Java应用程序的请求进
来时,服务器会把该请求传给Java编译器执行。当然,Java应用程序在
服务器上的使用肯定是有限的,其原因一部分是性能方面的限制(Java
被解释成字节代码而不是本地的OS代码),另一部分是目前还没有指定
连接数据库服务器的标准方法。然而,这种情况很快会发生变化,因为
Sun公司的JDBC将被更广泛地接受 三思而后行
在你制订计划时,别忘了考虑以下几个问题。
如果你期望用户访问你的Web应用时得到令人激动的性能,记住:
动态产生HTML页面比处理静态页面会耽搁更长的时间。对于一个静态
的Web页面来说,服务器只需在文件系统中找到该文件并传送到浏览器
就行了。而查询一个数据库,动态地把域的内容插入HTML文件,这样的
处理时间会长一些。通常,数据库查询最耗费时间的部分是打开和关
闭与数据库的连接。有些产品在这方面做的好一些。如果使用Netsca
pe和Oracle的Web服务器,你可以把产品配置成起始服务器时打开数据
库连接。这样,所有进来的请求都使用已建立的连接,可以提高性能。
微软的IDC则不一样,它用每个进来的请求去打开和关闭数据库连接(W
indows NT 4.0上的IS 2.0将弥补该缺陷)。
许可证也是个要考虑的问题。在你使用产品之前,一定要搞清楚
各厂家关于这方面的不同规定。
最后要记住,你不必使用一个不适合于已有系统体系结构的技术
。Netscape在与已有系统兼容方面做的不错,提供了良好的跨平台支
持和与不同数据库系统的互操作性。但Microo ft的解决方案只限于W
indows NT平台、Oracle的Web服务器只能用Oracle的数据库。
所以,首先明晰你的项目目标,然后再为它选择可用的工具。一个
成功的Web应用和费时又费力的"恶梦"的区别就在于一些开始的谨慎
规划。
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.229.129]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.522毫秒