




已阅读5页,还剩47页未读, 继续免费阅读
(计算机应用技术专业论文)基于中间件的web数据库开发组件的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要 在对各种w e b 数据库中问件技术的研究基础上,本文选择j d b c 作为典型的 对象进行研究。文章指出了j d b c 技术在开发网络数据库过程中存在的一些问题, 并对其提出自己的改进意见。 本文首先提出利用m v c 模式来重新构建w e b 数据库开发组件的整体架构, 将整个w e b 数掘库连接过程封装起来,以达到面向对象的编程思想的要求,并改 善传统的j d b c 数据库连接过程中不符合面向对象的编程思想的缺陷。其次,针 对j d b c 提供的r e s u l t s c t 结果集类型存在的使用复杂的问题,本文提出另外两种 替代数据类型:s t r i n g 类型和继承于h a s h t a b l e 的d a t a 类型。 经过仔细的分析与设计,本文给出了上述两种改进的具体实现方法,最后编 程实现了一个w e b 数据库开发组件。这个网络数据库开发组件利用m v c 模式的 封装,使整个j d b c 数据库连接过程对程序员来说变的透明。程序员在开发中可 以绕丌繁琐复杂的j d b c 数据库连接步骤,而只需面对由网络数据库开发组件提 仪的统一的编手廿接口。 另外在引进了s t r i n g j 类型和d a t a 类型这两种r e s u l t s e = l 类型的替代类之后, 程序员可以按照自己的要求,直接从w e b 数据库开发组件中取得相应类型的返回 值。这样就免去了每次取得r c s u l t s e t 类之后,对r e s u l t s e t 类的再处理。 最后文章设计了一个简单的w e b 程序系统,用其检验w e b 数据库开发组件 的实际效用。通过完善的分析与设计,该w e b 程序系统基本完成了对整个w e b 数据库开发组件各种性能的测试。证明w e b 数据库开发组件对各种数据类型的处 理效果都比较优秀,w e b 数据库开发组件对各种数据库操作的反应也良好。 关键词:中间件;w e b 数据库开发组件;j d b c ;w c 设计模式 英文摘要 t h er e s e a r c ha n dr e a l i z a t i o no ft h ew e b d a t a b a s ed e v e l o p m e n t m o d u l eb a s e do nm i d d l e w a r e a b s t r a c t b a s eo nt h em s e a r c ho fw e bd a t a - b a s em i d d l e w a r e s ,t h ea u t h o rc h o o s e sj d b c a st h er e s e a r c ho b j e c t t h ea u t h o rp o i n t so u ts o m ep r o b l e m st h a te x i s t si nt h eo o b i s eo f j d b cd e v e l o p m e n to f w e b d a m b a s e ,a n dp u t sf o r w a r dt h es u g g e s t i o no f i m p r o v i n g f i r s tt h ea u t h o rp u t sf o r w a r du s i n gt h em o d eo fm v ct or e c o n s t r u c tt h ew h o l e f r a m e w o r ko ft h ew e bd a m b a s ed e v e l o p m e n tp a c k a g e ,e n c a p s u l a t et h ec o u r s eo ft h e j o i n i n gt h en e t w o r kd a t ab a s e ,i no r d e rt om e e tt h er e q m r c m e u to f o o p a n di m p r o v et h e s h o r t c o m i n g i na d d i t i o n ,b e c a u s er e s u l t s e tt y p eu s e st e d i o u s l y ,t h ea u t h o rp r o p o s e s t w ok i n d so fs u b s t i t u t i n gt y p e s :s t r i n g i nt y p ea n dd a t at y p ew h i c hi si n h e r i t e df r o m h a s h t a b l et y p e t h r o u g hc a r e f u la n a l y s i sa n dd e s i g n , a u t h o r sr e a l i z et w ok i n d so fi m p r o v e m e n t d e s c r i b e da b o v e ,a n dr e a l i z et h ew e bd a t a b a s ed e v e l o p m e n tp a c k a g ew h i c hi sb a s e do n t h em v cm o d e t h ep r o g r a m m e rc a nu s et h i sp a c k a g et od e v e l o pt h ep r o c e d u r ee a s i l y t h ep r o g r a m m e rc a ng e ts t r i n g 】t y p ea n dd a t at y p ef r o mr e s u l t s e tt y p ed i r e c t l y ,s o c a ns a v et h ec o m p l i c a t e do p e r a t i o no f r e s u l t s e t f i n a l l y a u t h o r sf i n i s h e das i m p l ew e b - p r o c e d u r e ,a n du s ei tt oe x a m i n et h e f u n c t i o no ft h ew e bd a t a b a s ed e v e l o p m e n tp a c k a g e t h r o u 曲c o m p l e t ea n a l y s i sa n d d e s i g n ,t h i sw e b - p r o c e d u r e h a sb e e n b a s i c a l l y f i n i s h e dt h et e s to fd i f f e r e n t p e r f o r m a n c eo f t h ew e b d a t a b a s ed e v e l o p m e n tp a c k a g e t h er e s u l tp r o v e st h a t ,v a r i o u s p e r f o r m a n c eo ft h ew e bd a t a b a s ed e v e l o p m e n tp a c k a g ea r ef r e e r , t h er e s p o u s et ot h e v a r i o u so p e r a t i o nc a nb ev e r yg o o d k e yw o r d s :m i d d l e - w a r e ;w e bd a t a b a s ed e v e l o p m e n tp a c k a g e ;j d b c im v c m o d e 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑薰声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文:基王史间往丝圈终筮堡虚珏筮组住的班荭皇塞理:。除 论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已 在文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体己 经公开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:霹厶峭2 听年了月2 牛日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于:保密口 不保密订( 请在以上方框内打“”) 论文作者签名:禾- 联 导师签名:电、确 日期:归7 年3 月z , f - e t 、 基丁中间科- 的w e b 数据库开发组件的研究与实现 第1 章绪论 1 1w e b 数据库静出瑗 2 0 世纪6 0 年代,随着计算机应用的进步,数据席技术应运而生。数据库技术 使计算机可以收集、存储、加工和利用数据。在几十年的计算机发展史中,数据 库技术一嘉蠢撂着核心豹地位。从数据结构和应用模裂豹角度考虑,数撰库技术 稿继经绣了瓣款数蠡痒、层次数撵簿帮瑷今藜关系数攥痒3 令除鬏。i l l t 2 而w e b 技术则是一种相对簪轻的技术。直到1 9 9 0 年,随着h ,订p 协议的公布, 人们j 真币的进入w e b 网络时代。w e b 的出现让世界突然变小,人们也自然的提 出这样的州题:既然我们可以异地、及时的浏览静态w e b 网页信息,我们为什么 不能溺撵在瓣缮上使瑗数据瘴啜? w e b 数稻库就是这样一种掖零,它是指将数据麾技术与w e b 技术融合,使 数据库可以聪过w e b 来提供从前只能在本地机上蜜现的服务。w e b 数据库的出 现,让数据滕成为w e b 的重要组成部分。w e b 数据库集合了w e b 技术和数据库 技术豹优点,使二者都发生了质麴变他;w e b 弼页从静态潮页发震成了内数据库 驱动懿动态瓣黉,磊数据库实浚了舞发环境帮应蘑筇凌静分离,爱户臻霹敬蔫统 一的浏览器嶷现跨平台和多媒体服务。 在传统的w e b 服务中,文本和其它多媒体信息都是以文件的形式来进行存储 和管理的,随着信息量的不断增加,系统的速度受到越来越大的影响。阏时因为 w e b 熬瘟疆镁城莛不鼗扩震,势态瓣w e b 夏瑟越泉越不戆滚是入察瓣w e b 主 信息服务酶动态性、实时往和交强健的要求。勇一方面,数据库技术经过几十年 的发展,其功能越来越强大,备种数据库系统,如:o r a c l e 、s y b a s e 、i n f o r m i x 、 s q ls e r v e r 等,都具有对大批麓数据进行有效的组织管理和快速的查询梭索功能。 巍了透行蹲终上数据豹毫效存取,实现交互式裁态w e b 页嚣,裁必须以穴璧数据 资源戈基硪,瓣就必然要在w e b 中雩l 入数据痒。w e b 技术移数据瘁技术静结合 不仅把w e b 和数据库的所有优点集中在一起,而且充分利用了大量已有的数据库 信息资源,可以使用户在w e b 浏览器上方便地检索和浏览数据库的内襻,这对许 第1 章绪论 多软件丌发者来说具有巨大的吸引力。所以w e b 技术和数据库技术相互结合领域 的研究成为目前数掘库技术的热点方向之一,而开发基于w e b 数据库系统的动态 网站己经成为w e b 技术研究的热点。 1 2w e b 数据库的发展历史 w e b 数据库发展到现在,经历了3 个发展阶段。 第一代w c b 数据库提供静态访问和静态内容应用。早期的w e b 数据库提供 静态文档的管理和访问:程序员根据数据库内容用h t m l 编写w e b 页面,用户 对数据库的访问实际是对该静态h t m l 文档的访问。这种模式下的w e b 数据库 存在不实时的缺点:为保持用户访问的信息与数据库信息相同,当数据库内部信 息更新时,必须同时修改相应的静态文件,从而导致数据库维护工作量很大。第 一代w e b 数掘库是在还没有出现w e b 数据库访问技术的时候产生的,基本只是 w e b 技术,w e b 服务器只是一个h t t p 服务器,但是这种方式已经可以实现数 掘库资源的共享,仅适合一些较小规模的系统。 第二代w e b 数据库提供静态访问和动态内容应用,实现基于数据库的动态文 档的管理和访问。为了实时动态将各数据库的信息反映在页面上,必须使数据库 能与w e b 服务器直接相连接,这通常是通过使用c g i ( c o m m o ng a t e w a yi n t e r f a c e ) 编程来实现的。在第二代w e b 数据库中c g i 技术根据数据库的内容自动更新有 关部门的静态页面,提供给最终用户。用户访问的是静态的h t m l 文档,但文档 内容是随着数掘库而改变的动念内容。因为第二代w e b 数据库不能保持数据库连 接状态,存在性能瓶颈,缺少扩展性和保密性等诸方面的限制而将逐渐被淘汰。 第三代w e b 数掘库除了提供第二代w e b 数据库功能外,还提供基于w e b 的联机事务处理( o l t p ) 能力,在w e b 客户端与服务器端实现了动态和个性化的交 流和互动。随着w e b 数据库的不断发展,应用服务器既有面向w e b 服务器的接 口,又有面向数据库服务器的接口。当w 曲服务器接收到w e b 客户访问动态数 据内容的请求,需要和数据库连接的时候,就能够通过应用服务器建立起数据库 服务器和w e b 服务器之间的连接,这种连接让w e b 客户既能够访问数据库形成 基于中间件的w e b 数据库开发组件的研究与实现 动态页面,又能完成o l t p 能力,即插入、更新和删除数据库。 1 3w e b 数据库的发展现状和“中间件”的出现 第三代w e b 数据库使所有对数据库的操作( 增加、删除、修改) 、信息的查询 和管理都通过统一标准的i n t e m e t 浏览器界面来进行,这对于那些终端用户来说 是极好的方式,也更加适应i n t e m e t 技术的发展和网络互连的需要。和许多传统 的数据库一样,w e b 数据库是一种可供用户访问的数据仓库或信息存储库,然而 w c b 数据库是一个新的研究领域,与传统数据库系统又有许多不同的方面,例如: 体系结构不同、访问方式不同、访问的用户不同、客户端简化等。正是这些不同, 决定了w e b 数据库程序的复杂性。为了解决这种复杂性,各个公司都纷纷推出自 己的解决方案,中间件的概念也应运而生。 众所周知,在早期的本地机程序开发中,应用软件是直接搭建在操作系统、” 数据库之上的。而在w e b 程序丌发中,因为不同客户端之间的差异( 操作系统、 浏览器等) ,使得服务器上的操作系统不一定能很好的配合w e b 程序。这样就需 要到中j 日j 件技术。传统本地机程序与w e b 程序的区别见图1 - 1 。 传统单机应用程序唧应用程序p 图1 1 传统单机应用程序与w e b 应用程序的区别 f i g 1 1d i f f e r e n c eb e t w e e nl o c a l s o f la n dw e b s o f l 所谓“中间件”是指介于应用程序和操作系统之间的软件。他代表着一大类 的产品,其中就包括网络数据库中间件。数据库与操作系统在软件层次中都属于 核心的平台级软件,而应用程序是搭建在其上的。而在w e b 数据库的开发中,中 第】章绪论 i 日j 件又有着格外的复杂性,因为w e b 应用系统的用户,与w e b 数据库中间还隔 羞列终。因秀在w e b 应用程痔戆搿发中,孛闼锌豹意义氇裁更燕重大了。 基于中间件的w e b 数据库开发组件的研究与实现 第2 章当前各种网络数据库中间件技术研究 本章首先对各种网络数据库中间件技术的研究比较,总结出各种技术的优缺 点。最后选择j d b c 作为本文的研究目标。 2 1c g i 技术 c o l ( c o m m o ng a t e w a yi n t e r f a c e ,公共网关接口) 是h t t p 服务器与你的或其 它机器上的程序进行“交谈”的一种工具。绝大多数的c g i 程序被用来解释处理 来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览 器。c g i 技术也可以用来实现对服务器数据库的访问,实际上c g i 正是最早的w e b 数据库连接技术而几乎所有的w e b 服务器也都支持c g i 。程序员可以选择任何 一种语言,如c ,c + + ,d e l p h i ,v i s u a lb a s i c 等来编写c g i 程序。 c g i 接f 1 标准包括标准输入、环境变量、标准输出三部分。c g i 程序像其他 可执行程序一样,可通过标准输a ( s t d i n ) 从w e b 服务器得到输入信息,如f o r m 中的 数掘,这就是所谓的向c g i 程序传递数据的p o s t 方法。操作系统提供了许多环境 变量,它们定义了程序的执行环境,应用程序可以存取它们。w e b 服务器和c g i 接口 又另外设置了自己的一些环境变量,用来向c g i 程序传递一些重要的参数。c g i 的 g e t 方法还通过环境变量q u e r y - s t r i n g 向c g i 程序传递f o r m 中的数据。c g i 程序通过标准输出( s t d o u t ) 将输出信息传送给w e b 服务器。传送给w e b 服务器的信 息可以用各种格式,通常是以纯文本或者h t m l 文本的形式,这样我们就可以在命 令行状态调试c g i 程序并且得到它们的输出。 3 1 c g i 是w e b 服务器调用外部程序的接口规范协议,它规定了一套标准的参数 和环境变黾。c g i 程序的作用是扩展w e b 服务器本身不能完成的任务,比如与 w e b 浏览器进行交互、通过数据库的调用接口与数据库服务器进行通信等。c g i 程序可以从数掘库服务器中获取数据并转化为h t m l 页面,然后由w e b 服务器发 送给浏览器,也可以从浏览器获得数据,并存入指定的数据库中。通过c g i 访问 数据库的过程如图2 1 所示。 第2 章当前释种嘲络数据库中间件技术研究 客户掣 溅黎陈丽j 雏l 辩戳馥 鬻萎悔 蘩势豢h 蠢蘩撵 幽2 ,lc g i i h 问数据库示意图 f i g 。2 1c g t c o n n e c td b 按照应用环境的不同,c g i 可以分为标准c g i 和w i nc g i 两静。f 4 】 ( 1 ) 标准c g l 标准c g i 通避坏境变量或者命令行参数来传递w e b 服务器获得的用户请求信 息,w e b 服务器与测览器之闯豹通绩采瑗标准输入稳趱方式。当w e b 照务器接收 爨溺踅嚣笈采静c g i 请求霹,蓄宠辩该请求进行分耩,势浚置所需懿舔凌黛整或 命令行参数,然后创建一个子进程扁动c g i 程序。c g i 程序执行完毕后,利用标 准输出将执行嬲果返回w e b 服务器。c g i 的输出类型w 以是h t m l 文档、图形 图像、纯文本或声音等。 ( 2 ) w i nc g l 标准c g i 采糟标准输k 输出送行数据通信,僵许多w i n d o w s 环境的编稷工其 ( 如v i s u a lb a s i c 和b o r l a n dd e l p h i 镩) 不支持标准输入输出方式,因此就无法用这 些工具来开发纂于标准c g i 的应用程序。 w i nc g i 魄称为阍接c g i 或缓滓c g i 。这耪方法穗( 不支持标准输入缁l 出 兹) c g i 程枣和c g i 接口之瓣插入一个缓冲程序,该缓 申稷序与c g i 接西之阀糟标 准输入输出进行通信;c g i 程序则采用临时文件( 缓冲隧) ,而不是用标准输入,输 出进行数掘通信。 到 ;ic g l 技术突现w e b 数掘艨访问的方法是发展最早的一种w e b 数掇艨按 零,爨势圭妥薅瑗在薅令方覆:蓄灸在莲谂上,c g i 程黪等瘟霉程穿一群,忍警 可用任何一瓣编程语高( 如c ,c 什,v i s u a lb a s i c 和d e l p h i 等) 编写。其次c g i 作 基于中间作的w e b 数据库开发组件豹研究与实现 为传统w e b 燮甄能力的支撑技术,不依赖于浏览器威服务器,被绝大多数的w e b 鼹务器掰支持。 但是c g i 程序也有许多映赢,如编程复杂、辩稷膨贳要求过离、功黥有限、 不易调试和榆索,特别是在性能上有主要缺陷:每一个c o l 程序被不同的用户执 j 时都得匿新执行一次,并占有服务器上的一个端翻,并发请求越多,挤占系统 资源( 如内存空| 8 j 、c p u 时闯等) 也就越多,最终导致聚绕运行速度缓慢,w e b 服 务器豹蛙憝大大簿甄。孬砉,每今c g i 程彦必矮蘑蘩令特定数据痒羧务攥专爱豹 s q l 语言柬葶誓编写数据库接口程序,可移植性较蕊。 2 2w e b a p i ( w e ba p p ij c a t i o np r o g r a m m i n gi n t e r f a c e ) 技术 普通c g l 瓣弱一个c g i 程序的每一次调用都会使w e b 鼹务器装载稷廖,从褥 造残善逶c g i 程滓寝葫速度淹、资源鬟焉效率低。镑辩这一缺焘,一耱燕子共享 c g i 稃序的改进方案应运而生,遮就是应用程序编糨接口w e b a p i 。用户利用 w e b a p i 可以完成c g i 程序所能幽现的功能,并且维扮服务器较好的性能。w e b a p i 【作原珲如图2 2 所示。 图2 2w e b a p i 工作流程 f i g 。2 2w e b a p ! w o r kf l o w a p i 应舔程序遴零良蘸态链接黪( d l l ) 的形式箍供,蹩驻蟹在w e b 服务器上嚣 程序。它的作用与c g i 相似,也怒为了扩展w e b 服务器的功能。m i c r o s o f t 公司的 第2 章当前各种网络数据庠中间件技术掰f 究 i s a p i ,n e t s c a p e 公司的n s a p i ,o r e i l l y 公司的w s a p i 都是这种中间件的具体 解决方案。 w e b a p i 歼发疆事,牲能大大爨予c g i 程序。弱为w e b a p i 瑾蘑稳净是与w e b 服务器软件处予同地址空问的d l l ,因此所有的w e b 服务器进程能够宣接利用 各种资源。这显然比调用不在问一地址空间的c g i 程序所占用的系统时间要短。 w e b a p t 瓣 羲凌解决了c g i 翡诋毂麓爨。与c g i 蠲毙,a p i 应震裁净与w e b 服务器结合史紧衡,占用的系统资源也要少得多,而其逡行效率却大大提高,同 时还能提供更好的保护和安全性。但w e b a p i 的缺陷也烧明显的: l 。编程毙秀发c g i 程房娶艇嚣难。开发a p i 器痔鬟溪多线程、逡疆蘑步、壹 接协议编程等知议。 2 由于各种不同的a p i 互不兼容,缺麓个统一的业界标准。用某种a p i 编 写瓣程痔只麓奁特定戆w e b 瑕务器上运露,使溺范围受戮投大懿隈辎。 2 3p h p 技术 p h p 是一转埂子剑建动态w e b 页耍的缀务器端h t m l 嵌入式嬲本语言,它与 a s p 稻似。辞l 产可以混合使用p h p 和h t m l 编写w e b 员萄,当访阎者浏览哥该 页麟时。服务端会首先对页面中的p h p 命令进行处理,然后把处理厝的结果连同 | t m l 内容一起传送到访翅越豹测夔器。 p h p 脚本语言的语法结构岛c 语言和p e r l 语言的语法风格菲常榴戗。甩户在 使用变量前不需鼷对变量进行声明,使用p h p 创建数组的过程也非常简单。p h p 还熬鸯基奉躬瑟囱黠象组 孛功艉,霹孩援穴逡方便援声鸯效组织和封装是己编写 的代码。 与a s p 不同的是,p h p 最种源代码,开放程序,拥肖很好的跨平台兼容性, 援户霹以杰w i n d o w s n t 系绞以及诲多叛零戆u n i x 系统上运行p h p ,嚣基胃戳将 p h p 作为a p a c h e 服务器的内鬻模块或c g i 程序运行。 p h p 最大的特点是它强大的数据库支持功能,使它能够访问几乎目前所有较 为滚霉亍熬数蠡痒系统,毽是羧寒嚣p p 彝m y s q l 是爨佳戆整配。 基丁中间件的w e b 数据库开发组件的研究与实现 p h p 的缺点是缺乏规模和多层结构支持,而提供的数据库接口支持不统一。 另外p h p 技术过于考虑易用性,这导致其代码尤其是变量混乱。对于大型系统的 丌发,p h p 技术不是一个很好的选择。 2 4a s p ( a c t ;v es e r v e rp a g e ) 和a d o ( a c tiv e xd a t ao b j e c t s ) 技术 建电在a c t i v e 平台上的a s p 技术是一种服务器端脚本运行环境,m i c r o s o f t 在 其w i n d o w s 平台的w e b 服务器i i s 3 0 或i i s 4 0 中作为附件提供,它为诸如 v b s c r i p t ,j a v a s c r i p t ,p e r t 等脚本语言提供脚本引擎,使得用这些脚本语言编写的脚 本命令可以直接嵌入到h t m l 文件中建立起动态的、交互的高性能w e b 应用程序。 a s p 通过自带的a e t i v e x 数据对象组件a d o ( d a t ea c c e s so b j e c t ) 与任何跟 o d b c 兼容的数据库和o l e d b 数据源进行高性能的连接并通过s q l 进行数据库 访问操作。 a d o 主要运行在服务器上,由a s p 的服务器端的代码调用,通过a d o 可以 执j ,完整的数掘库操作,包括增加、删除、修改、查询和调用存储过程。由于运 行存服务器上:,所以使用任何浏览器都可以访问a d o 。 基于a s p 的w e b 数据库,采用b s 体系结构,使用a s p + a d 0 o d b c 的技术 方案,即用a s p 实现与w e b 服务器紧密相关的中间件,用a d o o d b c 实现对数 据库的访问。 a s p 访问w e b 数据库的工作原理如图2 3 所示。【5 j 图2 3a s p 工作流程 f i g 2 3a s pw o r kf l o w 第2 章当前各种网络数据库中间什技术研究 当用户请求个a s p 主页时,w e b 服务器响应h t t p 请求,调用a s p 引擎, 鳃释羧串请文终。警遇到任秘每a c t i v e xs c r i p t i n g 兼容熬瓣奉( 热v b s c r i p t 秘 j a v a s c r i p t ) 时,a s p 引擎调用相威的脚本进行处,若脚本中禽有访问数据库的请求, 就通过o d b c 或o l ed b 与腐台数据库相逢,由数据库访问组件( a d o :a c t i v e x d a t ao b j e c t s ) 莰行访瘴操捧。a s p 黪零在簇务器蠛辫释撬行,它援据游瓣羧器瘁静 结聚鬃自动,+ 成符合h t m l 谱苦的主页,去响应用户的请求,所有相关的发布工 f 1 w e b 服务器负责。 a s p 支撩a c t i v e x 组舞对象模式,可叛逶过c o m d c o m ( 组终对象摸墨! 缉态 组件对象模型) 获得规模和多层结构支持。通过使用脚本和组件,a s p 允许用户将 编程工作和网页设计及其它工作分离开来,让所有的表示朦由a s p 完成,所有的 痤雳瑟凌e 0 髓国c 0 秘组箨宠戏,蘧遂淫惩,实瑗整合,敦实嚣表示滋鞫疲簿层 的分离。这就可以确保开发者能够将主要的精力用来考虑编写与业务相关的应用 程序,而不必担心外观是怎样的。同时,它也使那些从搿外观设计的人员可以利 爰一黧工具螽f r o n t p a g e ,d r e a m w e a v e r 采砖瓣夏进行设计耧穆改,瑟不震过于关 心编褓问题。 a s p 是一种简单易用的技术,但是这种简便性也只鼹针对简单的_ 溆用程序。 毽为釜疫蠲系统簧求晓较裹,挚凭a s p 技寒基经不戆缀好懿实瑗。这楚裁嚣要 利用c o m d c o m 技术来扩充a s p 的功能,而c o m ,d c o m 控件的开发难度可以 说是相当复杂。另外a s p 技术的可移植性茇,不支持跨平螽,只能运行在w i n d o w s 系绫上。 2 5j s p 、j a v as e r vi e t 、d a v a b e a n 和j d b c 技术 25 1 基予j a v a 戆w e b 程j 搴熬决秀寨麓辑 巍i i 比较流行的基于j a v a 的w e b 程序解决方案是利用j s p 、j a v as e r v l e t 、 j a v a b e a n 和j d b c 的组合。0 1 1 4 11 6 1 这种方案充分利用了j s p 、j a v as e r v l e t 、j a v a b e a n 稻j d b c 接本签鑫豹突出魏点。联懑j s p 实缓表示层;穰麓s e r v l e t 完残穗产缤惠 基丁中间f i 的w e b 数据库开发组件的研究与实现 的传递和相应,以及数据流的走向控制等任务,即实现控制层;利用j a v a b e a n 技 术实现业务逻辑的处理,即实现应用层;最后利用j d b c 技术实现对数据库的访 问和控制,即实现数掘层。 这种技术方案的优点是:在j s p 页内没有处理逻辑,它仅负责检索原先由 s e r v l e t s 创建的对象或b e a n s ,从s e r v l e t s 中提取动态内容插入静态模板。它清晰地 分离了表达和内容,明确了角色的定义以及应用程序开发与网页设计者的分工。 事实l ,项i 越复杂,使用第二种技术方案的好处就越大。 j s p 是由s u nm i c r o s y s t e m s 公司倡导、许多公司参与一起建立的一种动态网页 技术标准,是一种很容易学习和使用的在服务器端编译执行的w e b 数据库系统应 用程序编程语言。其脚本语言采用j a v a ,完全继承了j a v a 的所有优点。在传统的 网页h t l m 文件中加入j a v a 程序片段( s c r i p t l e t ) 和j s p 标记( t a g ) ,就构成了j s p 网 页( * j s p ) 。j s p 文件的扩展名通常是j s p ,并且一般放在一般网页存放的地方。 j s p 可以通过s u n 的j a v a b e a n 和e n t e r p r i s e j a v a b e a n s ( e r a ) 获得规模支持,通 过e j b c o r b a 以及其它厂商的应用服务器获得结构支持。它具有以下优点。 ( 1 ) 将内容的生成和显示进行分离。使用j s p 技术,w e b 页面开发人员可以使 用h t m l 或者x m l 标识束设计和格式化最终页面。使用j s p 标识或者小脚本来 生成页面上的动态内容。生成内容的逻辑被封装在标识和j a v a b e a n 组件中,并且 捆绑在小脚本中,所有的脚本在服务器端运行,如果核心逻辑被封装在标识和 b e a n s 中,那么其他人,如w e b 管理人员和页面设计者,能够编辑使用j s p 页面, 而不影响动态内容的生成。在服务器端,j s p 引擎解释j s p 标识和小脚本,生成所 请求的动态内容( 例如,通过访问j a v a b e a n s 组件,使用j d b c 技术访问数据库, 或者包含文件) ,并且将结果以h t m l ( 或者x m l ) 页面的形式发送回浏览器。这有 助于作者保护自己的代码,而又保证任何基于h t l l 的w e b 浏览器的安全可用性。 ( 2 ) 可重用的组件。绝大多数j s p 页面依赖于可重用的、跨平台的组件 ( j a v a b e a n s 或者e j b 组件) 末执行应用程序所要求的更为复杂的处理。开发人员能 够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户 第2 章当前箨种网络数据库中间件技术研究 团体所使用。组件的方法加速了总体开发过程,并且使得各种组织在他们现有的 技能和优化结果的丌发努力中得到平衡。 ( 3 ) 用标识简化页面开发。w e b 页面开发人员不会都是熟悉脚本语言的编程人 员,j s p 技术封装了许多功能,这些功能是在易用的、与j s p 相关的x m l 标识中 进行动态内容生成所需要的标准的j s p 标识能够访问和实例化j a v a b e a n s 组件,设 冒或者榆索组件属性,下载a p p l e t ,以及执行用其他方法更难于编码和耗时的功 能。 25 2j d b c 技术 j d b c 技术并不是只针对w e b 系统的技术,它可以应用于所有j a v a 程序, 包括j a v aa p p l e t 、j a v aa p p l i c a t i o n ,当然也包括j s p 。 j d b c 是j a v a s o f t 公司设计的j a v a 语言的数据库访问a p i 包,其目的在于为 j a v a 程序提供各种数据库的统一一致的访问接口。j d b c 与o d b c 的原理机制相似, 只是j d b c 用纯j a v a 实现,而o d b c 则用c 或c + + 实现。 j d b c 包含两部分与数据库独立的a p i ,一部分是面向程序开发人员的j d b c a p i ,另部分是面向底层的j d b c d r i v e r a p i 。j a v a 应用程序通过j d b c a p i 访 问j d b c 驱动程序管理器,再通过j d b cd r i v e r a p i 访问不同的j d b c 驱动程序, 从而实现对不同数掘库的访问。基于j d b c 的w e b 数据库解决方案概括来讲有以 下| 干十如图2 4 所示。 方案a 利用了j d b c 与o d b c 的相似性,j d b c o d b c 桥将j a v a 应用程序的 j d b c 调用请求转化为o d b c 调用请求,然后通过o d b c 驱动程序访问各种数据 库系统。 方案b 则直接使用j d b c 针对不同d b m s 的驱动程序,创建纯j a v a 的数据 库连接。 完成一个基于j d b c 的应用需要一组层次结构的软件产品,包括j d b ca p i 、 j d b cd r i v e rm a n a g e r 和针对某一特定数据库的d r i v e r 。j d b ca p i 是一系列抽象 的接口它使得应用程序能够进行数据库连接,执行s q l 声明,并且得到返回结 果。j d b cd r i v e rm a n a g e r 是j d b c 管理层,负责建立应用程序与d r i v e r 之间的联 基丁中间制的w e b 数据库开发组件的研究与实现 系,它能够根据应用程序中所提供的信息自动选择不同的d r i v e r 。j a v a d r i v e r a p i 是面向驱动程序开发商的编程接口,支持着j d b c d r i v e r m a n a g e r 和数据库d r i v e r 豹逶德。 张实际编程中,对于大多数数据库来说,仅实现j d b ca p i 提供的抽象类即可。 冈此程序员的工作主要集中在上图的第一步中,也就是利用j d b ca p i 建立到 j d b c 驱动程序管壤器静连接,逡藤楚理建户慰数撂瘁的搽佟。纛下一步携使用静 j d b cd r i v e r 往往已经整合到w e b 服务器中。 方案 图2 4 藏乎j d b c 的数据库解决方案 f i g 2 ad a t a b a s es o l u t i o nb a s eo nj d b c 尚寨b j 2 5 3j d b c 技术的优点和缺点 使用j d b c 技术连接数据库熙有明显的优点。首先,因为j d b c 技术盥接使用 j a v a 溪砉,嚣戴它天,圭其有弧v a 语砉酝寿鹃钱熹。毙魏霹移植控,乎螽无关瞧, 第2 章当前各种网络数据库中间件技术研究 i 叮由1 聪忡,发全骷以及高效性等。另外,j d b c 是种低层次接口,因此功能十分 强大。最磊,嬲予j d b c 可以攫好弱与o d b c 遂牙终念,嚣量j d b c 本赛瓣签耱 当静流行豹数掭霹系统都有擐好的支持,因此_ 乖i 用j d b c 几乎可良完成副馁戆数 据库的连接。 使用j d b c 避行w e b 数据库的连接,也有它的缺点。 首先,j d b c 技术并不符合面离对象豹要求。程序员使用j d b c 的功熊主要实 凌下瑟瑟秘工豫:建立与数蕹库懿连接;发送s q l 语奄;憝蓬返霞蘩栗帮美 l l 数疆 库连接。j d b c 根据这几种工作建立了相对性的几种类,黼是用这些类进行数据库 的连接,其本质思想是一种面向过程的思想。也就是他主要考虑怎样实现连接, 这j 面向对苏的思想有所出入。 其次,鞫为j d b c 功能卡分强大,这撑在易矮瞧上就难受骞掰不是。嘲弼,j d b c 本身提供的数据库结果集类r e s u l t s e t 功能十分强大,倦怒它并不适合予应用系统 的最终使用。谯w e b 应用程序的开发中,程序员并不能把r e s u l t s e t 作为暇终结 果传递到j s p 厦颟中,而往往需要繁琐的过程将r e s u l t s e t 转化为其他可以盥接使 焉戆数据类型,比如s t r i n g 或h 虹类黧。 警然,作为j a v a 语言酶数菰黪连接解决方案,j d b c 定够强大,德挢存在的 小足在实际丌发中会得到改进。本文就是试图提出一种w e b 数据库连接开发组件 解决方案,既能保持j d b c 特有的优点,又能对他的缺点进行一定的改进。 基丁中间f ,| 的w e b 数据库开发组 牛的研究与实现 第3 章当前各种w e b 数据库产品简析 当懿魄较滚霉熬w e b 数据露产菇圭要有:s q ls e v e r , m y s q l 瑟o r a c l e 。嚣秀 这三种数据露适应性较强,性熊傀异,容易使尾,绝们在国内外得到了广泛的应 用。而不同的特点也决定了他们不同的适用领域。 3 1s o ls e v e r s o ls e v e r 蹩羧较公司簸s y b a s e 获褥萋零聱终弱襞蠲诲胃鑫,并发滋涎一耱 关系数姑瘁。瑗在最新的版本怒s q l s e v e r 2 0 0 0 ,另外,s q l s e v e r 7 0 仍在使用。 因为s q ls e v e r 是微软公司的产黼,因此s q ls e v e r 得到了微软公司其他产品的极 大支持。例如w i n d o w s 系统和s q ls e v e r 兼容性很好,s q ls e v e r 和i l s 服务器 静配合也缓磐。因就赞对w i n d o w s 操于# 系统所避缮敬莠:发,s q ls e v e r 是不错 的选择。睡 3 2 f l y s 0 k 1 9 9 6 年瑞舆的t e x 公司开发了m y s q l 数据库系统,他的设计思想是快捷、 蠢效、实霭。激i 斑死冬醚阊魂m y s q l 成为当今u n i x 竣l i n u x 类服务嚣上使耀最 广泛酶w e b 数据库系统,当然豫也支持其键大帮分豹操作系统平台。辍然它对 a n s is q l 标准的支持并不完善,但m y s q l 支持所肖常用的内容,完全可以胜任 一般w e b 数搦库的工作。由于它不支持事务处理,m y s q l 的速度比一魃商业数据 蓐抉2 - 3 倍。并且m y s q l 还针对很多操作平台作了优纯,完全支持多c p u 系统 兹多线程方式。在编疆方瑟。m y s q l 氇撵供了e ,c + + ,j a v a , p e r l ,p y t h o n 秘t c l 等 a p i 接口,而殿有m y o d b c 接嗣,任何可以使用o d b c 接口的语言都可以使用它一 更重要的是,m y s q l 的源代码怒公开的,可以免费使用,这就使m y s q l 成为许 多中小型网 站、个人网站追捧的明星。i s l l g i l l o l 3 。30 r a c l e o r a c l e 怒款历史悠久的数据滕软件,最旱在1 9 7 9 年o r a c l e 公司就歼发出了 基于s q l 标准的关系数掘库产品。1 9 9 2 年6 月o r a c l e 公司推出的o r a c l e7 协同服 第3 章当前各种w e b 数据库产品简析 务器数据库,使笑系数据库技术迎上了新台阶。最新版本o r a c l e 9 i ,比较广泛使用 的版本是o r a c l e s i 。o r a c l e 8 i 既支持传统的嘶向关系的数据模型,也支持
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 语文四年级上册9《古诗三首 雪梅》教学设计+教学设计(统编版)
- 无障碍通道施工方案范本
- 电商行业2025年知识产权保护与电商物流配送研究报告
- 河南专业钢板库施工方案
- 吉林省长春市七年级地理下册 6.1 位置和范围说课稿 新人教版
- 1《我们班四岁了》第二课时(教学设计)部编版道德与法治四年级上册
- 钼镍矿渣治理施工方案
- 夏日户外活动策划方案范文
- 人教版生物七年级下册4.4.4输血与血型 说课稿
- 2025年健康产业智慧医疗和养生趋势研究报告
- 医院感染管理的重要性
- 四渡赤水军事教学课件
- 2025年浙江省能源集团招聘笔试备考题库(带答案详解)
- 项目课程的概念原理与设计
- 小儿腹股沟疝麻醉
- 公司与劳务派遣公司合同范本
- 经络腧穴学-课件
- 智能垃圾分类回收箱
- 中州国信特殊资产管理断供保房服务相关问题解答
- 烟草评级员业务报告范文
- 2025年三基三严考试题题库(含答案)
评论
0/150
提交评论