1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 时间校正方法 装置 系统 设备 及存储介质与流程

时间校正方法 装置 系统 设备 及存储介质与流程

时间:2019-03-30 17:41:46

相关推荐

时间校正方法 装置 系统 设备 及存储介质与流程

本发明涉及计算机技术领域,特别涉及一种时间校正方法、装置、系统、设备、及存储介质。

背景技术:

在计算机技术中,对设备的时间的准确性和统一性的要求极高。为了保证全网设备保持时钟同步,需要提供可靠的时钟源,时钟源提供的时间会作为系统时间,全网设备会统一将自身的时间矫正为时钟源的时间。

目前由校时服务器充当全网设备的时钟源,全网设备会将校时服务器提供的时间作为系统时间,将自身的时间矫正为校时服务器的时间。其中,针对校时服务器提供系统时间的具体过程,参见图1,校时服务器与卫星建立了网络连接,同时校时服务器和网络中每个终端建立了网络连接。校时服务器会实时获取卫星的时间,从而与卫星保持时钟同步,全网设备会基于网络时间协议(networktimeprotocol,以下简称:ntp)协议,实时获取校时服务器的时间,从而与校时服务器保持时钟同步。

校时服务器由于与卫星之间的网络链路不稳定等通讯问题、晶振老化等硬件问题,经常出现时间不准的情况,导致其提供的系统时间的可靠性和准确性较差。

技术实现要素:

本发明实施例提供了一种时间校正方法、装置、系统、设备、及存储介质,能够解决相关技术中系统时间可靠性和准确性较差的问题。所述技术方案如下:

一方面,提供了一种时间校正方法,所述方法包括:

获取校时服务器集群中每个校时服务器的时间,得到多个时间,所述校时服务器集群包括多个校时服务器;

计算所述多个时间中数值相邻的时间之间的差值,得到至少一个时间差;

从所述至少一个时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的时间差;

基于得到每个所述第二时间差的多个时间,确定是否更新系统时间。

可选地,所述基于得到每个所述第二时间差的多个时间,确定是否更新系统时间,包括:

计算得到每个所述第二时间差的多个时间的统计值;

根据所述统计值和当前系统时间,确定是否更新所述系统时间。

可选地,所述根据所述统计值和当前系统时间,确定是否更新所述系统时间,包括:

当所述统计值与所述当前系统时间的时间差超过第二预设误差时,将所述系统时间更新为所述统计值;或,

当所述统计值与所述当前系统时间的时间差不超过第二预设误差时,则不对所述系统时间进行更新。

可选地,所述校时服务器的时间为校时服务器和全球定位系统(globalpositioningsystem,以下简称:gps)或者北斗卫星进行时钟同步后得到的时间。

可选地,所述计算所述多个时间中数值相邻的时间之间的差值,得到至少一个时间差具体包括:

将所述多个时间按时间值进行从小到大或者从大到小排序;

计算每两个相邻的时间之间的差值,得到至少一个时间差。

可选地,计算所述至少一个第二时间差对应的多个时间的统计值,包括:

计算所述至少一个第二时间差对应的多个时间的平均值,作为所述统计值;和/或,

计算所述至少一个第二时间差对应的多个时间的加权平均值,作为所述统计值;和/或,

根据所述至少一个第二时间差对应的多个时间的方差,确定所述统计值。

另一方面,提供了一种时间校正装置,所述装置包括:

获取模块,用于获取校时服务器集群中每个校时服务器的时间,得到多个时间,所述校时服务器集群包括多个校时服务器;

计算模块,用于计算所述多个时间中数值相邻的时间之间的差值,得到所述多个校时服务器之间的至少一个时间差;

选取模块,用于从所述至少一个时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的时间差;

确定模块,用于基于得到每个所述第二时间差的多个时间,确定是否更新系统时间。

可选地,所述确定模块,包括:

计算子模块,用于计算得到每个所述第二时间差的多个时间的统计值;

确定子模块,用于根据所述统计值和当前系统时间,确定是否更新所述系统时间。

可选地,所述确定子模块,用于:当所述统计值与所述当前系统时间的时间差超过第二预设误差时,将所述系统时间更新为所述统计值;或,当所述统计值与所述当前系统时间的时间差不超过第二预设误差时,则不对所述系统时间进行更新。

可选地,所述校时服务器的时间为校时服务器和gps或者北斗卫星进行时钟同步后得到的时间。

可选地,所述计算模块,包括:

排序子模块,用于将所述多个时间按时间值进行从小到大或者从大到小排序;

计算子模块,用于计算每两个相邻的时间之间的差值,得到至少一个时间差。

另一方面,提供了一种时间校正系统,所述时间校正系统包括校时服务器集群和时钟源子系统;

校时服务器集群,所述校时服务器集群包括多个校时服务器,每个校时服务器用于提供时间;

所述时钟源子系统,用于获取所述校时服务器集群中每个校时服务器的时间,得到多个时间;计算所述多个时间中数值相邻的时间之间的差值,得到至少一个时间差;从所述至少一个时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的时间差;基于得到每个所述第二时间差的多个时间,确定是否更新系统时间。

在一种可能的设计中,所述时间校正系统还包括时统监控子系统;

所述时统监控子系统,用于将所述系统时间同步给至少一个终端;和/或,

所述时统监控子系统,用于获取至少一个终端的时间;当任一终端的时间与所述系统时间之间的时间差超过第三预设误差时,按照预设提示方式,对所述终端的时间与所述系统时间之间的时间差进行提示。

另一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上述时间校正方法。

另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述时间校正方法。

本发明实施例提供的方法、装置、系统及存储介质,通过计算校时服务器集群提供的多个时间中数值相邻的时间之间的差值,能够确定不同校时服务器之间的时间偏差情况,如果某个校时服务器的时间不准,则该校时服务器会与其他校时服务器的时间差较大,因此在计算系统时间时,可以避免根据该校时服务器的时间计算系统时间,也就避免了该校时服务器的时间对系统时间的准确性产生影响。由于确定是否更新系统时间时,排除了不准的校时服务器的时间造成的干扰,能够确保系统时间具有高可靠性和高准确性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是相关技术提供的时间校正系统的架构示意图;

图2是本发明实施例提供的时间校正系统的架构示意图;

图3是本发明实施例提供的时间校正系统的架构示意图;

图4是本发明实施例提供的时间校正方法的流程图;

图5是本发明实施例提供的时间校正方法的流程图;

图6是本发明实施例提供的时间校正方法的流程图;

图7是本发明实施例提供的时间校正装置的结构示意图;

图8是本发明实施例提供的服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

为了便于理解,下面先对本发明实施例中涉及的术语进行解释:

集群(cluster):集群是指一组相互独立的设备,集群内的所有设备可执行相同的业务。

双机热备:是指基于高可用(highavailability,以下简称:ha)系统中的两台服务器的热备。双机热备机制中包括主机和备机,主机处于某种业务的激活状态(即active状态),备机处于该业务的备用状态(即standby状态),主机宕机后会自动切换至备机执行业务。结合双机热备的机制,本发明实施例提供的时间矫正方法可以由主机和备机交替执行,通常情况下主机会执行从校时服务器集群获取时间的过程以及确定系统时间的过程,当主机出现故障时,会切换至备机执行从校时服务器集群获取时间的过程以及确定系统时间的过程。

ntp协议:用于同步网络中各个设备的时间的协议。

时统:是指保证地面上各个终端的时间协调一致,且保证终端的时间与天文设备提供的时间相关。

图2是本发明实施例提供的一种时间校正系统的架构示意图,该时间校正系统包括校时服务器集群201和时钟源子系统202,校时服务器集群201和时钟源子系统202建立了网络连接,可以通过网络连接进行信息交互。

(1)校时服务器集群201。

校时服务器集群201包括多个校时服务器,多个校时服务器运行的业务可以相同,每个校时服务器可以独立运行,无需与其他校时服务器进行信息和数据的交互。多个校时服务器可以物理隔离,不同校时服务器可以部署于不同地点,还可以具有不同的物理形态。其中每个校时服务器也称ntp服务器,校时服务器可以和天文设备进行时钟同步,例如可以和gps或者北斗卫星进行时钟同步。

(2)时钟源子系统202。

时钟源子系统202充当时间校正系统的时钟源,时钟源子系统202可以基于时钟容错机制,对校时服务器集群201提供的多个时间进行比对和校验,确保最终确定的系统时间具有高可靠性。

可选地,为了监控终端的时间是否准确,参见图3,时间校正系统还可以包括时统监控子系统203,时统监控子系统203与时钟源子系统202和至少一个终端建立了网络连接,可以通过建立的网络连接与时钟源子系统202和至少一个终端进行信息交互。

(3)时统监控子系统203。

时统监控子系统203可以为一台服务器,或者为若干台服务器组成的服务器集群,或者是一个云计算服务中心,时统监控子系统203用于监控至少一个终端当前的时间。其中,该至少一个终端可以为前端设备、后端设备和中心端设备,该前端设备可以为摄像机、手机、平板电脑、个人电脑、可穿戴设备、无人机等,该前端设备可以用于采集数据,该后端设备可以为存储局域网络(storageareanetwork,san)、网络互连协议存储局域网络(internetprotocolstorageareanetwork,ipsan)、视频中心存储(centralvideorecorder,cvr)、嵌入式硬盘录像机(digitalvideorecorder,dvr)等设备,该后端设备可以用于存储数据,该中心端设备可以为数据库服务器、流媒体服务器、中心管理服务器等,该中心端设备可以用于处理数据。

本发明实施例可以应用监控安防、侦查破案、交通管制、航空航天、自动化测试、工业控制等各种对时间要求严格的应用场景中,通过提供高可靠、高精度的系统时间,具有极大的实用性。例如在交通管制的场景中,为了确定车辆是否违规超速,需要确保计算的车辆的速度准确,而通过应用本发明实施例提供的时间校正方法,可以为每个摄像机提供准确的系统时间,每个摄像机通过根据准确的系统时间进行时间校正,能够保证拍摄的视频中每帧画面记录的时间准确,进而保证根据视频中记录的时间所计算出的车辆速度准确。

基于上述实施例阐述的时间校正系统的系统架构,以下对本发明实施例提供的时间校正方法进行介绍。

图4是本发明实施例提供的一种时间校正方法的流程图,参见图4,该方法包括以下步骤:

401、获取校时服务器集群中每个校时服务器的时间,得到多个时间,该校时服务器集群包括多个校时服务器。

402、计算该多个时间中数值相邻的时间之间的差值,得到至少一个时间差。

403、从该至少一个时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的时间差。

404、基于得到每个该第二时间差的多个时间,确定是否更新系统时间。

本实施例提供的方法,通过设置了包括多个校时服务器的校时服务器集群,计算多个校时服务器之间的时间差,选取出不超过第一预设误差的时间差,基于多个校时服务器中得到该不超过第一预设误差的时间差的多个时间,来确定是否更新系统时间,那么如果某个校时服务器的时间不准,则该校时服务器会与其他校时服务器的时间差较大,因此在计算系统时间时,能够避免根据该校时服务器的时间计算系统时间,也就避免了该校时服务器的时间对系统时间的准确性产生影响,通过在确定是否更新系统时间时,排除了不准的校时服务器的时间造成的干扰,能够确保系统时间具有高可靠性和高准确性。

可选地,该基于得到每个该第二时间差的多个时间,确定是否更新系统时间,包括:

计算该得到每个该第二时间差的多个时间的统计值;

根据该统计值和当前系统时间,确定是否更新该系统时间。

可选地,该根据该统计值和当前系统时间,确定是否更新该系统时间,包括:

当该统计值与该当前系统时间的时间差超过第二预设误差时,将该系统时间更新为该统计值;或,

当该统计值与该当前系统时间的时间差不超过第二预设误差时,则不对该系统时间进行更新。

可选地,该校时服务器的时间为校时服务器和全球定位系统gps或者北斗卫星进行时钟同步后得到的时间。

可选地,该计算该多个时间中数值相邻的时间之间的差值,得到至少一个时间差具体包括:

将该多个时间按时间值进行从小到大或者从大到小排序;

计算每两个相邻的时间之间的差值,得到至少一个时间差。

可选地,计算该至少一个第二时间差对应的多个时间的统计值,包括:

计算该至少一个第二时间差对应的多个时间的平均值,作为该统计值;和/或,

计算该至少一个第二时间差对应的多个时间的加权平均值,作为该统计值;和/或,

根据该至少一个第二时间差对应的多个时间的方差,确定该统计值。

相关技术中,校时服务器会直接充当全网设备的时钟源,网络中每个终端会主动获取校时服务器的时间以校对时间。该技术方案具有三大技术问题:第一,可靠性差:校时服务器运行中很可能由于通信链路不稳定、晶振故障等各种因素导致时间不准。然而,即使校时服务器出现了时间不准的情况,也无法被甄别,每个终端仍会将校时服务器提供的时间作为系统时间进行时间校正,以至误导了每个终端的时间。第二,稳定性差:校时服务器运行时可能出现故障,一旦校时服务器出现故障,网络中每个终端就会失去时钟源,无法进行时钟同步,引发严重后果,显然时间校正系统不稳定,缺乏健壮性。第三,无法确保终端的时间准确:由于网络故障、配置错误等因素,可能出现终端未成功从校时服务器获取时间的情况,另外由于权限不足、程序bug等因素,可能出现终端即使获取到校时服务器的时间,也未能成功校对时间的情况,这两种情况下终端未与校时服务器保持时钟同步,终端的时间不准,但用户无法感知这一情况,导致终端的时间得不到及时校正,影响终端的性能。

本发明实施例设计的时间矫正方法中,不会直接将校时服务器提供的时间作为系统时间,而是通过对校时服务器集群中不同校时服务器的时间进行比对校验,可确保提供的系统时间具有高可靠性;通过采用集群化设计校时服务器、通过应用双机热备机制,可确保本方法具有高稳定性;通过实时监控每个终端的时间,可及时侦测到终端时间不准的情况并时间进行告警。

图5是本发明实施例提供的一种时间校正方法的流程图,以时间矫正方法的交互主体包括校时服务器集群、时钟源子系统和时统监控子系统为例进行说明,参见图5,该方法包括以下步骤:

501、校时服务器集群中的每个校时服务器与天文设备进行时钟同步。

每个校时服务器可以配置有网卡、卫星天线或者其他类型的信号收发器,可以通过配置的信号收发器与天文设备进行信息交互,从而与天文设备进行时钟同步,校时服务器可以将与天文设备进行时钟同步后得到的时间,作为自身的时间。其中天文设备可以包括gps卫星、北斗卫星、天文台或其他提供utc(universaltime,世界统一时间)中的至少一项。

需要说明的是,校时服务器集群可以包括三台或三台以上的校时服务器,则校时服务器集群中一个校时服务器宕机后,校时服务器集群仍能正常输出至少两个时间,时间校正系统仍可以正常运行,具有高稳定性。其中,校时服务器集群中校时服务器的具体数量可以根据实际业务需求确定,本发明实施例对此不做限定。

本发明实施例中,通过将校时服务器采用集群化设计,校时服务器集群运行时,即使某一校时服务器出现故障,也可以由其他校时服务器提供时间,从而避免校时服务器集群由于某一个校时服务器出现故障,导致无法提供时间的情况,进而避免时间校正系统由于某一个校时服务器出现故障导致终端失去时钟源的情况,提高时间校正系统的稳定性。

502、时钟源子系统获取校时服务器集群中每个校时服务器的时间,得到多个时间。

时钟源子系统可以实时或定期地从每个校时服务器获取时间,从而得到多个时间。具体地,时钟源子系统和校时服务器集群可以通过c/s(客户端/服务器,client/server)的通信模式进行信息交互,每个校时服务器可以运行服务端,时钟源子系统可以运行客户端,时钟源子系统可以通过客户端与服务端之间的通信链路,从每个校时服务器获取时间。

其中,当校时服务器的时间为校时服务器和gps或者北斗卫星进行时钟同步后得到的时间时,时钟源子系统获取的时间可以是校时服务器和gps或者北斗卫星进行时钟同步后得到的时间。

需要说明的是,当校时服务器集群中任一校时服务器由于关机、设备故障等因素无法正常提供时间时,时钟源子系统可以向终端发送通知消息,该通知消息用于通知终端某一校时服务器无法提供时间,终端可以接收通知消息并显示通知消息,以便用户及时获知这一情况。

503、时钟源子系统计算多个时间中数值相邻的时间之间的差值,得到至少一个第一时间差。

本实施例中,校时服务器集群中的不同校时服务器独立运行,在两个校时服务器未进行信息交互的前提下,如果两个校时服务器提供了相同或相近的时间,会认为这两个校时服务器的时间可靠,可根据这两个校时服务器提供的时间计算系统时间。而如果两个校时服务器提供的时间相差较大,表明这两个校时服务器中至少有一个校时服务器的时间不可靠,则不会根据这两个校时服务器提供的时间计算系统时间,以避免根据不准的时间计算系统时间时,影响到系统时间的准确性。

为了确定不同校时服务器之间的时间偏差,时钟源子系统可以对多个时间按照数值大小进行排序,例如可以将多个时间按时间值进行从小到大排序,或者将多个时间按时间值进行从大到小排序。之后,时钟源子系统可以计算每两个相邻的时间之间的差值,得到至少一个第一时间差。

示例性地,假设校时服务器集群包括三个校时服务器,时钟源子系统从三个校时服务器获取的时间分别为t1、t2、t3,时钟源子系统对这三个时间按时间值进行从小到大排序,假设得到t1<t2<t3,时钟源子系统会计算t1与t2之间的时间差,得到第一时间差d1,计算t2与t3之间的时间差,得到第一时间差d2,共得到两个第一时间差:d1和d2。

504、时钟源子系统从至少一个第一时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的第一时间差。

第一预设误差:第一预设误差用于指示第一时间差是否过大,也即是两个数值相邻的时间之间的偏差是否过大,第一预设误差可以预先在时钟源子系统中设置,第一预设误差可以根据经验或业务需求确定,例如为1s。

针对选取第二时间差的具体过程,时钟源子系统得到多个第一时间差后,可以判断每个第一时间差是否超过第一预设误差,当任一第一时间差不超过第一预设误差时,将该第一时间差作为第二时间差,当任一第一时间差超过第一预设误差,表明该第一时间差对应的两个时间的偏差较大,则无需选取该第一时间差。如此,对每个第一时间差进行判断后,可以得到至少一个第二时间差。

在一种可能的设计中,本发明实施例提供的校时方法可以提供提示功能:当至少一个第一时间差超过第一预设误差时,时钟源子系统可以按照预设提示方式,对超过第一预设误差的第一时间差进行提示,以便提示用户校时服务器集群内不同校时服务器的时间相差过大,帮助用户及时获知不同校时服务器的时间相差过大的情况,对校时服务器的时间进行人为干预。其中,针对进行提示的具体方式,时钟源子系统可以进行告警,例如可以向终端发送告警消息,终端可以接收告警消息后并进行告警,例如终端可以显示告警页面、发出告警音频等。

在一种可能的设计中,本发明实施例提供的校时方法可以提供记录日志的功能。当任一第一时间差超过第一预设误差时,时钟源子系统可以记录得到该超过第一预设误差的第一时间差的时间,从而记录校时服务器集群时间相差过大的情况,以便维护校时服务器集群的运行。例如,时钟源子系统可以记录:7-05-1915:00:27获取到校时服务器的时间为:7-05-1915:00:27、7-05-1916:00:30、7-05-1917:00:30。另外,时钟源子系统还可以确定得到该超过第一预设误差的第一时间差的时间,根据提供该时间的校时服务器,记录该校时服务器的标识,以便记录哪些校时服务器发生了时间不准的情况。

需要说明的是,时钟源子系统可以当所有第一时间差均超过第一预设误差时,按照预设提示方式进行提示,也可以当任一个第一时间差超过预设误差时按照预设提示方式进行提示,还可以当超过预设误差的第一时间差达到预设数目时,按照预设提示方式进行提示,本发明实施例对此不做限定。

505、时钟源子系统基于得到每个第二时间差的多个时间,确定系统时间。

具体来说,对于至少一个第二时间差中的每个第二时间差,时钟源子系统可以确定得到该第二时间差的两个时间,即步骤503中计算出该第二时间差的两个时间,从而基于每个第二时间差,确定出得到每个第二时间差的多个时间,基于该多个时间,来确定系统时间。其中,该系统时间可以看做校时服务器集群和时钟源子系统最终会对外提供的时间,可以作为每个终端进行校时的基准。

举例来说,假设校时服务器集群包括三个校时服务器,这三个校时服务器的时间分别是t1、t2和t3,t1和t2的第一时间差为d1,t2和t3的第一时间差为d2,如果d1不超过第一预设误差而d2超过第一预设误差,则会选取d1为第二时间差,确定得到d1的两个时间,即t1和t2,以便基于t1和t2,确定系统时间。如果d1和d2均不超过第一预设误差,则会选取d1和d2为第二时间差,确定得到d1的两个时间,即t1和t2,得到d2的两个时间,t2和t3,从而基于t1、t2和t3,确定系统时间。

可选地,确定系统时间的过程可以包括以下步骤一至步骤二:

步骤一、计算得到每个该第二时间差的多个时间的统计值。

步骤一可以包括以下实现方式一至实现方式三中的任一项或多项的组合:

实现方式一、计算至少一个第二时间差对应的多个时间的平均值,作为该统计值。

实现方式二、计算该至少一个第二时间差对应的多个时间的加权平均值,作为该统计值。

例如,可以预先建立第二时间差与权重之间的映射关系,对于至少一个第二时间差对应的多个时间中的每个时间,可以根据该时间对应的第二时间差,查询该映射关系,将第二时间差对应的权重作为该时间的权重,从而得到每个时间的权重,可以根据每个时间的权重,对多个时间进行加权平均,得到加权平均值。其中,第二时间差对应的权重可以与第二时间差的大小负相关,

实现方式三、根据至少一个第二时间差对应的多个时间的方差,确定该统计值。

可以计算多个时间的方差,将该多个时间的方差作为统计值。

步骤二、根据该统计值和当前系统时间,确定是否更新该系统时间。

可选地,可以计算统计值和当前系统时间的时间差,当统计值和当前系统时间的时间差超过第二预设误差时,表明当前系统时间相对统计值来说偏移较大,表明当前系统时间已经不够准确,则将系统时间更新为统计值,以保证系统时间的精确性。相应地,当统计值与当前系统时间的时间差不超过第二预设误差时,表明当前系统时间的精确度可以接受,则不对系统时间进行更新,以避免频繁更新当前系统时间对设备性能产生的影响。

其中,第二预设误差用于指示当前系统时间与统计值之间的时间差是否足够大,第二预设误差可以根据实际业务需求确定,第二预设误差可以采用毫秒为单位,可以设置为0。

可选地,当时钟源子系统将系统时间更新为统计值时,时钟源子系统可以记录更新当前系统时间的事件,例如时钟源子系统可以记录:7-05-1915:00:27系统时间从7-05-1915:00:27更新为7-05-1916:00:30。

示例性地,假设校时服务器集群包括三个校时服务器,时间分别为t1、t2、t3,t1和t2的时间差为d1,t2和t3的时间差为d2,当前系统时间为td。如果d1不超过第一预设误差而d2超过第一预设误差,可以将t1和t2作为第二时间,计算t1和t2的统计值t,当t和td的时间差超过第二预设误差时,则将td更新为t,并记录日志,当t和td的时间差不超过第二预设误差时,则保持td不变。

可选地,时钟源子系统确定系统时间后,可以将系统时间同步给至少一个终端。具体来说,时钟源子系统可以和至少一个终端进行网络连接,每个终端可以通过网络连接从时钟源子系统中获取系统时间,还可以将自身的时间更新为该系统时间,从而与时钟源子系统保持时钟同步。其中,时钟源子系统可以与每个终端基于ntp协议进行通信,时钟源子系统可以为ntp协议的服务端,每个终端可以为ntp协议的客户端。

结合上述步骤501至步骤505,本实施例提供了一种时钟容错机制,通过对校时服务器集群提供的时间进行比对和校验以得到系统时间,如果任两个校时服务器的时间差较大,则这两个校时服务器的时间不会参与系统时间的计算过程,因此这两个校时服务器的时间不会对系统时间的准确性产生影响。那么,通过在计算系统时间之前排除了不准的时间造成的干扰,能够确保系统时间具有高可靠性和高准确性。

在一种可能的设计中,本发明实施例提供的时间矫正方法可以基于双机热备机制运行:结合上述双机热备机制的概念,时钟源子系统可以包括主机和备机,当主机正常运行时,由主机执行上述时间的获取过程以及系统时间的确定过程,而备机可以保持静默,而当主机出现故障时,备机可以被激活,从而切换至备机执行时间的获取过程以及系统时间的确定过程。其中,备机可以检测主机的运行状况,例如主机和备机运行双机热备软件,备机可以通过心跳线或者心跳网络链路和主机建立连接,并通过建立的连接侦测主机的运行状况,当主机出现故障时,备机能够立即感知到主机出现故障,并通过双机热备软件自动将主机的业务切换到备机上运行。

通过将时钟源子系统设计为双机热备机制运行,可以保证时钟源子系统具有高稳定性:时钟源子系统的主机出现故障时,时钟源子系统的备机会自动接替主机的业务,时钟源子系统仍可由备机向终端以及时统监控子系统提供系统时间,而不会由于主机的故障导致时间校正系统缺乏时钟源的情况,提高时钟源子系统的稳定性。

506、时统监控子系统获取至少一个终端的时间。

时统监控子系统和至少一个终端可以预先建立私有或公有的通信协议,时统监控子系统可以通过通信协议和每个终端进行通信,实时或定期地从每个终端获取时间,得到每个终端的时间,从而获取到至少一个终端的时间。

507、当任一终端的时间与系统时间之间的时间差超过第三预设误差时,时统监控子系统按照预设提示方式,对终端的时间与系统时间之间的时间差进行提示。

对于至少一个终端中的每个终端,可以计算该终端的时间与系统时间之间的时间差,判断终端的时间与系统时间之间的时间差是否超过第三预设误差,当终端的时间与系统时间之间的时间差超过第三预设误差时,表明该终端的时间与系统时间之间的偏差过大,该终端时间不准,则时统监控子系统可以按照预设提示方式,对终端的时间与系统时间之间的时间差进行提示,当终端的时间与系统时间之间不超过第三预设误差时,表明该终端的时间与系统时间之间的偏差较小,终端的时间准确,则时统监控子系统可以无需进行处理。其中,第三预设误差用于衡量终端的时间与系统时间之间的偏差程度,可以根据实际业务需求确定。

预设提示方式可以为进行告警,又如可以为显示提示界面,该提示界面用于提示终端的时间与系统时间之间的时间差,再如可以为播放提示音频,该提示音频用于提示终端的时间与系统时间之间的时间差,本实施例对时统监控子系统的提示方式不做限定。

通过对终端的时间与系统时间之间的时间差进行提示,可以提示用户终端的时间不准,以便用户及时获知这一情况,对终端的时间进行人工干预。

其中,关于时统监控子系统获取系统时间的方式,时统监控子系统可以和时钟源子系统通过客户端/服务器(client/server,以下简称:c/s)的通信模式进行信息交互,时钟源子系统可以运行服务端,时统监控子系统可以运行客户端,时统监控子系统可以通过客户端与服务端之间的通信链路,从时钟源子系统获取系统时间。

需要说明的是,上述步骤507仅是以任一终端的时间与系统时间的时间差超过第三预设误差时进行提示为例,在实施中,网络中可以部署大量终端,时统监控子系统可以同理地针对每个终端,计算终端的时间与系统时间的时间差,并同理地针对每个终端进行提示。

以提示方式为进行告警为例,参见图6,其示出了时统监控子系统进行告警的操作流程图,时统监控子系统可以依次执行操作流程图中的每个步骤,实现告警功能。

可选地,时统监控子系统还可以具有日志记录功能,当终端的时间与系统时间的时间差超过第三预设误差时,时统监控子系统可以记录这一事件,例如记录终端的时间、终端的标识等。

结合时统监控子系统的设计,本发明实施例提供的时间校正方法中,通过在系统架构中布设了时统监控子系统,由时统监控子系统主动地监控网络中每个终端的时间,那么即使某一终端由于未能成功获取到系统时间或者未能基于系统时间进行时间校正,导致时间产生偏差,也能由时统监控子系统及时发现这一时间存在偏差的终端,扩展了时间校正系统的功能。同时当终端的时间与系统时间的时间差超过第三误差值时,时统监控子系统可以进行告警,确保用户及时了解终端时间不准的情况。

本实施例提供的方法,通过设置了包括多个校时服务器的校时服务器集群,计算多个校时服务器之间的时间差,选取出不超过第一预设误差的时间差,基于多个校时服务器中得到该不超过第一预设误差的时间差的多个时间,来确定是否更新系统时间,那么如果某个校时服务器的时间不准,则该校时服务器会与其他校时服务器的时间差较大,因此在计算系统时间时,能够避免根据该校时服务器的时间计算系统时间,也就避免了该校时服务器的时间对系统时间的准确性产生影响,通过在确定是否更新系统时间时,排除了不准的校时服务器的时间造成的干扰,能够确保系统时间具有高可靠性和高准确性。

需要说明的是,上述图5实施例提供的时间校对方法仅是以将不同步骤划分由不同子系统执行为例进行说明,实际应用中,可以根据需要将图5实施例中的各个步骤分配由一台服务器内的不同程序模块完成,例如时钟源子系统和时统监控子系统可以部署于同一台服务器,该服务器可以先后执行上述图5实施例中从校时服务器集群获取时间的过程、确定系统时间的过程、从终端获取终端的时间的过程以及当终端的终端的时间不准时进行告警的过程,当然,也可以将上述图5实施例中的各个步骤分配由多台服务器的不同程序模块分别执行,以完成以上描述的全部或者部分功能。

图7是本发明实施例提供的一种时间校正装置的结构示意图,如图7所示,该装置包括:获取模块701、计算模块702、选取模块703和确定模块704。

获取模块701,用于获取校时服务器集群中每个校时服务器的时间,得到多个时间,该校时服务器集群包括多个校时服务器;

计算模块702,用于计算该多个时间中数值相邻的时间之间的差值,得到该多个校时服务器之间的至少一个时间差;

选取模块703,用于从该至少一个时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的时间差;

确定模块704,用于基于得到每个该第二时间差的多个时间,确定是否更新系统时间。

本实施例提供的时间矫正装置,通过计算校时服务器集群提供的多个时间中数值相邻的时间之间的差值,能够确定不同校时服务器之间的时间偏差情况,如果校时服务器的时间不准,校时服务器的时间会由于产生的时间差较大,不会被选取为第二时间,也就不会参与系统时间的计算过程,因此不会对系统时间的准确性产生影响。基于选取出的第二时间得到系统时间时,由于排除了不准的时间造成的干扰,能够确保系统时间具有高可靠性和高准确性。

可选地,该确定模块702,包括:

计算子模块,用于计算该至少一个第二时间差对应的多个时间的统计值;

确定子模块,用于根据该统计值和当前系统时间,确定是否更新该系统时间。

可选地,该确定子模块,用于:当该统计值与该当前系统时间的时间差超过第二预设误差时,将该系统时间更新为该统计值;或,当该统计值与该当前系统时间的时间差不超过第二预设误差时,则不对该系统时间进行更新。

可选地,该校时服务器的时间为校时服务器和gps或者北斗卫星进行时钟同步后得到的时间。

可选地,该计算模块702,包括:

排序子模块,用于将该多个时间按时间值进行从小到大或者从大到小排序;

计算子模块,用于计算每两个相邻的时间之间的差值,得到至少一个时间差。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的时间校正装置在校正时间时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的时间校正装置与时间校正方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图8是本发明实施例提供的一种服务器的结构示意图,该服务器800可以提供为上述实施例中的时钟源子系统、时统监控子系统中的任一服务器。该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)801和一个或一个以上的存储器802,其中,该存储器802中存储有至少一条指令,该至少一条指令由该处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的时间校正方法。例如,计算机可读存储介质可以是只读存储器(read-onlymemory,以下简称:rom)、随机存取存储器(randomaccessmemory,以下简称:ram)、cd-rom、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:

1.一种时间校正方法,其特征在于,所述方法包括:

获取校时服务器集群中每个校时服务器的时间,得到多个时间,所述校时服务器集群包括多个校时服务器;

计算所述多个时间中数值相邻的时间之间的差值,得到至少一个时间差;

从所述至少一个时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的时间差;

基于得到每个所述第二时间差的多个时间,确定是否更新系统时间。

2.根据权利要求1所述的方法,其特征在于,所述基于得到每个所述第二时间差的多个时间,确定是否更新系统时间,包括:

计算得到每个所述第二时间差的多个时间的统计值;

根据所述统计值和当前系统时间,确定是否更新所述系统时间。

3.根据权利要求2所述的方法,其特征在于,所述根据所述统计值和当前系统时间,确定是否更新所述系统时间,包括:

当所述统计值与所述当前系统时间的时间差超过第二预设误差时,将所述系统时间更新为所述统计值;或,

当所述统计值与所述当前系统时间的时间差不超过第二预设误差时,则不对所述系统时间进行更新。

4.根据权利要求1所述的方法,其特征在于,所述校时服务器的时间为校时服务器和全球定位系统gps或者北斗卫星进行时钟同步后得到的时间。

5.根据权利要求1所述的方法,其特征在于,所述计算所述多个时间中数值相邻的时间之间的差值,得到至少一个时间差具体包括:

将所述多个时间按时间值进行从小到大或者从大到小排序;

计算每两个相邻的时间之间的差值,得到至少一个时间差。

6.一种时间校正装置,其特征在于,所述装置包括:

获取模块,用于获取校时服务器集群中每个校时服务器的时间,得到多个时间,所述校时服务器集群包括多个校时服务器;

计算模块,用于计算所述多个时间中数值相邻的时间之间的差值,得到所述多个校时服务器之间的至少一个时间差;

选取模块,用于从所述至少一个时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的时间差;

确定模块,用于基于得到每个所述第二时间差的多个时间,确定是否更新系统时间。

7.根据权利要求6所述的装置,其特征在于,所述确定模块,包括:

计算子模块,用于计算得到每个所述第二时间差的多个时间的统计值;

确定子模块,用于根据所述统计值和当前系统时间,确定是否更新所述系统时间。

8.根据权利要求7所述的装置,其特征在于,所述确定子模块,用于:当所述统计值与所述当前系统时间的时间差超过第二预设误差时,将所述系统时间更新为所述统计值;或,当所述统计值与所述当前系统时间的时间差不超过第二预设误差时,则不对所述系统时间进行更新。

9.根据权利要求6所述的装置,其特征在于,所述校时服务器的时间为校时服务器和全球定位系统gps或者北斗卫星进行时钟同步后得到的时间。

10.根据权利要求6所述的装置,其特征在于,所述计算模块,包括:

排序子模块,用于将所述多个时间按时间值进行从小到大或者从大到小排序;

计算子模块,用于计算每两个相邻的时间之间的差值,得到至少一个时间差。

11.一种时间校正系统,其特征在于,所述时间校正系统包括校时服务器集群和时钟源子系统;

校时服务器集群,所述校时服务器集群包括多个校时服务器,每个校时服务器用于提供时间;

所述时钟源子系统,用于获取所述校时服务器集群中每个校时服务器的时间,得到多个时间;计算所述多个时间中数值相邻的时间之间的差值,得到至少一个时间差;从所述至少一个时间差中选取至少一个第二时间差,每个第二时间差为不超过第一预设误差的时间差;基于得到每个所述第二时间差的多个时间,确定是否更新系统时间。

12.根据权利要求11所述的时间校正系统,其特征在于,所述时间校正系统还包括时统监控子系统;

所述时统监控子系统,用于将所述系统时间同步给至少一个终端;和/或,

所述时统监控子系统,用于获取至少一个终端的时间;当任一终端的时间与所述系统时间之间的时间差超过第三预设误差时,按照预设提示方式,对所述终端的时间与所述系统时间之间的时间差进行提示。

13.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求5任一项所述的时间校正方法所执行的操作。

14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求5任一项所述的时间校正方法所执行的操作。

技术总结

本发明公开了一种时间校正方法、装置、系统、设备、及存储介质,属于计算机技术领域。本发明通过设置了包括多个校时服务器的校时服务器集群,计算多个校时服务器之间的时间差,选取出不超过第一预设误差的时间差,基于多个校时服务器中得到不超过第一预设误差的时间差的多个时间,来确定是否更新系统时间,那么如果某个校时服务器的时间不准,则该校时服务器会与其他校时服务器的时间差较大,因此在计算系统时间时,能够避免根据该校时服务器的时间计算系统时间,也就避免了该校时服务器的时间对系统时间的准确性产生影响,通过在确定是否更新系统时间时,排除了不准的校时服务器的时间造成的干扰,能够确保系统时间具有高可靠性和高准确性。

技术研发人员:高崚峰

受保护的技术使用者:杭州海康威视系统技术有限公司

技术研发日:.08.21

技术公布日:.02.28

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。