CN111651526A - 冗余前端处理器的数据同步方法、前端处理器和处理系统 - Google Patents

冗余前端处理器的数据同步方法、前端处理器和处理系统 Download PDF

Info

Publication number
CN111651526A
CN111651526A CN202010771185.1A CN202010771185A CN111651526A CN 111651526 A CN111651526 A CN 111651526A CN 202010771185 A CN202010771185 A CN 202010771185A CN 111651526 A CN111651526 A CN 111651526A
Authority
CN
China
Prior art keywords
data
end processor
virtual device
target virtual
storage space
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
CN202010771185.1A
Other languages
English (en)
Other versions
CN111651526B (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.)
Beijing Helishi System Integration Co ltd
Original Assignee
Beijing Hollysys 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 Beijing Hollysys Co Ltd filed Critical Beijing Hollysys Co Ltd
Priority to CN202010771185.1A priority Critical patent/CN111651526B/zh
Publication of CN111651526A publication Critical patent/CN111651526A/zh
Application granted granted Critical
Publication of CN111651526B publication Critical patent/CN111651526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种冗余前端处理器的数据同步方法、前端处理器和处理系统,通过第一前端处理器获得第二前端处理器发送的数据同步请求;获得与请求中的目标虚拟设备标识对应的配置信息,配置信息至少包括数据版本号和存储空间的容量;若配置信息中的数据版本号与请求中的数据版本号一致,且配置信息中的存储空间的容量与请求中的存储空间的容量一致,则获得存储目标虚拟设备的数据的存储空间的首地址;根据首地址和存储空间的容量,获得目标虚拟设备的数据;将目标虚拟设备的数据发送到第二前端处理器,使得第二前端处理器将本地数据库中的该目标虚拟设备的数据修改为第一前端处理器发送的目标虚拟设备的数据,以此提高数据的同步性和时效性。

Description

冗余前端处理器的数据同步方法、前端处理器和处理系统
技术领域
本发明涉及数据传输技术领域,特别是涉及一种冗余前端处理器的数据同步方法、前端处理器和处理系统。
背景技术
在大型的通信网络系统中,都必须配有前端处理器。一般一台前端处理器就是一台计算机,主要具有的功能是:字符或数据的分段与重组,各终端之间的数据代码转换,错误检测与恢复,为不同终端提供协议支持,各终端之间的数据交换,轮询终端,公用电话网络中自动应答,编辑网上的统计资料等。有的前端处理器还需要支持边缘计算、软可编程逻辑控制器(PLC,Programmable Logic Controller)以及数据转发的功能。
为了提高系统的可靠性,冗余前端处理器系统成为行业标配。冗余前端处理器系统在与设备或者子系统通信时,为了保持数据一致性或者为了避免通信链路通信冲突(例如RS485总线在同一时刻只允许有一个通信主站发起通信会话,若多个通信主站同时会话则会导致RS485链路冲突)。冗余前端处理器系统至少包括两个前端处理器(分别记为第一前端处理器和第二前端处理器),同一个实际的设备或子系统在两个前端处理器会分别映射有相应的一个虚拟设备。针对同一个实际的设备或子系统,同一个时刻仅有一个前端处理器的一个相应的虚拟设备实时通过各种接口协议从外部接口系统获得数据,通常需在该前端处理器本地以共享内存方式缓存数据,即对于同一个实际的设备或子系统,在同一个时刻仅能通过一个虚拟设备将数据更新至一个前端处理器的数据库中。
为了保持冗余前端处理器系统中的前端处理器的各自数据库中的数据的实时性和同步性,目前一般是主用虚拟设备与设备或者子系统通信一段时间后,预留一段短暂的通信时间,在该时间内将通信权限交给备用虚拟设备,备用虚拟设备在该短暂的通信时间内与设备或者子系统通信,并获得相应数据并更新至本地数据库,从而实现第一前端处理器的本地数据库中的该设备或者子系统的数据与第二前端处理器的本地数据库中的该设备或者子系统的数据同步。这种方式,第一前端处理器的本地数据库中的设备或者子系统的数据与第二前端处理器的本地数据库中的设备或者子系统的数据的同步性和时效性较差,且每次同步的数据量有限。
发明内容
本发明实施例的目的在于提供一种冗余前端处理器的数据同步方法、前端处理器和处理系统,以提高第一前端处理器的本地数据库中的设备或者子系统的数据与第二前端处理器的本地数据库中的设备或者子系统的数据的同步性和时效性。具体技术方案如下:
第一方面,一种冗余前端处理器的数据同步方法,包括:
第一前端处理器获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;
所述第一前端处理器从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;
若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,则所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;
所述第一前端处理器根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;
所述第一前端处理器将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器,使得所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据。
结合第一方面,在某些可选的实施方式中,在所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址之后,所述方法还包括:
将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器。
可选的,在某些可选的实施方式中,所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据,包括:
所述第二前端处理器获得与所述第一首地址匹配的第二首地址,其中,所述第二首地址为第二数据库中存储所述目标虚拟设备的数据的存储空间的首地址;
将所述第二数据库中以所述第二首地址开始,跨越所述存储空间的容量的存储区域中的数据修改为接收到的所述目标虚拟设备的数据。
可选的,在某些可选的实施方式中,所述第二前端处理器获得与所述第一首地址匹配的第二首地址,包括:
所述第二前端处理器从预先建立好的地址对照表中,获得与所述第一首地址匹配的第二首地址。
结合第一方面,在某些可选的实施方式中,所述方法还包括:
当所述第一前端处理器向所述第二前端处理器发送数据的次数达到预设次数时,所述第一前端处理器在预设时长内停止向所述第二前端处理器发送数据。
结合第一方面,在某些可选的实施方式中,若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号不一致,和/或,所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量不一致,则所述第一前端处理器向所述第二前端处理器发送所述第一配置信息中的数据版本号和所述第一配置信息中的存储空间的容量。
第二方面,一种前端处理器,所述前端处理器包括:同步触发模块、配置搜索模块、配置比较模块、首地址获得模块、数据获得模块和数据发送模块;
所述同步触发模块,用于获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;
所述配置搜索模块,用于从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;
所述配置比较模块,用于确定是否所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,如果是,则触发所述首地址获得模块;
所述首地址获得模块,用于获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;
所述数据获得模块,用于根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;
所述数据发送模块,用于将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器,使得所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据。
结合第二方面,在某些可选的实施方式中,所述前端处理器还包括:配置发送模块,用于在所述首地址获得模块获得存储所述目标虚拟设备的数据的存储空间的第一首地址之后,将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器。
结合第一方面,在某些可选的实施方式中,所述前端处理器还包括:版本发送模块,用于在所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号不一致时,和/或,所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量不一致时,向所述第二前端处理器发送所述第一配置信息中的数据版本号和所述第一配置信息中的存储空间的容量。
第三方面,一种处理系统,包括:至少两个前端处理器,其中,所述两个前端处理器中至少包括一个第一前端处理器和一个第二前端处理器;
所述第一前端处理器获得所述第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;所述第一前端处理器从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,则所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;所述第一前端处理器将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器;所述第一前端处理器根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;所述第一前端处理器将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器;
所述第二前端处理器获得与所述第一首地址匹配的第二首地址,其中,所述第二首地址为第二数据库中存储所述目标虚拟设备的数据的存储空间的首地址;所述第二前端处理器将所述第二数据库中以所述第二首地址开始,跨越所述存储空间的容量的存储区域中的数据修改为接收到的所述目标虚拟设备的数据。
本发明实施例提供的一种冗余前端处理器的数据同步方法、前端处理器和处理系统,通过第一前端处理器获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;所述第一前端处理器从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,则所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;所述第一前端处理器根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;所述第一前端处理器将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器,使得所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据。因此可以看出,本发明提供的方法可以使得第二前端处理器直接向第一前端处理器请求目标虚拟设备的数据,从而从第一前端处理器中获得目标虚拟设备的数据,从而将第二前端处理器侧的该目标虚拟设备的数据更新为第一前端处理器侧的该目标虚拟设备的数据。如此使得该目标虚拟设备在第二前端处理器侧的数据与在第一前端处理器侧的数据保持较高的同步性和实时性,且同步的数据量较大,效率较高。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种冗余前端处理器系统的结构示意图;
图2为本发明提供的一种冗余前端处理器的数据同步方法的流程图;
图3为本发明提供的一种前端处理器的结构示意图;
图4为本发明提供的一种处理系统的结构示意图;
图5为本发明提供的一种冗余前端处理器的数据同步装置的结构示意图;
图6为本发明提供的一种设备的结构示意图。
具体实施方式
在大型的通信网络系统中,都必须配有前端处理器。一般一台前端处理器就是一台计算机,主要具有的功能是:字符或数据的分段与重组,各终端之间的数据代码转换,错误检测与恢复,为不同终端提供协议支持,各终端之间的数据交换,轮询终端,公用电话网络中自动应答,编辑网上的统计资料等,有的前端处理器还需要支持边缘计算、软PLC以及数据转发的功能。
为了提高系统的可靠性,冗余前端处理器系统成为行业标配。冗余前端处理器系统(记其中一个为主用前端处理器,则另一个为备用前端处理器)实时通过各种接口协议从外部接口系统获得数据后,通常需在主用前端处理器本地以共享内存方式缓存实时数据库。
主用前端处理器与设备或者子系统通信时,一个设备或者一个子系统,通常可以在前端处理器中映射为一个虚拟设备,记在主用前端处理器中映射的虚拟设备为主虚拟设备,在备用前端处理器中映射的虚拟设备为备虚拟设备。冗余前端处理器系统在与设备或者子系统通信时,为了保持数据一致性或者为了避免通信链路通信冲突(例如RS485总线在同一时刻只允许有一个通信主站发起通信会话,若多个通信主站同时会话则会导致RS485链路冲突),通常主用前端处理器和备用前端处理器中,同一时刻只会有其中一个前端处理器与同一个设备或者子系统通信,另一个前端处理器则不会与该设备或者子系统通信。为了保持冗余前端处理器系统中的主用前端处理器和备用前端处理器各自数据库中的数据的实时性和同步性,冗余前端处理器系统的主用前端处理器和备用前端处理器就需要考虑数据同步的问题。
经本方案发明人研究发现,目前的数据同步方式是主用前端处理器与设备或者子系统通信一段时间后,预留一段短暂的通信时间,在该时间内将通信权限交给备用前端处理,备用前端处理器在该短暂的通信时间内与设备或者子系统通信,并获得相应数据并更新至本地数据库,从而实现主用前端处理器和备用前端处理器的数据同步。这种方式,由于备用前端处理器需要等待该短暂时间窗口期来临时,才可以与设备或者子系统通信,从而获得数据并更新,导致数据同步的实时性差,且同步的数据量有限。
通过本发明人提出的方案,在实际应用中,可以至少设置两个前端处理器,在这两个前端处理器中可以分别映射有与各自相连接的各设备或子系统的虚拟设备,一个设备或子系统在一个前端处理器中可以映射一个对应的虚拟设备,但一个设备或子系统可以在两个前端处理器中均映射有一个对应的虚拟设备。可以依据各前端处理器与其所连接的设备或子系统的通信好坏状态,设定各个虚拟设备为在线状态或离线状态,还可以设定同一个设备或子系统在一个前端处理器中的虚拟设备为主用虚拟设备,在另一个前端处理器中的虚拟设备为备用虚拟设备。
例如如图1所示,可以设置有第一前端处理器和第二前端处理器,其中第一前端处理器映射有虚拟设备1-1、虚拟设备2-1、虚拟设备3-1、虚拟设备4-1、虚拟设备5-1、虚拟设备6-1、虚拟设备7-1、虚拟设备8-1,和虚拟设备9-1,并且各个虚拟设备与实际的设备或子系统通信连接。例如虚拟设备1-1与设备1通信连接。其中,虚拟设备1-1、虚拟设备2-1和虚拟设备3-1构成链路1,使得虚拟设备1-1通过链路1与设备1通信连接、虚拟设备2-1通过链路1与设备2通信连接、虚拟设备3-1通过链路1与设备3通信连接;虚拟设备4-1、虚拟设备5-1和虚拟设备6-1构成链路2,使得虚拟设4-1通过链路2与设备4通信连接、虚拟设备5-1通过链路2与设备5通信连接、虚拟设备6-1通过链路2与设备6通信连接;虚拟设备7-1、虚拟设备8-1和虚拟设备9-1构成链路3,使得虚拟设7-1通过链路3与设备7通信连接、虚拟设备8-1通过链路3与设备8通信连接、虚拟设备9-1通过链路3与设备9通信连接。
对于第二前端处理器,可以映射有虚拟设备1-2、虚拟设备2-2、虚拟设备3-2、虚拟设备4-2、虚拟设备5-2、虚拟设备6-2、虚拟设备7-2、虚拟设备8-2,和虚拟设备9-2,并且各个虚拟设备与实际的设备或子系统通信连接,例如虚拟设备1-2与设备1通信连接。其中,虚拟设备1-2、虚拟设备2-2和虚拟设备3-2构成链路4,使得虚拟设备1-2通过链路4与设备1通信连接、虚拟设备2-2通过链路4与设备2通信连接、虚拟设备3-2通过链路4与设备3通信连接;虚拟设备4-2、虚拟设备5-2和虚拟设备6-2构成链路5,使得虚拟设4-2通过链路5与设备4通信连接、虚拟设备5-2通过链路5与设备5通信连接、虚拟设备6-2通过链路5与设备6通信连接;虚拟设备7-2、虚拟设备8-2和虚拟设备9-2构成链路6,使得虚拟设7-2通过链路6与设备7通信连接、虚拟设备8-2通过链路6与设备8通信连接、虚拟设备9-2通过链路6与设备9通信连接。
在实际中,可以设置连接同一个设备的两条链路中的一条链路为主用链路,另一条链路为备用链路,以使得被设置为主用链路所连接的虚拟设备为主用虚拟设备,被设置为备用链路所连接的虚拟设备为备用虚拟设备。例如如图1所示的链路1和链路4,这两条链路均连接设备1、设备2和设备3,并且设备1、设备2和设备3均在两个前端处理器中映射有相应的虚拟设备。例如对于设备1而言,在第一前端处理器中映射有虚拟设备1-1,在第二前端处理器中映射有虚拟设备1-2。即,设备1可以与虚拟设备1-1通信连接,将设备1的数据发送到第一前端处理器,也可以与虚拟设备1-2通信连接,将设备1的数据发送到第二前端处理器。当链路1被设置为主用链路后,那么第一前端处理器的虚拟设备1-1、虚拟设备2-1和虚拟设备3-1为主用虚拟设备,第二前端处理器的虚拟设备1-2、虚拟设备2-2和虚拟设备3-2为备用虚拟设备。这种情况下,第二前端处理器可以直接与第一前端处理器通信,向第一前端处理器请求设备1、设备2和设备3的数据,即向第一前端处理器请求虚拟设备1-1的数据,并同步为虚拟设备1-2的数据;向第一前端处理器请求虚拟设备2-1的数据,并同步为虚拟设备2-2的数据;向第一前端处理器请求虚拟设备3-1的数据,并同步为虚拟设备3-2的数据。
可选的,当如图1所示的链路1和链路4所连接的设备1、设备2和设备3出现交叉故障,例如,设备1可以与虚拟设备1-1通信连接,但不可以与虚拟设备2-1通信连接;设备2可以与虚拟设备1-2通信连接,但不可以与虚拟设备2-2通信连接;设备3不可以与虚拟设备1-3通信连接,但可以与虚拟设备2-3通信连接。这时,由于链路1有2个虚拟设备在线、1个虚拟设备离线,而链路4只有1个虚拟设备在线,另2个虚拟设备离线,链路1的在线虚拟设备个数多于链路4的在线虚拟设备个数,假设各个虚拟设备通信权重相同,则链路1将是主用链路,链路4将是备用链路。这时,由于链路1被设置为主用链路,那么仍然有第一前端处理器的虚拟设备1-1(在线)、虚拟设备2-1(在线)和虚拟设备3-1(离线)为主用虚拟设备,第二前端处理器的虚拟设备1-2(离线)、虚拟设备2-2(离线)和虚拟设备3-2(在线)为备用虚拟设备。这种情况下,第二前端处理器可以直接与第一前端处理器通信,向第一前端处理器请求设备1、设备2的数据,理由是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备,即向第一前端处理器请求虚拟设备1-1的数据,并同步为虚拟设备1-2的数据;向第一前端处理器请求虚拟设备2-1的数据,并同步为虚拟设备2-2的数据;第一前端处理器可以直接与第二前端处理器通信,向第二前端处理器请求设备3的数据,理由是所述第二前端处理器中的所述目标虚拟设备在线且所述第一前端处理器中的所述目标虚拟设备离线,即所述第一前端处理器向第二前端处理器请求虚拟设备3-2的数据,并同步为虚拟设备3-1的数据。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明提供了一种冗余前端处理器的数据同步方法,包括:
S100、第一前端处理器获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;
应理解,前端处理器FEP与设备或子系统的通信(FEP与设备层通信),主用前端处理器和备用前端处理器的数据同步(冗余FEP之间通信),二者是不同层面的通信,属于不同的FEP工作模块,二者是独立、平行关系,互不影响。
应理解,本文所说的与前端处理器通信的设备可以是实际的下位机设备,本发明对此不做限制。
在实际应用中,对于任意一个设备或子系统,在一个时刻可以有一个虚拟设备与一个设备或子系统进行通讯,即第一前端处理器可以与一个设备或子系统进行通讯,从而获得该一个设备或子系统的数据。这种情况下,映射有该一个设备或子系统的另一个目标虚拟设备的第二前端处理器可以向第一前端处理器发送数据同步请求,从而将第一前端处理器获得的该一个设备或子系统的数据同步更新至第二前端处理器。
应理解,所述目标虚拟设备的数据版本号可以用于标识虚拟设备所属数据库的表结构是否一致。例如,配置人员把虚拟设备所属数据库的第N个数据和第N+1个数据进行对调,这时虽然用于存储所述虚拟设备的数据的存储空间的容量是完全相同的,但数据版本号必须不同,版本将由Va变位Vb。若只把Vb版本更新到第一前端处理器,而第二前端处理器仍然保持为Va版本,显然,此时如果不比较数据版本号,就贸然用Vb版本的数据替换掉Va版本的数据,就会导致第二前端处理器的第N个数据和第N+1个数据发生紊乱。
所述目标虚拟设备的数据的存储空间的容量可以指的是目标虚拟设备的数据存储在数据库所占用的空间。可选的,在项目规划阶段,可以为每个设备划分特定的存储空间用于存储该设备的数据,所划分的存储空间可以理解为所述目标虚拟设备的数据的存储空间的容量。
应理解,对于第一前端处理器的一个目标虚拟设备,若第一前端处理器作为主通信节点,在当前时刻可以与设备和/或子系统通信。则在当前时刻,第一前端处理器可以从与其通信的各个设备和/或子系统获得相应的数据,用以更新第一前端处理器的存储在本地的各个设备和/或子系统的数据。
应理解,第一前端处理器和第二前端处理器可以连接相同的设备和/或子系统,这些设备和/或子系统在第一前端处理器和第二前端处理器中均映射有相应的虚拟设备。例如,设备1与第一前端处理器连接,并且与第二前端处理器连接,第一前端处理器中可以映射有设备1的虚拟设备,记为“设备1主虚拟设备”。第二前端处理器中也可以映射有设备1的虚拟设备,记为“设备1备虚拟设备”。虚拟设备可以作为一个数据单元,第一前端处理器可以在本地数据库中以“设备1主虚拟设备”为数据单元,存储设备1的数据。同理,第二前端处理器可以在本地数据库中以“设备1备虚拟设备”为数据单元,存储设备1的数据。
应理解,可以为每个设备和子系统的主虚拟设备和备虚拟设备均建立唯一的设备标识、数据版本号和用于存储所述虚拟设备的数据的存储空间的容量。数据版本号用于标识虚拟设备所属数据库的表结构是否一致。例如,配置人员把虚拟设备所属数据库的第N个数据和第N+1个数据进行对调,这时虽然用于存储所述设备的数据的存储空间的容量是完全相同的,但数据版本号必须不同,版本将由Va变为Vb。若配置人员只把Vb版本更新到主用前端处理器,而备用前端处理器仍然保持为Va版本,显然,此时如果不比较数据版本号,就贸然把Vb版本的数据替换掉Va版本的数据,就会导致备用前端处理器的第N个数据和第N+1个数据发生紊乱。
在第一前端处理器与设备和/或子系统通信的时候,第二前端处理器与该设备和/或子系统之间可以处于离线状态,即不互相通信的状态。在该状态下,第二前端处理器可以在预设时长内与设备和/或子系统进行心跳通信(心跳通信通常不包含设备和/或子系统数据,仅用于诊断双方连接通道是否正常),以诊断第二前端处理器与设备和/或子系统的通信状态。
第二前端处理器可以向第一前端处理器发送携带有“设备1主虚拟设备”、数据版本号“01”和存储空间的容量“1M”的数据同步请求,表明第二前端处理器向第一前端处理器请求存储在第一前端处理器的本地数据库中的“设备1主虚拟设备”的数据,即设备1的数据。如此,可以获得第二前端处理器从未获得过的设备1的数据,使得第一前端处理器在本地数据所存储的设备1的数据与第二前端处理器在本地数据所存储的设备1的数据同步。
S200、所述第一前端处理器从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;
应理解,第一前端处理器可以存储有多个虚拟设备的配置信息,每个虚拟设备的配置信息可以包括该虚拟设备的数据版本号和存储空间的容量,所述存储空间容量指的是存储该虚拟设备的数据所需要的存储空间的容量。
可选的,每个虚拟设备的配置信息可以与设备标识一一对应,以使得第一前端处理器可以根据设备标识查找得到对应虚拟设备的配置信息。
可选的,目标虚拟设备标识可以是虚拟设备的标识,即该目标虚拟设备标识可以是本机中的一个虚拟设备的标识。例如该目标虚拟设备标识可以是“设备1主虚拟设备”,表明第二前端处理器向第一前端处理器请求获得第一前端处理器的本机数据库中存储的“设备1主虚拟设备”的数据,即实际工程中的设备1的数据,本发明对此不做限制。
可选的,目标虚拟设备标识还可以是实际工程中的设备的标识。例如目标虚拟设备标识可以是“设备1”,表明第二前端处理器向第一前端处理器请求获得第一前端处理器的本机数据库中存储的“设备1”的数据,即在本机的设备1主虚拟设备的数据,本发明对此不做限制。
S300、若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,则所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;
应理解,第一前端处理器可以判断是否本机的第一配置信息中的数据版本号与数据同步请求中的一致,且本机的第一配置信息中的存储空间的容量与数据同步请求中的存储空间的容量一致,若一致,则可以说明本机的数据库中存储有数据同步请求所请求的目标虚拟设备的数据,否则,则说明本机的数据库中未存储有数据同步请求所请求的目标虚拟设备的数据。
可选的,在第一前端处理器确定本机的数据库中存储有数据同步请求所请求的目标虚拟设备的数据后,可以获得存储目标虚拟设备的数据的存储空间的第一首地址,该第一首地址是存储目标虚拟设备的数据的存储空间的首地址,当然,还可以获得存储目标虚拟设备的数据的存储空间的尾地址,或目标虚拟设备的数据的存储空间所包括的任意一个地址,本发明对此不做限制。
可选的,在某些可选的实施方式中,若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号不一致,和/或,所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量不一致,则第一前端处理器确定本机的数据库中未存储有数据同步请求所请求的目标虚拟设备的数据,之后,所述第一前端处理器向所述第二前端处理器发送所述第一配置信息中的数据版本号和所述第一配置信息中的存储空间的容量。第二前端处理器可以根据第一前端处理器返回的第一配置信息中的数据版本号和存储空间的容量,判断是否是数据同步请求中的数据版本号错误和/或存储空间的容量错误。若发现数据版本号错误和/或存储空间的容量是错误的,则可以向第一前端处理器发送一个携带有正确的目标虚拟设备的数据版本号和存储空间的容量的数据同步请求,以获得目标虚拟设备在第一前端处理器的本地数据库中的数据,本发明对此不做限制。
S400、所述第一前端处理器根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;
应理解,各个虚拟设备的数据所占用的数据库的存储空间可以是提前规划好的。例如,可以在第一前端处理器的数据库中,为“设备1主虚拟设备”提前划分相应的存储空间(地址范围为:001至100),当目标虚拟设备标识为“设备1主虚拟设备”或“设备1”时,可以获得地址001和存储空间的容量100,即第一首地址为001,存储空间的容量为100,从而使得第一前端处理器可以将获得的“设备1”存储在本地数据库中地址范围为001至100的存储空间里的数据。
应理解,所述第一数据库是第一前端处理器的本地数据库,用于存储第一前端处理器中的各虚拟设备的数据,本发明对此不做限制。
S500、所述第一前端处理器将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器,使得所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据。
应理解,因第一前端处理器与设备和/或子系统通信时间较长,频率较高,所以第一前端处理器的本地数据库更新各设备和/或子系统的数据比较及时,即第一前端处理器的本地数据库中存储的各设备和/或子系统的数据的时效性较高。故可以将第一前端处理器的本地数据库中存储的数据发送到第二前端处理器,使得第二前端处理器的本地数据库中的数据与第一前端处理器的本地数据库中的数据一致,提高数据的同步性和实效性。
应理解,可以以虚拟设备为单位,每个数据同步请求用于获得第一前端处理器的本地数据库中的一个虚拟设备的数据,当然也可以一个数据同步请求用于请求第一前端处理器的本地数据库中的多个虚拟设备的数据,本发明对此不做限制。
可选的,在某些可选的实施方式中,在所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址之后,所述方法还包括:
将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器。即第一前端处理器将目标虚拟设备在第一数据库中的数据发送给第二前端处理器的同时,也可以将第一首地址和存储空间的容量发送给第二前端处理器,以使得第二前端处理器可以根据第一首地址和存储空间的容量再次确认所接收到的数据是所请求的目标虚拟设备的数据,数据的可靠性和安全性更高。
可选的,若第一前端处理器采用报文或数据包的方式向第二前端处理器发送目标虚拟设备的数据,则可以在同一个报文或数据包中发送目标虚拟设备的数据、第一首地址和存储空间的容量,也可以先在一个报文或数据包中发送目标虚拟设备的数据,再通过另外一个报文或数据包发送第一首地址和存储空间的容量,当然,也可以先发第一首地址和存储空间的容量,再发目标虚拟设备的数据,本发明对此不做限制。
应理解,第二前端处理器在接收到第一前端处理器发送的目标虚拟设备的数据后,可以将本地数据库中的该目标虚拟设备的数据修改为接收到的目标虚拟设备的数据,从而使得第二前端处理器的本地数据库中的数据与第一前端处理器的本地数据库中的数据同步,本发明对此不做限制。
可选的,同一个设备的数据在第一前端处理器的数据库中的存储位置可以与在第二前端处理器的数据库中的存储位置一样。例如,“设备1”的数据在第一前端处理器的数据库中的存储位置是地址001至100,在第二前端处理器的数据库中的存储位置也是地址001至100。
可选的,同一个设备的数据在第一前端处理器的数据库中的存储位置可以与在第二前端处理器的数据库中的存储位置不一样。例如,“设备1”的数据在第一前端处理器的数据库中的存储位置是地址001至100,在第二前端处理器的数据库中的存储位置也是地址101至200。同一个设备在第一前端处理器的数据库中的存储位置与在第二前端处理器的数据库中的存储位置之间的对应关系可以用一个地址对照表进行记录。在这种方式下,第二前端处理器可以根据这个地址对照表,查询到目标虚拟设备的数据在本地数据库中的首地址。例如,在某些可选的实施方式中,所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据,包括:
步骤一、所述第二前端处理器获得与所述第一首地址匹配的第二首地址,其中,所述第二首地址为第二数据库中存储所述目标虚拟设备的数据的存储空间的首地址;
步骤二、将所述第二数据库中以所述第二首地址开始,跨越所述存储空间的容量的存储区域中的数据修改为接收到的所述目标虚拟设备的数据。
应理解,第二数据库可以为第二前端处理器的本地数据库,第二首地址为目标虚拟设备的数据在第二前端处理器的本地数据库中的首地址,本发明对此不做限制。
可选的,当同一个设备的数据在第一前端处理器的数据库中的存储位置可以与在第二前端处理器的数据库中的存储位置一样时,第一首地址可以和第二首地址相同。当同一个设备的数据在第一前端处理器的数据库中的存储位置可以与在第二前端处理器的数据库中的存储位置不一样时,第一首地址可以和第二首地址不相同,本发明对此不做限制。
应理解,第二数据库中以第二首地址开始,跨越存储空间的容量的存储区域中的数据即为第二前端处理器的数据库中存储的目标虚拟设备的数据。
可选的,在某些可选的实施方式中,所述第二前端处理器获得与所述第一首地址匹配的第二首地址,包括:
所述第二前端处理器从预先建立好的地址对照表中,获得与所述第一首地址匹配的第二首地址。
应理解,该地址对照表可以用于记录各个虚拟设备在第一前端处理器的本地数据库中的存储位置与在第二前端处理器的本地数据库中的存储位置的对应关系。例如,可以记录“设备1,001-100,101-200”,表明设备1的数据在第一前端处理器中的存储位置为地址范围为001至100的存储空间,在第二前端处理器中的存储位置为地址范围为101至200的存储空间,本发明对此不做限制。
应理解,通过地址对照表可以快速查到目标虚拟设备的数据在第二前端处理器的本地数据库中的存储位置的首地址和存储空间范围,效率较高。
可选的,在某些可选的实施方式中,所述方法还包括:
当所述第一前端处理器向所述第二前端处理器发送数据的次数达到预设次数时,所述第一前端处理器在预设时长内停止向所述第二前端处理器发送数据。
应理解,若第一前端处理器持续不断向第二前端处理器发送数据,会使得系统通信负担较大,容易导致通信故障。所以可以设定在第一前端处理器持续向第二前端处理器发送数据的次数达到预设次数后,第一前端处理器进入一小段的“休息”时间,即在预设时长内停止向第二前端处理器发送数据,待“休息”时间结束后,再根据第二前端处理器发送的数据同步请求向第二前端处理器发送相应数据。
如图3所示,本发明提供了一种前端处理器,所述前端处理器包括:同步触发模块100、配置搜索模块200、配置比较模块300、首地址获得模块400、数据获得模块500和数据发送模块600;
所述同步触发模块100,用于获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;
所述配置搜索模200块,用于从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;
所述配置比较模块300,用于确定是否所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,如果是,则触发所述首地址获得模块400;
所述首地址获得模块400,用于获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;
所述数据获得模块500,用于根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;
所述数据发送模块600,用于将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器,使得所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据。
可选的,在某些可选的实施方式中,所述前端处理器还包括:配置发送模块,用于在所述首地址获得模块400获得存储所述目标虚拟设备的数据的存储空间的第一首地址之后,将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器。
可选的,在某些可选的实施方式中,所述前端处理器还包括:版本发送模块,用于在所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号不一致时,和/或,所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量不一致时,向所述第二前端处理器发送所述第一配置信息中的数据版本号和所述第一配置信息中的存储空间的容量。
如图4所示,本发明提供了一种处理系统,包括:至少两个前端处理器,其中,所述两个前端处理器中至少包括一个第一前端处理器和一个第二前端处理器;
所述第一前端处理器获得所述第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;所述第一前端处理器从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,则所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;所述第一前端处理器将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器; 所述第一前端处理器根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;所述第一前端处理器将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器;
所述第二前端处理器获得与所述第一首地址匹配的第二首地址,其中,所述第二首地址为第二数据库中存储所述目标虚拟设备的数据的存储空间的首地址;所述第二前端处理器将所述第二数据库中以所述第二首地址开始,跨越所述存储空间的容量的存储区域中的数据修改为接收到的所述目标虚拟设备的数据。
如图5所示,本发明提供了一种冗余前端处理器的数据同步装置,包括:请求发送单元1000、配置信息获得单元2000、第一首地址获得单元3000、数据获得单元4000和数据发送单元5000;
所述请求发送单元1000,用于获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量;
所述配置信息获得单元2000,用于从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;
所述第一首地址获得单元3000,用于当所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致时,获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;
所述数据获得单元4000,用于根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;
所述数据发送单元5000,用于将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器,使得所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据。
结合图5所示的实施方式,在某些可选的实施方式中,所述装置还包括:第一发送单元;
所述第一发送单元,用于将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器。
结合图5所示的实施方式,在某些可选的实施方式中,所述装置还包括:停止单元;
所述停止单元,用于当所述第一前端处理器向所述第二前端处理器发送数据的次数达到预设次数时,所述第一前端处理器在预设时长内停止向所述第二前端处理器发送数据。
结合图5所示的实施方式,在某些可选的实施方式中,所述装置还包括:第二发送单元;
若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号不一致,和/或,所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量不一致,则所述第二发送单元,用于向所述第二前端处理器发送所述第一配置信息中的数据版本号和所述第一配置信息中的存储空间的容量。
所述一种冗余前端处理器的数据同步装置包括处理器和存储器,上述请求发送单元1000、配置信息获得单元2000、第一首地址获得单元3000、数据获得单元4000和数据发送单元5000等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现第二前端处理器及时将本地数据库中的、在第二前端处理器和第一前端处理器中均存在的虚拟设备的数据更新为在第一前端处理器的本地数据数据中的该虚拟设备的数据,数据同步性和时效较高。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述一种冗余前端处理器的数据同步方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述一种冗余前端处理器的数据同步方法。
如图6所示,本发明实施例提供了一种设备70,设备70包括至少一个处理器701、以及与处理器701连接的至少一个存储器702、总线703;其中,处理器701、存储器702通过总线703完成相互间的通信;处理器701用于调用存储器702中的程序指令,以执行上述的一种冗余前端处理器的数据同步方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有上述的一种冗余前端处理器的数据同步方法包括的步骤的程序。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种冗余前端处理器的数据同步方法,其特征在于,包括:
第一前端处理器获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;
所述第一前端处理器从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;
若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,则所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;
所述第一前端处理器根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;
所述第一前端处理器将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器,使得所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据。
2.根据权利要求1所述的方法,其特征在于,在所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址之后,所述方法还包括:
将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器。
3.根据权利要求2所述的方法,其特征在于,所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据,包括:
所述第二前端处理器获得与所述第一首地址匹配的第二首地址,其中,所述第二首地址为第二数据库中存储所述目标虚拟设备的数据的存储空间的首地址;
将所述第二数据库中以所述第二首地址开始,跨越所述存储空间的容量的存储区域中的数据修改为接收到的所述目标虚拟设备的数据。
4.根据权利要求3所述的方法,其特征在于,所述第二前端处理器获得与所述第一首地址匹配的第二首地址,包括:
所述第二前端处理器从预先建立好的地址对照表中,获得与所述第一首地址匹配的第二首地址。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一前端处理器向所述第二前端处理器发送数据的次数达到预设次数时,所述第一前端处理器在预设时长内停止向所述第二前端处理器发送数据。
6.根据权利要求1所述的方法,其特征在于,若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号不一致,和/或,所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量不一致,则所述第一前端处理器向所述第二前端处理器发送所述第一配置信息中的数据版本号和所述第一配置信息中的存储空间的容量。
7.一种前端处理器,其特征在于,所述前端处理器包括:同步触发模块、配置搜索模块、配置比较模块、首地址获得模块、数据获得模块和数据发送模块;
所述同步触发模块,用于获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;
所述配置搜索模块,用于从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;
所述配置比较模块,用于确定是否所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,如果是,则触发所述首地址获得模块;
所述首地址获得模块,用于获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;
所述数据获得模块,用于根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;
所述数据发送模块,用于将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器,使得所述第二前端处理器将第二数据库中的所述目标虚拟设备的数据修改为所述第一前端处理器发送的所述目标虚拟设备的数据。
8.根据权利要求7所述的前端处理器,其特征在于,所述前端处理器还包括:配置发送模块,用于在所述首地址获得模块获得存储所述目标虚拟设备的数据的存储空间的第一首地址之后,将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器。
9.根据权利要求7所述的前端处理器,其特征在于,还包括:版本发送模块,用于在所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号不一致时,和/或,所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量不一致时,向所述第二前端处理器发送所述第一配置信息中的数据版本号和所述第一配置信息中的存储空间的容量。
10.一种处理系统,其特征在于,包括:至少两个前端处理器,其中,所述两个前端处理器中至少包括一个第一前端处理器和一个第二前端处理器;
所述第一前端处理器获得第二前端处理器发送的数据同步请求,其中,所述数据同步请求至少包括:目标虚拟设备的标识、所述目标虚拟设备的数据版本号和用于存储所述目标虚拟设备的数据的存储空间的容量,其中,所述数据同步请求是所述第一前端处理器中的所述目标虚拟设备作为主用虚拟设备且在线且所述第二前端处理器中的所述目标虚拟设备作为备用虚拟设备时,所述第二前端处理器所发送的数据同步请求,或,所述第一前端处理器中的所述目标虚拟设备在线且所述第二前端处理器中的所述目标虚拟设备离线时,所述第二前端处理器所发送的数据同步请求,所述第一前端处理器与所述第二前端处理器为一对互相冗余的前端处理器;所述第一前端处理器从本地的配置信息库中搜索获得与所述目标虚拟设备标识对应的第一配置信息,所述第一配置信息至少包括数据版本号和存储空间的容量;若所述第一配置信息中的数据版本号与所述数据同步请求中的数据版本号一致,且所述第一配置信息中的存储空间的容量与所述数据同步请求中的存储空间的容量一致,则所述第一前端处理器获得存储所述目标虚拟设备的数据的存储空间的第一首地址,其中,所述存储所述目标虚拟设备的数据的存储空间位于第一数据库中;所述第一前端处理器将所述第一首地址和所述存储空间的容量发送到所述第二前端处理器;所述第一前端处理器根据所述第一首地址和所述存储空间的容量,获得所述第一数据库中存储的所述目标虚拟设备的数据,所述目标虚拟设备在所述第一数据库中的数据为以所述第一首地址开始,跨越所述存储空间的容量的存储区域中的数据;所述第一前端处理器将所述目标虚拟设备在所述第一数据库中的数据发送到所述第二前端处理器;
所述第二前端处理器获得与所述第一首地址匹配的第二首地址,其中,所述第二首地址为第二数据库中存储所述目标虚拟设备的数据的存储空间的首地址;所述第二前端处理器将所述第二数据库中以所述第二首地址开始,跨越所述存储空间的容量的存储区域中的数据修改为接收到的所述目标虚拟设备的数据。
CN202010771185.1A 2020-08-04 2020-08-04 冗余前端处理器的数据同步方法、前端处理器和处理系统 Active CN111651526B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010771185.1A CN111651526B (zh) 2020-08-04 2020-08-04 冗余前端处理器的数据同步方法、前端处理器和处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010771185.1A CN111651526B (zh) 2020-08-04 2020-08-04 冗余前端处理器的数据同步方法、前端处理器和处理系统

Publications (2)

Publication Number Publication Date
CN111651526A true CN111651526A (zh) 2020-09-11
CN111651526B CN111651526B (zh) 2020-11-13

Family

ID=72343854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010771185.1A Active CN111651526B (zh) 2020-08-04 2020-08-04 冗余前端处理器的数据同步方法、前端处理器和处理系统

Country Status (1)

Country Link
CN (1) CN111651526B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434341A (zh) * 2021-07-01 2021-09-24 北京东土科技股份有限公司 一种实现冗余虚拟plc的方法、装置、设备及存储介质
CN113741248A (zh) * 2021-08-13 2021-12-03 北京和利时系统工程有限公司 一种边缘计算控制器和控制系统
WO2022252791A1 (zh) * 2021-05-31 2022-12-08 华为技术有限公司 数据传输方法、电子设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693172A (zh) * 2011-08-31 2012-09-26 新奥特(北京)视频技术有限公司 一种信息录入系统的动态切换方法及系统
CN103986779A (zh) * 2014-05-29 2014-08-13 沈文策 一种应用数据传输方法、装置及终端设备
CN108363641A (zh) * 2017-01-26 2018-08-03 华为技术有限公司 一种主备机数据传递方法、控制节点以及数据库系统
CN109614266A (zh) * 2018-12-05 2019-04-12 北京和利时系统工程有限公司 一种数据同步方法及装置
CN109842482A (zh) * 2019-01-14 2019-06-04 深圳市科联智通科技有限公司 一种信息同步方法、系统及终端设备
CN111274040A (zh) * 2020-02-18 2020-06-12 北京和利时系统工程有限公司 一种内存管理方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693172A (zh) * 2011-08-31 2012-09-26 新奥特(北京)视频技术有限公司 一种信息录入系统的动态切换方法及系统
CN103986779A (zh) * 2014-05-29 2014-08-13 沈文策 一种应用数据传输方法、装置及终端设备
CN108363641A (zh) * 2017-01-26 2018-08-03 华为技术有限公司 一种主备机数据传递方法、控制节点以及数据库系统
US20190347167A1 (en) * 2017-01-26 2019-11-14 Huawei Technologies Co., Ltd. Primary Node-Standby Node Data Transmission Method, Control Node, and Database System
CN109614266A (zh) * 2018-12-05 2019-04-12 北京和利时系统工程有限公司 一种数据同步方法及装置
CN109842482A (zh) * 2019-01-14 2019-06-04 深圳市科联智通科技有限公司 一种信息同步方法、系统及终端设备
CN111274040A (zh) * 2020-02-18 2020-06-12 北京和利时系统工程有限公司 一种内存管理方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022252791A1 (zh) * 2021-05-31 2022-12-08 华为技术有限公司 数据传输方法、电子设备及计算机可读存储介质
CN113434341A (zh) * 2021-07-01 2021-09-24 北京东土科技股份有限公司 一种实现冗余虚拟plc的方法、装置、设备及存储介质
CN113434341B (zh) * 2021-07-01 2023-02-17 北京东土科技股份有限公司 一种实现冗余虚拟plc的方法、装置、设备及存储介质
CN113741248A (zh) * 2021-08-13 2021-12-03 北京和利时系统工程有限公司 一种边缘计算控制器和控制系统

Also Published As

Publication number Publication date
CN111651526B (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN111651526B (zh) 冗余前端处理器的数据同步方法、前端处理器和处理系统
JPS6170654A (ja) 分散処理システムにおける資源管理方式
CN105912455A (zh) 业务执行方法及服务器
EP3786802A1 (en) Method and device for failover in hbase system
CN115277727B (zh) 一种数据灾备方法、系统、装置及存储介质
CN114285695B (zh) 通信方法、装置、设备、系统和存储介质
CN101262479A (zh) 一种网络文件共享的方法、服务器和网络文件共享的系统
CN111688762B (zh) 用于城轨联锁控显的倒切方法及装置
CN107528703B (zh) 一种用于管理分布式系统中节点设备的方法与设备
CN113301173A (zh) 域名更新系统及方法、消息转发方法、服务器
CN112860746B (zh) 一种基于缓存削减的方法、设备及系统
CN113297168B (zh) 分布式系统中数据迁移方法及装置
CN112860494A (zh) 一种数据中心切换方法及其相关设备
CN111338848B (zh) 故障应用副本处理方法、装置、计算机设备和存储介质
CN112668742A (zh) 一种配电终端并网预约方法
CN107528797B (zh) 数据处理方法、装置及系统
CN114625084B (zh) 基于控制系统的节点信息的获取方法及装置
CN116633952B (zh) 一种牧场用数据处理系统及处理方法
CN115481187B (zh) 一种数据读写方法、装置及存储介质
CN102541699B (zh) 失效备援信息管理装置和控制方法以及存储处理装置
CN201805455U (zh) 集群读写装置及系统
JP3073284B2 (ja) データ通信方式
CN115599862A (zh) Iscs的数据库同步方法、装置、终端及存储介质
CN115633047A (zh) 冗余服务器的数据同步方法、电子设备及存储介质
CN117931886A (zh) 一种伸缩一致性及极致高可用分布式数据系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211105

Address after: 100176 room 3412, floor 4, building 3, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee after: Beijing Helishi system integration Co.,Ltd.

Address before: 100176 courtyard 2, Disheng Middle Road, Daxing Economic and Technological Development Zone, Beijing

Patentee before: BEIJING HOLLYSYS Co.,Ltd.