专利名称:数据库适配器的制作方法
技术领域:
本发明涉及一种数据库适配器,尤指一种应用于电子政务信息交换平台(简称ACTIIP平台)中的数据库适配器。
背景技术:
ACTIIP平台是一个支持政务协作的信息交换平台,它作为电子政务系统的重要组成部分,支持不同应用系统之间的数据交换。数据交换是信息交换平台的基本功能,它实现了平台上任意合法用户之间的数据安全传输。数据交换是各类应用系统共享信息资源的公共渠道。作为支持政务协作的信息交换平台,ACTIIP基于统一的安全基础设施(如密码与CA),在数据交换和业务协作中实现了数据的机密性、完整性、确认性和不可否认性保护,解决了不同层次、不同平台之间的安全映射,构建了一个完整的、紧密的、一致的安全体系。
适配器作为ACTIIP中的一个模块,提供了上层应用系统与数据交换平台进行数据交换的接入方式,实现了上层应用和ACTIIP的交互功能,很好地兼容了上层应用不同的业务系统,实现了系统的数据转换、交换及集成需要。在现有的信息系统体系结构中,新的应用只能直接访问已有系统和数据,每新增一个新的应用就需要建立和多个已有系统之间的接口。如果某个已有系统的数据和接口出现变化,就必须修改涉及到的大量程序。而通过数据集成就可以针对已有系统的数据采用不同的适配器,满足新增应用的需要。当已有系统出现变化时(如当新的应用要求有新的接入方式时如socket接口),只需要调整相应的适配器即可,而不会影响其它的应用系统。
数据库适配器作为适配器中的一种,可以实现应用系统和数据库的集成及格式转换功能。但是,由于ACTIIP电子政务系统中,不同部门之间的应用系统及数据库各不相同,不同种类的数据库存在很大的差异,为了屏蔽不同数据库的差异,使不同应用系统的不同类型的数据库之间可以进行数据交换,简化系统的工作,提高运行的效率,需要一种新型的数据库适配器来解决这一问题。
发明内容
鉴于上述原因,本发明的目的是提供一种新型的数据库适配器,该数据库适配器可以屏蔽不同数据库的差异,整合来自不同系统、不同数据库的各种格式的数据,实现不同应用系统之间的数据交互。
为实现上述目的,本发明采用以下技术方案一种数据库适配器,其特征在于该数据库适配器由数据库监听器、数据库访问模块、数据包装类模块和结果集转换模块四部分构成;其中,数据库监听器与文件系统相连,主要负责监听或轮询文件系统中的发送缓冲池中的文件夹、解析文件夹中的文件;调用数据库访问模块对数据库进行操作;数据库访问模块与数据库监听器、数据库和结果集转换模块相连;数据库访问模块主要负责对数据库进行读和写操作;结果集转换模块与数据库访问模块和数据包装类模块相连,主要负责将不同数据库查询的结果集(记录)和元数据(描述数据库表的数据)转换成统一的XML格式以屏蔽异构数据库的差异,以及将XML文件转换成结构化的SQL数据库语言,通过数据库访问模块对数据库进行操作;数据包装类模块与结果集转换模块相连,主要用于缓存应用数据、记录数据存放的路径和传输文件的分片大小,提供对数据包装类模块中的应用数据的分片、读取、写入操作。
本发明提供的数据库适配器通过数据库访问模块采用JDBC技术访问数据库,获取数据结果集;再通过调用结果集转换模块将结果集序列化成半结构化的统一格式的XML文件,形成了一个与数据库字段无关的通用格式,发送给应用系统;数据库访问模块接收到文件后,先确定是否是对数据库的操作;然后结果集转换模块经过类型检查后,将符合统一格式的XML文件转换成SQL语句,通过数据库访问模块将数据插入到数据库中。
纵上所述,本发明提供的ACTIIP数据库适配器具有以下特点1、采用JDBC技术操作不同类型的数据库,屏蔽各数据库产品的差异。
2、通过将数据库的结构化数据转换成统一的半结构化XML文件,提高系统的兼容性。
3、通过将其它格式的数据转换成符合统一格式的XML数据,再根据XML数据转换成SQL语句,对数据库进行写操作,实现将非结构化的数据插入数据库,增强了系统的灵活性。
4、可将数据库元数据转换成XML文档传输到远端数据库适配器,并进行相应的建库、建表操作,简化了系统的操作。
5、将数据库的操作分为原子操作和复杂操作,复杂操作通过组合不同的原子操作实现。
图1为本发明提供的数据库适配器内部结构示意2为本发明提供的数据库适配器在ACTIIP平台中的位置关系图3为本发明提供的数据库适配器读数据库操作流程4为本发明提供的数据库适配器写数据库操作流程5为本发明对不同数据库的操作流程6为数据库原子操作组合成复杂操作的说明图具体实施方式
为了使不同应用系统之间能够通过数据交换平台进行不同数据库数据的交换,本发明提出了一种新型的数据库适配器。如图1所示,该数据库适配器由数据库监听器、数据库访问模块、数据包装类模块和结果集转换模块四部分构成。
数据库监听器与文件系统相连,主要负责监听或轮询文件系统中的发送缓冲池中的文件夹、解析文件夹中的文件。如果数据库监听器发现文件夹中有应用系统(如图2所示)通知要发送数据或往数据库中写入数据的文件时,则对该文件进行解析,然后调用数据库访问模块对数据库进行操作。
数据库访问模块与数据库监听器、数据库和结果集转换模块相连。数据库访问模块主要负责对数据库进行读和写操作,如对数据库中的数据进行查询、读取、将各种数据写入数据库中、删除数据库中的数据等操作。对数据库进行读操作是一个统称,分为带数据和不带数据两种情况。带数据的读操作是指当数据类型是元数据或结果集时,那么将原数据或结果集构造成xml文件,进行传输,并将其路径写入数据包装类;不带数据的读操作是指当数据只是简单的SQL语句时,不生成文件,直接将SQL语句写入数据包装类;两种操作都要写数据包装类,读出的数据都要发送到应用系统。写操作是指将接收到的数据插入到数据库中。
结果集转换模块与数据库访问模块和数据包装类模块相连,主要负责将不同数据库查询的结果集(记录)和元数据(描述数据库表的数据)转换成统一的XML格式以屏蔽异构数据库的差异,以及将XML文件转换成结构化的SQL数据库语言,通过数据库访问模块对数据库进行操作。
数据包装类模块与结果集转换模块相连,主要用于缓存应用数据,如从数据库中读取的数据和写入数据库中的数据,以及记录数据存放的路径和传输文件的分片大小。提供对数据包装类模块中的应用数据的分片、读取、写入等操作。
图2为本发明提供的数据库适配器在ACTIIP平台中的应用示意图。如图所示,本发明提供的数据库适配器作为适配器中的一种设置在ACTIIP平台中,为上层应用系统和数据库之间的通信提供交互的接口。数据库适配器实例化后(即生成具体的适配器),由ACTIIP平台内的适配器管理器启动,当数据库适配器内的数据库监听器监听到文件系统文件夹中有文件时,自动解析该文件,然后通过数据库访问模块对数据库进行操作。
图3为本发明提供的数据库适配器读数据库操作流程图。如图所示,1、首先,在数据库适配器启动之后,数据库监听器监控应用系统(文件系统)中发送缓冲池中的文件夹;监听到该文件夹后,监听线程调用平台引擎的添加事务方法,生成一个新事务,并设置事务的初始状态,将事务添加到相应的队列中,然后继续监听发送缓冲池;数据库监听器解析该文件夹中的文件;调用数据库访问模块对数据库执行读操作;2、数据库访问模块判断解析后的文件中是否带有数据?3、如果文件中没有数据,数据库访问模块直接将SQL语句写入数据包装类模块中,执行第8步;如果文件中有数据,进一步判断是否是查询数据库操作?如果不是,则直接将文件转换成XML文件发送给对方,将XML文件路径写到数据包装类模块中,执行第8步;如果是,则往下执行;4、连接数据库;5、执行查询操作,得到元数据或结果集;6、调用结果集转换模块将结果集转换成XML文件;7、数据库访问模块将XML文件发送给应用系统;8、修改事务状态,结束。
写数据操作是引擎控制的另一个独立线程,该线程调用适配器类的写数据方法(write()方法)写入数据。由于XML文档格式较关系型数据限制小,因此必须对即将入库的XML数据进行检查。检查分为两步首先,利用XML Schema对数据格式做初步检查,使用的XML Schema是根据描述关系数据库表结构的元数据自动生成的;其次,再利用数据元对XML数据的取值范围进行检查,这一点是XML Schema无法做到的。经过检查的XML数据即被认为是符合格式可以入库的数据。XML数据入库的操作实际就是根据XML数据向关系数据库增加记录,由数据库访问模块完成。
具体过程如图4所示,1、在数据库适配器启动之后,适配器客户端负责监听接收缓冲池,当对方(对方就是你要与之通信的那一方)发来文件时,适配器客户端解析文件并调用引擎的写线程,引擎的写线程调用数据库适配器的数据交换模块的写方法;
2、如果是写数据库的操作,则到3;否则直接将文件交给上层应用系统;3、连接数据库;4、结果集转换模块根据XML文件生成SQL语句;5、数据库访问模块执行SQL语句,向数据库中填加新数据;6、修改事务状态,结束。
如图5所示,为了实现对不同类型数据库的读或写操作,本发明提供的数据库适配器采用JDBC技术访问不同类型的数据库,并且,在数据库适配器中做了一个与不同数据库字段名称相对应的映射表,屏蔽不同数据库的差异,实现对不同数据库的操作。当应用系统向共享资源中写入管理信息和数据信息,数据库适配器监听器监听到后,数据库适配器执行后续操作通过JDBC访问数据库,并获取数据结果集;然后将结果集序列化成半结构化的统一格式的XML文件,形成了一个与数据库字段无关的通用格式,发送给对方,从而屏蔽异构数据库的差异;对方接收到文件后,数据库访问模块先确定是否是对数据库的操作,然后数据库适配器经过类型检查后,将符合统一格式的XML文件转换成SQL语句,将数据插入到数据库中。从而,实现本发明屏蔽不同数据库的差异,整合来自不同系统、不同数据库的各种格式的数据,实现不同应用系统之间数据交互的目的。
如图6所示,本发明提供的数据库适配器的数据库访问模块提供有许多原子操作,如查询、插入、删除等。当数据库适配器需要对数据库执行复杂操作时,如数据库的建表、表迁移等,数据库访问模块就将这些原子操作按不同顺序组合起来实现复杂操作。
纵上所述,本发明提供的ACTIIP数据库适配器具有以下特点1、采用JDBC技术操作不同类型的数据库,屏蔽各数据库产品的差异。
2、通过将数据库的结构化数据转换成统一的半结构化XML文件,提高系统的兼容性。
3、通过将其它格式的数据转换成符合统一格式的XML数据,再根据XML数据转换成SQL语句,对数据库进行写操作,实现将非结构化的数据插入数据库,增强了系统的灵活性。
4、可将数据库元数据转换成XML文档传输到远端数据库适配器,并进行相应的建库、建表操作,简化了系统的操作。
5、将数据库的操作分为原子操作和复杂操作,复杂操作通过组合不同的原子操作实现。
权利要求
1.一种数据库适配器,其特征在于该数据库适配器由数据库监听器、数据库访问模块、数据包装类模块和结果集转换模块四部分构成;其中,数据库监听器与文件系统相连,主要负责监听或轮询文件系统中的发送缓冲池中的文件夹、解析文件夹中的文件;调用数据库访问模块对数据库进行操作;数据库访问模块与数据库监听器、数据库和结果集转换模块相连;数据库访问模块主要负责对数据库进行读和写操作;结果集转换模块与数据库访问模块和数据包装类模块相连,主要负责将不同数据库查询的结果集(记录)和元数据(描述数据库表的数据)转换成统一的XML格式以屏蔽异构数据库的差异,以及将XML文件转换成结构化的SQL数据库语言,通过数据库访问模块对数据库进行操作;数据包装类模块与结果集转换模块相连,主要用于缓存应用数据、记录数据存放的路径和传输文件的分片大小,提供对数据包装类模块中的应用数据的分片、读取、写入操作。
2.根据权利要求1所述的数据库适配器,其特征在于所述数据库访问模块对数据库进行读操作分为带数据和不带数据两种情况;带数据的读操作是指将数据库元数据及记录读取到数据包装类模块中将从数据库读取的结果集或原数据或者是其他形式的文件构造成xml文件进行传输,并将路径写入数据包装类;不带数据的操作是将SQL语句写入到数据包装类;写操作是指将接收到的数据插入到数据库中。
3.根据权利要求2所述的数据库适配器,其特征在于所述数据库访问模块通过JDBC访问数据库,并获取数据结果集;结果集转换模块将结果集序列化成半结构化的统一格式的XML文件,形成了一个与数据库字段无关的通用格式,发送给对方;所述数据库访问模块接收到文件后,先确定是否是对数据库的操作;然后结果集转换模块经过类型检查后,将符合统一格式的XML文件转换成SQL语句,将数据插入到数据库中。
4.根据权利要求1所述的数据库适配器,其特征在于所述数据库访问模块提供有许多原子操作和复杂操作,复杂操作通过将这些原子操作按不同顺序组合起来实现的。
全文摘要
本发明公开了一种新型的数据库适配器,它由数据库监听器、数据库访问模块、数据包装类模块和结果集转换模块构成。数据库监听器负责监听或轮询文件系统发送缓冲池中的文件夹、解析文件夹中的文件;调用数据库访问模块对数据库进行读、写操作。结果集转换模块与数据库访问模块和数据包装类模块相连,主要负责将不同数据库查询的结果集和元数据转换成统一的XML格式以屏蔽异构数据库的差异,以及将XML文件转换成结构化的SQL数据库语言,通过数据库访问模块对数据库进行操作。数据包装类模块主要用于缓存应用数据、记录数据存放的路径和传输文件的分片大小,提供对数据包装类模块中的应用数据的分片、读取、写入操作。
文档编号G06F17/30GK1904885SQ20051008871
公开日2007年1月31日 申请日期2005年7月29日 优先权日2005年7月29日
发明者韩军, 唐鹏, 刘旭东, 逯鹏, 程炜, 方伟 申请人:北京航空航天大学