一种用于数字工厂的离线数据同步方法、装置和服务器

文档序号:7638 发布日期:2021-09-17 浏览:25次 英文

一种用于数字工厂的离线数据同步方法、装置和服务器

技术领域

本发明涉及智能制造领域,尤其涉及一种用于数字工厂的离线数据同步方法、装置和服务器。

背景技术

工厂现有的设备生产车间中,有很多车间并不具备无线网络,所以当处理设备相关的业务时只能将记录记在纸质载体上,容易造成记录偏差或遗漏,导致管理上的混乱。例如,工作人员在车间进行设备业务操作时,如维修,检查等操作,会需要参考历史记录。另外,工作人员在车间进行操作时,需要校验执行设备,而设备编号一般都比较冗长和复杂,如果工作人员的移动终端无法连接网络则只能在纸质记录上检索查询相关设备信息,查询效率低下。而工厂为车间架设网络,尤其是要确保工厂各区域均覆盖无线网络,需要花费巨大成本。但即使园区为各车间架设了无线网络,因为各类大型生产设备的阻隔,往往工作人员的移动终端在进入生产设备内或其它特殊区域时会存在网络信号变差甚至无法连接的问题,导致最终仍然无法在移动终端上进行有效的记录操作,并且各工作人员的操作和检查等记录数据也无法有效的保持同步,极大影响了生产制造流程中的操作和保障效率。

发明内容

本发明针对现有技术中的不足,提供了一种用于数字工厂的离线数据同步方法,包括如下步骤:

S101,向第一终端发送用于导入终端本地数据库的完整的表结构和SQL语句;

S102,根据收到的由第一终端在获取删改记录指令后发送的锁定记录请求向第一终端返回第一响应信息,并对在收到后续第一终端发送的解锁记录请求前的其它终端发送的该记录删改请求拒绝响应,同时将锁定记录请求放入内存队列并在下次心跳到达后通过websocket转发给其它终端,所述锁定记录请求被配置为禁止接收到该请求的终端在收到解锁记录请求前删改该条记录;

S103,如果存在第二终端转发失败则为对应终端保存带时间戳的SQL增量文件;

S104,根据第一终端发送的删改更新请求对相关记录进行操作,如操作成功则立即返回第二响应信息,并同时将删改更新请求放入队列,等待下次心跳到达后通过websocket转发给其它终端用于更新各自的本地数据库,若存在第二终端转发失败则保存对记录删改更新操作的带时间戳的SQL增量文件至其第二增量文件中;

S105,在第二终端切换至在线状态后,接收第二终端发送的第一增量文件,并向第二终端发送其对应的第二增量文件,所述第一增量文件为第二终端在离线状态下对部分记录的删改更新操作信息。

优选的,所述步骤S105还包括:

在收到第二终端上传的第一增量文件后继续等待多个心跳周期,如未收到其它终端的上传增量文件请求,则向所有终端发送锁表请求广播并停止对各终端发送的新增或删改更新请求的响应,按SQL时间戳顺序重组所有增量文件后导入数据库,所述锁表请求广播被配置为禁止终端向服务器发送新增或删改更新请求至收到解锁请求广播。

优选的,所述步骤S105还包括:

当接收到第二终端发送的第一增量文件后,若第一增量文件和发送至第二终端的第二增量文件中均存在对同一记录的删改时,根据预设规则对该第一增量文件和第二增量文件中的该记录删改信息进行筛选,判断是否需要采用第一增量文件对该服务器数据库中的相关记录进行更新。

优选的,所述预设规则具体包括:

从第一增量文件中获取对该记录进行删改的第一用户ID,从第二增量文件中获取对该记录进行删改的第二用户ID,根据各用户ID从数据库中获取该用户ID对应的权限等级;

如果第一用户权限等级高于第二用户权限等级,则采用第一增量文件中内容对数据库中存储的该条记录进行删改更新;

如果第一用户权限等级低于或等于第二用户权限等级,则从第一增量文件时间戳中获取该记录删改发生的第一时间,从第二增量文件时间戳中获取该记录删改发生的第二时间,若第一时间晚于第二时间,则采用第一增量文件中内容对该条记录进行删改更新,否则不对该记录进行删改更新。

本发明还公开了一种用于数字工厂的离线数据同步装置,包括表结构发送模块,用于向第一终端发送用于导入终端本地数据库的完整的表结构和SQL语句;响应模块,用于根据收到的由第一终端在获取删改记录指令后发送的锁定记录请求向第一终端返回第一响应信息,并对在收到后续第一终端发送的解锁记录请求前的其它终端发送的该记录删改请求拒绝响应,同时将锁定记录请求放入内存队列并在下次心跳到达后通过websocket转发给其它终端,所述锁定记录请求被配置为禁止接收到该请求的终端在收到解锁记录请求前删改该条记录;增量文件生成模块,用于在存在第二终端转发失败时为对应终端保存带时间戳的SQL增量文件;并根据收到的由第一终端在获取删改记录指令后发送的锁定记录请求向第一终端返回第一响应信息,并对在收到后续第一终端发送的解锁记录请求前的其它终端发送的该记录删改请求拒绝响应,同时将锁定记录请求放入内存队列并在下次心跳到达后通过websocket转发给其它终端,所述锁定记录请求被配置为禁止接收到该请求的终端在收到解锁记录请求前删改该条记录;增量文件发送模块,用于在第二终端切换至在线状态后,接收第二终端发送的第一增量文件,并向第二终端发送其对应的第二增量文件。

优选的,所述增量文件发送模块还被配置为在收到第二终端上传的第一增量文件后继续等待多个心跳周期,如未收到其它终端的上传增量文件请求,则向所有终端发送锁表请求广播并停止对各终端发送的新增或删改更新请求的响应,按SQL时间戳顺序重组所有增量文件后导入数据库,所述锁表请求广播被配置为禁止终端向服务器发送新增或删改更新请求至收到解锁请求广播。

优选的,所述增量文件发送模块还被配置为在接收到第二终端发送的第一增量文件后,若第一增量文件和发送至第二终端的第二增量文件中均存在对同一记录的删改时,根据预设规则对该第一增量文件和第二增量文件中的该记录删改信息进行筛选,判断是否需要采用第一增量文件对该服务器数据库中的相关记录进行更新。

优选的,所述预设规则具体包括:

从第一增量文件中获取对该记录进行删改的第一用户ID,从第二增量文件中获取对该记录进行删改的第二用户ID,根据各用户ID从数据库中获取该用户ID对应的权限等级;

如果第一用户权限等级高于第二用户权限等级,则采用第一增量文件中内容对数据库中存储的该条记录进行删改更新;

如果第一用户权限等级低于或等于第二用户权限等级,则从第一增量文件时间戳中获取该记录删改发生的第一时间,从第二增量文件时间戳中获取该记录删改发生的第二时间,若第一时间晚于第二时间,则采用第一增量文件中内容对该条记录进行删改更新,否则不对该记录进行删改更新。

本发明还公开了一种用于数字工厂的离线数据同步服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述任一所述方法的步骤。

本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述任一所述方法的步骤。

本发明公开的用于数字工厂的离线数据同步方法,可用于服务器,通过向第一终端发送用于导入终端本地数据库的完整的表结构和SQL语句,根据收到的由第一终端在获取删改记录指令后发送的锁定记录请求向第一终端返回第一响应信息,并对在收到后续第一终端发送的解锁记录请求前的其它终端发送的该记录删改请求拒绝响应。根据第一终端发送的删改更新请求对相关记录进行操作,若存在第二终端转发失败则保存对记录删改更新操作的带时间戳的SQL增量文件至其第二增量文件中;在第二终端切换至在线状态后,接收第二终端发送的第一增量文件,并向第二终端发送其对应的第二增量文件。从而实现了工厂车间在最低成本下的无网络环境下的电子信息系统的业务操作流程,可将各移动终端和固定终端的操作记录和操作结果上传同步到系统数据库中,保持服务器系统数据库和各终端本地数据库的数据同步。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本实施例公开的一用于数字工厂的离线数据同步方法的流程示意图。

图2为本实施例公开的用于数字工厂的离线数据同步方法的其它流程示意图

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。

附图1为本发明一实施例公开用于数字工厂的离线数据同步方法的具体流程示意图,该方法可实现工厂在最低成本下车间无网络环境下的电子信息系统的业务操作流程,同时可以将操作的记录和结果同步到系统数据库和各设备手持终端中,具体包括如下步骤:

步骤S101,向第一终端发送用于导入终端本地数据库的完整的表结构和SQL语句。第一终端首次操作时,服务器向第一终端发送完整的表结构以及SQL语句用于供第一终端下载并导入到本地数据库,其中本地数据库可以是终端内的SQLite数据库,或者当操作第一终端的重置按钮后也将会执行这一步骤。

步骤S102,根据收到的由第一终端在获取删改记录指令后发送的锁定记录请求向第一终端返回第一响应信息,并对在收到后续第一终端发送的解锁记录请求前的其它终端发送的该记录删改请求拒绝响应,同时将锁定记录请求放入内存队列并在下次心跳到达后通过websocket转发给其它终端,所述锁定记录请求被配置为禁止接收到该请求的终端在收到解锁记录请求前删改该条记录。

具体的,第一终端在获取删改记录指令后判断网络状态,如处于无网络状态则将删改的SQL语句加上时间戳保存至本地数据库中,如果处于网络连接状态则通过http协议向服务器发送锁定记录请求。服务器如果收到锁定记录请求则返回第一响应信息,并对在收到后续第一终端发送的解锁记录请求前的其它终端发送的该记录删改请求拒绝响应,同时将锁定记录请求放入内存队列并在下次心跳到达后通过websocket转发给其它终端,若存在部分终端转发失败则为对应终端保存带时间戳的SQL增量文件,所述锁定记录请求被配置为禁止接收到该请求的终端在收到解锁记录请求前删改该条记录。

步骤S103,如果存在第二终端转发失败则为对应终端保存带时间戳的SQL增量文件。

步骤S104,根据第一终端发送的删改更新请求对相关记录进行操作,如操作成功则立即返回第二响应信息,并同时将删改更新请求放入队列,等待下次心跳到达后通过websocket转发给其它终端用于更新各自的本地数据库,若存在第二终端转发失败则保存对记录删改更新操作的带时间戳的SQL增量文件至其第二增量文件中。

具体的,第一终端如果收到服务器回复的响应信息则通过http协议向服务器发送删改更新请求。服务器根据删改更新请求进行操作,如操作成功则立即返回第二响应信息,并同时将删改更新转发请求放入队列,等待下次心跳到达后通过websocket转发给其它终端用于更新各自的本地数据库,若存在部分终端转发失败则为对应终端保存带时间戳的SQL增量文件。第一终端如果未收到服务器回复的第一响应信息或第二响应信息,则不更新第一终端的本地数据库,否则在更新本地数据库后向服务器发送解锁请求。

具体的,第一终端在进行删改操作前,通过http向服务器发送锁定记录请求,服务器通过websocket将该请求转发给其他终端,其它终端可以是移动终端或不可移动的固定终端,锁定成功后任何其他终端都无法删改该记录。之后第一终端通过http向服务器发送删改更新请求,在服务器更新成功后第一终端将更新本地SQLite数据库,同时服务器端再将删改更新请求通过websocket转发给其他移动终端并更新各终端自身的SQLite数据库,最后第一终端向服务器发送解锁请求。

在一些具体实施例中,如果第一终端未收到服务器发送的第一响应信号,则间隔预设时间持续对服务器多次锁定记录请求,并在未收到服务器发送的第一响应信号时将第一终端的网络状态判断为无网络状态,则将删改的SQL语句加上时间戳保存至本地数据库中作为服务器的SQL增量文件,并在处于网络连接状态时通过http协议向服务器发送其对应的SQL增量文件。具体的,第一终端向服务器发送锁定记录请求后,服务端将通过websocket转发给其他终端,由于websocket心跳每20秒发送一次,所以先把转发请求放入内存队列,等下一次心跳请求到达后再转发出去,服务器对锁定请求的成功响应是立即发生的而不用关心其他终端是否成功收到该请求,即使有的终端没有收到锁定转发请求并且刚好在此期间发送删改请求,服务端就会以相应的操作错误码做出拒绝响应,确保一记录的删改操作在同一时间内只允许一个终端去请求,这样保证了数据的一致性;如果服务器超时没有对锁定请求做出及时响应,第一终端将再次发送请求。

在一些具体实施例中,如果第一终端在收到服务器发送的第一响应信号后,向服务器发送删改更新请求但在设定时间内未收到第二响应信号,则第一终端暂停后续对本地数据库中该记录的删改操作并对该记录进行禁止删改锁定,并在收到服务器的第二响应信号或转发的解锁请求后在本地数据库中解除对该记录的锁定。具体的,第一终端向服务器发送删改请求后,如果服务器端操作失败,则第一终端将不会更新本地的SQLite数据库。如果服务器操作成功,则立即返回成功响应信息即第二响应信号,同时将转发请求放入队列,等待下次心跳到达时转发给其他移动终端,若转发失败,则为对应的终端保存一份带时间戳的SQL增量文件到文件服务器。

本实施例中,移动终端在无网络的环境下,移动端任何增删改查操作只与本地的sqlite数据库发生关系,不与服务器发生任何关系,并且保存sql语句形式的增量文件到本地flash存储中,等网络恢复后上传给服务器。在网络恢复后,移动端将增量文件上传给服务器更新数据库,反过来服务器如果有增量文件文件,则将增量文件下发给移动端,移动端更新sqlite数据库;移动端任何增删改操作会在服务器数据库与本地sqlite数据库同步完成。实现了工厂车间在最低成本下的无网络环境下的电子信息系统的业务操作流程,并可将各移动终端和固定终端的操作记录和操作结果上传同步到系统数据库中,保持服务器系统数据库和各终端本地数据库的数据同步。

步骤S105,在第二终端切换至在线状态后,接收第二终端发送的第一增量文件,并向第二终端发送其对应的第二增量文件,所述第一增量文件为第二终端在离线状态下对部分记录的删改更新操作信息。

在本实施例中,第二终端在恢复网络连接后查询服务器中是否存在对应本终端的可下载的SQL增量文件,若存在则根据服务器回复的增量文件下载路径下载SQL增量文件,并按SQL时间戳顺序重组增量文件后导入本地数据库,导入期间拒绝来自服务端关于锁表/锁记录或者增删改通知。

所述步骤S105还包括:在收到第二终端上传的第一增量文件后继续等待多个心跳周期,如未收到其它终端的上传增量文件请求,则向所有终端发送锁表请求广播并停止对各终端发送的新增或删改更新请求的响应,按SQL时间戳顺序重组所有增量文件后导入数据库,所述锁表请求广播被配置为禁止终端向服务器发送新增或删改更新请求至收到解锁请求广播。

所述步骤S105还包括:

当接收到第二终端发送的第一增量文件后,若第一增量文件和发送至第二终端的第二增量文件中均存在对同一记录的删改时,根据预设规则对该第一增量文件和第二增量文件中的该记录删改信息进行筛选,判断是否需要采用第一增量文件对该服务器数据库中的相关记录进行更新。

如附图2所示,在一些具体实施例中,该用于数字工厂的离线数据同步方法,还包括如下步骤:

步骤S1051,第二终端在获取新增记录指令后将增加或修改的SQL语句加上时间戳作为增量文件保存至本地数据库,如第二终端处于无网络状态则暂停向服务器发送新增更新请求。具体的,第二终端根据Android BroadcastReceiver接收有无网络的系统广播来判断第二终端是否处于无网络状态,也可根据websocket连接是否成功,或者超过10个心跳请求后服务器都无响应等方式来判断有无网络,只要通过上述任一方式判定该终端处于无网络状态即可认为第二终端处于无网络状态。

在第二终端处于无网络状态时,第二终端的删改、新增、查询等操作都直接访问本地的SQLite数据库,与服务器不发生任何关系,同时把删改、新增、查询等操作的SQL语句加上时间戳后作为增量文件保存到本地的flash存储中,等网络恢复后上传至服务器,并由服务器转发给其他终端。

步骤S1052,第二终端在重新切换为网络连接状态后通过http协议向服务器请求上传第一增量文件,并查询服务器中是否存在对应本终端的可下载的第二增量文件。具体的,当第二终端由无网络状态切换到处于网络连接状态时,第二终端将原先在无网络状态时保存在本地flash存储器的增量文件即第一增量文件上传给服务器并转发给其他终端。同时,在第二终端处于无网络状态时,其它终端在该时间段进行的任何删改、新增、查询等操作的都在服务器上保存对应第二终端的带时间戳的增量文即第二增量文件,等待第二终端处于网络连接状态中时将该第二增量文件下发给第二终端。其中第二终端的网络恢复判断可根据Android BroadcastReceiver接收到系统网络连接的广播,然后重新发送websocket连接,当监听到心跳请求响应后可以判断网络恢复。

步骤S1053,第二终端根据服务器回复的增量文件上传和下载路径将第一增量文件上传至服务器,同时下载第二增量文件,按SQL时间戳顺序重组增量文件后导入本地数据库,并在完成增量文件导入前停止对服务器向本终端发送的锁定记录请求、锁表请求、删改更新请求或新增更新请求的响应。

具体的,服务器通过websocket心跳给第二终端发送下载增量文件消息,然后第二终端通过http发送下载增量文件请求后从文件服务器下载对应的增量文件即前述的第二增量文件。在第二终端下载增量文件成功后,按SQL时间戳顺序重组增量文件并导入本地的SQLite数据库,在完成增量文件导入前停止对服务器向本终端发送的锁定记录请求、锁表请求、删改更新请求或新增更新请求的响应,即导入期间拒绝来自服务端关于锁表/锁记录或者增删改通知。

步骤S1054,服务器在收到第二终端上传的第一增量文件后继续等待多个心跳周期,如果未收到其它终端的上传增量文件请求,则向所有终端发送锁表请求广播并停止对各终端发送的新增或删改更新请求的响应,按SQL时间戳顺序重组所有增量文件后导入数据库,所述锁表请求广播被配置为禁止终端向服务器发送新增或删改更新请求至收到解锁请求广播。

具体的,服务器将等待若干个心跳,譬如10个心跳内,若没有其他的终端上传增量文件请求,则向所有移动终端和非移动终端发送锁表请求广播,广播结束后不管有没有收到其它移动终端和非移动终端的响应信息,服务器都将按SQL时间戳顺序重组所有的终端对应的增量文件然后导入数据库,并在完成增量文件导入前停止对各终端发送的锁定记录请求、删改更新请求或新增更新请求的响应,即导入期间拒绝任何终端的增删改请求,导入结束后发送解锁消息。

当第二终端在离线状态下对部分记录进行修改后产生第一增量文件,在其后续转入网络连接状态后,从服务器上下载获得对应该第二终端的第二增量文件,当第一增量文件和第二增量文件中均存在对同一记录的删改时,可根据预设规则对该第一增量文件和第二增量文件中的该记录删改信息进行筛选,来判断最终是否需要采用第二增量文件对该第二终端相关记录进行更新。

在本实施例中,预设规则可以包括第一预设规则、第二预设规则和第三预设规则,服务器可根据预先设置的对各规则进行选择使用,可以选择其中一预设规则来进行处理,也可对各预设规则设置依次采用顺序,在前面的规则处理不了时再采用后面的规则处理。

在本实施例中,所述第一预设规则具体包括:

服务器从第一增量文件中获取对该记录进行删改的第一用户ID,从第二增量文件中获取对该记录进行删改的第二用户ID,根据各用户ID从数据库中获取该用户ID对应的权限等级。

如果第一用户权限等级高于第二用户权限等级,则采用第一增量文件中内容对数据库中存储的该条记录进行删改更新。

如果第一用户权限等级低于或等于第二用户权限等级,则从第一增量文件时间戳中获取该记录删改发生的第一时间,从第二增量文件时间戳中获取该记录删改发生的第二时间,若第一时间晚于第二时间,则采用第一增量文件中内容对该条记录进行删改更新,否则不对该记录进行删改更新。

在另一实施例中,第二预设规则可以是根据增量文件中的相关记录的生成时间段的运行等级高低来进行判断。在本实施例中,所述第二预设规则具体包括:

当服务器接收到第二终端发送的第一增量文件后,如果第一增量文件与发送至第二终端的第二增量文件中具有与同一待更新记录对象,则从第一增量文件的时间戳中获取对应记录删改发生的第一时间,从第二增量文件的时间戳中获取对应记录删改发生的第二时间,比较第一时间与第二时间所在时间段的运行等级,所述运行等级为移动终端所处的各时间段的巡检强度和/或工作强度。具体的,例如白天工作时间段各协同部门均处于高效工作状态,其对各设备的检查更加系统规范,由于由各部门的参与,其产生的各种修改记录会比较准确。而晚上往往是处于值班时间段,只能对局部的信息进行检查和调整,由于参与的部门和设备均较少,其产生的各种修改记录往往比较片面,无法与白天正式工作时间段的记录相比,因此如果存在两个完全独立的对一设备的修改记录,那么往往白天时段的记录要优于晚上值班时段的记录,其重要性更强。

如果第一时间早于第二时间,且第一时间的运行等级高于第二时间的运行等级,则服务器采用第一增量文件中内容对数据库中存储的该条记录进行删改更新。

如果第一时间早于第二时间,但第一时间的运行等级不高于第二时间的运行等级,则不采用第一增量文件中内容对数据库中存储的该条记录进行删改更新。

如果第一时间晚于第二时间,且第一时间的运行等级高于或等于第二时间的运行等级,则服务器采用第一增量文件中内容对数据库中存储的该条记录进行删改更新。

如果第一时间晚于第二时间,且第一时间的运行等级低于第二时间的运行等级,则不采用第一增量文件中内容对数据库中存储的该条记录进行删改更新。

如果第一时间等于第二时间,则比较第一时间和第二时间的运行等级,如果第一时间运行等级高于第二时间运行等级,则对服务器采用第一增量文件中内容对数据库中存储的该条记录进行删改更新,否则不对该记录进行删改更新。

在另一具体实施例中,可采用多个预设规则结合使用来判断是否需要采用第二增量文件对该第一终端相关记录进行更新。例如将第一预设规则与第二预设规则结合,采用上述的根据记录的操作者权限等级和记录的生成时间段运行等级等互相配合来进行判断,其中可以采用以生成时间段运行等级判断为主,以操作者权限等级为辅,具体如下。

当服务器接收到第二终端发送的第一增量文件后,如果第一增量文件与发送至第二终端的第二增量文件中具有与同一待更新记录对象,则从第一增量文件的时间戳中获取对应记录删改发生的第一时间,从第二增量文件的时间戳中获取对应记录删改发生的第二时间,比较第一时间与第二时间所在时间段的运行等级,所述运行等级为移动终端所处的各时间段的巡检强度和/或工作强度。

如果第一时间早于第二时间,且第一时间的运行等级高于第二时间的运行等级,则服务器采用第一增量文件中内容对数据库中存储的该条记录进行删改更新。

如果第一时间早于第二时间,但第一时间的运行等级不高于第二时间的运行等级,则不采用第一增量文件中内容对数据库中存储的该条记录进行删改更新。

如果第一时间晚于第二时间,且第一时间的运行等级高于或等于第二时间的运行等级,则服务器采用第一增量文件中内容对数据库中存储的该条记录进行删改更新。

如果第一时间晚于第二时间,且第一时间的运行等级低于第二时间的运行等级,则从第一增量文件中获取对该记录进行删改的第一用户ID,从第二增量文件中获取对该记录进行删改的第二用户ID,根据各用户ID从权限数据库中获取该用户ID对应的权限等级;其中所述权限数据库中存储有可登录各终端对数据进行新增、删改等操作的用户ID以及对应的权限等级。如果第一用户权限等级高于第二用户权限等级,则采用第一增量文件中内容对该条记录进行删改更新,否则不采用第一增量文件中内容对该条记录进行再次删改更新。即虽然第一时间晚于第二时间,但是如果第一时间的运行等级低于第二时间的运行等级且第一用户权限等级也低于第二用户权限等级,则还是不采用第一增量文件中内容对该条记录进行再次删改更新。

在另一实施例中,第三预设规则可以是根据发送第二增量文件的第二终端离线持续时间以及一时间段内的待更新的记录数量来进行判断。在本实施例中,所述第三预设规则具体包括:

获取第二增量文件中的最早删改记录的时间戳,根据最早时间戳计算所述第二终端的离线持续时间最小值,判断所述离线持续时间最小值是否大于设定时间阈值,如大于设定时间阈值则服务器不采用第一增量文件对数据库中存储的该条记录进行删改更新。

如果所述离线持续时间最小值不大于设定时间阈值,则对从第一增量文件的时间戳中获取同一记录删改发生的第一时间,从第二增量文件的时间戳中获取同一记录删改发生的第二时间。

如果第一时间早于第二时间,则服务器不采用第一增量文件对数据库中存储的该条记录进行删改更新。

如果第一时间等于第二时间,则获取第一增量文件中包含的待更新的记录数量和时间戳,如果上述同一记录所在时间段的待更新的记录数量超过预设值,则采用第一增量文件对数据库中的该同一记录进行更新,否则不采用第一增量文件中该同一记录删改信息来对数据库进行更新。

如果第一时间晚于第二时间,则采用第一增量文件对数据库中存储的该条记录进行删改更新。

该实施例中采用的增量文件中同一记录信息的筛选规则,首先通过判断第一增量文件中的最早删改记录时间戳,来获取第二终端此次离线状态持续的时间最少值,当第二终端的离线时间大于一定时间即设定时间阈值时,可以判断该第二终端离线时间太长,其记录的数据可能不太准确,此时最好以服务器的第二增量文件为准进行更新。而当第二终端离线状态在可接受范围内时,对在第一增量文件和第二增量文件中具有同一时间戳的两个同一记录删改信息,一般以服务器的删改信息为准,但是当第一增量文件中该记录所在的时间段内具有的待更新的记录数量超过预设值时,说明该时段可能各个终端和服务器在进行系统性的记录核查,此时将以第一增量文件中该同一记录删改信息为准对第一终端对应记录进行更新,其中的时间段跨度可以是预先设置的几个小时等,仅是一个预设时间跨度区间。

在其它实施例中,其它一直处于在线状态的终端在收到服务器转发的第二终端上传的第一增量文件后,也可采用与上述实施例中描述的类似的预设规则对增量文件内的记录删改信息进行筛选。

本实施例通过移动终端在无网络的环境下,移动端任何增删改查操作只与本地的sqlite数据库发生关系,不与服务器发生任何关系,并且保存sql语句形式的增量文件到本地flash存储中,等网络恢复后上传给服务器。在网络恢复后,移动端将增量文件上传给服务器更新数据库,反过来服务器如果有增量文件文件,则将增量文件下发给移动端,移动端更新sqlite数据库;移动端任何增删改操作会在服务器数据库与本地sqlite数据库同步完成。实现了工厂车间在最低成本下的无网络环境下的电子信息系统的业务操作流程,并可将各移动终端和固定终端的操作记录和操作结果上传同步到系统数据库中,保持服务器系统数据库和各终端本地数据库的数据同步。

在另一实施例中还公开了一种用于数字工厂的离线数据同步装置,包括表结构发送模块,用于向第一终端发送用于导入终端本地数据库的完整的表结构和SQL语句;响应模块,用于根据收到的由第一终端在获取删改记录指令后发送的锁定记录请求向第一终端返回第一响应信息,并对在收到后续第一终端发送的解锁记录请求前的其它终端发送的该记录删改请求拒绝响应,同时将锁定记录请求放入内存队列并在下次心跳到达后通过websocket转发给其它终端,所述锁定记录请求被配置为禁止接收到该请求的终端在收到解锁记录请求前删改该条记录;增量文件生成模块,用于在存在第二终端转发失败时为对应终端保存带时间戳的SQL增量文件;并根据收到的由第一终端在获取删改记录指令后发送的锁定记录请求向第一终端返回第一响应信息,并对在收到后续第一终端发送的解锁记录请求前的其它终端发送的该记录删改请求拒绝响应,同时将锁定记录请求放入内存队列并在下次心跳到达后通过websocket转发给其它终端,所述锁定记录请求被配置为禁止接收到该请求的终端在收到解锁记录请求前删改该条记录;增量文件发送模块,用于在第二终端切换至在线状态后,接收第二终端发送的第一增量文件,并向第二终端发送其对应的第二增量文件。

在本实施例中,所述增量文件发送模块还被配置为在收到第二终端上传的第一增量文件后继续等待多个心跳周期,如未收到其它终端的上传增量文件请求,则向所有终端发送锁表请求广播并停止对各终端发送的新增或删改更新请求的响应,按SQL时间戳顺序重组所有增量文件后导入数据库,所述锁表请求广播被配置为禁止终端向服务器发送新增或删改更新请求至收到解锁请求广播。

在本实施例中,所述增量文件发送模块还被配置为在接收到第二终端发送的第一增量文件后,若第一增量文件和发送至第二终端的第二增量文件中均存在对同一记录的删改时,根据预设规则对该第一增量文件和第二增量文件中的该记录删改信息进行筛选,判断是否需要采用第一增量文件对该服务器数据库中的相关记录进行更新。

在本实施例中,所述预设规则具体包括:从第一增量文件中获取对该记录进行删改的第一用户ID,从第二增量文件中获取对该记录进行删改的第二用户ID,根据各用户ID从数据库中获取该用户ID对应的权限等级;如果第一用户权限等级高于第二用户权限等级,则采用第一增量文件中内容对数据库中存储的该条记录进行删改更新;如果第一用户权限等级低于或等于第二用户权限等级,则从第一增量文件时间戳中获取该记录删改发生的第一时间,从第二增量文件时间戳中获取该记录删改发生的第二时间,若第一时间晚于第二时间,则采用第一增量文件中内容对该条记录进行删改更新,否则不对该记录进行删改更新。

上述用于数字工厂的离线数据同步装置的具体功能和组成与前面实施例所公开的用于数字工厂的离线数据同步方法一一对应,故再次不再详细展开描述,具体可参考前面公开的用于数字工厂的离线数据同步方法各实施例。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的用于数字工厂的离线数据同步装置而言,由于其与实施例公开的用于数字工厂的离线数据同步方法相对应,所以描述的比较简单,相关之处参见前述方法部分说明即可。

在另一些实施例中,还提供了一种用于数字工厂的离线数据同步服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述各实施例中描述的用于数字工厂的离线数据同步方法的各个步骤。

其中用于数字工厂的离线数据同步服务器可包括但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是用于数字工厂的离线数据同步服务器的示例,并不构成对用于数字工厂的离线数据同步服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。

所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述用于数字工厂的离线数据同步的装置设备的控制中心,利用各种接口和线路连接整个用于数字工厂的离线数据同步的装置设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述用于数字工厂的离线数据同步的装置设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述用于数字工厂的离线数据同步装置如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个用于数字工厂的离线数据同步方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种数据同步方法、装置、电子设备以及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!