基于统一接口的内存数据库分布式访问方法及系统技术方案

技术编号:4366536 阅读:505 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及基于统一接口的内存数据库分布式访问方法及系统,该系统包括客户机和主备用服务器,客户机中包括面向对象类内存数据库接口rtdbintf模块和本地内存数据库,所述主备服务器中包括代理服务rtdbproxy模块和服务器内存数据库,通过rtdbintf模块直接调用内存数据库API来访问本地内存数据库,或通过rtdbproxy访问远程服务器内存数据库,rtdbintf模块和rtdbproxy模块通过socket建立TCP/IP连接;本发明专利技术使用统一的接口提供分布式内存数据库问并进行透明数据交换,解决了异构机之间的内存数据库数据转换问题。

【技术实现步骤摘要】

本专利技术涉及电力自动化控制
,尤其是基于统一接口的内存数据库分布式 访问方法及系统。
技术介绍
传统的内存数据库系统仅提供本地访问接口,已渐渐不适应现代电力自动化系统 分布式部署的现实需求,能够支持内存数据库远程访问的接口体系成为了电力自动化系统 开发中的重要内容。现有技术中,已有一些公司开发了自己的内存数据库远程访问接口,却存在以下 不足远程访问和本地访问内存数据库通过不同的接口来实现,不具有统一性;没有解决 异构机之间的内存数据库数据交换问题;使用复杂,需要开发人员深入了解通信协议;不 支持主备冗余机制。
技术实现思路
本专利技术的目的是提供一种基于统一接口的内存数据库分布式访问方法,使用统一 接口提供本地和远程访问功能,并进行透明数据交换,以解决异构机之间内存数据库的数 据转换问题。本专利技术的另一目的是提供一种基于统一接口的内存数据库分布式访问系统,以实 现异构机之间内存数据库的数据转换。本专利技术的基于统一接口的内存数据库分布式访问方法包括以下步骤在客户机上装设面向对象类内存数据库接口 rtdbintf模块,通过该模块访问本 地内存数据库或服务器内存数据库;在主、备服务器上运行代理服务rtdbproxy模块;若应用程序访问本地内存数据库,rtdbintf模块将通过内存数据库API直接访问 本机上的内存数据库;若应用程序访问远程服务器的内存数据库,则rtdbintf模块和主服务器 rtdbproxy模块通过Socket建立TCP/IP连接,rtdbintf模块将访问请求封装成协议包,发 送给主服务器的rtdbproxy模块,该rtdbproxy模块能够获取服务器的主备角色信息、解析 收到的报文、访问服务器内存数据库,再返回执行结果; rtdbintf模块和rtdbproxy模块使用RTDB*NET通信协议交换所在主机的体系结 构信息(即内存布局)和服务器的主备角色信息。在rtdbintf模块向rtdbproxy模块发送访问请求和接收到来自rtdbproxy模块 的返回信息时,要根据服务器和客户机体系结构的异同选择是否进行相应的字节顺序转 换,如果服务器和客户机体系结构不同,则rtdbintf模块将整型数据、浮点型数据的内存 字节顺序颠倒。rtdbintf模块接到rtdbproxy模块返回的信息时,检查服务器的主备角色是否发生变化,如果有变化就将活动连接主动切换到新的主服务器上。在应用程序调用rtdbintf接口模块建立和rtdbproxy模块连接时,需要同时指定 主备服务器的IP地址和rtdbproxy的服务端口号。本专利技术的基于统一接口的内存数据库分布式访问系统包括客户机和主备服务器, 所述客户机中包括面向对象类内存数据库接口 rtdbintf模块、本地内存数据库和应用程 序模块,所述主备服务器中分别包括代理服务rtdbproxy模块和服务器内存数据库,所述 应用程序模块通过所述rtdbintf模块直接调用内存数据库API来访问本地内存数据库,或 通过rtdbproxy访问远程服务器内存数据库,rtdbintf模块和rtdbproxy模 块通过socket 建立TCP/IP连接,使用RTDB*NET通信协议交换数据。所述rtdbintf模块包括连接接口、数据库接口、查询接口、表结构信息接口和字 段信息接口,通过使用该组接口,用户可以任意选择访问本地还是服务器内存数据库。本专利技术的基于统一接口的内存数据库分布式访问方法,使用了统一的接口提供分 布式内存数据库访问并进行透明数据交换,解决了异构机之间的内存数据库数据转换问 题,通信协议对应用程序透明并支持主备冗余机制,采用类商用数据库的接口体系,降低开 发人员的学习曲线。本专利技术的基于统一接口的内存数据库分布式访问系统中,客户机与主备服务器中 分别装设rtdbinft模块和rtdbproxy模块,使得异构机之间基于统一接口的内存数据库中 数据交换成为可能。附图说明图1是本专利技术实施例中的一种rtdbintf接口调用关系流程示意图;图2是本专利技术实施例中的一种远程访问过程示意图。具体实施例方式本专利技术针对现有内存数据库系统只提供本地访问接口,而不适应当前系统分布式 部署需求的现实,并且考虑到现有 SCADA(Supervisory Control And Data Acquisition) 系统分布式部署时,应用服务器和操作员工作站CPU体系结构的差异(即数据在内存中存 储的字节顺序不一致),SCADA系统实时库服务器采用主备机配置时,客户端只有访问主服 务器才能获得有效数据的需要,摒弃了现有内存数据库通常使用的专用的C语言API接口, 采用大多数C++程序员熟悉的类接口,提供面向对象的类商用数据库访问接口 rtdbintf模 块,能进行分布式内存数据库访问、数据透明转换、主备服务器透明切换的内存数据库访问 方法及系统。具体实施例如下一、基于统一接口的内存数据库分布式访问方法步骤如下(1)在客户机上装设面向对象类内存数据库接口 rtdbintf模块,通过该模块可以 访问本地内存数据库或服务器内存数据库;(2)在主、备服务器上运行代理服务rtdbproxy模块;(3)若应用程序访问本地内存数据库,rtdbintf模块将通过内存数据库API直接 访问本机上的内存数据库;若应用程序访问远程服务器内存数据库,则rtdbintf模块和主服务器的rtdbproxy模块通过Socket建立TCP/IP连接,rtdbintf模块将访问请求封装成协议包,该访问请求中需指定主备服务器的IP地址和rtdbproxy的服务端口号,将该协议包发送给主 服务器的rtdbproxy模块,该rtdbproxy模块能够获取主备角色信息、解析收到的报文、访 问服务器内存数据库,再返回执行结果;(4)rtdbintf模块和rtdbproxy模块建立连接时,同时交换所在主机的体系结构 信息(即内存布局)和服务器的主备信息。(5)在rtdbintf模块向主服务器rtdbproxy模块发送访问请求时以及接收到来 自rtdbproxy模块的返回信息时,要根据服务器和客户机体系结构的异同选择是否进行相 应的字节顺序转换,如果服务器和客户机体系结构不同,则rtdbintf模块将整型数据、浮 点型数据的内存字节顺序颠倒。(6)rtdbintf模块接到主服务器rtdbproxy模块返回的信息时,检查服务器的主 备角色是否发生变化,如果有变化就将活动连接主动切换到新的主服务器上。RTDB*NET通信协议是一个请求应答式协议,主要包括连接建立、数据库结构信息 查询、表结构信息查询、字段结构信息查询、记录查询、读字段、写字段、断开连接几个部分。如图1所示,为本专利技术提出的一种rtdbintf接口模块调用关系流程示意图,包括 以下步骤(1)应用程序调用rtdbintf接口模块的动态库导出的CreateRtdbConnection方 法获得IRTDBCormection连接接口,该连接接口具有设置连接参数、建立数据库连接等功 能。(2)通过 IRTDBConnection 的 GetDatabase 方法获得 IRTDBDatabase 数据库接 口, 该接口具有打开指定内存数据库库、查询当前数据库包含表的个数及名字等功本文档来自技高网...

【技术保护点】
基于统一接口的内存数据库分布式访问方法,其特征在于,该方法包括以下步骤:在客户机上装设面向对象类内存数据库接口rtdbintf模块,通过该模块访问本地内存数据库或服务器内存数据库;在主、备服务器上运行代理服务rtdbproxy模块;若应用程序访问本地内存数据库,rtdbintf模块将通过内存数据库API直接访问本机上的内存数据库;若应用程序访问远程服务器的内存数据库,则rtdbintf模块和主服务器rtdbproxy模块通过Socket建立TCP/IP连接,rtdbintf模块将访问请求封装成协议包,发送给主服务器的rtdbproxy模块,该rtdbproxy模块能够获取服务器的主备角色信息、解析收到的报文、访问服务器内存数据库,再返回执行结果;rtdbintf模块和rtdbproxy模块使用RTDB*NET通信协议交换所在主机的体系结构信息(即内存布局)和服务器的主备角色信息。

【技术特征摘要】

【专利技术属性】
技术研发人员:张新坡周逢权宋晓炜罗开明刘岩张展国王小路
申请(专利权)人:许继集团有限公司许继电气股份有限公司
类型:发明
国别省市:41[中国|河南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1