CN102110099A - 基于养老保险预警系统的异构数据库中间件访问技术 - Google Patents
基于养老保险预警系统的异构数据库中间件访问技术 Download PDFInfo
- Publication number
- CN102110099A CN102110099A CN2009102142627A CN200910214262A CN102110099A CN 102110099 A CN102110099 A CN 102110099A CN 2009102142627 A CN2009102142627 A CN 2009102142627A CN 200910214262 A CN200910214262 A CN 200910214262A CN 102110099 A CN102110099 A CN 102110099A
- Authority
- CN
- China
- Prior art keywords
- database
- module
- client
- connection
- xml
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明是一种基于养老保险预警系统的异构数据库中间件访问技术。其中系统配置子模块、XML解释器子模块、SQL执行子模块、客户端连接管理子模块、数据库连接管理子模块这五大模块为具体的组成部分。本技术系统与数据库相关操作全部由后台业务程序提交给数据库中间件,在数据库中间件中再根据所需要连接的数据库申请不同的数据库连接池,系统利用数据库连接池连接相应数据库,并将得到的连接交给数据接口,再根据不同数据库结构特点执行相应的SQL语句或操作并获取返回值。本发明实现的异构数据库的中间件访问技术通过在养老预警系统里的应用,收到了良好的应用效果,节约了开发成本,缩短了开发周期,产生了良好的经济效益,有着广泛的应用前景。
Description
一、技术领域
本发明涉及的是一种数据库技术领域,具体是基于养老保险预警系统的异构数据库中间件访问技术。
二、背景技术
随着Web技术的不断发展,信息共享和数据交换的范围不断扩大,传统的关系数据库也面临着挑战,各种不同的数据库管理系统之间的异构性及其所依赖操作系统的异构性,严重限制了信息共享和数据交换范围,与此同时,人们对信息的需求越来越广泛,这种需求已不仅局限于一个部门内数据库的相互访问,还涉及到部门之间的数据共享。因此,当今用户所面对的是一个多厂商异种数据库、异种操作系统和异种网络的环境,异种数据库间互联成为人们越来越迫切的需求急切的需要一种可以访问各类数据库的技术出现。
目前,对异构数据库的访问的研究分为两个层面:
(1)对数据源的集成,即对外提供一个统一的访问机制,但不能跨数据库访问;
(2)对不同的数据源之间数据的集成,可以跨数据库访问,针对第二个层面提出了两种解决方案,一种是采用数据库或者中间件等技术解决;另一种是采用XML DTD以及RDF等技术作为异构数据源数据模式来解决。
三、发明内容
由于养老保险预警系统的数据不仅仅是需要访问本地DB2数据库,在以后还有可能要访问地税接口的Oracle数据库和其他类型的数据库,所以,需要采用非完全的异构数据库中间件访问技术。
本发明的创新点是系统与数据库相关操作全部由后台业务程序提交给数据库中间件,在数据库中间件中再根据所需要连接的数据库申请不同的数据库连接池,系统利用数据库连接池连接相应数据库,并将得到的连接交给数据接口,再根据不同数据库结构特点执行相应的SQL语句或操作并获取返回值。
基于养老保险预警系统的异构数据库中间件访问技术体系结构如图1所示,由系统配置模块(S2)、XML解释器模块(S3)、SQL执行模块(S4)、客户端连接管理模块(S5)、数据库连接管理模块(S6)这五大模块为具体的组成部分。
(一)系统配置模块
该模块的功能是设置数据库中间件的参数信息。该模块的图形界面由Swing组件实现。用户在“数据库信息配置”界面中录入各种数据库的类型、URL地址(包括数据库名及端口号)、数据库账户及登录密码等信息;在“中间件信息配置”界面中,设定与客户端的最大连接数和与数据库的最大连接数。该模块根据这些用户设定,生成配置信息,供其它模块使用。
(二)XML解析模块
该模块是负责对XML文档进行解析。具体包括:(1)接受客户端发过来的符合XML规范的字节流,并把它转换成Document对象;(2)解析请求;(3)把对相应数据库的操作结果映射到Document对象中,然后转换成字节流发送到客户端;(4)把Document对象转换成XML文件保存在磁盘中;(5)把保存在磁盘中的XML文件转换成Document对象。
(三)SQL的执行模块
该模块负责响应客户端的请求。把客户端的请求分成五类:数据查询(select)、数据定义(create,drop,alter)、数据操纵(insert,update,delete)、数据控制(grant,revoke)、存储过程[6]。该模块在解析请求时,获知目的数据库和对此执行何种操作,转换成相应的sql语句,通过数据库连接池的相应Connection,来访问数据库,并把结果返回给客户端,完成此次请求。如果执行错误,则返回错误代码。
具体实现的关键技术主要有:全局数据库命名、数据库连接、数据库查询和处理、关闭连接等。
1)全局数据库命名
要在整个系统中实现异构分布式数据访问,需要建立全局数据库模式和全局数据库字典,按相应的原则给各个数据库命名。
2)数据库连接
前台受理97数据库的配置文件如下:
DB97{
driverClass=oracle.jdbc.driver.OracleDriver
dbUrl=jdbc:oracle:thin:@192.168.1.5:1521:db97
dbUser=dba
dbPass=123456
connectionPoolSize=20
statementPoolSize=10
idleTimeout=1800
shrinkInterval=1800}
上面driverClass是表示Oracle数据库专用JDBC驱动程序。dbUrl是表示数据库连接的相关信息,“jd-bc:oracle:thin”是服务器使用的协议和子协议,“192.168.1.5:8521”是服务器的IP地址和端口,db97是数据库的SID,dbUser是表示用户名,dbPass是表示口令。同样可以配置计费系统的数据库信息:FEE10。
3)数据库查询和处理
假设要查询某客户的客户资料和相关费用,则先访问前台受理97数据库DB97和计费数据库FEE10,将结果合并后映射成XML文档,然后发给客户端。
ConnectionPool pool97=ConnectionManager.get-ConnectionPool(“DB97”);
Statement stmt97=pool97.createStatement();
ResultSet set97=stmt97.executeQuery(sql-Text);//sqlText为相应的SQL语句
这样就可得到前台受理97数据库中客户资料的结果集,同样,可以得到计费数据库中客户相关费用的结果集。然后整合这两个结果集,最后转化成XML文档,从而实现异质数据库的透明访问。
4)连接关闭
当使用完数据库后应释放资源。下面源代码释放Statement对象和ConnectoinPool占用的资源。
stmt97.close();
pool97.close();
(四)客户端的连接管理模块
该模块的功能是管理客户端的连接。把客户端的连接存放在一队列中,当连接的个数超过设定的数目时,则返回“中间件忙”,让客户端等待。
(五)数据库的连接管理模块
该模块的功能是分配和释放数据库的连接。具体的分配、释放策略如下:
当客户请求数据库连接时,首先看连接池中是否有空闲连接,这里的空闲是指目前没有分配出去的连接。如果存在空闲连接则把连接分配给客户,并做相应处理,主要的处理策略就是标记该连接为已分配。若连接池中没有空闲连接,就在已经分配出去的连接中寻找一个合适的连接给客户,此时该连接在多个客户间复用。当客户释放数据库连接时,可以根据该连接是否被复用进行不同的处理。如果连接没有使用者,就放入到连接池中,而不是被关闭。可以看出正是这套策略保证了数据库连接的有效复用。数据库连接池中到底要放置多少个连接,连接耗尽后该如何处理呢?这是一个配置策略。一般的配置策略是:开始时,根据具体的应用需求给出一个初始的连接池中连接的数目以及一个连接池可以扩张到的最大连接数目。本发明就是按照这种策略实现的。
四、附图及附图的简单说明
图1异构数据库中间件体系结构图;
图2系统架构图;
图中主要符号说明
S1通用数据接口;
S2系统配置模块;
S3XML解释器模块;
S4SQL执行模块;
S5客户端连接管理子模块;
S6数据库连接管理子模块;
五、具体实施方式
本发明不受以下实施实例限制。
实施实例
如图2所示,本发明的数据库中间件与养老保险预警系统采用Socket进行通信,并用XML来封装数据,通过JDBC来访问数据库,用数据库连接池来管理数据库的连接。为了使数据库具有跨平台的能力,选用Java作为开发语言。因为Java提供了JDBC公用数据库API,JDBC API提供封装具体功能的Java类和接口,并通过加载相应的数据库驱动程序,将Java语言的平台无关性扩展到数据库。此外,为屏蔽不同数据库系统的差异,在数据交换的过程中需要存放信息的中介。由于需要存放的数据往往是庞大而复杂的,并且要保证数据结构无损,因此采用可扩展标记语言XML来封装数据。XML不仅提供数据本身的信息,而且侧重于对数据结构的描述,且XML具有平台无关性及可扩展性等特点,使XML成为异构平台间数据交换的理想中介。通过JDOM对XML文档进行解析。
具体实施步骤如下:
(1)与客户端建立连接:监听客户端的请求,建立Socket连接。
(2)SQL的执行:通过JDOM对客户端发过来的请求进行解析,把请求翻译成对相应的数据库的操作,采用JDBC API与数据库建立连接,通过调用Connec-tion对象的DatabaseMetadata接口提供的一系列方法,将对数据库的操作结果封装到XML文档中。
(3)操作结果的返回:把操作的结果的XML文档发送给客户端,完成响应的请求。
Claims (6)
1.基于养老保险预警系统的异构数据库中间件访问技术,其特征在于,包括:系统配置子模块,设置数据库中间件的参数信息。
XML解析子模块,负责对XML文档进行解析。
SQL的执行子模块,负责响应客户端的请求。
客户端的连接管理子模块,管理客户端的连接。
数据库的连接管理子模块,分配和释放数据库的连接。
2.如权利要求1所述,系统配置子模块根据用户设定,生成配置信息,供其它模块使用。
3.如权利要求1所述,XML解析子模块具体包括:(1)接受客户端发过来的符合XML规范的字节流,并把它转换成Document对象;(2)解析请求;(3)把对相应数据库的操作结果映射到Document对象中,然后转换成字节流发送到客户端;(4)把Document对象转换成XML文件保存在磁盘中;(5)把保存在磁盘中的XML文件转换成Document对象。
4.如权利要求1所述,SQL的执行子模块具体实现的关键技术主要有:全局数据库命名、数据库连接、数据库查询和处理、关闭连接等。
5.如权利要求1所述,客户端的连接管理子模块把客户端的连接存放在一队列中,当连接的个数超过设定的数目时,则返回“中间件忙”,让客户端等待。
6.如权利要求1所述,数据库的连接管理子模块功能是分配和释放数据库的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102142627A CN102110099A (zh) | 2009-12-28 | 2009-12-28 | 基于养老保险预警系统的异构数据库中间件访问技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102142627A CN102110099A (zh) | 2009-12-28 | 2009-12-28 | 基于养老保险预警系统的异构数据库中间件访问技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102110099A true CN102110099A (zh) | 2011-06-29 |
Family
ID=44174262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102142627A Pending CN102110099A (zh) | 2009-12-28 | 2009-12-28 | 基于养老保险预警系统的异构数据库中间件访问技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102110099A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177008A (zh) * | 2011-12-22 | 2013-06-26 | 北大方正集团有限公司 | 一种生成及执行sql语句的方法和系统 |
CN104142949A (zh) * | 2013-05-10 | 2014-11-12 | 北京航天长峰科技工业集团有限公司 | 一种基于结构化和非结构化数据的统一管理方法 |
CN104462488A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 数据库的高可用解决方法和装置 |
CN104503989A (zh) * | 2014-12-03 | 2015-04-08 | 中建材国际贸易有限公司 | 一种完成异构数据库归集的方法 |
CN104572705A (zh) * | 2013-10-18 | 2015-04-29 | 镇江鼎拓科技信息有限公司 | 一种基于ibm中间件实现异构数据库连接方法 |
CN104794147A (zh) * | 2013-12-30 | 2015-07-22 | 深圳键桥通讯技术股份有限公司 | 异构数据库访问方法 |
CN105468619A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 用于数据库连接池的资源分配方法和装置 |
CN106156339A (zh) * | 2016-07-12 | 2016-11-23 | 泰康保险集团股份有限公司 | 保单管理系统的访问方法、装置及系统 |
CN107402941A (zh) * | 2016-07-22 | 2017-11-28 | 延边众生云计算科技有限公司 | 通用数据交换接口及其实现方法 |
CN112711628A (zh) * | 2020-12-30 | 2021-04-27 | 北京楚梵基业科技有限公司 | 数据交互方法、装置和中台 |
-
2009
- 2009-12-28 CN CN2009102142627A patent/CN102110099A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177008B (zh) * | 2011-12-22 | 2017-04-19 | 北大方正集团有限公司 | 一种生成及执行sql语句的方法和系统 |
CN103177008A (zh) * | 2011-12-22 | 2013-06-26 | 北大方正集团有限公司 | 一种生成及执行sql语句的方法和系统 |
CN104142949A (zh) * | 2013-05-10 | 2014-11-12 | 北京航天长峰科技工业集团有限公司 | 一种基于结构化和非结构化数据的统一管理方法 |
CN104572705A (zh) * | 2013-10-18 | 2015-04-29 | 镇江鼎拓科技信息有限公司 | 一种基于ibm中间件实现异构数据库连接方法 |
CN104794147A (zh) * | 2013-12-30 | 2015-07-22 | 深圳键桥通讯技术股份有限公司 | 异构数据库访问方法 |
CN105468619B (zh) * | 2014-09-03 | 2019-10-29 | 阿里巴巴集团控股有限公司 | 用于数据库连接池的资源分配方法和装置 |
CN105468619A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 用于数据库连接池的资源分配方法和装置 |
CN104503989B (zh) * | 2014-12-03 | 2019-04-19 | 中建材国际贸易有限公司 | 一种完成异构数据库归集的方法 |
CN104503989A (zh) * | 2014-12-03 | 2015-04-08 | 中建材国际贸易有限公司 | 一种完成异构数据库归集的方法 |
WO2016095644A1 (zh) * | 2014-12-19 | 2016-06-23 | 北京奇虎科技有限公司 | 数据库的高可用解决方法和装置 |
CN104462488B (zh) * | 2014-12-19 | 2018-05-11 | 北京奇虎科技有限公司 | 数据库的高可用解决方法和装置 |
CN104462488A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 数据库的高可用解决方法和装置 |
CN106156339A (zh) * | 2016-07-12 | 2016-11-23 | 泰康保险集团股份有限公司 | 保单管理系统的访问方法、装置及系统 |
CN106156339B (zh) * | 2016-07-12 | 2019-08-16 | 泰康保险集团股份有限公司 | 保单管理系统的访问方法、装置及系统 |
CN107402941A (zh) * | 2016-07-22 | 2017-11-28 | 延边众生云计算科技有限公司 | 通用数据交换接口及其实现方法 |
CN112711628A (zh) * | 2020-12-30 | 2021-04-27 | 北京楚梵基业科技有限公司 | 数据交互方法、装置和中台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102110099A (zh) | 基于养老保险预警系统的异构数据库中间件访问技术 | |
US7818352B2 (en) | Converting SPARQL queries to SQL queries | |
US7979455B2 (en) | RDF store database design for faster triplet access | |
CN101546325B (zh) | 基于soa的网格异构数据集成方法 | |
CN100401288C (zh) | 分布式数据源数据集成系统及方法 | |
US5317742A (en) | Dynamic translation of network management primitives to queries to a database | |
US20040201600A1 (en) | Methods and system for providing an XML-based interface description language | |
CA2443394A1 (en) | System and methods for highly distributed wide-area data management of a network of data sources through a database interface | |
AU2012337242A1 (en) | Systems and methods for dynamic service integration | |
CN103425726A (zh) | 使用业务智能工具访问开放数据 | |
CN103559189A (zh) | 基于元数据集成模型的电力仿真培训资源管理系统及方法 | |
CN107193898A (zh) | 基于分级复用的日志数据流的查询共享方法和系统 | |
CN107656951A (zh) | 一种同步异构数据库系统中实时数据的方法 | |
US9836503B2 (en) | Integrating linked data with relational data | |
CN103336782A (zh) | 一种关系型分布式数据库系统 | |
WO2021184580A1 (zh) | 域名智能解析方法、装置、电子设备及计算机可读存储介质 | |
CN113609141B (zh) | 一种基于api拼接的无侵入式跨库数据融合方法 | |
AU9010198A (en) | Relational database coexistence in object oriented environments | |
Ege et al. | Three-layered mediator architecture based on DHT | |
Gurgen et al. | A scalable architecture for heterogeneous sensor management | |
CN110019522A (zh) | 基于xml的多源异构数据整合系统 | |
Zhang et al. | JDBC-based middleware applications in instant message systems | |
KR100748697B1 (ko) | 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템 | |
Ghulam et al. | A Framework for Creating Global Schema Using Global Views from Distributed Heterogeneous Relational Databases in Multidatabase System | |
Amirian et al. | Implementation of a geospatial web service using web services technologies and native XML databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice |
Addressee: Yang Tao Document name: Notification of Publication of the Application for Invention |
|
DD01 | Delivery of document by public notice |
Addressee: Yang Tao Document name: Notification of before Expiration of Request of Examination as to Substance |
|
DD01 | Delivery of document by public notice |
Addressee: Yang Tao Document name: Notification that Application Deemed to be Withdrawn |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110629 |