一种跨网闸数据传输方法及系统与流程

文档序号:20884127发布日期:2020-05-26 17:22阅读:1147来源:国知局
一种跨网闸数据传输方法及系统与流程

本发明属于网闸数据传输技术领域,尤其涉及一种跨网闸数据传输方法及系统。



背景技术:

基于ip网络的视频监控已经逐渐发展成为安防业的主流方案,而无论是公路、园区、平安工程等大型项目,因为ip的标准和开放性,又考虑网络通信传输的安全原因,在各种网络孤岛的整合中,nat、防火墙、安全隔离网闸等技术被大量应用于各大项目中。其中网闸设备的技术应用,其技术核心理念是实现物理隔离,从物理上隔离、阻断了具有潜在攻击可能的一切连接,使"黑客"无法入侵、无法攻击、无法破坏,实现了真正的安全。这种隔离技术确实实现了网络的安全,但同样引入了一个新的问题,因为针对车辆信息、布控信息等数据传输都要求有较高的实时性能,这样对网段间实现数据传输的及时性能、完整性能有了新的挑战。

安全隔离网闸在视频监控系统的现有应用中,往往存在以oracle数据库传输或文件传输两种方式:

其中,以oracle数据库传输时,在数据库存储数据图片的url的情况下,网闸以ip地址代理方式实现数据传输,即来自视频专网、或者公共外网的流量先发送到网闸的一个代理ip,网闸修改目的ip后再往内网转发,当内网需要通过url地址获取图片时,再通过已经修改为内网的ip地址回访,再通过网闸映射的端口回访视频专网或者公共外网,再获取图片流,然后再传输到内网;或在网闸双边都部署oracle数据库,oracle数据库支持直接进行图片流写入数据库,网闸支持两个数据库之间直接传输图片流。

然而,视频监控系统行业的厂家大多应用的并非oracle数据库,上述方案需要直接应用视频专网、或者公共外网的oracle数据库,然后再上传到内网各个项目涉及厂商的平台,这里会对视频专网、或者公共外网的oracle数据库的操作性能压力有影响,在庞大的数据量存储及频繁的数据库i/o操作情况下,数据库的性能将出现瓶颈。在以图片流的形式传输时,对于每次写入数据库是单条数据写入,日处理量500万条以上数据的情况,单条写入、内网的查询性能都将收到严峻的考验。况且oracle数据库是需要缴费的数据库,并不是广泛应用于监控系统行业的大多厂家,各个厂家应用的数据库大多是各有不同,每开发一个新特性、新需求,都需要做一个新的对接,成本相当昂贵。

另一种方式是文件传输方式,网闸将文件以专网摆渡的方式传输到内网,各个厂商会根据各自的协议、对接方式,将数据以写文件的形式,存放到视频专网、公共外网等环境的设备中,网闸会将设备存储文件的目录以网闸传输文件的方式,将文件摆渡到另一个网段指定设备的特定目录下,供网闸另一个网段(暂命名内网)的设备,读取,解析,按照内网平台的接收方式上传。

然而,在采用文件传输的方式时,实际网闸是不会去区分文件的实时性,即有多少成功摆渡多少文件,当网闸因异常情况,短时间内停止摆渡,再次开始摆渡时,是无法保证实时数据文件优先被摆渡的;另外,网闸一端不断的写文件到磁盘,在摆渡成功后会做磁盘清理,这样就意味着,磁盘有频繁的读、写和清理的操作,磁盘的存储会因这种频繁的操作产生文件碎片,对存储的磁盘损害很大;此外,由于文件传输方案更倾向于与正常情况下(网闸无异常情况)的实时性传输,而由于无数据库的存在,传输过程中文件又存在删除的操作,一旦传输过程中出现异常情况(内网的上级平台断电、重启等),就会造成数据反复上传失败,对数据完整性无法保障。



技术实现要素:

本发明的目的是提供一种跨网闸数据传输方法及系统,以克服现有技术中存在的上述问题,满足不同厂商间跨网闸数据的传输,并保障数据传输的实时性和完整性。

为了实现上述目的,本发明技术方案如下:

一种跨网闸数据传输方法,用于在第一网络与第二网络之间实现跨网闸的数据传输,所述第一网络与第二网络之间设有网闸,所述第一网络内设有第一传输设备,所述第一传输设备设有第一数据库和第一缓存,所述跨网闸数据传输方法,包括:

第一传输设备接收数据源的数据,在第一数据库中生成对应的数据记录,并以文件形式将数据存放到第一缓存的设定目录中,将数据记录中的标志位初始设置为第一状态;

第一传输设备接收网闸的访问,将数据通过网闸摆渡到第二网络;

第一传输设备在数据被网闸取走后,更新数据记录中对应的标志位为第二状态。

进一步地,所述跨网闸数据传输方法,还包括:

第一传输设备在重启时,从第一数据库读取标志位为第一状态的数据记录,以文件形式将数据存放到第一缓存的设定目录中。

进一步地,所述跨网闸数据传输方法,还包括:

第一传输设备在第一缓存剩余空间不足设定的第一阈值时,不再以文件形式将数据存放到第一缓存的设定目录中。

进一步地,所述第二网络内设有第二传输设备,所述第二传输设备设有第二数据库和第二缓存,所述跨网闸数据传输方法,还包括:

第二传输设备接收网闸摆渡的数据,将数据存放到第二缓存的设定目录中;

第二传输设备读取第二缓存存储的数据在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入;

第二传输设备将第二缓存中存储的数据转发给第三方平台,在转发后更新数据记录中的标志位为第二状态;

第二传输设备根据第三方平台反馈的发送失败信息,更新数据记录中的标志位为第一状态,以便重传对应的数据给第三方平台。

进一步地,所述跨网闸数据传输方法,还包括:

第二传输设备在第二缓存剩余空间不足设定的第二阈值时,将超出第二缓存存储空间第三阈值的数据存储到硬盘,在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入。

本发明还提出了一种跨网闸数据传输系统,用于在第一网络与第二网络之间实现跨网闸的数据传输,所述第一网络与第二网络之间设有网闸,所述跨网闸数据传输系统包括设于第一网络内的第一传输设备,所述第一传输设备设有第一数据库和第一缓存,所述第一传输设备包括:

第一数据接收模块,用于接收数据源的数据,在第一数据库中生成对应的数据记录,并以文件形式将数据存放到第一缓存的设定目录中,将数据记录中的标志位初始设置为第一状态;

第一数据摆渡模块,用于接收网闸的访问,将数据通过网闸摆渡到第二网络;

第一状态更新模块,用于在数据被网闸取走后,更新数据记录中对应的标志位为第二状态。

进一步地,所述第一传输设备,还包括:

第一重传模块,用于在重启时,从第一数据库读取标志位为第一状态的数据记录,以文件形式将数据存放到第一缓存的设定目录中。

进一步地,所述第一数据接收模块,还用于在第一缓存剩余空间不足设定的第一阈值时,不再以文件形式将数据存放到第一缓存的设定目录中。

进一步地,所述跨网闸数据传输系统还包括设于第二网络内的第二传输设备,所述第二传输设备设有第二数据库和第二缓存,所述第二传输设备,包括:

第二数据接收模块,用于接收网闸摆渡的数据,将数据存放到第二缓存的设定目录中;

数据库记录模块,用于读取第二缓存存储的数据在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入;

转发模块,用于将第二缓存中存储的数据转发给第三方平台,在转发后更新数据记录中的标志位为第二状态;

第二重传模块,用于根据第三方平台反馈的发送失败信息,更新数据记录中的标志位为第一状态,以便重传对应的数据给第三方平台。

进一步地,所述第二传输设备,还包括:

监听预警模块,用于在第二缓存剩余空间不足设定的第二阈值时,将超出第二缓存存储空间第三阈值的数据存储到硬盘,在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入。

本发明提出了一种跨网闸数据传输方法及系统,通过在网闸的两边设置第一和第二传输设备,并在传输设备中设置数据库和缓存,在数据库中设置标志位,以便在出现异常时,进行数据的恢复和重传,保障了数据的完整性。在本发明中,数据以文件形式单向传输,保障了网闸的特征。采用内存在作为数据转移的中间设备,减少了对存储硬盘的损害。同时网闸异常情况的文件不会形成堆积,而传输设备再次写文件也是优先实时文件写入,所以对数据的实时传输有了强有力的保障。此外,本发明独立于网闸和两边的网络,能够快速根据各个厂商的协议形式为基础快速开发,实现不同厂家数据传输。

附图说明

图1为本发明实施例网络结构示意图;

图2为本发明实施例跨网闸数据传输方法在第一网络侧的流程示意图;

图3为本发明实施例跨网闸数据传输方法在第二网络侧的流程示意图。

具体实施方式

下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。

以如图1所示的视频监控系统为例,第一网络与第二网络之间通过安全网闸进行物理隔离。本实施例将第二网络作为需要进行隔离的安全网络,通常也称为内网,例如交通管理中心的内网,或城市安全监控中心的内网。第一网络可以是视频专网或外网的一些社会资源,例如企业的视频专网等。这就形成了两个网络的对接,通常会采用安全网闸进行物理隔离,以保证网络的安全。

如图2所示,一种跨网闸数据传输方法的实施例,用于在第一网络与第二网络之间实现跨网闸的数据传输,第一网络与第二网络之间设有网闸,所述第一网络内设有第一传输设备,所述第一传输设备设有第一数据库和第一缓存,所述跨网闸数据传输方法,包括:

第一传输设备接收数据源的数据,在第一数据库中生成对应的数据记录,并以文件形式将数据存放到第一缓存的设定目录中,将数据记录中的标志位初始设置为第一状态;

第一传输设备接收网闸的访问,将数据通过网闸摆渡到第二网络;

第一传输设备在数据被网闸取走后,更新数据记录中对应的标志位为第二状态。

具体地,第一网络中的视频前端设备采集的数据,数据以道路卡口的抓拍数据为例,包括车牌号、车辆颜色、车辆类型、经过时间、车道位置等结构化数据,以及抓拍的图片。本实施例将第一网络中的视频前端设备统称为数据源,该数据源也可以是其他数据来源,例如其他存储设备发来的数据,本发明对此不做限制。

第一传输设备接收数据源发来的数据,在第一数据库中生成对应的数据记录,在第一数据库中生成对应的数据记录时,该条数据记录包含了上述结构化数据对应的字段,对于数据库的数据记录,根据实际的应用场景进行设计,本发明对此不做要求,但数据记录包括了结构化数据的内容。

本实施例第一传输设备接收的数据,还需要以文件形式写入到第一缓存,在第一缓存中,数据以文件形式存储,本实施例结构化数据对应的数据文件名的命名方式如下:相对路径+唯一id;图片对应的图片名的命名方式为:唯一id+尾号,图片对应的文件名中包括的尾号,可以保证多张图片的存储。该唯一id是该条数据对应的唯一id标识。因此在数据记录中还包括数据文件名和图片名,以及他们对应的路径。

本实施例根据数据记录按照时间顺序实时优先的方式将数据写入到第一缓存,第一缓存是从内存中划取一部分空间作为缓存使用,由于内存的快速读写性能,支持高速的数据读写。

本实施例数据记录中还包括标志位字段,本实施例该标志位表示两个状态,其中第一状态为初始状态,第二状态为数据已被网闸取走状态。标志位可以用数字来表示,例如用0表示第一状态,用2表示第二状态。本发明不限于所采用的具体标志位表示方法。

在本实施例中,数据源将数据向第一传输设备发送,第一传输设备将数据记录在第一数据库和第一缓存,从而便于网闸从第一缓存中取走所存取的数据。第一传输设备接收网闸的访问,将数据通过网闸摆渡到第二网络,本发明不限于网闸的摆渡方式,例如可以通过ftp来访问第一传输设备的设定目录,该目录与第二网络中存储目录一致,以保证网闸通过ftp顺利将数据传到第二网络中对应的目录下。

本实施例,第一传输设备在数据被网闸取走后,更新数据记录中对应的标志位为第二状态,以表示该数据已经被从第一缓存取走。具体的实现方法可以实时查询数据记录,在第一缓存中发现是否文件还存在,如果不存在就判定为已被网闸取走,将标志位更新为第二状态,否则不做处理。

基于上述方法,第一传输设备采用数据库和第一缓存,实现了数据以文件形式通过网闸摆渡到第二网络。由于在第一传输设备中具有数据库,从而在第一传输设备发生重启时,可以从第一数据库读取标志位为第一状态的数据记录,以文件形式将数据存放到第一缓存的设定目录中。当数据以文件形式存入第一缓存后,就可以被网闸读取,摆渡到第二网络,这里不再赘述。

需要说明的是,第一传输设备发生重启,其第一缓存中的数据并不一定消失,只有在发生断电重启才会消失,但无论哪种重启,都可以从数据库来恢复数据,保障了数据的完整性。

本发明的一种实施例,第一传输设备在第一缓存剩余空间不足设定的第一阈值时,不再以文件形式将数据存放到第一缓存的设定目录中。

为了防止第一缓存存满数据,导致数据溢出,本实施例第一传输设备还实现了监听预警,即在第一缓存剩余空间不足设定的第一阈值时,不再以文件形式将数据存放到第一缓存的设定目录中,防止了数据溢出带来的数据丢失情况。

需要说明的是,本技术方案还可以在第一传输设备中设置硬盘,在第一缓存剩余空间不足设定的第一阈值时,将数据以文件形式将数据存放到硬盘的设定目录中,以进一步加强数据的传输能力。即当网闸出现数据不再被传输到第二传输设备时,会触发第一缓存监听预警,数据和图片会被临时转移到第一传输设备的硬盘,待恢复正常以后,逐步将数据和图片传输到第一缓存。

本技术方案进一步地,所述第二网络内设有第二传输设备,所述第二传输设备设有第二数据库和第二缓存,所述跨网闸数据传输方法,还包括:

第二传输设备接收网闸摆渡的数据,将数据存放到第二缓存的设定目录中;

第二传输设备读取第二缓存存储的数据在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入;

第二传输设备将第二缓存中存储的数据转发给第三方平台,在转发后更新数据记录中的标志位为第二状态;

第二传输设备根据第三方平台反馈的发送失败信息,更新数据记录中的标志位为第一状态,以便重传对应的数据给第三方平台。

具体地,在第二网络中设置第二传输设备,从网闸摆渡过来的数据,首先存档到第二缓存的目录中,第二缓存的目录与第一缓存的目录一致。

本实施例第二传输设备读取第二缓存存储的数据在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入。第二数据库中的数据记录与第一数据库的数据记录一致,这里不再赘述。不同的是,在第二数据库中,还生成去重表,该去重表包括数据对于的唯一id,通过比较该唯一id,在发现有重复的数据写入时,不再写入数据库。

由于在发生异常的时候,第一传输设备已经被网闸摆渡的数据有可能还未更新标志位,导致重启时再次发送,此时设置去重表有利于防止数据的重复写入。

本实施例第二传输设备将第二缓存中存储的数据转发给第三方平台,在转发后更新数据记录中的标志位为第二状态,以表示数据被发送给第三方平台。

本实施例为了防止数据在发往第三方平台的过程中失败,在发送失败时,第二传输设备根据第三方平台反馈的发送失败信息,更新数据记录中的标志位为第一状态。从而,第二传输设备认为该数据未被成功发送,可以重传对应的数据给第三方平台,在重传时可以根据第二数据库中数据记录的文件名和图片名从第二缓存或硬盘中读取数据发送到第三方平台。

本实施例还为第二传输设备设置了监听预警,即所述跨网闸数据传输方法,还包括:

第二传输设备在第二缓存剩余空间不足设定的第二阈值时,将超出第二缓存存储空间第三阈值的数据存储到硬盘,在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入。

需要说明的是,在异常情况导致第二传输设备无法将数据和图片上传到第三方平台时,由于第二缓存形成堆积最终会触发第二缓存监听预警,新的数据和图片会被写入硬盘做临时存储。写入硬盘的数据在第三方平台恢复可以传输时,这些堆积数据会被上传到第三方平台。

本发明技术方案,在出现一般的异常时,第一缓存和第二缓存的数据不会丢失,而存储在硬盘中的数据更不会丢失,需要重传数据时,可以根据数据记录中的标志位进行重传,重传时可以从缓存或硬盘中读取数据来重传。在出现断电情况时,由于缓存中的数据会丢失,但数据库存在数据记录,可以用来恢复,这时会导致只有结构化数据能重传,图片不能够重传,需要从数据源重新获取。通过合理的设置第一缓存和第二缓存中数据的写入与读出的关系,可以使得缓存中累积的数据非常少,减少断电图片丢失的风险。

与上述方法对应的,这里还给出了一种跨网闸数据传输系统的实施例,用于在第一网络与第二网络之间实现跨网闸的数据传输,所述第一网络与第二网络之间设有网闸,所述跨网闸数据传输系统包括设于第一网络内的第一传输设备,所述第一传输设备设有第一数据库和第一缓存,所述第一传输设备包括:

第一数据接收模块,用于接收数据源的数据,在第一数据库中生成对应的数据记录,并以文件形式将数据存放到第一缓存的设定目录中,将数据记录中的标志位初始设置为第一状态;

第一数据摆渡模块,用于接收网闸的访问,将数据通过网闸摆渡到第二网络;

第一状态更新模块,用于在数据被网闸取走后,更新数据记录中对应的标志位为第二状态。

在本实施例中,所述第一传输设备,还包括:

第一重传模块,用于在重启时,从第一数据库读取标志位为第一状态的数据记录,以文件形式将数据存放到第一缓存的设定目录中。

在本实施例中,所述第一数据接收模块,还用于在第一缓存剩余空间不足设定的第一阈值时,不再以文件形式将数据存放到第一缓存的设定目录中。

在本实施例中,所述跨网闸数据传输系统还包括设于第二网络内的第二传输设备,所述第二传输设备设有第二数据库和第二缓存,所述第二传输设备,包括:

第二数据接收模块,用于接收网闸摆渡的数据,将数据存放到第二缓存的设定目录中;

数据库记录模块,用于读取第二缓存存储的数据在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入;

转发模块,用于将第二缓存中存储的数据转发给第三方平台,在转发后更新数据记录中的标志位为第二状态;

第二重传模块,用于根据第三方平台反馈的发送失败信息,更新数据记录中的标志位为第一状态,以便重传对应的数据给第三方平台。

在本实施例中,所述第二传输设备,还包括:

监听预警模块,用于在第二缓存剩余空间不足设定的第二阈值时,将超出第二缓存存储空间第三阈值的数据存储到硬盘,在第二数据库生成数据记录,并生成数据对应的去重表存入第二数据库,以避免数据的重复写入。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1