面向数据库的中间件技术研究 下载本文

内容发布更新时间 : 2024/5/19 12:32:57星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

面向数据库的中间件技术研究

作者:王启发

来源:《数字技术与应用》2011年第06期

摘要:介绍了中间件优点及其应用,基于Web数据库的中间件这一关键技术,阐述了基于Web数据库的中间件的结构和类型,并对其实现方法进行了分析。 关键词:数据库中间件 ODBC JDBC OLEDB CGI

中图分类号:TP311.131 文献标识码:A 文章编号:1007-9416(2011)06-0194-02 1、前言

在分布异构环境中,通常存在多种硬件系统平台(PC,工作站,小型机等),在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。为了更好的开发和应用能够运行在这种异构平台上的软件,迫切需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境。如何把这些系统集成起来并开发新的应用是现实而困难的问题。而面向数据库的中间件正是解决这一问题的必由之路。 2、面向数据库的中间件 2.1 中间件

中间件指的是一些系统软件, 它们能使最终用户和开发人员觉察不到应用程序所使用的各种服务和资源上的差异。如果一个计算环境由多个开发商提供的产品组成,那么这些差异可能是开发商产品之间的差异或应用程序需求之间的差异造成的。中间件的目的是通过为异质计算环境中的服务和资源提供统一、一致的观察结果,简化用户界面。中间件在为同一平台或不同平台上使用不同开发商产品的最终用户或者开发人员创造了浑然一体的连通性。因此,确切的说,它是透明的,开发人员和用户看不到它。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议,针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

龙源期刊网 http://www.qikan.com.cn

基于目的和实现机制的不同,将中间件分为五种:数据库中间件、远程过程调用(RPC)中间件、面向消息中间件、基于对象请求代理(ORB)的中间件、事务处理中间件。它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等。在这些基本的中间件之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器等。中间件为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。

2.2 中间件的优点及其应用

传统的客户/服务器模式将业务逻辑存于客户端程序,即程序员根据客户的业务要求定制客户端程序,这种定制的程序没有通用性;或者业务逻辑存在于后台数据库中,以触发器的方式实现。这种方式有一个很大的缺点,就是一旦客户的业务逻辑有所改变的话,将引起应用程序的修改以及后台触发器的修改,将所有程序模块都重新修改、编译、连接的工作量是相当大的。另外,由于这种结构将用户界面和业务逻辑以及数据源绑定在一起,会消耗客户机的大量资源,对客户机来说是一个很大的负担。

为了克服由于传统客户/服务器模型的这些缺陷给系统应用带来的影响,一种新的结构出现了,这就是三层(N 层)客户/服务器

模型。三层客户/服务器结构构建了一种分割式的应用程序。系统对应用程序进行分割后,划分成不同的逻辑组件,主要分为三层:

(1)用户服务层:提供信息浏览,服务定位。主要是实现用户界面,并保证用户界面的友好性、统一性。

(2)业务处理层:实现客户的全部业务逻辑。

(3)数据服务层:实现数据定义、存储、备份、检索等功能,主要由数据库系统实现。 这三个层次共同组成应用系统。使用这种模型,可以将系统需求划分成可以明确定义的服务,例如事务服务、名字服务等。将这些服务以组件的形式实现,一个组件可以实现系统中的一种或者多种服务,是这些服务的物理封装。根据系统的功能、性能等各方面的需求,系统管理员可以在网络上灵活的部署这些组件。并且根据业务的改动可以灵活的对这些服务组件进行修改,而不影响其它的组件,从而降低维护的费用。另外,这些组件应该做成通用的,基于某一标准接口的,所以它们可以被重用,其他应用程序可以使用它们提供的应用程序接口调用组件,完成所需的操作。 2.3 面向数据库的中间件

龙源期刊网 http://www.qikan.com.cn

面向数据库的中间件,简而言之,就是指一切连接应用程序和数据库的软件。与一般的中间件一样,面向数据库的中间件允许开发人员通过单一的、定义良好的API访问另一台计算机上的资源,如数据库服务器。

例如,如果一个关系数据库中的数据要被作为一个对象来访问,面向数据库的中间件可以将存储在关系数据库中的信息映射成源应用程序或目标应用程序可以访问的对象。对于其它类型的数据库(如: 层次型数据、多维数据库等)也是如此。

面向数据库的中间件还可以提供对任意数量数据库的访问,而不需考虑数据库的模型和运行平台,这样无论是哪一种数据库,SQL Server、DB2、Oracle还是Sybase,都可以同时通过同一界面进行访问。通过这种机制,就可以把不同类型的源数据库和目标数据库映射成相同的模型,使他们易于集成。

面向数据库的中间件提供很多重要的功能,包括: 应用程序接口。

将应用程序语言转化为可被目标数据库理解的语言, 如:SQL。 通过网络传递数据库查询请求。 在目标数据库中执行查询。

将响应集(查询结果集)通过网络返回到请求应用程序。 将响应集转化为请求应用程序可以理解的格式。 2.4 面向数据的中间件的类型

目前面向数据库的中间件有好几种类型,但基本上都属于本地中间件、呼叫层接口(Call Layer Interface,CLI)和数据库网关。

本地中间件是为特定数据库设计的,如Sybase设计的从C++访问Sybase数据库的中间件就是一个面向数据库的本地中间件。由于是为特定的数据库设计的,面向数据库的本地中间件能提供最佳的访问性能。但也因此一旦用本地中间件建立了数据库连接,当要改变数据库时,需要对应用程序进行很大的修改。

呼叫层接口(CLI)如ODBC和JDBC提供多个数据库的统一界面。它可以把一般通用的接口呼叫转换成任意的数据库本地语言,也可以把响应集再转换成一致的表现形式以便向数据库发出请求的应用程序可以理解。