一种时钟校准方法、装置和系统与流程

文档序号:14725379发布日期:2018-06-19 06:14阅读:207来源:国知局

本发明涉及计算机软件领域,特别涉及一种时钟校准方法、装置和系统。



背景技术:

为了保护计算机软件,可采用一种可离线使用许可的软件授权方案—软锁,软件使用除了首次激活需要在线外,在再次激活之前,可以完全离线使用,只需要定期联网激活即可,能够解决当前云锁、硬件锁的缺陷,不仅能设置离线时长,还可以设置用户绑定软锁的设备数,减少了开发商大量的设置工作,同时,离线使用的方式也能有效缓解云服务的压力。

软锁中包含有虚拟时钟,通过虚拟时钟来对软件数字许可进行判断控制,首次运行软锁时,虚拟时钟会根据当前本机时间来运行,然而虚拟时钟运行过程中会出现不准确的情况,如果不对虚拟时钟进行校准,用户可以恶意修改本机时间,从而获取更长时间的软件许可,损害了软件商的利益。

目前本机在联网情况下通常是从云平台获取时钟校准包,校准包是实时从云平台获取到并下载到软锁驱动中的,软锁驱动将服务器时间保存在一个文件当中,以此时间作为时间基数,同时运行起虚拟时钟,此时无论本机时间如何调整,虚拟时钟总是可以以服务器时间为基数,计算出基本正确的真实时间。而且在线校准会定期和云平台进行校准,因此基本可以保证虚拟时间是完全真实的。

然而软锁在完全离线时,无法进行实时的时钟校准,如若需要进行校准,必须以本地时间作为基数进行校准,但是本地时间是完全不可信任的,因此如何能在使用本地时间进行离线时钟校准仍然保证时间基本准确,是离线软许可激活亟待解决的一个问题。



技术实现要素:

有鉴于此,本发明实施例提出一种实现使用本地时间进行离线校准并保证时间基本准确的方法。

为此,本发明实施例提出了一种时钟校准方法,应用于服务端侧,该方法包括:接收第二客户端发送的来自第一客户端的校准请求,所述校准请求中包括第一客户端的本机时间和第一客户端中应用程序的虚拟时钟时间;根据服务端时间确定所述本机时间和所述虚拟时钟时间中的可信时间;如确定所述可信时间,生成包括所述可信时间的时钟校准包发送给所述第二客户端以将所述时钟校准包经由第二客户端返回给所述第一客户端。

作为优选,在根据服务端时间确定所述本机时间和所述虚拟时钟时间中的可信时间之前,所述方法还包括:分别确定所述虚拟时钟时间和所述本机时间与服务端时间之间的差值是否在预定阈值之内;当所述虚拟时钟时间和所述本机时间与服务端时间之间的差值均在预定阈值之外时,确定所述本机时间和所述虚拟时钟时间中不存在可信时间,生成时间错误提示信息并通过第二客户端返回给所述第一客户端。

作为优选,所述方法还包括:当所述虚拟时钟时间和所述本机时间与服务端时间之间的差值均在预定阈值之内时,将所述虚拟时钟时间和所述本机时间中的与服务端时间之间的差值较小的一个时间确定为可信时间。

作为优选,所述方法还包括:当所述虚拟时钟时间与服务端时间之间的差值和所述本机时间与服务端时间之间的差值中有一个落在预定阈值之外时,将所述虚拟时钟时间和所述本机时间中的与服务端时间之间的差值落在预定阈值之内的一个时间确定为可信时间。

本发明实施例还提出了一种时钟校准装置,包括处理器,所述处理器配置为运行预定的计算机指令以执行上述任一服务端侧的时钟校准方法。

本发明实施例还提出了一种时钟校准方法,应用于客户端侧,该方法包括:第一客户端获取本机时间和第一客户端中应用程序的虚拟时钟时间,生成包括所述本机时间和虚拟时钟时间的校准请求;第二客户端将第一客户端生成的校准请求发送给服务端,并从服务端接收响应于所述校准请求而返回的时钟校准包;第一客户端经由第二客户端获得所述时钟校准包时,基于所述时钟校准包中的可信时间校准所述虚拟时钟时间,所述可信时间为所述校准请求中的本机时间与虚拟时钟时间之一。

作为优选,所述方法还包括:第一客户端将获取的所述本机时间和虚拟时钟时间进行保存,其中,基于所述时钟校准包中的可信时间校准所述虚拟时钟时间包括:根据所保存的所述本机时间和虚拟时钟时间确定所述可信时间是所述本机时间还是虚拟时钟时间,如可信时间是所述本机时间则基于所述本机时间对当前虚拟时钟进行校准,否则结束时钟校准。

作为优选,基于所述本机时间对当前虚拟时钟进行校准包括:计算所保存的所述本机时间和虚拟时钟时间之间的差值,通过将当前虚拟时钟加上该差值来对当前虚拟时钟进行校准。

作为优选,所述方法还包括:第二客户端从服务端接收响应于所述校准请求而返回的时间错误提示信息;第一客户端经由第二客户端获得所述时间错误提示信息时,根据所述时间错误提示信息修正本机时间后重新生成包括修正的本机时间和当前虚拟时钟时间的校准请求并通过第二客户端发送给服务端。

本发明实施例还提出了一种时钟校准系统,包括第一客户端和第二客户端,其中:第一客户端配置为获取本机时间和第一客户端中应用程序的虚拟时钟时间,生成包括所述本机时间和虚拟时钟时间的校准请求;第二客户端配置为将第一客户端生成的校准请求发送给服务端,并从服务端接收响应于所述校准请求而返回的时钟校准包;第一客户端还配置为经由所述第二客户端获得所述时钟校准包时,基于所述时钟校准包中的可信时间校准所述虚拟时钟时间,所述可信时间为所述校准请求中的本机时间与虚拟时钟时间之一。。

通过本发明实施例的方法,能够有效地校准客户端应用程序中的虚拟时钟,对客户端应用程序进行控制和保护,即使客户端应用程序的用户有意或无意修改了本机时间,也不会影响到客户端应用程序中的虚拟时钟,从而能够对客户端应用程序的使用时长进行控制,有效地保护了应用程序。

附图说明

图1为本发明的服务端时钟校准方法的一个实施例的示意性流程图;

图2为本发明的服务端时钟校准方法的另一个实施例的示意性流程图;

图3为本发明的客户端时钟校准方法的一个实施例的示意性流程图;

图4为本发明的客户端时钟校准方法的另一个实施例的示意性流程图。

图5为本发明的时钟校准系统的一个实施例的示意性流程图。

具体实施方式

下面参照附图对本发明的各个实施例进行详细说明。

图1为本发明的服务端时钟校准方法的一个实施例的示意性流程图。

如图1所示,本发明的服务端时钟校准方法包括:

S101、接收第二客户端发送的来自第一客户端的校准请求,校准请求中包括第一客户端的本机时间和第一客户端中应用程序的虚拟时钟时间;

第一客户端可以为用户的未接入互联网的离线使用的终端设备,其上安装有多个应用程序,本发明实施例所针对的是内设有虚拟时钟模块的应用程序,虚拟时钟模块能够在该应用程序实际开始使用时或与该应用程序关联的另一应用程序实际开始使用时开始启动计时,虚拟时钟首次启动运行时可使用客户端的当前本机时间作为虚拟时钟时间。

应用程序可以例如是为自身的使用设定了试用时长或付费使用时长的诸如游戏程序、图像编辑程序、行程规划程序等程序,也可以是例如为设定了付费使用时长的各类应用程序提供软件保护的软件保护程序。

在离线运行了一段时间之后,应用程序中的虚拟时钟因误差累积等原因可能需要校准,但第一客户端因离线运行,无法直接通过互联网向服务端发送校准请求。这时第一客户端可基于第一客户端的当前本机时间和第一客户端中应用程序的虚拟时钟时间生成校准请求,将包括本机时间和虚拟时钟时间的校准请求通过例如局域网或移动存储设备等转移到接入互联网的第二客户端上,由第二客户端将该校准请求向服务端发送。

S102、根据服务端时间确定本机时间和虚拟时钟时间中的可信时间;

服务端从客户端接收到校准请求时,从校准请求中提取出第一客户端的本机时间和第一客户端中应用程序的虚拟时钟时间,然后基于服务端时间来判断提取的第一客户端本机时间和虚拟时钟时间的准确性,如判定提取的第一客户端本机时间更为准确,则将第一客户端本机时间确定为可信时间,反之,如判定提取的虚拟时钟时间更为准确,则将虚拟时钟时间确定为可信时间。

例如,当服务端时间为16:00,从校准请求中提取的第一客户端本机时间为15:10,虚拟时钟时间为16:05,由于本机时间与服务端时间之间的偏差太大,可将虚拟时钟时间判定为可信时间。另例如,当服务端时间为16:00,从校准请求中提取的第一客户端本机时间为15:50,虚拟时钟时间为16:10,两者与服务端时间之间的偏差相同,可将两者中任一个确定为可信时间,或者从保护软件开发商利益的角度考虑而将更靠后的虚拟时钟时间确定为可信时间。

S103、如确定所述可信时间,生成包括所述可信时间的时钟校准包发送给第二客户端以将时钟校准包经由第二客户端返回给第一客户端。

在S102中确定了可信时间之后,可为第一客户端生成时钟校准包,该时钟校准包中携带有所确定的可信时间,以便第一客户端基于可信时间对虚拟时钟进行校准。服务端生成时钟校准包后,将时钟校准包发送给第二客户端,以将时钟校准包经由第二客户端通过例如局域网或者移动存储设备等返回给第一客户端。

通过本发明实施例的方法,能够有效地校准第一客户端应用程序中的虚拟时钟,对第一客户端应用程序进行控制和保护,即使第一客户端的用户有意或无意修改了本机时间,也不会影响到客户端应用程序中的虚拟时钟,从而能够对第一客户端应用程序的使用时长进行控制,有效地保护了应用程序。

图2为本发明的服务端时钟校准方法的另一个实施例的示意性流程图。

如图2所示,本发明实施例的时钟校准方法包括:

S201、接收第二客户端发送的来自第一客户端的校准请求,校准请求中包括第一客户端的本机时间和第一客户端应用程序的虚拟时钟时间;

S202、确定虚拟时钟时间和本机时间与服务端时间之间的差值是否在预定阈值之内,如两者与服务端之间的差值均在预定阈值之外则进行到S205,否则进行到S203;

S203、根据服务端时间确定本机时间和虚拟时钟时间中的可信时间;

S204、如确定所述可信时间,生成包括所述可信时间的时钟校准包发送给第二客户端以将时钟校准包经由第二客户端返回给第一客户端;

S205、确定所述本机时间和所述虚拟时钟时间中不存在可信时间,生成时间错误提示信息发送给第二客户端以将时间错误提示信息经由第二客户端返回给第一客户端。

在本发明实施例中,步骤S201、S203和S204与图1所示实施例中的S101-S103相同,在此省略具体说明,下面对S202和S205进行详细说明。

本发明实施例中,在S203的根据服务端时间确定本机时间和虚拟时钟时间中的可信时间的步骤之前,可进一步包括S202步骤,该步骤具体为确定虚拟时钟时间和本机时间各自与服务端时间之间的差值是否在预定阈值之内。

本发明实施例中预定阈值例如可以是24小时、18小时等。预定阈值的设定值并不限于此,实际使用中可根据需要设定预定阈值,例如可以设定为12小时、1小时等。

当虚拟时钟时间与服务端时间之间的差值在预定阈值之外,同时本机时间与服务端时间之间的差值也在预定阈值之外时,难以根据校准请求中的任一时间数据进行准确的时钟校准,则在S205中确定本机时间和所述虚拟时钟时间中不存在可信时间,生成时间错误提示信息发送给第二客户端以将时间错误提示信息经由第二客户端返回给第一客户端,提醒第一客户端的用户修正客户端本机时间。

第一客户端经由第二客户端获得服务器返回的时间错误提示信息时,第一客户端的用户经提示修改第一客户端本机时间后,第一客户端可以重新生成包括修改正后的本机时间和当前虚拟时钟时间的时钟校准请求,并通过第二客户端向服务端发送重新生成的时钟校准请求。服务端在接收到该修改后的时钟校准请求后,可重复前述各个步骤来协助第一客户端进行虚拟时钟校准。

通过本发明实施例,服务端在接收到时钟校准请求时,先确定第一客户端本机时间与虚拟时钟时间与服务端时间的差值是否在预定阈值之内,避免了差值过大时进行错误的时钟校准,提高了离线时钟校准的准确性。

在本发明一个实施例中,当在S202中确定虚拟时钟时间和本机时间与服务端时间之间的差值均在预定阈值之内时,在S203中可将虚拟时钟时间和本机时间中的与服务端时间之间的差值较小的一个时间确定为可信时间。例如,当服务端时间为4月6日16:00,从校准请求中提取的第一客户端本机时间为4月6日15:00,虚拟时钟时间为4月6日16:03时,可将虚拟时钟时间确定为可信时间。

在本发明另一个实施例中,当在S202中确定虚拟时钟时间与服务端时间之间的差值和本机时间与服务端时间之间的差值中有一个差值落在预定阈值之外时,在S203中可将虚拟时钟时间和本机时间中的与服务端时间之间的差值落在预定阈值之内的一个时间确定为可信时间。例如,在设定预定阈值为24小时的情况下,当服务端时间为4月6日16:00,从校准请求中提取的第一客户端本机时间为4月5日15:00,虚拟时钟时间为4月5日17:00时,可直接将与服务端时间的差值在24小时之内的虚拟时钟时间确定为可信时间。

上述服务端时钟校准方法可通过包括处理器的时钟校准装置来实现,处理器例如为CPU,时钟校准装置例如为主机,主机可包括存储有计算机程序的存储器,处理器可以运行存储器中存储的计算机程序中预定的计算机指令来执行上述任一实施例的服务端侧的时钟校准方法。

图3为本发明的客户端时钟校准方法的一个实施例的示意性流程图。

如图3所示,本发明实施例的方法包括:

S301、第一客户端获取本机时间和第一客户端中应用程序的虚拟时钟时间,生成包括本机时间和虚拟时钟时间的校准请求;

第一客户端可以为用户的未接入互联网的离线使用的终端设备,其上安装有多个应用程序,包括内设有虚拟时钟模块的应用程序。应用程序可以例如是为自身的使用设定了试用时长或付费使用时长的程序,也可以是例如为设定了付费使用时长的各类应用程序提供软件保护的软件保护程序。

在离线运行了一段时间之后,应用程序中的虚拟时钟时间需要校准时,第一客户端可获取第一客户端本机时间和应用程序的虚拟时钟时间,生成包括本机时间和虚拟时钟时间的校准请求。

S302、第二客户端将第一客户端生成的校准请求发送给服务端,并从服务端接收响应于校准请求而返回的时钟校准包;

校准请求可从第一客户端通过局域网或移动存储设备转移至接入互联网的第二客户端,并通过第二客户端发送给服务端,从而服务端接收到的校准请求中包括有校准请求生成时第一客户端的当前本机时间和第一客户端中应用程序的虚拟时钟时间。

S303、第一客户端经由第二客户端获得时钟校准包时,基于时钟校准包中的可信时间校准虚拟时钟时间,可信时间为校准请求中的本机时间与虚拟时钟时间之一。

服务端在从第二客户端接收到来自第一客户端的校准请求后,可以从校准请求中提取出第一客户端本机时间和第一客户端应用程序的虚拟时钟时间,然后判断第一客户端的本机时间和虚拟时钟时间中哪一个更准确,如判定第一客户端的本机时间更为准确,则将本机时间确定为可信时间,反之,如判定虚拟时钟时间更为准确,则将虚拟时钟时间确定为可信时间,并生成响应于校准请求的时钟校准包,将可信时间携带在该时钟校准包中,将时钟校准包发送给第二客户端。第一客户端在通过局域网或移动存储设备获得第二客户端从服务端接收的时钟校准包时,可从时钟校准包中提取出服务端确定的可信时间,基于该可信时间来校准虚拟时钟时间。

通过本发明实施例的方法,能够有效地校准第一客户端应用程序中的虚拟时钟,对第一客户端中的应用程序进行控制和保护,即使第一客户端的用户有意或无意修改了本机时间,也不会影响到第一客户端中应用程序的虚拟时钟,从而能够对第一客户端中应用程序的使用时长进行控制,有效地保护了应用程序。

在本发明一个实施例中,S301中第一客户端在获取到本机时间和虚拟时钟时间后,可以将获取的本机时间和虚拟时钟时间进行保存,并且在S303中第一客户端获得第二客户端从服务端接收的时钟校准包时,可以根据所保存的本机时间和虚拟时钟时间来确定时钟校准包中的可信时间是本机时间还是虚拟时钟时间。如果可信时间是本机时间,则可以基于本机时间对当前虚拟时钟进行校准;如果可信时间是虚拟时钟时间,则无需对虚拟时钟时间进行校准,时钟校准过程结果。

在本发明一个实施例中,当第一客户端获得第二客户端从服务器接收的时钟校准包中的可信时间为本机时间时,可以计算所保存的本机时间和虚拟时钟时间之间的差值,然后将当前虚拟时钟加上该差值来校准当前虚拟时钟。通过本发明实施例的校准方法,即使第一客户端的用户在第一客户端接收到时钟校准包之后有意或无意地修改了本机时间,也能够对虚拟时钟进行准确的校准。

图4为本发明的客户端时钟校准方法的另一个实施例的示意性流程图。

如图4所示,本发明实施例的时钟校准方法包括:

S401、第一客户端获取本机时间和应用程序的虚拟时钟时间,生成包括本机时间和虚拟时钟时间的校准请求;

S402、第二客户端将第一客户端生成的校准请求发送给服务端;

S403、第一客户端经由第二客户端获得服务端响应于校准请求而返回的时钟校准包时,基于时钟校准包中的可信时间校准虚拟时钟时间,可信时间为所述校准请求中的本机时间与虚拟时钟时间之一;

S404、第一客户端经由第二客户端获得服务端响应于校准请求而返回的时间错误提示信息时,修正第一客户端的本机时间,重新生成包括修正的本机时间和当前虚拟时钟时间的校准请求;

S405、第二客户端将第一客户端重新生成的校准请求发送给服务端。

本发明实施例中S401-S403与图3所示实施例的S301-S303相同,在此省略具体说明,下面对S404和S405进行详细说明。

本发明实施例中,当服务端确认从第二客户端接收到的第一客户端的校准请求中的本机时间和虚拟时钟时间中不存在可信时间时,服务端可生成时间错误提示信息发送给第二客户端,以将时间错误提示信息经由第二客户端向第一客户端返回。例如,服务端在接收到校准请求时,可以先确定从校准请求中提取的虚拟时钟时间和本机时间各自与服务端时间之间的差值是否在预定阈值之内,当虚拟时钟时间与服务端时间之间的差值在预定阈值之外,同时本机时间与服务端时间之间的差值也在预定阈值之外时,可以认为难以根据校准请求中的任一时间数据进行准确的时钟校准,服务端可确定本机时间和虚拟时钟时间中不存在可信时间,生成时间错误提示信息发送给第二客户端,以将时间错误提示信息经由第二客户端返回给第一客户端,提醒第一客户端的用户修正本机时间。

第一客户端在修正本机时间后可以重新生成包括修改正后的本机时间和当前虚拟时钟时间的时钟校准请求,并经由局域网或移动存储设备将重新生成的时钟够校准请求转移到第二客户端上,通过第二客户端将重新生成的校准请求向服务端发送。服务端在接收到该带有修正后本机时间的时钟校准请求后,可重复前述各个步骤来协助第一客户端进行虚拟时钟校准。

图5为本发明的时钟校准系统的一个实施例的示意性流程图。

如图5所示,本发明实施例的时钟校准系统包括第一客户端10和第二客户端20。

第一客户端10配置为获取本机时间和第一客户端中应用程序的虚拟时钟时间,生成包括所述本机时间和虚拟时钟时间的校准请求。第一客户端可以为用户的未接入互联网的离线使用的终端设备,其上安装有多个应用程序,包括内设有虚拟时钟模块的应用程序。应用程序可以例如是为自身的使用设定了试用时长或付费使用时长的程序,也可以是例如为设定了付费使用时长的各类应用程序提供软件保护的软件保护程序。

第二客户端20配置为将第一客户端10生成的校准请求发送给服务端30,并从服务端30接收响应于所述校准请求而返回的时钟校准包。第二客户端20可以是用户的接入互联网的联网使用的终端设备,第一客户端10和第二客户端20之间可以通过局域网连接,也可以完全隔离。第一客户端10生成的校准请求可以通过局域网转移到第二客户端20,也可以通过移动存储设备转移到第二客户端20,同样,第二客户端20从服务端30接收的时钟校准包也可以通过通过局域网或移动存储设备返回给第一客户端10。

第一客户端10还配置为在经由第二客户端20获得从服务端返回的时钟校准包时,基于时钟校准包中的可信时间校准虚拟时钟时间。时钟校准包中的可信时间为服务端30从第一客户端10生成的校准请求中的本机时间与虚拟时钟时间中确定的更准确的一个时间。

通过本发明实施例的方法,能够有效地校准第一客户端应用程序中的虚拟时钟,对第一客户端中的应用程序进行控制和保护,即使第一客户端的用户有意或无意修改了本机时间,也不会影响到第一客户端中应用程序的虚拟时钟,从而能够对第一客户端中应用程序的使用时长进行控制,有效地保护了应用程序。

在本发明的一个实施例中,第一客户端10还配置为在生成校准请求时将获取的本机时间和虚拟时钟时间进行保存,并在经由第二客户端20获得服务端30返回的时钟校准包时,根据所保存的本机时间和虚拟时钟时间确定可信时间是所述本机时间还是虚拟时钟时间,如可信时间是本机时间则基于本机时间对当前虚拟时钟进行校准,否则结束时钟校准。

在本发明实施例中,第一客户端10可以配置为计算所保存的本机时间和虚拟时钟时间之间的差值,通过将当前虚拟时钟加上该差值来对当前虚拟时钟进行校准。

在本发明实施例中,第二客户端20还配置为从服务端30接收响应于校准请求而返回的时间错误提示信息。时间错误提示信息是当服务端30确认从第二客户端20接收到的第一客户端10的校准请求中的本机时间和虚拟时钟时间中不存在可信时间时生成发送给第二客户端20的。第一客户端10还配置为经由第二客户端20获得时间错误提示信息时,根据时间错误提示信息修正本机时间后重新生成包括修正的本机时间和当前虚拟时钟时间的校准请求,并由第二客户端20将第一客户端10重新生成的校准请求发送给服务端30。此后的校准过程与前述相同,在此省略具体说明。

以上对本发明的多个实施例进行了说明,但本发明不限于这些具体实施例,本领域技术人员在不脱离本发明精神和构思的前提下,能够对这些实施例进行修改和变型,这些修改和变型均应落入本发明所要求保护的范围之内。

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