本发明涉及数据同步,具体涉及一种设备间数据同步方法、系统以及设备。
背景技术:
1、计算机间需要保证各自存储器的数据保持同步时,通常会采用环形的反射内存同步方式,此时每个计算机作为一个分布式节点,多个分布式节点呈环状通信连接,某个分布式节点需要对存储器进行一组数据的写入操作时,将该数据写入操作的数据内容或操作指令传输至环状连接中的下一个分布式节点,每个分布式节点都可在获取到后执行相应的写入操作,当该数据内容或操作指令返回至初始的分布式节点,则说明本次同步完成。可见,只能实现源自一个分布式节点的数据写入操作的同步。
2、但是,同步需求可能是单一的,比如始终只需将一个计算机的数据写入操作同步到其他计算机,同步需求也可能是复杂的,比如多个计算机都需要将各自的数据写入操作同步到所有计算机,此时,若采用环形的反射内存同步方式,在多个分布式节点均需要进行写入操作时,为保证各分布式节点存储器的同步一致,需要等待一个分布式节点的数据写入操作同步之后,才能进行下一个分布式节点的数据写入操作的同步,多个分布式节点的数据写入操作的同步则需要重复多次的上述过程,导致完成所有的数据写入操作的同步时间较长,数据同步效率低,难以满足对数据同步性要求较高的场景(例如多个工控机均需与其他设备同步数据的hil系统)。
3、可见,现有的计算机间的数据同步方案难以兼顾各种需求下的高效同步。
4、基于上述技术问题,申请人提出了本技术的技术方案。
技术实现思路
1、本发明的目的是提供了一种设备间数据同步方法、系统以及设备,只需在级联的多个设备之间传输两轮操作请求,便可以完成所有设备中的目标存储器之间的数据同步,能够保证多个设备的目标存储器之间的数据一致性,节约了数据同步的周期,具有共享效率高、准确性好以及延迟低的优点。
2、为实现上述目的,本发明提供了一种设备间数据同步方法,应用于系统包含的多个设备中任意一个当前设备,所述多个设备依次级联,每个所述设备均配置有目标存储器;所述方法包括:操作请求的第一传输过程中,若所述当前设备需要对所述目标存储器进行目标操作,则将所述目标操作的操作指令写入到所述操作请求中;所述第一传输过程指所述操作请求自所述多个设备中级联的首个设备依次传输至最后一个设备的过程,所述目标操作为在所述目标存储器写入数据的操作;所述操作请求的第二传输过程中,基于所述操作请求中所包含的所有操作指令,对所述当前设备的目标存储器进行操作,以使得:所述第二传输过程完成后,所述多个设备中的目标存储器保持数据同步,所述第二传输过程指所述第一传输过程之后所述操作请求自所述最后一个设备依次传输至所述首个设备的过程,或者:在所述多个设备呈闭环连接时,所述操作请求再次自所述首个设备依次传输至所述最后一个设备的过程。
3、本发明还提供了一种设备间数据同步方法,应用于包含多个设备的系统,所述多个设备依次级联,每个所述设备均配置有目标存储器;所述方法包括:所述多个设备中级联的首个设备将操作请求自所述首个设备依次传输至所述多个设备中级联的最后一个设备,或者:在所述多个设备呈闭环连接时,将所述操作请求传输至所述首个设备,令所述操作请求再次自所述首个设备依次传输至所述最后一个设备,其中对于每个所述设备,若所述设备需要对所述目标存储器进行目标操作,则将所述目标操作的操作指令写入到所述操作请求中;所述最后一个设备将所述操作请求自所述最后一个设备依次传输至所述首个设备,其中对于每个所述设备,所述设备基于所述操作请求中所包含的所有操作指令,对所述设备的目标存储器进行操作,以使得所述多个设备中的目标存储器保持数据同步。
4、本发明还提供了一种设备,用于执行上述的设备间数据同步方法。
5、本发明还提供了一种系统,包括多个设备,所述多个设备依次级联,每个所述设备中均设有目标存储器;所述设备用于在接收到处于第一传输过程中的操作请求时,若所述设备需要对所述目标存储器进行目标操作,则将所述目标操作的操作指令写入到所述操作请求中,并将所述操作请求传输到下一级的所述设备;所述第一传输过程指所述操作请求自所述多个设备中级联的首个设备依次传输至最后一个设备的过程;所述设备用于在接收到处于第二传输过程中的所述操作请求时,基于所述操作请求中所包含的所有操作指令,对所述设备的目标存储器进行操作,并将所述操作请求传输到上一级的所述设备;所述第二传输过程指所述第一传输过程之后所述操作请求自所述最后一个设备依次传输至所述首个设备的过程,或者:在所述多个设备呈闭环连接的情况下,所述操作请求再次自所述首个设备依次传输至所述最后一个设备的过程;在所述第二传输过程完成后,所述多个设备中的目标存储器保持数据同步。
6、本发明还提供了一种包括多个用于执行上述的数据同步方法的设备,或者多个上述的设备。
7、在一个实施例中,在所述将所述目标操作的操作指令写入到所述操作请求中之前,还包括:判断是否满足所述目标操作的预设条件;若满足所述目标操作的预设条件,进入所述将所述目标操作的操作指令写入到所述操作请求中的步骤;若不满足所述目标操作的预设条件,则禁止将所述目标操作的操作指令写入到所述操作请求中。
8、在一个实施例中,所述判断是否满足所述目标操作的预设条件,包括:判断所述当前设备是否具有对所述目标存储器中的第一目标存储区域进行操作的权限,所述第一目标存储区域为所述目标操作所需操作的目标存储器中的存储区域;若所述当前设备具有对所述目标存储器中的第一目标存储区域进行操作的权限,判定满足所述目标操作的预设条件;若所述当前设备未具有对所述目标存储器中的第一目标存储区域进行操作的权限,判定不满足所述目标操作的预设条件。
9、在一个实施例中,所述判断是否满足所述目标操作的预设条件,包括:判断所述目标操作是否用于对所述目标存储器中的第二目标存储区域进行操作;若所述目标操作用于对所述目标存储器中的第二目标存储区域进行操作,判定满足所述目标操作的预设条件;若所述目标操作未用于对目标存储器中的第二目标存储区域进行操作,判定不满足所述目标操作的预设条件。
10、在一个实施例中,所述基于所述操作请求中所包含的所有操作指令,对所述当前设备的目标存储器进行操作,包括:按照所述操作请求中的所有操作指令被写入到所述操作请求中的顺序,依次对所述当前设备的目标存储器进行操作。
11、在一个实施例中,所述当前设备为所述首个设备,则:所述方法,还包括:在检测到预设事件发生时,生成新操作请求。
12、在一个实施例中,所述预设事件为以下任意之一或任意组合:所述首个设备基于所述操作请求中所包含的所有操作指令,完成对所述首个设备的目标存储器的操作;所述首个设备计时达到设定的时间周期,以及:所述首个设备响应于被触发的中断。
13、在一个实施例中,所述系统为hil系统,所述hil系统还包括:至少一个i/o单元,所述多个设备包括:多个工控机与控制模块,所述控制模块与所述i/o单元通信连接,所述i/o单元用于直接或间接连接到被测件,所述i/o单元与所述工控机之间所传输的目标数据是基于所述目标存储器的操作结果传输的。