![]() | ![]() | ![]() |
![]() ![]() ![]() |
摘要: 结合数字图书馆建设中数据库访问的问题,介绍了面向数据库的中间件这一关键技术,并对有关产品进行了分析比较。
关键词:数字图书馆 中间 数据库
Database-OrientedMiddleware
——--TheKeyTechnologyofDigitalLibraryFuHonghu
(TheDocumentationandInformationCenterofCAS,Beijing)
AbstracThisarticleintroducesoneofthekey-technologiesofdigitallibrary:Database-orientedmiddlewareandseveralproductsofit.
Keywords Digitallibrary Middleware Database1
前 言
自90年代初,数字图书馆被提出以来,关于数字图书馆的理论和实践研究已经有了极大的进展。数字图书馆将成为“未来的决策网络和应急知识网络”。随着Internet的发展壮大,数字图书馆的建设实施也在紧锣密鼓地进行中。网上信息源的分散和系统结构的差异给数字图书馆的建设带来很大的困难。此,对各种不同结构的数据库实现透明访问是数字图书馆建设中的一个极为重要的问题。而面因向数据库的中间件正是解决这一问题的必由之路。
2 面向数据库的中间件
2.1 中间件中间件指的是一些系统软件,它们能使最终用户和开发人员觉察不到应用程序所使用的各种服务和资源上的差异。如果一个计算环境由多个开发商提供的产品组成,那么这些差异可能是开发商产品之间的差异或应用程序需求之间的差异造成的。中间件的目的是通过为异质计算环境中的服务和资源提供统一、一致的观察结果,简化用户界面。中间件在为同一平台或不同平台上使用不同开发商产品的最终用户或者开发人员创造了浑然一体的连通性。因此,确切的说,它是透明的,开发人员和用户看不到它。中间件可以分为以下几类:拷贝管理:数据提取、数据转换、复制、传播网关:数据库和独立网关程序到程序中间件:远程过程调用(RPC)、事务监控程序(TP监控程序)、对象请求代理人面向消息的中间件:提供可靠的、同步的、松散连接的交流服务,使得应用程序通过消息、队列、许可等交换信息。
2.2 面向数据库的中间件面向数据库的中间件,简而言之,就是指一切连接应用程序和数据库的软件。与一般的中间件一样,面向数据库的中间件允许开发人员通过单一的、定义良好的API访问另一台计算机上的资源,如数据库服务器。
例如,如果一个关系数据库中的数据要被作为一个对象来访问,面向数据库的中间件可以将存储在关系数据库中的信息映射成源应用程序或目标应用程序可以访问的对象。对于其它类型的数据库(如:层次型数据库、多维数据库等)也是如此。
面向数据库的中间件还可以提供对任意数量数据库的访问,而不需考虑数据库的模型和运行平台,这样无论是哪一种数据库,SQLServer、DB2、Ora-cle还是Sybase,都可以同时通过同一界面进行访问。通过这种机制,就可以把不同类型的源数据库和目标数据库映射成相同的模型,使他们易于集成。
面向数据库的中间件提供很多重要的功能,包括:应用程序接口将应用程序语言转化为可被目标数据库理解的语言,如:SQL通过网络传递数据库查询请求在目标数据库中执行查询将响应集(查询结果集)通过网络返回到请求应用程序将响应集转化为请求应用程序可以理解的格式
2.3 面向数据的中间件的类型目前面向数据库的中间件有好几种类型,但基本上都属于本地中间件、呼叫层接口(CallLayerIn-terface,CLI)和数据库网关。
本地中间件是为特定数据库设计的,如Sybase设计的从C++访问Sybase数据库的中间件就是一个面向数据库的本地中间件。由于是为特定的数据库设计的,面向数据库的本地中间件能提供最佳的访问性能。但也因此一旦用本地中间件建立了数据库连接,当要改变数据库时,需要对应用程序进行很大的修改。
呼叫层接口(CLI)如ODBC和JDBC提供多个数据库的统一界面。它可以把一般通用的接口呼叫转换成任意的数据库本地语言,也可以把响应集再转换成一致的表现形式以便向数据库发出请求的应用程序可以理解。
数据库网关能提供对大型系统内部数据的访问。它们可以从统一的应用程序接口集成多个数据库以便访问、重映射旧的数据库模型(如简单文件、ISAM、VSAM等)并且对出入数据库网关的查询和信息进行转换。
3 几种常见的面向数据库的中间件
3.1 ODBCODBC实际上并不是一个产品,而是微软在几年前创建的一个标准。ODBC是一个CLI(CallLay-erInterface),通过允许开发者制作一个在大多数关系数据库中可运行的简单的API调用,简化从Windows(以及其它一些操作系统)到数据库的访问。
象所有的中间件一样,ODBC提供一个定义良好的、不依赖于数据库的API。使用API时,ODBC通过一个驱动管理器来判定应用程序要连接的数据库的类型,并载入(或卸载)适当的ODBC驱动,这样,就实现使用ODBC的应用程序和数据库之间的相互独立。
ODBC目前提供32位版本。大多数的数据库都有ODBC驱动。ODBC是免费的,而其驱动不是。这些ODBC驱动可以从数据库供应商或第三方提供商购买。流行的应用程序开发工具大多通过ODBC提供对数据库的访问。实际上,ODBC是微软VisualBasic以及其它开发工具与数据库连接的唯一途径。
3.2 JDBCJavaSoft的JDBC是第一个支持Java语言的数据库应用程序接口(API),功能上与ODBC相仿,提供Java开发人员一个从支持Java开发或支持Java应用程序运行的环境访问各种数据库的统一的接口。