通用Web-数据库系统体系结构研究
本作品内容为通用Web-数据库系统体系结构研究,格式为 doc ,大小 186368 KB ,页数为 8页
('通用Web数据库系统体系结构研究王磊(武汉理工大学信息工程学院信研1005班,湖北省武汉市,430070)摘要:概述了Web技术和数据库技术融合的必要性,详细分析了传统的Web数据库体系结构(WDSA)的缺点,提出了基于组件和分布式对象技术的新一代通用WDSA,为Web数据库系统的研究和开发提供了效率高,易于扩展和维护的理论框架。关键词:WWW;数据库管理系统;CGI;JDBC;体系结构GeneralWebDatabaseSystemArchitectureWangleiABSTRACT:ThenecessityoffusionofWebtechnologyanddatabasetechnologyissummarized.TheshortcomingsoftraditionalWebdatabasesystemarchitecture(WDSA)areanalyzedindetail.ThenewcommonWDSAbasedcomponenttechnologyanddistributedobjecttechnologyispresented.Itprovideshighefficient,easytoscalableandmaintainedtheoryframeforthestudyanddevelopmentofWDS.KEYWORDS:WWW;DBMS;CGI;JDBC;archtectureInternet网是目前全球最大的计算机通信网,它遍及全球几乎所有的国家与地区。WWW(WorldWideWeb)系统是一个大型的分布式超媒体信息数据库,它极大地推动了Internet的发展,已经成为Internet中最流行、最主要的信息服务方式。它能够把各种类型的信息资源,如静态图象、文本、数据、视频和音频有机地结合起来,使用户能够在Internet上浏览、查询和共享建立在WWW服务器所有站点上的超媒体信息。目前Web技术与数据库管理系统(DBMS)相互融合领域的研究已成为热点方向之一,数据库厂商和Web公司也纷纷推出各自的产品和中间件支持Web技术和DBMS的融合,将两者取长补短,发挥各自的优势,使用户可以在Web浏览器上方便地检索数据库的内容。所谓Web数据库管理系统(或DBMSWeb)是指基于Web模式的DBMS的信息服务,充分发挥DBMS高效的数据存储和管理能力,以Web这种浏览器/服务器(B/S)模式为平台,将客户端融入统一的Web浏览器,为Internet用户提供使用简便、内容丰富的服务。Web数据库管理系统必将成为Internet和Intranet提供的核心服务。1传统的Web数据库系统体系结构传统的WDSA如图1所示。一般实现Web数据库系统的连接和应用可采取两种方法,一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面,通过Web服务器返回给Web浏览器。最基本的中间件技术有通用网关接口CGI(CommonGatewayInterface)和应用程序接口(API)两种。1.1基于通用网关接口CGI的体系结构传统的DBMSWeb结构如图1所示,用户通过Web浏览器输入查询信息,浏览器通过HTTP(HypertextTransferProtocol)协议向Web服务器发出带有查询信息的请求,Web服务器按照CGI协议激活外部CGI程序,由该程序向DBMS发出SQL请求并将结果转化为HTML(HypertextMakeupLanguage)后返回给Web服务器。再由Web服务器返回给Web浏览器。这种结构体现了客户/服务器方式的三层模型(threetieredC/S),其中Web服务器和CGI程序实际起到HTML与SQL转换的网关的作用。CGI的典型操作过程是:分析CGI数据;打开与DBMS的连接;发送SQL请求并得到结果;将结果转化为HTML;关闭DBMS的连接;将HTML结果返回给Web服务器。基于Web的数据库访问利用已有的信息资源和服务器。其访问频率大,尤其是热点数据。但传统的Web数据库体系结构中的CGI程序主要的缺点是:①客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然在Web服务器形成信息查询和发布瓶颈。②CGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时;③CGI应用程序不能由多个客户机请求共享,即使新请求到来时CGI程序正在运行,也会启动另一个CGI应用程序,随着并行请求的数量增多,服务器上将生成越来越多的进程。为每个请求都生成进程既费时由需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间;④由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难;⑤安全性差,缺少用户访问控制,对数据库难以设置安全访问权限;⑥HTTP协议是无状态(stateless)且没有常连接的协议,DBMS事务的提交与否无法得到验证,不能构造Web上的OLTP应用。图1基于服务器扩展API的体系结构1.2基于服务器扩展API的体系结构为了克服CGI的局限性,出现了另一种中间件解决方案是基于服务器扩展API的结构,如图1所示。与CGI相比,API应用程序与Web服务器结合的更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。Microsoft的ISAPI、Netscape的NSAPI、Sybase的Web.sql,IBM的DB2WWW都是这种中间件的解决方案,这些API可以提供更优异的性能,从而使开发人员开发出复杂的应用程序。本文以微软提供的ISAPI为例说明基于服务器扩展API的结构的工作过程。微软的Web服务器产品是InternetInformationServer(IIS),它提供了ISAPI(InernetServerAPI)作为扩展Web服务器功能的编程接口;同时提供了一个Internet数据库连接器(IDC),可以实现数据库的查询和更新。Microsoft提供的开放的ISAPI,通过编写ISAPI应用程序(ISA)来扩展IIS的功能。IIS和ISA之间通过一个称为Extension_Control_Block(ECB)的结构来进行通信。当IIS调用ISA时,它首先调用GetExtensionVersion来获取有关信息;对于每一个客户端的请求,IIS通过ECB传给ISA,并调用HttpExtensionProc来响应。要实现Web数据库的应用,需要使用ODBC技术,在ISA的响应数中通过ODBC来完成对数据库的查询,并将查询结果格式化成HTML页面,通过Web服务器返回客户。IDC的功能在于使用两类文件IDC脚本文件(.idc)和HTML扩展文件(.htx)来控制如何访问数据库和构造Web页面。ISAPI和IDC工作原理如图2所示。图2ISAPI和IDC工作原理虽然基于服务器扩展API的结构可以方便、灵活地实现各种功能,连接所有支持32位ODBC的数据库系统,但这种结构的缺陷也是明显的:①各种API之间兼容性很差,缺乏统一的标准来管理这些接口;②开发API应用程序也要比开发CGI应用复杂得多;③这些API只能工作在专用Web服务器和操作系统上。如ISAPI只支持WindowsNT/95平台和IIS及与之兼容的Web服务器。1.3基于JDBC的Web数据库结构通过Web浏览器把应用下载到客户端运行,在客户端直接访问数据库。在这种方式中客户端应用包括:JavaApplet、ActiveX、Plug-in等,其中最典型的就是JavaApplet。采用JDBC(JavaDatabaseConnectivity)技术,在JavaApplet中访问数据库的优点在于:直接访问数据库,不再需要Web数据库的介入,从而避开了CGI方法的一些局限性;用户访问控制可以由数据库服务器本地的安全机制来解决,提高了安全性;JDBC是支持基本SQL功能的一个通用低层的应用程序接口,在不同的数据库功能的层次上提供了一个统一的用户界面,为跨平台跨数据库系统进行直接的Web访问提供了方案。从而克服了API方法一些缺陷;同时,可以方便地实现与用户的交互,提供丰富的图形功能和声音、视频等多媒体信息功能。其结构如图3所示。图3基于JDBC的web数据库结构JDBC是用于执行SQL语句的Java应用程序接口API,是由Java语言编写的类和接口组成。Java是一种面向对象、多线程与平台无关的编程语言,具有极强的可移植性、安全性和强健性。JDBC是一种规范,能为开发者提供标准的数据库访问类和接口,能够方便地向任何关系数据库发送SQL语句,同时JDBC是一个支持基本SQL功能的低层应用程序接口,但实际上也支持高层的数据库访问工具及API。所有这些工作都建立在X/OpenSQLCLI(调用层接口)基础上。JDBC的主要任务是定义一个自然的Java接口来与X/OpenCLI中定义的抽象层和概念连接。JDBC的两种主要接口分别面向应用程序的开发人员的JDBCAPI和面向驱动程序低层的JDBCDriverAPI,其中JSBC驱动程序又分为四类:JDBC-ODBCBridgeDriver、NativeAPI(PartlyJavadriver)、JDBC/Net(PureJavadriver)、Native(PureJavadriver),通过这四类驱动程序实现对多种数据库系统的访问。JDBC完成的三项工作是:建立与数据库的连接;发送SQL语句;返回数据结果给Web浏览器。基于JDBC的Web数据库结构其缺陷在于:只能进行简单的数据库查询等操作,还不能进行OLTP;安全性、缓冲机制和连接管理仍不完善;Sun承诺的完全跨平台跨数据库系统的功能和标准远未实现。2一种通用的Web数据库系统体系结构基于Web的应用的最佳体系结构不能仅是已有的事务型应用或基于页面的Web站点的扩展,而应是两者最优秀部分的结合。基于Web的应用利用传统应用的事务性中间逻辑层和数据库访问,同时利用Web服务器/浏览器连接模式以访问Web客户。为了使Web模式和数据库系统能够紧密结合,以满足OLTP、OLAP和数据仓库及挖掘的企业级服务的目标,Sybase公司和Informix公司分别提出了适应下一代Web数据库系统的体系结构:ACA[1]和IUWA[2]。我们在分析和总结这两种结构以及传统Web数据库系统体系结构优点和不足的基础上,提出了一个新一代通用Web数据库系统体系结构。如图4所示。图4通用web数据库体系结构2.1定义在通用Web数据库系统体系结构下定义如下概念:(1)组件(Component):是完成某一功能的可重用的软件代码。组件可用分布对象国际标准来封装,如Microsoft的ActiveX,OMG的CORBA以及Sun的JavaBean等。并通过DCOM、IIOP和RMI组件通信协议分别访问相应的ActiveX、CORBA和JavaBean组件。在该结构中将应用系统划分为两种组件:逻辑组件和数据存储组件。逻辑组件用来实现所有的应用逻辑;数据存储组件解决的是如何存储和查询数据。(2)通信协议:连接Web浏览器和Web智能代理服务器之间的逻辑通道和标准。该结构中使用常连接通信协议(如DCOM,RMI和CORBA),克服了HTTP协议的缺陷,能满足OLTP等应用。(3)信息库(InformationRepository)和规则库:以一定的数据结构存储的数据集合。在该结构中前者存放有关缓冲、安全和分布数据库的配置信息;后者存放智能代理管理需要的规则。(4)智能代理服务器(IntelligentAgentServer):利用通信协议在Web浏览器和数据库服务器之间提供事务服务器和智能代理管理的功能。(5)接口描述语言(Interfacedescriptionlanguage,IDL):提供不依赖具体数据库系统的访问语言,并可嵌入到HTML中。(6)数据库服务器(DatabaseServer):提供数据的核心应用逻辑和数据存储组件的应用;具有开放性,支持RDBMS、ORDBM和文件系统等应用程序。2.2通用Web数据库系统体系结构该体系结构由访问层(Web浏览器),代理层(Web服务器和Web智能代理服务器)和资源层(数据库服务器)三层构成。其特点在于:①属于多层结构,是为了满足客户/服务器结构和Web模式融合的要求,是系统扩展的必然结果。②基于标准的、可重用的组件结构。在每层中都包含很强的组件支持,易于扩展和维护,降低开发成本,可靠性高。③采用常连接通信协议,克服了HTTP协议的缺陷,能满足OLTP、OLAP和DSS等应用。④采用具有互操作性和可移植性强的分布式对象标准,能够在异构平台操作并访问异构数据库服务器。2.2.1访问层在访问层的Web浏览器提供所有的前端的界面表现和简单的应用逻辑和数据存储,可通过HTTP协议访问Web服务器,获得常规的页面服务(图4中虚线箭头表示传统结构);通过数据库访问协议和分布对象通信协议访问代理层的对象和服务。2.2.2代理层代理层由Web服务器和Web智能代理服务器构成,主要提供安全管理,事务管理以及各种访问服务。Web服务器提供常规的页面访问请求。Web智能代理服务器包括事务管理器、多线程内核管理机制、连接管理器、智能代理管理和组件管理器等基于组件和分布对象标准的管理模块组成,利用对象通信协议在Web浏览器和数据库服务器之间提供事务管理和数据库访问的功能。各管理模块的功能如下:(1)事务管理器:提供锁管理、一致性控制,恢复管理、更新管理和版本管理等。(2)多线程内核管理机制:对每一个请求的客户创建一个服务线程,可以支持多个客户机请求共享一个进程,提高了性能和总体响应时间。(3)连接管理:主要提供连接复用和连接监控;连接复用是指一个客户使用的连接缓冲可以同时提供给另一个需要使用相同连接的客户使用,利用该机制可以减少系统的开销,从而提供效率。连接监控是指连接管理器监控缓冲区内连接,记录并重新连接已失效的连接,对无法建立的连接在客户访问时返回错误信息,并可报警。(4)安全管理:提供连接访问授权检查,提供独立于数据库服务器的安全措施和安全协议的支持。(5)缓冲机制:包括连接缓冲(Connectionpooling)和访问缓冲。连接缓冲使连接可以在一次利用后继续保存,避免每次访问重新打开和关闭操作。访问缓冲保存客户可能重复的访问结果,避免重复数据库服务器访问,缓冲替换采用LRU算法,并考虑连接和访问代价进行优化。(6)接口描述语言解释器:解释IDL,并构造数据库访问请求,发给智能代理管理组件,并将结果格式变为HTML。IDL是为了解决SQL和HTML语言的差异的有效方法,具备以下要求:严格简明的语法描述,可读性强、控制少、保证解释器高效性;具有与SQL语言中等价的数据库访问能力;提供HTML格式化描述;具有扩展性,为新的服务提供接口。(7)组件管理器:提供结构中全部三层所需的常用组件,主要为事务管理和连接管理提供应用逻辑组件。有动态扩展能力,能随时添加所需组件。(8)智能代理管理:将连接管理器的请求智能地转化为相应的数据库服务器调用的组件,并向资源层的数据库服务器发出请求,针对不同的数据库系统调用不同逻辑或数据存储组件,实现了跨平台对多个异构数据库系统的透明访问。2.2.3资源层在资源层中主要包括数据库服务器和数据库。数据库服务器由会话管理,公共语言组件,数据存储和访问组件构成。会话管理处理用户、连接和事务,主要来自代理层的请求。公共语言组件(如Java语言)解释来自客户端的请求,并将它们转换成一种适合于传递到数据存储的形式。数据访问和存储执行请求包括访问数据库和进行事务处理。3结束语如何将Web技术和DBMS相结合,研究和开发出具有OLTP功能的动态Web数据库系统已经成为目前的Internet和数据库技术热点研究领域的交叉点。我们提出的通用Web数据库系统体系结构,克服了传统的Web数据库系统体系结构的缺点,充分利用基于组件和分布式对象技术的优势将Web技术和DBMS紧密结合,具有扩展性强、易于维护、效率高的特点,同时提供跨平台的操作性和能访问异构数据库系统的支持。参考文献[1]NguyenT,SrinivasanV.AccessingrelationaldatabasesfromtheWorldWideWeb.In:ProcofIEEEDataEngineering.NewOrleans,Louisiana,2006[2]Sybaseweb.sql(TM)InstallationGuideforSolaris(CGI),SybaseDocumentID:34019-01-0100-02,1996[3]StathesPetal,AgenericframeworkforthedepolymentofstructureddatabasesontheWorldWideWeb.In:ProcofFifthInternationalWorldWideWebConference.Paris,2001[4]陈滢,徐宏炳,王能斌.DBMSWeb支撑框架研究.计算机研究与发展,1998,35(6),525-529[5]霍军.客户/服务器+N-Tier+Web+组件=ACA.SYBASE通讯.2003,5,15-20[6]吴金龙.网络安全[M].北京:高等教育出版社,2004.[7]邵佩英.分布式数据库系统及其应用[M].北京:科学出版社,2000.[8]AsblonHobbs.自学JDBC核心数据库编程[M].丁一青,吴静译.北京:清华大学出版社,1998.',)
提供通用Web-数据库系统体系结构研究会员下载,编号:1700806977,格式为 docx,文件大小为8页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。