数据库中间件技术的研究与应用

 


        随着网络和信息管理系统的发展,数据库和计算机网络之间的联系和应用越来越紧密,对数据库访问时的功能、性能、安全等要求越来越高,传统的简单的C/S模式或者B/S模式已经越来越难以满足日益增长的要求,数据库中间件技术的出现和应用,对传统结构进行了有效的改进和扩充。

        1、数据库中间件的作用

        多媒体教学支撑平台系统.对于数据库的容量和访问能力要求不苛刻.但是它存储的数据类型杂、访问量不固定、后台数据库种类不一、服务器操作系统各异。因此.这一类数据库中间件的作用主要是以下一些:

         1)支持常用大型数据库的各种操作。可以支持ORACLE,INFORMIX,SYBASE,MSSQL,DB2,MYSQL等常用数据库,以及JDBC、ODBC接口。更换数据库只要更换相应的驱动就可以,而不需要修改所开发软件系统的代码,方便安全。

         2)提供统一接口。屏蔽数据库之间的操作差异。

         3)封装复杂烦琐的数据库应用接口和数据库操作过程,简化应用程序的数据库操作.提高应用程序开发效率。

         4)支持常用的操作系统。如Windows、UNIX、Linux等常见主流操作系统。跨平台支持。便于应用代码在各平台之间的移植。

         2、数据库中间件的设计

         客户端到数据连接管理器之间的是逻辑连接,而数据库到数据连接器之间的是物理连接。

         数据库中间件位于客户端与数据库之间把二者隔离开来。中间件与各个客户之间的数据通讯采用流套接字实现,多个连接由多个线程完成,这种并发的通讯机制使得访问效率大大提高。中间件与数据库之间采用JDBC连接,多用户共享一个数据连接。同样起到了提高数据库访问效率的效果。数据库中间件对数据库的访问和操作采用SQL语言。

        数据库中间件的核心是数据连接管理器,它是一个服务程序,连接了客户端和后台数据库。客户端向其发出对数据库的访问请求,由数据连接管理器寻找与该数据库的可用连接,通过数据连接将访问请求传递给目标数据库。目标数据库执行相应的SQL语句,将结果通过数据连接传回数据连接管理器,再传回给客户端。

         3、常用的数据库中间件种类

        3.1通用网关接口CGI

        CGI是Web服务器与CGI应用程序之间进行信息传递的一种标准,是目前访问数据库最常用的方法之一,它移植性好。几乎所有的Web服务器都支持CGI标准,CGI程序驻留在Web服务器上,当Web服务器受到客户浏览器的请求后,执行相应的CGI程序,并通过Webserve将结果返回给浏览器。CGI有一个致命的弱点,那就是CGI程序不能被多个客户请求共享。每当接到一个请求后,即使有一个该CGI程序的实例在运行,也必须重新启动一个相同的实例。即创建一个并发进程,并发请求越多,创建的并发进程越多,占用的内存空间越大,这样就限制了应用程序自身所用的内存资源,而且每个请求创建一个进程一也会消耗很多时间,在需要多个数据库连接的多用户应用中,采用CGI来连接数据库势必会随着用户的增加而延长用户连接数据库的等待时间,使系统的性能降低,并可导致系统最终的崩溃。

         3.2 WebAPI

         WebAPI同CGI一样也是一种中间件,它是针对CGI程序的诸多不足而提出的,为了提高webserver与数据库服务器的通信效率和性能。Netscape和Microsoft推出了运行于各自服务器软件的NSAPI和ISAPI。与比工作为独立运行机制不同,这些API都是以DLL形式提供的,它们和Webserve软件处少相同地址空间,webserve进程可以直接调用这些webAPI。所以,使用界webAPI的速度明显快于CGI程序,功能也比较强大,但它也有缺点,如NSAPI和ISAPI互不兼容,只能运行在特定的Web服务器和操作系统之上,互相不能移植。

        3.3 DJBC技术

        针对CGI和webAPI的上述缺点,人们借鉴了ODBC成功的经验,开发出了Java语言的数据库访问接口DJBC。它由一组用Java语言写成的类和接口组成。与DJBC类似,也是通过数据库驱动程序管理器调用具体数据库驱动程序来向数据库SQL语句,支持对多种数据库的访问。由于Java语言与平台无关,以利用DJBCAPI写成的访问数据库的程序具有很好的通用性,移植方便,但由于Java的性能问题,DJBC访问数据库的速度很慢,对系统硬件的要求也很高。

         4、数据库中间件方法的优缺点

         移植性好中间件封装了各种与平台有关的细节,使更换操作系统和通信协议等底层的配置无需改变应用程序代码。

         集成方便中间件可以非常容易的集成到应用开发环境中,无需大的代码改动。

        易于扩充中间件的局部改进和整体升级只要保持对外接口不变就不会影响到系统的其他部分,在功能上对应用程序实现了透明性。

        使用简单中间件对各种数据源使用统一的访问方法,使用户不必关心数据库选择等琐碎的操作,降低了用户参与的程度。

        中间件方法比使用传统的数据库访问方法具有独有的好处,任何一个DBMS都有连接数据库用户数的限制,不可能无限制的接收用户连接。按传统方式连接数据库,需要先建立数据连接,然后通过这个用户连接进行数据库操作。这时就会受到数据库用户数的限制。当与DBMS连接的用户数量达到这个上限时,新的用户连接请求就会失败,使用数据库中间件技术访问数据库的思想是把数据库连接的操作从客户端向后移到中间层,这样多个用户就可以共享一个数据库连接,从而增加了用户的访问数量。但这样做的缺点是数据库操作比较集中,统一由数据库中间件负责数据间的同步及点到点的通信,对数据库中间件的可靠性要求比较高,一旦中间件出现问题,所有的数据连接都将断掉。从而导致系统的瘫痪。这种方法尤其不适合高性能的应用处理。因为它需要大量的数据通信,对数据库中间件的要求将更加严格。

参考文献:

[1] 数据库中间件的研究及其应用 张宗军 商场现代化 2010(9)

[2] 智能化数据库中间件的设计与实现 俞国红 廊坊师范学院学报(自然科学版) 2010(1)

[3] 中间件技术在数据库开发中的应用 万长辉 硅谷 2008(24)