专利名称:数据库中间件系统的制作方法
技术领域:
本发明涉及通信领域,具体涉及一种用于通信行业的数据库中间件。
背景技术:
目前商用的数据库如0raCle、SQL Server, MySQL等都是使用c和c++开发的,所以它对外提供的接口基本上是c的API (应用程序接口),于是以前的数据库都是使用嵌 入式的c或c++等进行访问,这就给开发系统带来了困难。后来随着数据技术的发展,数据 库管理系统的厂商开始针对不同的语言提供不同语言的API,这是一个巨大的进步,但是又 存在一个问题使用不同的数据库的应用程序,不能相互移植,即各个数据库管理系统不兼 容。这就给软件的开发,移植和扩展带来了很大的问题,违背了软件工程的思想。基于上述背景,数据库中间件技术应运而生。其中最典型的当数微软的数据库中 间件方案ODBC,及其扩展和发展如OLEDB、ADO以及ADO. NET和JAVA平台的JDBC技术,以 及在其上所开发的更高层的中间件技术。目前主要存在以下各种技术从最原始的GUI技 术和数据库API使用,再到微软数据库中间件技术,再到JAVA平台的数据库访问技术。这 些技术都存在着不同的缺点,比如,CGI程序不能被多个客户请求共享,每当接到一个客户 请求,即使有一个该CGI程序的实例在运行,也必须重新启动一个相同的实例,即创建一个 并发进程.并发请求越多,创建的并发进程越多,占用了大量内存,限制了应用程序自身所 用的内存资源,而且每个请求创建一个进程也会消耗很多时间,在需要多个数据库连接的 多用户应用中,采用CGI来连接数据库势必会随用户的增加而增加用户连接数据库的等待 时间,使系统的性能降低,并可导致系统最终的崩溃。再比如,API相互之间不兼容,它们只 能在特定的服务器和操作系统上运行,由于采用了动态链接库的形式,一旦代码质量较差 就比较容易造成服务器系统的崩溃,并且进行程序设计时会更复杂,由于它们与具体的数 据库耦合性太强,对于不同的数据库来说开发应用灵活性差,加上依赖于具体的平台和相 应的数据库版本,使其移植性差,从而导致开发周期加大,可靠性难以得到保障。
发明内容
一种数据库中间件系统,其与外部数据库连接,所述数据库中间件系统包括数据处理通信组件,为外部应用程序组件提供应用程序接口以便加载所述中间件 系统,且调度与管理所述数据库中间件系统通过msip协议与外部应用程序组件通信,从而 实现所述外部应用程序组件与所述外部数据库的通信;数据库处理组件,包括1)共享数据 库连接模块,其和所述外部数据库通信,以及2)数据库操作监控器模块,其检测所述数据 库中间件系统与所述外部数据库之间的连接是否有效,若发现连接无效则调用所述共享数 据库连接模块以实现与所述外部数据库的连接;以及信息管理组件,包括服务管理器模块, 其为不同的任务设定不同的处理优先级,且与所述数据处理通信组件以及数据库处理组件 相互协调,根据所设定的处理优先级,并根据任务与其所处的网络环境的相互关系,动态地 调度任务;其中当收到外部应用程序组件对数据的请求时,所述数据处理通信组件与所述服务管理器模块通信,所述服务管理器模块根据所述请求,调度所述共享数据库连接模块 使其提供与所述请求相应的接口,再由所述共享数据库连接模块与外部数据库进行交互数 据操作,并返回操作结果。以上概述仅为示意性的,并不意在以任何方式进行限制。除了上文所述的示意性 方面、实施例和特征之外,将通过参照附图和下文的详细描述而使进一步的方面、实施例和 特征变得明显。
图1是根据本公开内容的一个实施方案的数据库中间件系统的模块架构图。
具体实施例方式在下文的详细描述中,将参照形成本说明书一部分的附图。在附图中,相似的附图 标记通常指代相似的部件,除非上下文中另行指出。在详细说明书、附图和权利要求书中所 描述的示意性实施例并不意在限制。在不偏离在此展现的主体的精神和范围的情况下,可 以采用其他实施例,并且可以进行其他变化。易于理解的是,在此所大致描述的以及附图 中所图示的本公开内容的各方面可以在宽泛的配置变化中进行排列、替换、组合、分拆和删 节,所有这些均被明确考虑于此。图1是根据本公开内容的一个实施方案的数据库中间件系统的模块架构图。在此 实施方案中公开了一种数据库中间件系统100,其与外部数据库300如图中所示的Oracle 数据库310、DB数据库320等连接,数据库中间件系统100包括数据处理通信组件101,为外部应用程序组件200诸如自动呼叫分配系统210、人 工坐席系统220等提供应用程序接口以便加载数据库中间件系统100,且调度与管理数据 库中间件系统100通过msip协议与外部应用程序组件200通信,从而实现外部应用程序 组件200与外部数据库组件300的通信。msip协议是一种中间件与外部各应用程序通信 协议,该通信协议按照通信行业特点设计,涵盖通信行业数据处理各种内容,协议可自动加 载,自动升级,自动识别不同通讯版本和通讯请求。中间件系统100通过msip协议与外部 应用程序组件的通信采用TCP/IP的方式进行,支持单包、多包,根据业务特点自动拆包、自 动组包,支持根据业务优先级和属性保持数据零丢失、零误码。在这个实施方案中,数据库中间件系统100还包括了数据库处理组件120,其包括 1)共享数据库连接模块121,其和外部数据库300诸如Oracle数据库310、DB数据库320 等通信,负责与外部数据库之间通信,接口的实现,实现中间件与各种数据库连接的物理操 作;以及2)数据库操作监控器模块122,其检测数据库中间件系统100与外部数据库诸如 Oracle, DB等之间的连接是否有效,若发现连接无效则调用共享数据库连接模块121以实 现与外部数据库300的连接。也就是说,数据库操作监控器模块122负责调度管理中间件 系统100与外部数据库300的物理连接的有效性和连接池的动态维护。在这个实施方案中,数据库中间件系统100还包括了信息管理组件130。针对通信 行业中网络环境具有异构性、动态性和分布性,数据流量大,不同业务有着等级处理区别, 加之对数据实时性和准确性要求高的特点,信息管理组件130采用了业务优先动态调度自 适应算法,这需要数据处理通信组件110、数据库操作监控器模块122、共享数据库连接模块121的相互协调。该算法利用业务和环境的交互模型来动态地实现网络中的任务分配。 相比于现有技术的方法,该算法对于网络中的动态环境具有更好的适应性,且调度性能更 优。在这个实施方案中,信息管理组件130包括例如服务管理器模块131,其为不同的任务 设定不同的处理优先级,且与数据处理通信组件101以及数据库处理组件120相互协调,根 据所设定的处理优先级,并根据任务与其所处的网络环境的相互关系,动态地调度任务。服 务管理器模块131管理所有服务信息,协调中间件100内各个组件的调度,同时也为外部组 件提供共享数据呈现,兼容各种操作系统和32位及64位系统。当收到外部应用程序组件200对数据的请求时,所述数据处理通信组件110与服 务管理器模块131通信,所述服务管理器模块根据所述请求,调度共享数据库连接模块121 使其提供与所述请求相应的接口,再由共享数据库连接模块121与外部数据库300进行交 互数据操作,并返回操作结果。中间件操作结果提供成功、失败、异常、多结果集、单结果 集、自定义结果集等多种类型,数据类型及字段定义与数据库无关,实现了数据库切换或操 作系统切换时的兼容性问题,满足通信行业操作系统种类繁多、数据库种类繁多、分布式部 署、跨平台部署、异地部署等特性。在根据本公开内容的一个实施方案中,数据库中间件系统还包括辅助功能组件 140,其包括日志管理器模块141。日志管理器模块141记录数据库中间件系统100中各组 件的日志信息,并读取配置文件150供数据库中间件系统100的各组件调用,例如通过全局 变量142读取配置文件150。辅助功能组件140实现了配置文件信息管理、日志记录等功 能,并协调中间件内其他各模块的动作,方便外部应用程序组件200对各种操作的事件和 结果进行跟踪,有效的减低排查问题的时间周期。在此实施方案中,对外部数据库300相关 的信息进行的修改均通过调用配置文件150而实现,所述修改可包括对数据请求的增加和 减少,还可包括对数据字段的名称、属性、长度以及内容的修改。任何改动无需修改中间件 程序和业务层程序(外部应用程序组件)。根据本发明的实施方案的数据库中间件系统,所有与外部数据库有关的操作都集 成在该中间件,部署时用一个应用程序加载该中间件系统作为服务端,而外部组件只需要 遵循msip协议规范通过加载了该中间件的应用程序即可实现与数据库的信息交互,从而 可实现不同数据库间快速切换,且数据库切换时无需增加额外数据库授权,整体平台业务 层即外部应用程序组件不需做任何调整,大大降低了大容量、高可靠性系统的开发周期。根 据本发明的实施方案的数据库中间件系统适合通信行业中不同规模的公司,适于被不同业 务特点、不同容量的系统使用,且在系统用户数变化、系统容量、性能有所调整后,能适应系 统调整前后的多种操作系统或数据库的性能要求。在满足以上需求的同时,根据本发明的 实施方案的数据库中间件系统与现有的各种中间件相比较又无需安装多种数据引擎系统 包,软件绿色,易加载使用,且经过了上千万用户级大系统长期无间断运行的考验。虽然已结合优选实施方案和特定实施例描述了本公开内容,但并不意味着本公开 内容的范围仅限于所阐述的特定实施方案,因为此处的实施方案在所有方面均为描述目的 而不为限制目的。对本领域技术人员而言,显然可以对本公开内容作出修改和变更而不脱 离其范围和精神。此处的说明和实施例仅为举例,而本公开内容的真正范围和精神将由下 面的权利要求书表示。
权利要求
一种数据库中间件系统,其与外部数据库连接,所述数据库中间件系统包括数据处理通信组件,为外部应用程序组件提供应用程序接口以便加载所述中间件系统,且调度与管理所述数据库中间件系统通过msip协议与外部应用程序组件通信,从而实现所述外部应用程序组件与所述外部数据库的通信;数据库处理组件,包括1)共享数据库连接模块,其和所述外部数据库通信,以及2)数据库操作监控器模块,其检测所述数据库中间件系统与所述外部数据库之间的连接是否有效,若发现连接无效则调用所述共享数据库连接模块以实现与所述外部数据库的连接;以及信息管理组件,包括服务管理器模块,其为不同的任务设定不同的处理优先级,且与所述数据处理通信组件以及数据库处理组件相互协调,根据所设定的处理优先级,并根据任务与其所处的网络环境的相互关系,动态地调度任务;其中当收到外部应用程序组件对数据的请求时,所述数据处理通信组件与所述服务管理器模块通信,所述服务管理器模块根据所述请求,调度所述共享数据库连接模块使其提供与所述请求相应的接口,再由所述共享数据库连接模块与外部数据库进行交互数据操作,并返回操作结果。
2.根据权利要求1所述的数据库中间件系统,其中所述数据库中间件系统还包括辅助 功能组件,其包括日志管理器模块,其记录所述数据库中间件系统各组件的日志信息,并读取配置文件 供所述数据库中间件系统各组件调用。
3.根据权利要求2所述的数据库中间件系统,其中对与所述外部数据库相关的信息进 行的修改均通过调用所述配置文件而实现。
4.根据权利要求3所述的数据库中间件系统,其中对与所述外部数据库相关的信息进 行的修改包括了对数据请求的增加和减少,以及对数据字段的名称、属性、长度以及内容的 修改。
全文摘要
数据库中间件系统,与外部数据库连接,包括数据处理通信组件,为外部应用程序组件提供应用程序接口以加载中间件系统,调度管理数据库中间件系统通过msip协议与外部应用程序组件通信,实现外部应用程序组件与外部数据库的通信;数据库处理组件,包括和外部数据库通信的共享数据库连接模块,及数据库操作监控器模块,检测数据库中间件系统与外部数据库之间的连接是否有效。数据库中间件系统还包括信息管理组件,其包括服务管理器模块,为不同任务设定不同处理优先级,与数据处理通信组件和数据库处理组件协调,根据设定的处理优先级并根据任务与所处的网络环境的关系,动态调度任务。
文档编号G06F9/46GK101840348SQ200910260170
公开日2010年9月22日 申请日期2009年12月24日 优先权日2009年12月24日
发明者伦建成, 姚滨晖 申请人:陕西移数通电讯有限公司