掌桥专利:专业的专利平台
掌桥专利
首页

基于物联网平台的数据同步方法及系统

文献发布时间:2024-04-29 00:47:01


基于物联网平台的数据同步方法及系统

技术领域

本申请涉及一种物联网技术领域,具体而言,涉及基于物联网平台的数据同步方法及系统。

背景技术

近年来,城市化进程加速,城市人口规模持续扩大,日益增长的交通需求对城市轨道交通系统提出了更高的要求,因此提出了轨道交通数字化改造,建设轨道交通物联网,实现车站、列车、信号等设备互联互通;目前,物联网平台在智慧交通、运营管理、车站乘客信息服务等方面有着广泛应用,如通过采集、处理和传输现场数据,实现轨道交通车辆和设备监测、故障预警处理等功能;但目前在数字化改造中,轨道交通系统的物联网平台仅是设备数据的收集与传输,轨道交通的物联网平台管理的设备数据是孤立的。

发明内容

为解决上述技术问题,本申请的实施例提供了一种基于物联网平台的数据同步方法及系统、电子设备、计算机可读存储介质以及计算机程序产品,实现跨平台对物联网设备的数据间的同步,提高了设备数据的可靠性,提高了物联网平台的整体性能和效率。

根据本申请实施例的一个方面,提供了一种基于物联网平台的数据同步方法,应用于自研物联网平台,所述方法包括:接收来自外部设备平台的同步请求,并根据所述同步请求从外部文件系统获取所述外部设备平台上传的同步文件;对所述同步文件进行解析处理以获取外部设备表,并将所述外部设备表存储至本地数据库中的临时表;获取本地物联网设备表,将所述物联网设备表与所述外部设备表进行对比,并根据比对结果对所述物联网设备表进行更新,以将外部设备同步至所述自研物联网平台;在设备同步完成后清除所述临时表中的数据,并向所述外部设备平台发送同步结果。

根据本申请实施例的一个方面,所述根据所述同步请求从外部文件系统获取所述外部设备上传的同步文件,包括:根据所述本地数据库获取本地同步任务的同步状态;若所述同步状态指示当前存在进行中的同步任务,则在间隔预设时间段后再次获取所述本地同步任务的同步状态;若所述同步状态指示当前无进行中的同步任务,则根据所述同步请求从外部文件系统获取所述外部设备上传的同步文件,并配置所述同步状态为同步进行状态,且对所述外部设备平台进行加锁处理。

根据本申请实施例的一个方面,所述方法还包括:获取当前进行中的同步任务的同步时间;若所述同步时间超过预设时间阈值,则将所述同步请求的同步状态设置为同步受理失败状态,并向所述外部设备平台发送指示同步受理失败的结果。

根据本申请实施例的一个方面,所述根据所述本地数据库获取本地同步任务的同步状态之前,所述方法还包括:获取所述同步请求的请求参数,所述请求参数包括请求标识和文件路径中的至少一种;根据所述请求参数将所述同步请求与上一次同步请求进行对比,以确定所述同步请求为非重复请求。

根据本申请实施例的一个方面,所述接收来自外部设备平台的同步请求,包括:若检测到所述外部设备平台触发同步接口的调用,则根据物联网预先为所述外部设备平台分配的接入标识和密钥对所述外部设备平台进行鉴权处理;在对所述外部设备平台的鉴权通过后,接收来自外部设备平台的同步请求。

根据本申请实施例的一个方面,所述根据所述同步请求从外部文件系统获取所述外部设备平台上传的同步文件,包括:根据所述同步请求获取所述同步文件的文件路径,对所述文件路径进行编码处理,并将编码处理后的文件路径存储在临时表中;根据所述文件路径从外部文件系统获取所述同步文件;对所述同步文件进行解析处理,以获取待同步设备信息,包括:在对所述同步文件进行解析处理的过程中,若检测到同步文件解析失败或外部设备解析异常,则终止同步过程。

根据本申请实施例的一个方面,所述获取本地物联网设备表之前,所述方法还包括:从所述自研物联网平台的开源物联网平台中获取目标物联网设备的设备信息,以生成所述物联网设备表,并所述物联网设备表存储在所述本地数据库,其中,所述开源物联网平台中维护有各物联网设备的设备信息。

根据本申请实施例的一个方面,所述将所述物联网设备表与所述外部设备表进行对比,包括:将物联网设备表的物联网设备标识和所述外部设备表的外部设备标识进行对比;根据所述外部设备标识和所述设备标识的差值,将目标外部设备标识标记为新增设备标识或删除设备标识,并将所述新增设备标识或删除设备标识写入所述临时表;根据所述物联网设备标识和外部设备标识的交集,确定待更新设备标识,并将所述待更新设备标识对应的设备信息写入所述临时表;获取所述临时表中待更新设备标识对应的设备信息,以及新增设备标识或删除设备标识,以生成同步列表,并根据所述同步列表对所述物联网设备进行更新。

根据本申请实施例的一个方面,所述向所述外部设备平台发送同步结果,包括:从所述同步请求中回获取回调地址,根据所述回调地址将所述同步结果发送至所述外部设备平台;若针对所述同步请求的同步结果发送失败,且失败次数小于预设次数阈值,则更新回调失败次数;重复执行根据所述回调地址将所述同步结果发送至所述外部设备平台的步骤,直至所述失败次数大于所述预设次数阈值。

根据本申请实施例的一个方面,提供了一种基于物联网平台的数据同步系统,所述系统包括外部设备平台和自研物联网平台,所述自研物联网平台包括设备同步服务模块,物联网模块,以及数据库,包括:设备同步服务模块,用于接收来自外部设备平台的同步请求,并根据所述同步请求从外部文件系统获取所述外部设备平台上传的同步文件;对所述同步文件进行解析处理以获取外部设备表,并将所述外部设备表存储至本地数据库中的临时表;设备同步服务模块,还用于从物联网模块中获取本地物联网设备表,将所述物联网设备表与所述外部设备表进行对比,并根据比对结果对所述物联网设备表进行更新,以将外部设备同步至所述物联网平台;在设备同步完成后清除所述临时表中的数据,并向所述外部设备平台发送同步结果。

根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的基于物联网平台的数据同步方法。

根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的基于物联网平台的数据同步方法。

根据本申请实施例的一个方面,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的基于物联网平台的数据同步方法中的步骤。

在本申请的实施例所提供的技术方案中,自研物联网平台可接收来自外部设备平台的同步请求,并根据同步请求从外部文件系统获取外部设备平台上传的同步文件,确保了数据在传输和存储过程中的完整性和可靠性,通过对同步文件进行解析处理获得外部设备表,进而将外部设备表存储在临时表中,减少对主物联网设备表的直接操作,提高了系统的稳定性,通过将物联网设备表与外部设备表进行对比,并根据比对结果对物联网设备表进行更新,进而在设备同步完成后清除临时表中的数据,可有效地释放了临时存储资源,避免了数据冗余,提高了系统整体的存储利用率,并向外部设备平台发送同步结果,实现跨平台对物联网设备的数据间的同步,提高了设备数据的可靠性,提高了物联网平台的整体性能和效率,从而为整个轨道交通系统提供更为综合和准确的信息。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本申请的一示例性实施例示出的进行基于物联网平台的数据同步方法的实施环境示意图;

图2是本申请的一示例性实施例示出的基于物联网平台的数据同步方法的流程图;

图3是本申请的一示例性实施例示出的基于物联网平台的数据同步系统的示意图;

图4是图3中在一示例性实施例示出的设备同步服务的具体结构示意图;

图5是图3中在一示例性实施例中的基于物联网平台的数据同步方法流程示意图;

图6是图5中在一示例性实施例示出的同步异常的处理的流程图;

图7是图5中在一示例性实施例示出的同步通知的流程图;

图8是图5中在一示例性实施例示出的文件解析的流程图;

图9是图5中在一示例性实施例示出的设备对比的流程图;

图10是图9中在一示例性实施例示出的差异对比的流程图;

图11是图5中在一示例性实施例示出的结果回调的流程图;

图12是本申请的一示例性实施例示出的基于物联网平台的数据同步系统的框图;

图13示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

图1是本申请一示例性实施例示出的基于物联网平台的数据同步的实施环境示意图。该实施环境包括自研物联网平台10、外部设备平台20和外部文件系统30,其中,外部设备平台20和自研物联网平台10是相互独立的,为了保持各个平台信息的一致,需要进行数据同步。

外部设备平台20用于发起同步请求,统一网关将同步请求转发至自研物联网平台。

自研物联网平台10用于根据同步请求从外部文件系统获取外部设备平台上传的同步文件;对同步文件进行解析处理以获取外部设备表,并将外部设备表存储至本地数据库中的临时表;获取物联网模块的本地物联网设备表,将物联网设备表与外部设备表进行对比,并根据比对结果对物联网设备表进行更新,以将外部设备同步至自研物联网平台;在设备同步完成后清除临时表中的数据,并向外部设备平台发送同步结果。

该自研物联网平台是指申请人内部所研发的物联网平台,复用开源物联网平台的相关功能,并在开源物联网平台的基础上做进一步扩展、改进/优化等;其中开源物联网平台是指最基本的实现物联网功能的开源软件框架,其提供了各种工具和技术,能够帮助开发人员快速搭建物联网应用。

示例性地,开源物联网平台可以为jetlinks,该JetLinks基于Java8,Spring Boot2.x,WebFlux,Netty,Vert.x,Reactor等开发,是一个企业级物联网基础平台。

在一示例中,自研物联网平台为基于轨道交通的物联网平台,物联网设备为轨迹交通的相关设备,如闸机、滑动门、屏蔽门、AFC(自动售检票)、空调机组等。外部设备平台可以为提供物联网设备的厂商平台,也可是基础支持服务平台,该基础支持服务平台可以实现设备监控、固件管理等。

需要说明的事,本申请实施例中的外部设备平台还可以是外部通信平台,进而自研物联网对物联网设备进行监控管理,所获得数据通过云端实时与外部通信平台对接,进而外部通信平台将对应信息通知至相关人员。

请参阅图2,图2是本申请的一示例性实施例示出的基于物联网平台的数据同步方法的流程图。该方法可应用于图1所示的实施环境,并由该实施环境中的自研物联网平台具体执行,应当理解的是,该方法也可以适用于其他的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。

如图2所示,在一示例性的实施例中,基于物联网平台的数据同步方法至少包括步骤S210至步骤S240,详细介绍如下:

S210、接收来自外部设备平台的同步请求,并根据同步请求从外部文件系统获取外部设备平台上传的同步文件。

在本申请实施例中,自研物联网平台通过统一网关接收来自外部设备平台的同步请求,该同步请求用于指示对设备信息进行同步,该同步请求中携带有同步文件的文件路径和文件唯一标识,因此可基于文件路径确定外部文件系统,基于文件唯一标识从外部文件系统获取该同步文件;其中,同步文件的数量可以是一个,也可以是多个,在此不进行限定。

可以理解的是,该同步文件是外部设备平台预先上传至外部文件系统的,该同步文件可包括外部设备平台管理的外部设备的相关信息;如下表1所示。

表1

其中,设备名称能够尽量多地表达设备信息,如设备类型信息;创建时间可以是设备注册时间,更新时间可以为设备信息更新时间,如设备版本更新时间;记录标识用于标识全量、新增、删除或更新等。

在一示例中,为了数据同步的安全性和可靠性,在接收来自外部设备平台的同步请求之前,需要对外部设备平台进行鉴权处理;即若检测到外部设备平台触发同步接口的调用,则根据物联网预先为外部设备平台分配的接入标识和密钥对外部设备平台进行鉴权处理;在对外部设备平台的鉴权通过后,接收来自外部设备平台的同步请求。

其中,同步接口由自研物联网平台提供,外部设备平台调用该同步接口时需要使用物联网预先分配的接入ID和密钥,在外部设备平台使用的接入ID和密钥与自研物联网平台预先分配的接入ID和密钥一致时,表示对该外部设备平台鉴权通过,此时接收同步请求。

在本申请实施例中,通过检测到外部设备平台触发同步接口的调用,进而对外部设备平台进行鉴权处理,保证跨平台数据同步的安全性和可靠性。

在一示例中,接收同步请求后,对同步请求进行处理则表示需要执行同步任务,为了避免多个同步任务同时请求,自研物联网平台需要进行同步状态检查,因此,根据同步请求从外部文件系统获取外部设备上传的同步文件,包括:

根据本地数据库获取本地同步任务的同步状态;

若同步状态指示当前存在进行中的同步任务,则在间隔预设时间段后再次获取本地同步任务的同步状态;

若同步状态指示当前无进行中的同步任务,则根据同步请求从外部文件系统获取外部设备上传的同步文件,并配置同步状态为同步进行状态,且对外部设备平台进行加锁处理。

本地数据库中记录每个同步任务的同步状态,该同步状态包括待同步、同步进行中,因此,可从本地数据库中获取本地同步任务的同步状态。若同步状态为同步进行中,则表示当前存在进行中的同步任务,自研物联网平台需要继续执行上一次同步任务,并在间隔预设时间段后再次获取本地同步任务的同步状态,即定时检查上一次同步任务是否结束;其中,该间隔预设时间段可以根据时间情况进行灵活调整,如定时间隔10分钟检测一次同步状态。

若本地同步任务的同步状态为待同步,则表示当前无进行中的同步任务,此时可以将该同步请求生成本次同步任务,进而获取外部设备上传的同步文件,并配置同步状态为同步进行状态,对外部设备平台进行加锁处理,避免多个同步任务同时进行,且保证同一时间同一外部设备平台只有一个同步任务执行。

在本申请实施例中,通过获取本地同步任务的同步状态来确定当前是否有进行中的同步任务,进而选择不同的处理方式,以避免多个同步任务同时进行,保证同步任务不受其他同步任务的影响,提供数据同步的可靠性。

在一示例中,在同步状态指示当前存在进行中的同步任务时,还需要检测同步中的任务的同步时间,方法还包括:

获取当前进行中的同步任务的同步时间;

若同步时间超过预设时间阈值,则将同步请求的同步状态设置为同步受理失败状态,并向外部设备平台发送指示同步受理失败的结果。

当前进行中的同步任务的同步时间可以是指该同步任务开始时间起至当前时间为止的时间间隔,同步任务开始时间为从外部文件系统获取同步文件的时间;该同步时间还可以是指第一次获取本地同步任务的同步状态的时间起至当前为止的时间间隔。

若该同步时间超过预设时间阈值,则表示当前进行中的同步任务可能出现同步异常,无继续执行新的同步请求,因此将外部设备平台的同步请求的同步状态设置为同步受理失败状态,进而向外部设备平台发送指示同步受理失败的结果;其中,预设时间阈值可以根据时间灵活进行调整,如可以根据同步文件的文件大小确定,文件越大,该预设时间阈值也大,如预设时间阈值为1小时。

若同步时间未超过预设时间阈值,则继续在间隔预设时间段后再次获取本地同步任务的同步状态。

在本申请实施例中,在当前进行中的同步任务的同步时间超过预设时间阈值的情况下,设置同步请求的同步状态为同步受理失败状态,可避免对存储空间一直积压同步任务。

需要说明的事,同步过程执行需要一定的时间和资源,同时会引起结果的改变,在设备同步执行期间,相同平台的同步请求会被拒绝,因此,根据本地数据库获取本地同步任务的同步状态之前,方法还包括:

获取同步请求的请求参数,请求参数包括请求标识和文件路径中的至少一种;

根据请求参数将同步请求与上一次同步请求进行对比,以确定同步请求为非重复请求。

在本申请实施例中,外部设备平台发起的同步请求还携带有请求参数,该请求参数包括请求标识,即请求ID,而每次同步请求的请求ID需要保证唯一性;文件路径即指示了同步文件存储为止。

本地数据库中还缓冲了该外部设备平台的上一次同步请求的请求数据,根据请求标识和文件路径中的至少一个,将本次同步请求与上一次同步请求进行对比,若本次同步请求与上一次同步请求属于同一请求ID或属于同一组文件路径,则表示本地同步请求未重复的同步请求,不予处理,而确定同步请求为非重复请求时,根据本地数据库获取本地同步任务的同步状态。

在本申请实施例中,步骤S210中获取同步文件具体包括:

根据同步请求获取同步文件的文件路径,对文件路径进行编码处理,并将编码处理后的文件路径存储在临时表中;根据文件路径从外部文件系统获取同步文件。

如前所描述的,同步请求中携带了文件路径,但文件路径可能存在特殊字符无法存入数据库,因此需要将文件路径进行编码处理,进而将编码处理后的文件路径存储在数据库的临时表中,进而在处理下一次同步请求时,也需要对下一次同步请求的文件路径进行编码处理,将临时表中编码后的文件路径与下一次同步请求对应的编码后的文件路径进行对比,以确定是否为重复请求,自研物联网平台根据文件路径从外部文件系统获取同步文件。

S220、对同步文件进行解析处理以获取外部设备表,并将外部设备表存储至本地数据库中的临时表。

在本申请实施例中,对同步文件进行解析处理,如从表1中提取设备ID,以及每个设备的设备信息(如设备名称、创建时间、更新时间等),基于设备ID和设备信息生成外部设备报表,将外部设备表存储在本地数据库中的临时表,该临时表用于临时存储,其可以在一定时间后,自动清除表中的数据,以减少存储资源。

在一示例中,将外部设备表存储至临时表之前,还可清除临时表中的设备信息,以防止异常情况未清除。

而在对同步文件进行解析处理的过程中,可以存在异常,此时为了保证自研物联网的自身的安全性,需要终止同步过程。

在一示例中,若检测到同步文件解析失败或外部设备解析异常,则终止同步过程;其中,同步文件解析失败可以是指不能从同步文件中提取信息,在同步文件解析成功后,进一步解析设备信息,以提取设备信息的格式,如设备信息的格式错误,如,同步文件的设备名称格式为number,与预设设备格式String不同,则终止同步过程。

S230、获取本地物联网设备表,将物联网设备表与外部设备表进行对比,并根据比对结果对物联网设备表进行更新,以将外部设备同步至自研物联网平台。

在本申请实施例中,自研物联网平台本地存储有物联网设备表,该物联网设备表包括使用的物联网设备,如轨迹交通的闸机和AFC;在一示例中,获取本地物联网设备表之前,还包括:从自研物联网平台的开源物联网平台中获取目标物联网设备的设备信息,以生成物联网设备表,并物联网设备表存储在本地数据库,如开源物联网平台为jetlinks,可该jetlinks中获取已部署的各物联网设备的设备信息,自研物联网设备从该jetlinks获取部分物联网设备,如各个闸机和屏蔽门的设备信息,以生成物联网设备表,进而将该物联网设备表存储在本地数据库中。

在一示例中,物联网设备表的设备信息除了包含上述表1的各种设备信息,还可以包括物联网设备的部署信息,如地铁站点编号、地铁线路编号等。

将物联网设备表与外部设备表进行对比,并根据比对结果对物联网设备表进行更新;其中,更新包括全量更新和增量更新,全量更新是指若比对结果表征外部设备表与物联网设备表不同,则将外部设备表中的所有信息写入物联网设备表;而增量更新是指若比对结果表征外部设备表与物联网设备表不同,则物联网设备表中差异的部分写入该物联网设备表中,以实现将外部平台设备的设备信息同步至该自研物联网平台。

在一示例中,将物联网设备表的物联网设备标识和外部设备表的外部设备标识进行对比;根据外部设备标识和设备标识的差值,将目标外部设备标识标记为新增设备标识或删除设备标识,并将新增设备标识或删除设备标识写入临时表。即进行物联网设备表l2与外部设备表l1的设备ID差异对比,l1-l2的差值,将差值对应的目标外部设备ID标记为新增;l2-l1的差值,将差值对应的目标外部设备ID标记为删除,进而将新增设备标识或删除设备标识写入临时表。

进一步地,可以根据物联网设备标识和外部设备标识的交集,确定待更新设备标识,并将待更新设备标识对应的设备信息写入临时表;在新增或删除设备后,还可以对未新增或删除的设备的设备信息进行更新,根据l1和l2的交集,确定待更新设备ID,该待更新设备标识为l1-l2的差值对应的设备ID,将该待更新设备ID对应的设备信息写入临时表。

获取临时表中待更新设备标识对应的设备信息,以及新增设备标识或删除设备标识,以生成同步列表,根据同步列表对物联网设备的设备数量以及设备信息进行更新。

S240、在设备同步完成后清除临时表中的数据,并向外部设备平台发送同步结果。

在本申请实施例中,在设备同步完成后可清除临时表中的数据,以节省存储资源以及未下一次同步做准备,同时向外部设备平台发送同步结果,该同步结果包括同步成功或同步失败,若为同步失败,则需要向外部设备平台说明失败原因,即通过向外部设备平台发送同步结果,形成了一个闭环反馈系统,有助于及时发现和解决数据同步中可能出现的问题。

在一示例中,向外部设备平台发送同步结果,包括:

从同步请求中回获取回调地址,根据回调地址将同步结果发送至外部设备平台;若针对同步请求的同步结果发送失败,且失败次数小于预设次数阈值,则继续更新失败次数;重复执行根据回调地址将同步结果发送至外部设备平台的步骤,直至失败次数大于预设次数阈值。

其中,同步请求还包括回调地址,由外部设备平台提供,该回调地址用于指示同步结果的返回地址,进而可以通过该回调地址直接将同步结果发送至外部设备平台,而无需通过统一网关发送;若同步请求无回调地址,则无需向外部设备平台发送同步结果。

在一示例中,存在同步结果发送失败的情况,如外部设备平台崩溃、服务下线,需要记录同步结果发送失败次数,若外部设备平台接收到该同步结果,会向自研物联网平台反馈一个确认消息,若在预设时间内未接收到该确认消息,则表示同步结果发送失败;若失败次数小于预设次数阈值,则继续更新失败次数,即失败次数+1;其中,可以是连续失败次数小于预设次数阈值,继续更新失败次数,也可以是失败总次数小于预设次数阈值,继续更新失败次数,此时,重复执行同步结果的发送过程,直至失败次数大于预设次数阈值,则无需在向外部设备平台发送同步结果。

在本申请实施例中,根据回调地址将同步结果发送至外部设备平台,将同步结果准确且及时告知外部设备平台,而在同步结果发送失败,且失败次数小于预设次数阈值,则更新回调失败次数,并继续发送同步结果,直至失败次数大于预设次数阈值,节省了相关资源。

为了便于理解,对本申请实施例提供的基于物联网平台的数据同步方法进行详细说明,如图3所示和图4所示,该基于物联网平台的数据同步系统包括自研物联网平台、外部设备平台、文件系统,在图1所示的基础上,还包括统一网关,以实现外部对接接口的统一,外部设备平台对接物联网平台,由该统一网关进行签名验证,同时进行请求的转发;其中,自研物联网平台包括设备同步服务模块、物联网模块和数据库;设备同步服务模块在复用网关程序,增加同步插件,并在主程序的消息处理组件中扩展两个组件:消息标准化组件和消息比对组件,在平台连接中增加设备同步消息的处理。其中,同步插件可进行文件获取、文件解析、设备对比、设备同步等,消息处理组件可以进行消息去重过滤、消息重试、消息匹配等。

如图5所示,基于物联网平台的数据同步方法包括:

S510、同步文件上传。S520、同步通知。S530、文件解析。S540、设备比对。S550、比对更新。S560、同步完成处理。

其中,外部设备平台将同步文件上传至文件系统,并调用网关的同步通知接口,进而网关将同步请求转发至设备同步服务模块,由同步模块接收并处理该同步请求,并将同步请求受理结果发送网关,通过网关将同步请求受理结果发送至外部设备平台。

其中,同步请求受理结果包括受理成功,此时设备同步服务模块从文件系统中获取同步文件,并进而文件解析获取外部设备的设备信息。

设备同步服务模块将外部设备的设备信息录入数据库的临时表,并从物联网模块中拉取物联网设备,将物联网设备与临时表的外部设备进行对比,生成对比记录和对比结果,并将对比结果存放在临时表中,之后进行设备更新,在更新完成后,清除临时表中的临时数据,并将对比记录存在数据库,之后将外部设备平台发送同步结果,以进行同步回调。

如图6所示,在数据同步过程中存在异常同步情况,异常同步处理包括:

在设备同步服务模块启动后,会进行同步状态检查,对同步中任务的处理,即从数据库中获取平台同步任务的同步状态,如该同步状态表征同步中,则获取上一次同步任务,并继续执行上一次同步任务。此外,定时检查,以再次获取平台同步任务的同步状态,上一次同步任务的同步中时间超过阈值,以将上一次同步任务的同步状态设置失败;也可以可将本地同步状态设置为失败,在针对本次同步任务的同步结果回调未成功且回调次数未超过阈值时,向外部设备平台发送同步结果。

如图7所示,S520的同步通知具体包括:

为了保持外部设备对接的一致性,在设备控制、设备属性获取、设备同步等,都通过物联网提供统一接口,物联网内部转发至设备同步服务模块执行同步操作;由物联网分配统一的接入ID和密钥,因此网关先对外部设备平台进行鉴权处理,在鉴权通过后,将同步请求转发至设备同步服务,之后设备同步服务将本地请求与上一次请求进行对比,以进行重复请求的检查,若为重复请求,则拒绝执行,并通过网关向外部设备平台返回请求结果;缓存外部平台上一次请求数据,对于重复请求:同一请求ID或与同一组文件路径,视为重复的同步请求,不予处理。若非重复请求,则从数据库中查询平台同步状态,若同步状态表示同步中,则通过网关向外部设备平台返回请求失败,有正在同步的结果。若同步状态表征未同步中,则将平台状态设置为同步中,并保存同步任务,通过网关返回同步请求接收成功的结果。即同步时会对外部设备平台进行加锁,保证同一时间同一外部设备平台只有一个同步操作执行

同步过程中,出现系统崩溃、服务下线时,如果同步还未完成,此时服务重启时,平台一直处于同步状态,无继续执行新的同步请求;此时需要继续执行上一步同步请求,将同步执行完成,在同步完成,平台同步状态恢复为待同步,并进行同步结果回调通知。

如图8所示,S530的文件解析包括:首先记录文件路径,以便于下次重复请求的判断,由于文件路径可能存在特殊字符无法存入数据库,需要进行路径编码;根据文件里地址列表逐个解析处理,若文件解析过程中出现异常将终止同步,将文件逐个解析完成后,设备数据统一在数据库中临时存放。

如图9所示,S540的设备比对包括:全量更新和增量更新,增量更新时,需要先清除临时表中的设备,以防止异常情况未清除,解析得到的设备数据写入临时表,并从物联网模块中获取物联网设备列表,进而进行设备差异对比,将比对结果写入临时表中。全量更新时,也需先清除临时表中的设备,将解析的设备数据直接写入临时表,进而从临时表中获取设备[新增、更新、删除]类别,进行设备同步;其中,差异对比的过程如图10所示,即包括ID差异对比和信息差异对比。

如图11所示,同步结果回调的过程包括:设备同步服务将同步结果发送至外部设备平台,在接收到外部设备平台返回的接收结果,即任务同步更新,回调完成,将回调成功的消息存储至数据库,若未回调成功且回调次数小于预测,向外部设备平台进行结果回调,并更新回调结果与回调次数+1。其中,同步结果回调接口由外部设备平台提供;回调地址由设备同步请求时指定,未指定回调地址无需回调。

在此介绍本申请的装置实施例,可以用于执行本申请上述实施例中的基于物联网平台的数据同步方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的基于物联网平台的数据同步方法的实施例。

图12是本申请的一示例性实施例示出的基于物联网平台的数据同步系统的框图。该系统可以应用于图12所示的实施环境。该系统也可以适用于其它的示例性实施环境,并具体配置在其它平台中,本实施例不对该系统所适用的实施环境进行限制。

如图12所示,该示例性的基于物联网平台的数据同步系统;系统包括外部设备平台1210和自研物联网平台1220,所述自研物联网平台包括设备同步服务模块1221,物联网模块1222,以及数据库1223,包括:

设备同步服务模块1221,用于接收来自外部设备平台的同步请求,并根据所述同步请求从外部文件系统获取所述外部设备平台上传的同步文件;对所述同步文件进行解析处理以获取外部设备表,并将所述外部设备表存储至本地数据库中的临时表;

设备同步服务模块1221,还用于从物联网模块中获取本地物联网设备表,将所述物联网设备表与所述外部设备表进行对比,并根据比对结果对所述物联网设备表进行更新,以将外部设备同步至所述物联网平台;在设备同步完成后清除所述临时表中的数据,并向所述外部设备平台发送同步结果。

在本申请所提供的其中一个实施例中,上述设备同步服务模块具体用于根据所述本地数据库获取本地同步任务的同步状态;若所述同步状态指示当前存在进行中的同步任务,则在间隔预设时间段后再次获取所述本地同步任务的同步状态;若所述同步状态指示当前无进行中的同步任务,则根据所述同步请求从外部文件系统获取所述外部设备上传的同步文件,并配置所述同步状态为同步进行状态,且对所述外部设备平台进行加锁处理。

根据本申请实施例的一个方面,上述设备同步服务模块还用于获取当前进行中的同步任务的同步时间;若所述同步时间超过预设时间阈值,则将所述同步请求的同步状态设置为同步受理失败状态,并向所述外部设备平台发送指示同步受理失败的结果。

根据本申请实施例的一个方面,上述设备同步服务模块还用于获取所述同步请求的请求参数,所述请求参数包括请求标识和文件路径中的至少一种;根据所述请求参数将所述同步请求与上一次同步请求进行对比,以确定所述同步请求为非重复请求。

根据本申请实施例的一个方面,上述设备同步服务模块具体用于若检测到所述外部设备平台触发同步接口的调用,则根据物联网预先为所述外部设备平台分配的接入标识和密钥对所述外部设备平台进行鉴权处理;在对所述外部设备平台的鉴权通过后,接收来自外部设备平台的同步请求。

根据本申请实施例的一个方面,上述设备同步服务模块具体用于根据所述同步请求获取所述同步文件的文件路径,对所述文件路径进行编码处理,并将编码处理后的文件路径存储在临时表中;根据所述文件路径从外部文件系统获取所述同步文件;对所述同步文件进行解析处理,以获取待同步设备信息,包括:在对所述同步文件进行解析处理的过程中,若检测到同步文件解析失败或外部设备解析异常,则终止同步过程。

根据本申请实施例的一个方面,上述设备同步服务模块具体用于从所述自研物联网平台的开源物联网平台中获取目标物联网设备的设备信息,以生成所述物联网设备表,并所述物联网设备表存储在所述本地数据库,其中,所述开源物联网平台中维护有各物联网设备的设备信息。

根据本申请实施例的一个方面,上述设备同步服务模块具体用于将物联网设备表的物联网设备标识和所述外部设备表的外部设备标识进行对比;根据所述外部设备标识和所述设备标识的差值,将目标外部设备标识标记为新增设备标识或删除设备标识,并将所述新增设备标识或删除设备标识写入所述临时表;根据所述物联网设备标识和外部设备标识的交集,确定待更新设备标识,并将所述待更新设备标识对应的设备信息写入所述临时表;获取所述临时表中待更新设备标识对应的设备信息,以及新增设备标识或删除设备标识,以生成同步列表,并根据所述同步列表对所述物联网设备进行更新。

根据本申请实施例的一个方面,上述设备同步服务模块具体用于从所述同步请求中回获取回调地址,根据所述回调地址将所述同步结果发送至所述外部设备平台;若针对所述同步请求的同步结果发送失败,且失败次数小于预设次数阈值,则更新回调失败次数;重复执行根据所述回调地址将所述同步结果发送至所述外部设备平台的步骤,直至所述失败次数大于所述预设次数阈值。

需要说明的是,上述实施例所提供的基于物联网平台的数据同步系统与上述实施例所提供的基于物联网平台的数据同步方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。

上述实施例所提供的基于物联网平台的数据同步系统在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。

本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现上述各个实施例中提供的基于物联网平台的数据同步方法。

图13示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图13示出的电子设备的计算机系统1300仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制,其中,电子设备可配置于自研物联网平台中,以实现上述数据同步方法。

如图13所示,计算机系统1300包括中央处理单元(Central Processing Unit,CPU)1301,其可以根据存储在只读存储器(Read-Only Memory,ROM)1302中的程序或者从储存部分1308加载到随机访问存储器(Random Access Memory,RAM)1303中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 1303中,还存储有系统操作所需的各种程序和数据。CPU 1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(Input/Output,I/O)接口1305也连接至总线1304。

以下部件连接至I/O接口1305:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(LiquID Crystal Display,LCD)等以及扬声器等的输出部分1307;包括硬盘等的储存部分1308;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入储存部分1308。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被中央处理单元(CPU)1301执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的基于物联网平台的数据同步方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。

本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的基于物联网平台的数据同步方法。

上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。

相关技术
  • 一种RIS平台与影像辅助诊断系统例数据同步方法
  • 用于物联网平台的异地数据库的数据同步方法
  • 基于BW平台的对账平台数据同步方法及系统
技术分类

06120116594502