食品行业NTP网络时间服务器授时解决方案
摘要:药食品质量安全追溯系统中各计算机设备间必须保持精确的时间同步,才能保证对药品食品各种相关信息的记录准确可靠。基于网络时间协议(NTP),结合安全追溯系统的网络结构特点,设计了一种低成本、低负载、较为可靠的时间同步方案,选用卫星(GPS北斗)作为整个系统的时钟源,构建了中心服务器级、分区服务器级以及生产、销售企业或组织级三个级别构成的网络时间同步网络,并可以根据实际情况灵活调整。将时间同步的服务端和客户端的实现封装成为单独的类库,采取动态链接库的形式,便于与现有的追溯系统集成。系统各设备间时间同步的精度可以达到数十毫秒,满足药品食品安全追溯的要求。
引言
药品食品质量安全追溯系统要求在产品生产、加工、运输、销售的各个环节详细记录过程档案信息,实现源头可追溯、流向可跟踪、信息可存储、产品可召回的目标。追溯系统是促进生产信息透明化,提高食品卫生安全的重要措施。时间信息在过程档案的记录中具有十分重要的作用,整个系统的各种计算机设备之间必须保持精确的时间同步,才能保证对产品的各种相关信息的记录存储准确有效,保证这些记录作为追溯分析依据的权威性和公信性。
追溯系统基于多种不同的计算机和网络通信设备工作,这些设备主要依靠自身的时钟振荡器工作,由于温湿度变化、电磁干扰、振荡器老化和生产调试等原因,其时钟的振荡频率和标准频率之间存在一些误差,设备与设备之间存在着一定的时间误差,这些误差乍看似乎微不足道,而在长期积累后会产生相当大的影响。同时,在追溯系统中还较多的使用了包括掌上电脑在内的嵌入式设备来读取产品的标识(条形码、电子标签等),以及在现场填报过程档案数据。这些嵌入式设备多采用电池供电,其时钟不准确的现象更为突出,经常需要进行时间校准,以保证档案记录中的时间与标准时间一致。在目前的追溯系统中,设备的时间校准往往取决于使用者的习惯,手段常为参照自选的标准手工设定时钟,这种办法效率低下、准确程度较低,无法满足对产品从生产到流通的全过程进行精确溯源、全面追踪的要求。
本文在NTP网络时间同步技术的基础上,结合产品质量安全追溯系统的网络结构特点,设计了一种低成本、低负载、较为可靠的时间同步方案,选用卫星(GPS北斗)作为整个系统的时钟源,构建了中心服务器级、分区服务器级以及生产、销售企业或组织级三个级别构成的网络时间同步,可以根据实际情况灵活增减级别,并在时钟源以下的设备级别加入新的设备。整个网络稳定可靠、精度较高,能充分满足产品质量追溯的要求。
1、NTP网络时间同步原理
时间同步是指网络各节点设备的时钟时刻和时间间隔与世界标准时间(Universal Time Coordinated, UTC)同步,保证各设备的时间信息基于UTC时间的误差限定在足够小的范围内。
NTP(Network Time Protocol,网络时间协议)由美国德拉瓦大学的David L.Mills 教授于1985 年提出,用于实现互联网上计算机的精确的时间同步。SNTP(SimpleNetwork Time Protocol)的全称是“简单网络时间同步协议”,是一个简化了的NTP服务器和NTP客户端策略,不需要实现NTP协议的所有功能,其功能是使网络内设备的时钟与标准的时钟源保持同步。NTP对性能差异很大的客户端及服务器均能适用,且适用于客户端及服务器所在网络有大范围的网络延迟和抖动的情况。NTP协议同步系统时钟有两种工作模式。一是广播模式Multicast/Broadcast mode):此种工作模式适用于高速的局域网内部,服务器在固定周期向多个客户机主动发出时间信息,客户机根据此时间信息校正系统时钟;二是客户机/服务器模式(Client/Server mode),客户机定时向授时服务器请求时间信息,根据双方交换的时间信息,实现客户机与NTP服务器时钟的同步。
客户机/服务器模式下客户机首先向服务器发送一个NTP包,其中包含了该包离开客户机时的时间戳T1,当
服务器接收到该包时,依次填入数据包到达时的时间戳T2 和包离开时的时间戳T3,然后立即把包返回给客户机,客户机接收到响应包时再填入包回到客户机的时间戳T4,客户机利用这4个时间戳和包交换的往返延迟(TQ和TR)就能够计算出客户机与服务器之间的时钟偏移量ΔT,如图1 所示。
现已知T1、T2、T3、T4 和参数TQ、TR,可以得出时钟偏移量ΔT 的方程式有:
T2=T1+TQ+ΔT (1)
T4=T3+TR-ΔT (2)
假设发送和响应NTP 包在网络上的延迟时间TQ、TR 相等,则根据方程式(1)和方程式(2)可以得出:
由方程式(3)可以看出客户机系统时钟偏差量ΔT与T1、T2 差值和T4、T3 差值相关,而与T2、T3 的差值无关,即时钟偏差量与时钟服务器的响应速度无关。客户机根据时钟偏移量ΔT 来调整本系统时钟,以使其时间与服务器时间一致。
2、系统时间同步的设计和实现
时间同步对于产品质量安全追溯系统有着重要的作用,为了使系统内各设备之间保持时间同步,需要解决四个方面的问题:一是尽量选取非常精确的时间源,各设备与该时间源的误差值应较小;二是自动实现时间同步,排除人工因素;三是降低系统开销,适应现有追溯系统的网络条件,同时具备较好的扩充能力;四是尽量屏蔽异质网络和设备之间的差异。系统时间同步的设计方案将逐一讨论这些问题。
产品质量安全追溯系统一般由多个子系统构成,包括生产子系统、加工子系统、运输子系统、销售子系统,以及对用户权限进行配置管理的子系统等,这些子系统通过网络连结为一个整体进行工作。其中涉及的网络多种多样,包括以太网、无线WLAN网络、GPRS/CDMA无线网络、蓝牙/红外传输网络等。同时子系统运行的计算机软、硬件环境也存在较大的差异。为适应现有的网络条件,使系统差异较大的网络和设备环境能顺利的协同工作,满足不同的设备进行校时的需要,设计了一个统一的与各子系统相对独立的时间同步网络,其结构如图2所示。
整个时间同步网络结构分为三级,依次为中心服务器级、分区服务器级以及生产、销售企业或组织级。各个级别包括不同的计算机设备:中心服务器是保存中央数据库的专门计算机,是依据产品种类或涉及的行业而划分的特定服务器,例如食品质量溯源中心服务器,在国家或省一级设置。分区服务器是根据集中填报数据、审查数据的需要而设置的介于中心服务器和第三级设备之间的计算机。最后一级是实际供应链中的企业或集体组织的计算机,覆盖产品生产、加工、运输、销售的各个环节,包括台式电脑、掌上电脑、标识读写仪等多种类型的设备。中心服务器和分区服务器之间使用有线的网络环境进行互联,而分区服务器和第三级设备之间既可以使用有线的网络环境,也可以使用无线网络进行通信,以充分利用现有的网络设备资源。第一级设备(中心服务器)从标准的时钟源获取准确的时间,向第二级设备授时,实现与第二级设备的时间同步,第二级设备向第三级设备授时,实现与第三级设备的时间同步。同时,第二级设备除了会向第一级设备请求校时外,还可以彼此之间进行校时,由于不同的通路其网络传输延时不同,通过从多种通路分别请求校时,大大保证了系统的可靠性和校时的准确性。同理,第三级设备向多个第二级设备请求校时,一方面可以获取更精准的时间,另一方面也可以在某一个设备出现故障时仍能正常工作。整个时间同步网络较为可靠,能稳定地实现整个网络内设备的时间同步,除非大部分的设备同时出现瘫痪,在局部计算机出现意外情况下仍能正常工作。
系统在时间同步时使用NTP协议,其传输基于用户数据报协议(User Datagram Protocol, UDP),要求的资源开销和网络带宽很小,能有效地避免拥塞。同时该协议是TCP/IP的应用层协议,支持TCP/IP的网络都可以使用这种方法进行校时。追溯系统涉及多种异质网络和设备绝大多数都对TCP/IP协议提供了很好的支持,因此可以不关心异质网络和设备之间的差别,实现追溯系统内整体的时间的同步。
测试表明NTP时间同步网络在广域网范围内可以达到几个毫秒的精度,完全可以满足追溯系统对时间同步精度的要求。目前的产品质量追溯系统的数据库结构包括中央数据库和并列数据库,采用的也不一定都是时间同步网络结构的三级结构,这时也可以直接将三级网络结构缩减为二级甚至一级使用,或者扩充至更多级别,只要保证选用一个稳定、可靠、成本较低的时钟源,其它设备都通过NTP协议方式与该时钟源进行时间校准,即可以实现整个系统内的时钟同步。时间同步网络结构的三级结构在设计上有较大的弹性,除了上述的可以减增级别外,还可以在时钟源以下的设备级别加入新的设备,只要该设备及其连接的网络支持TCP/IP协议,即可以构成一个完整的系统时间同步网络,实现新加入设备的时间与原有设备一致。
3、系统时间同步网络的特点
1)以卫星时间作为第一级服务器的标准时钟源,使用NTP网口/串口方式获取卫星时间,其误差在毫秒级,准确可靠;
2)整个网络的成本较低,仅需要增加作为时钟源的卫星硬件设备;
3)具有较大的灵活性,可以根据实际追溯系统的结构和现有网络情况调整网络的级别,可以随时加入或减少连结到网络的设备;
4)系统运行采取的是多对多的模式,一个服务器对应于多个客户端,一个客户端也可以对应多个服务器,存在多条通路,不仅可以减少一个服务器的负荷,还可以在网络或设备存在故障时起到分流和备用的作用,增强了系统工作的可靠性和稳定性;
5)整个系统的负载较小,一个NTP数据包的字节数仅为几十个字节,且第三级设备校时的频率是在每30min内进行2次,系统开销非常小。
4、结论
本文从分析NTP协议入手,结合产品质量追溯系统的结构特点,提出了基于NTP的时间同步办法,建立了系统时间同步网络,并将时间同步的服务端和客户端封装为独立的类库,以实现与各种现有系统的装配。与现有系统进行集成装配的应用表明,基于NTP的时间同步网络负载较小,是产品质量安全追溯系统中实现时间同步的有效办法。本文主要探讨的是一个时间源的情况下整个系统进行校时的办法,实际情况下的可能存在多个不同的时间源,需要进一步研究在这种情况如何稳定可靠地实现系统的时间同步。