CN101877002A - 基于统一接口的内存数据库分布式访问方法及系统 - Google Patents

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

Info

Publication number
CN101877002A
CN101877002A CN2009103106702A CN200910310670A CN101877002A CN 101877002 A CN101877002 A CN 101877002A CN 2009103106702 A CN2009103106702 A CN 2009103106702A CN 200910310670 A CN200910310670 A CN 200910310670A CN 101877002 A CN101877002 A CN 101877002A
Authority
CN
China
Prior art keywords
module
memory database
server
rtdbintf
rtdbproxy
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.)
Granted
Application number
CN2009103106702A
Other languages
English (en)
Other versions
CN101877002B (zh
Inventor
张新坡
周逢权
宋晓炜
罗开明
刘岩
张展国
王小路
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
Xuji Group Co Ltd
XJ Electric Co Ltd
Original Assignee
Xuji Group Co Ltd
XJ Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xuji Group Co Ltd, XJ Electric Co Ltd filed Critical Xuji Group Co Ltd
Priority to CN2009103106702A priority Critical patent/CN101877002B/zh
Publication of CN101877002A publication Critical patent/CN101877002A/zh
Application granted granted Critical
Publication of CN101877002B publication Critical patent/CN101877002B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及基于统一接口的内存数据库分布式访问方法及系统,该系统包括客户机和主备用服务器,客户机中包括面向对象类内存数据库接口rtdbintf模块和本地内存数据库,所述主备服务器中包括代理服务rtdbproxy模块和服务器内存数据库,通过rtdbintf模块直接调用内存数据库API来访问本地内存数据库,或通过rtdbproxy访问远程服务器内存数据库,rtdbintf模块和rtdbproxy模块通过socket建立TCP/IP连接;本发明使用统一的接口提供分布式内存数据库问并进行透明数据交换,解决了异构机之间的内存数据库数据转换问题。

Description

基于统一接口的内存数据库分布式访问方法及系统
技术领域
本发明涉及电力自动化控制技术领域,尤其是基于统一接口的内存数据库分布式访问方法及系统。
背景技术
传统的内存数据库系统仅提供本地访问接口,已渐渐不适应现代电力自动化系统分布式部署的现实需求,能够支持内存数据库远程访问的接口体系成为了电力自动化系统开发中的重要内容。
现有技术中,已有一些公司开发了自己的内存数据库远程访问接口,却存在以下不足:远程访问和本地访问内存数据库通过不同的接口来实现,不具有统一性;没有解决异构机之间的内存数据库数据交换问题;使用复杂,需要开发人员深入了解通信协议;不支持主备冗余机制。
发明内容
本发明的目的是提供一种基于统一接口的内存数据库分布式访问方法,使用统一接口提供本地和远程访问功能,并进行透明数据交换,以解决异构机之间内存数据库的数据转换问题。
本发明的另一目的是提供一种基于统一接口的内存数据库分布式访问系统,以实现异构机之间内存数据库的数据转换。
本发明的基于统一接口的内存数据库分布式访问方法包括以下步骤:
在客户机上装设面向对象类内存数据库接口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方法获得IRTDBConnection连接接口,该连接接口具有设置连接参数、建立数据库连接等功能。
(2)通过IRTDBConnection的GetDatabase方法获得IRTDBDatabase数据库接口,该接口具有打开指定内存数据库库、查询当前数据库包含表的个数及名字等功能。
(3)通过IRTDBDatabase数据库接口的GetQuery方法得到IRTDBQuery查询接口对象,该接口具有条件查询、遍历结果集、读写字段值等功能。
(4)通过IRTDBDatabase数据库接口的GetTableSchema方法得到IRTDBTableSchema表结构信息接口对象,该接口具有查询当前表定义信息功能,如表名称、表包含的字段个数及名字等。
(5)通过IRTDBTableSchema表结构信息接口的GetFieldSchema方法得到IRTDBFieldSchema字段信息接口对象,该接口具有查询当前字段定义信息的功能,如字段名称、字段类型、字段长度等。
其中,应用程序通过rtdbintf接口模块访问本地内存数据库的实现方式与传统内存数据库访问方法一致,不再详述。
如图2所示,为本发明提出的一种应用程序访问远程服务器内存数据库情形的示意图,实现过程包括以下几点:
1,应用程序模块在调用rtdbintf模块中的IRTDBConnection连接接口建立连接时,需要同时指定主备服务器的IP地址和rtdbproxy的服务端口号,本发明支持网络冗余,即一台服务器可以指定多个IP地址。
2,IRTDBConnection连接接口向主服务器中rtdbproxy模块发送连接请求,交换连接信息。
连接请求报文
  名称  类型   长度   备注
  主机字节顺序  unsigned int   4   客户机的主机字节顺序
  协议版本号  unsigned char   1   rtdbintf模块通信协议版本
2)连接响应报文
  名称  类型   长度  备注
  主机字节顺序  unsigned int   4  服务器的主机字节顺序
  服务句柄  int   4  rtdbproxy启动时产生的随机数
  协议版本号  unsigned char   1  rtdbproxy模块通信协议版本
rtdbintf接口模块根据rtdbproxy返回的报文确定通信协议版本是否相容及是否需要转换字节顺序。具体地,如果服务器和客户机体系结构相同,则不做任何转换;如果服务器和客户机体系结构不同,则rtdbintf模块负责将整型数据、浮点型数据的内存字节顺序颠倒,即将第一个字节的内容与最后一个字节的内容互换、将第二个字节的内容与倒数第二个字节的内容互换,依次类推。
rtdbintf还可以通过rtdbproxy的服务句柄知道当前连接的rtdbproxy是否重新启动过,据此判断是否需要更新自己缓存的信息。
3,所有的通信都使用统一的报文头。
公共请求报文头
rtdbproxy根据报文类型解析报文,执行相应的操作并返回给rtdbintf。
  名称  类型   长度   备注
  报文长度  unsigned int   4   当前报文长度
  报文类型  unsigned char   1   当前报文类型
2)公共响应报文头
  名称  类型   长度   备注
  状态码  unsigned int   4   请求执行的结果状态码
  报文长度  int   4   当前报文长度
  角色信息  unsigned int   4   rtdbproxy的主备状态
  名称  类型   长度   备注
  报文类型  unsigned char   1   报文类型
rtdbintf根据响应报文判断请求是否得到正确执行,并可以判断rtdbproxy的主备状态是否发生改变,如果没有变化继续执行。如果发生改变,则将活动连接切换到另一台服务器上。
二、基于统一接口的内存数据库分布式访问系统包括客户机和主、备服务器,所述客户机中包括面向对象类内存数据库接口rtdbintf模块、本地内存数据库和应用程序模块,所述主、备服务器中包括代理服务rtdbproxy模块和服务器内存数据库,应用程序模块通过所述rtdbintf模块可以直接调用内存数据库API来访问本地内存数据库,或通过rtdbintf模块和rtdbproxy模块访问远程服务器内存数据库,rtdbintf模块和rtdbproxy模块通过socket建立TCP/IP连接,使用通信协议RTDB*NET交换数据,所述rtdbintf模块包括IRTDBConnection连接接口、IRTDBDatabase数据库接口、IRTDBQuery查询接口、IRTDBTableSchema表结构信息接口和IRTDBFieldSchema字段信息接口,通过使用该同组接口,用户可以任意选择访问本地还是服务器内存数据库。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
本发明使用统一的接口提供分布式内存数据库问并进行透明数据交换,解决了异构机之间的内存数据库数据转换问题,通信协议对应用程序透明并支持主备冗余机制,采用类商用数据库的接口体系,降低开发人员的学习曲线。

Claims (6)

1.基于统一接口的内存数据库分布式访问方法,其特征在于,该方法包括以下步骤:
在客户机上装设面向对象类内存数据库接口rtdbintf模块,通过该模块访问本地内存数据库或服务器内存数据库;
在主、备服务器上运行代理服务rtdbproxy模块;
若应用程序访问本地内存数据库,rtdbintf模块将通过内存数据库API直接访问本机上的内存数据库;
若应用程序访问远程服务器的内存数据库,则rtdbintf模块和主服务器rtdbproxy模块通过Socket建立TCP/IP连接,rtdbintf模块将访问请求封装成协议包,发送给主服务器的rtdbproxy模块,该rtdbproxy模块能够获取服务器的主备角色信息、解析收到的报文、访问服务器内存数据库,再返回执行结果;
rtdbintf模块和rtdbproxy模块使用RTDB*NET通信协议交换所在主机的体系结构信息(即内存布局)和服务器的主备角色信息。
2.根据权利要求1所述的基于统一接口的内存数据库分布式访问方法,其特征在于,在rtdbintf模块向rtdbproxy模块发送访问请求和接收到来自rtdbproxy模块的返回信息时,要根据服务器和客户机体系结构的异同选择是否进行相应的字节顺序转换,如果服务器和客户机体系结构不同,则rtdbintf模块将整型数据、浮点型数据的内存字节顺序颠倒。
3.根据权利要求2所述的基于统一接口的内存数据库分布式访问方法,其特征在于,rtdbintf模块接到rtdbproxy模块返回的信息时,检查服务器的主备角色是否发生变化,如果有变化就将活动连接主动切换到新的主服务器上。
4.根据权利要求3所述的基于统一接口的内存数据库分布式访问方法,其特征在于,在应用程序调用rtdbintf接口模块建立和rtdbproxy模块连接时,需要同时指定主备服务器的IP地址和rtdbproxy的服务端口号。
5.基于统一接口的内存数据库分布式访问系统,其特征在于,该系统包括客户机和主、备服务器,所述客户机中包括面向对象类内存数据库接口rtdbintf模块、本地内存数据库和应用程序模块,所述主备服务器中分别包括代理服务rtdbproxy模块和服务器内存数据库,所述应用程序模块通过所述rtdbintf模块直接调用内存数据库API来访问本地内存数据库,或通过rtdbproxy访问远程服务器内存数据库,rtdbintf模块和rtdbproxy模块通过socket建立TCP/IP连接,使用RTDB*NET通信协议交换数据。
6.根据权利要求5所述的基于统一接口的内存数据库分布式访问系统,其特征在于:所述rtdbintf模块包括连接接口、数据库接口、查询接口、表结构信息接口和字段信息接口,通过使用该组接口,用户可以任意选择访问本地还是服务器内存数据库。
CN2009103106702A 2009-11-30 2009-11-30 基于统一接口的内存数据库分布式访问方法及系统 Expired - Fee Related CN101877002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009103106702A CN101877002B (zh) 2009-11-30 2009-11-30 基于统一接口的内存数据库分布式访问方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009103106702A CN101877002B (zh) 2009-11-30 2009-11-30 基于统一接口的内存数据库分布式访问方法及系统

Publications (2)

Publication Number Publication Date
CN101877002A true CN101877002A (zh) 2010-11-03
CN101877002B CN101877002B (zh) 2012-02-01

Family

ID=43019560

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009103106702A Expired - Fee Related CN101877002B (zh) 2009-11-30 2009-11-30 基于统一接口的内存数据库分布式访问方法及系统

Country Status (1)

Country Link
CN (1) CN101877002B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224834A (zh) * 2015-08-21 2016-01-06 镇江乐游网络科技有限公司 移动网络中基于角色的访问控制的系统及方法
WO2017063441A1 (zh) * 2015-10-15 2017-04-20 华为技术有限公司 一种数据库访问控制方法,及装置
CN107301190A (zh) * 2016-04-15 2017-10-27 中国移动通信集团湖北有限公司 一种控制数据访问的方法及装置
CN107463687A (zh) * 2017-08-10 2017-12-12 中国民航信息网络股份有限公司 多酒店平台查询方法和系统
CN108073635A (zh) * 2016-11-18 2018-05-25 中国电力科学研究院 一种电力信息系统数据场景加载的系统及其加载方法
CN108965054A (zh) * 2018-07-12 2018-12-07 南瑞集团有限公司 一种客户端与服务端数据快速交互方法
CN109241019A (zh) * 2018-08-02 2019-01-18 中国建设银行股份有限公司 不同存储介质间的数据交换系统、方法、装置和存储介质
CN110990468A (zh) * 2019-11-12 2020-04-10 中核控制系统工程有限公司 一种基于关系数据库的dcs在线配置解决方法
CN116483483A (zh) * 2023-06-21 2023-07-25 中科方德软件有限公司 数据查询方法、装置及电子设备
CN117806852A (zh) * 2024-03-01 2024-04-02 傲拓科技股份有限公司 一种接口调用方法、装置、存储介质及处理器

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224834A (zh) * 2015-08-21 2016-01-06 镇江乐游网络科技有限公司 移动网络中基于角色的访问控制的系统及方法
US10726035B2 (en) 2015-10-15 2020-07-28 Huawei Technologies Co., Ltd. Database access control method and apparatus
WO2017063441A1 (zh) * 2015-10-15 2017-04-20 华为技术有限公司 一种数据库访问控制方法,及装置
CN106599711A (zh) * 2015-10-15 2017-04-26 华为技术有限公司 一种数据库访问控制方法,及装置
CN107301190A (zh) * 2016-04-15 2017-10-27 中国移动通信集团湖北有限公司 一种控制数据访问的方法及装置
CN108073635A (zh) * 2016-11-18 2018-05-25 中国电力科学研究院 一种电力信息系统数据场景加载的系统及其加载方法
CN107463687A (zh) * 2017-08-10 2017-12-12 中国民航信息网络股份有限公司 多酒店平台查询方法和系统
CN108965054A (zh) * 2018-07-12 2018-12-07 南瑞集团有限公司 一种客户端与服务端数据快速交互方法
CN109241019A (zh) * 2018-08-02 2019-01-18 中国建设银行股份有限公司 不同存储介质间的数据交换系统、方法、装置和存储介质
CN110990468A (zh) * 2019-11-12 2020-04-10 中核控制系统工程有限公司 一种基于关系数据库的dcs在线配置解决方法
CN110990468B (zh) * 2019-11-12 2023-10-20 中核控制系统工程有限公司 一种基于关系数据库的dcs在线配置解决方法
CN116483483A (zh) * 2023-06-21 2023-07-25 中科方德软件有限公司 数据查询方法、装置及电子设备
CN116483483B (zh) * 2023-06-21 2023-09-19 中科方德软件有限公司 数据查询方法、装置及电子设备
CN117806852A (zh) * 2024-03-01 2024-04-02 傲拓科技股份有限公司 一种接口调用方法、装置、存储介质及处理器
CN117806852B (zh) * 2024-03-01 2024-05-14 傲拓科技股份有限公司 一种接口调用方法、装置、存储介质及处理器

Also Published As

Publication number Publication date
CN101877002B (zh) 2012-02-01

Similar Documents

Publication Publication Date Title
CN101877002B (zh) 基于统一接口的内存数据库分布式访问方法及系统
CN101944770B (zh) 一种故障信息系统61850主子站间虚拟站级ied模式的通信实现方法
CN102880475B (zh) 计算机软件系统中基于云计算的实时事件处理系统及方法
CN101605056B (zh) 一种j2ee服务器监控装置及采用该装置的监控方法
JP6444405B2 (ja) ソフトウェア更新方法、システム及びデバイス
CN1280726C (zh) 一种用于嵌入式系统软件开发的虚拟机装置
CN206249316U (zh) 一种基于云端的医院数据中心平台系统
CN102693324A (zh) 一种分布式数据库同步系统、同步方法和节点管理方法
WO2021056793A1 (zh) 一种输电线路分布式故障诊断系统及方法
CN102081611A (zh) 一种主、备网管系统数据库同步的实现方法及装置
CN112422519A (zh) 一种电力物联网ip化融合终端及其通信方法
CN105763619A (zh) 客户端与服务端进行通讯的方法及装置
CN105577446A (zh) 一种轻量级嵌入式网络管理系统和方法
CN107357571A (zh) 设备组件程序的维护方法、系统及组件服务器
CN111541599B (zh) 基于数据总线的集群软件系统及方法
CN101098256A (zh) 一种基于简单网络管理协议的集群管理方法和系统
CN100334841C (zh) 一种基于分级链表和动态xml技术的lcs网管方法
CN117459444A (zh) 微服务同城双活同中心优先路由方法、设备及存储介质
KR20160103110A (ko) 네트워크 요소 데이터 액세스 방법, 액세스 장치, 및 네트워크 관리 시스템
CN101056210B (zh) 一种网络集中管理平台上的事件处理系统和方法
CN102006178A (zh) 一种snmp网络管理方法和系统
CN100486345C (zh) 基于pc服务器的业务系统
CN1972276A (zh) 一种协议访问管理方法和系统
CN103684904A (zh) 基于ip三网融合网络监控系统
CN100544369C (zh) 一种基于消息的分布式系统以及在其中通信的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: XUJI ELECTRIC CO., LTD. STATE GRID CORPORATION OF

Free format text: FORMER OWNER: XUJI ELECTRIC CO., LTD.

Effective date: 20121129

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20121129

Address after: No. 1298 Xuchang City, Henan province 461000 XJ Avenue

Patentee after: Xuji Group Co., Ltd.

Patentee after: Xuji Electric Co., Ltd.

Patentee after: State Grid Corporation of China

Address before: No. 1298 Xuchang City, Henan province 461000 XJ Avenue

Patentee before: Xuji Group Co., Ltd.

Patentee before: Xuji Electric Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120201

Termination date: 20191130

CF01 Termination of patent right due to non-payment of annual fee