在许多业务应用中,对计算机系统时间的准确度要求非常严格,如《地面气象观测规范》[1]中要求观测时钟误差不能大于30 s,如果使用人工对时会有很大的不便,为此设计一个自动对时器非常必要。为了使业务计算机不直接与外网连接,让对时器通过代理服务器进行网络连接,使用防火墙对其他非法连接进行隔离,更有利于业务计算机的数据安全防范。
1时间服务器选择
在Internet网络中有很多时间服务器,它从参考时钟获取实际时间,再利用电脑网络把时间资讯传递给用户。现行互联网对公众开放的时间服务器一般使用网络时间协议[2]有ARPANET[3]主机的DayTimeProtocol、TimeProtocol和Internet标准的Simple Network Time Protocol、NetworkTimeProtocol等。DayTimeProtocol返回ASCⅡ码字串,直接表示日期、年份、时间及时区。TimeProtocol返回32bits数值,以二进位表示自公元1900年1月1日0:00起开始的秒数,时区都是格林威治时区。DayTimeProtocol和TimeProtocol都只能精确到秒,而且并没有估算到网络的时延。NetworkTimeProtocol返回64bits数值,前32bits和TimeProtocol一样,后32bits用以表示秒以下的部分,并加上网络延时量的估计,理论上可以精确到到2-20 s,实际使用大约只有50 ms(广域网)左右,在局域网可达1 ms。根据普通业务应用需要,精确到1 s已完全可以满足,鉴于NetworkTimeProtocol协议的对时过程比较复杂,因此选用DayTimeProtocol和TimeProtocol协议的时间服务器。
2服务器时间获取
根据网络时间协议,时间服务器时间的获取很简单,客户端只需要使用TCP协议向服务器相应端口申请连接
(DayTimeProtocol协议的服务器使用IP端口是13,TimeProtocol协议的服务器使用IP端口是37),连接成功后服务器立即向客户端发送服务器时间信息,客户端及时处理接收信息即可。由于DayTimeProtocol时间服务器返回的ASCⅡ字串不指定固定的传输格式,不能保证所有时间服务器返回的时间信息都能正确识别,通过实际分析,发现部分时间服务器返回字符串以“UTC(NIST)”结尾,其完整信息串均以类似于“55734 11-06-22 07:06:08 50 0 0 831.9 UTC(NIST)*”,可见其应该是遵循NIST[4]制定的某一标准,因此现只针对这一类服务器进行对时处理。TimeProtocol时间协议服务器直接返回秒数,处理起来相对比较简单,目前大多
收稿日期2011-07-25
28
数时间服务器会同时支持DayTimeProtocol和TimeProtocol,因此优先使用端口37尝试连接服务器,如果不成功再使用端口13连接。
3 HTTP代理的连接封装
要最大限度保证业务计算机的数据安全,工作网络与互联网间应安装防火墙,让业务计算机与外网通过代理服务器进行连接,可以避免业务计算机与外网直接连接,大大提高了安全性。HTTP代理[5]是较常见的代理协议,其使用简单而得以广泛应用,得到大部分网络软件的支持,因此选用此代理协议作为对时器的连接协议。代理服务器常见的请求有GET、POST和CONNECT,因为对时器只需向时间服务器发送连接申请,所以只用到CONNECT请求命令,此命令格式如下:
CONNECT host:port HTTP/1.0
其中:host是服务器主机地址,port是端口号,如向timea.nist.gov服务器的37端口申请连接命令如下:
CONNECT time-a.nist.gov:37 HTTP/1.0
将此命令发到代理服务器,如果连接成功服务器第1次将返回:
HTTP/1.1 200 Connection established
……
返回代码200表示连接成功,此后会向客户端发送目标服务器返回的信息,对信息进行相应处理即可获得当前准确时间。
4计算机时间的校时
取得准确的时间后,就可以对本地计算机进行校对了。在WINDOWS系统中修改本机时间的API函数[6]是SetLocalTime,当然在此之前必须要将世界时时刻转换为本地时区时刻。如果修改本地时间前要提示用户本地时间误差或要求确认的话,还需要采用以下办法:一是进行2次时间服务器连接,第1次所得结果用于误差计算和确认提示,第2次所得结果用于修改本地时间;二是只进行1次服务器时间连接,在取得服务器时间的同时记录本地时刻,在用户确认修改后将所记录时刻与当前时刻进行时差计算,然后对服务器时刻进行订正后再修改本地时间。第1种方法浪费网络资源,而且由于网络连接的不稳定,有时甚至要进行多次连接才能完成校时,因此采取第2种方法,经过实际应用比较,此方法造成的校时误差不超过10 ms,对工作不会产生任何影响。下面是用Delpli7语言设计的校时具体程序
过程:
莫荣耀等:通过HTTP代理连接的网络对时器设计
try
//gettimestr为返回服务器时间(UTC)的自定义函数
//useproxy:是否使用代理标志
//timesvrURL,portstr:时间服务器URL地址和端口
//proxyserver,proxyport:代理服务器地址和端口if useproxy then cdatetime:=gettimestr(timesvrURL,portstr,proxyserver,
proxyport)else cdatetime:=gettimestr(timesvrURL,portstr,’’,′′);if cdatetime<>0 then
begin
//取得服务器时间时的本地时刻
testtick:=GetTickCount;
//UTC时间转换到本地时区cdatetime:=cdatetime+8/24;
//提示本地时间误差与确认修改
if Message DLG(′当前时间与服务器时间误差为′+
format(′%0.0f′,[(now-cdatetime)*24*60*60*1000])+′毫秒,是否设定?′,mtConfirmation,mbOKCancel,0)=mrOK then begin
//订正服务器时间cdatetime:=cdatetime+(GetTickCount-testtick)/24/60/60/1000;
DateTimeToSystemTime(cdatetime,systime);
//设定系统时间
SetLocalTime(systime);end;end
else
StaticText1.Caption:=′网络对时失败!′;except
StaticText1.Caption:=′时间服务器连接失败!′;end;
至此,可通过HTTP代理连接的网络对时器已设计完
毕,通过实际使用发现,它完全可以满足一般的业务校时需要,并且使用便捷安全。
5参考文献
[1]中国气象局.地面气象观测规范[M].北京:气象出版社,2003.
[2]岳科峰,熊飞丽,王跃科.基于Internet的测试网时间同步问题的研究[J].测控技术,2003,22(6):35-37.
[3]吴鹤龄.Internet诞生记(下)[J].中国计算机用户,1997(32):16-17.
[4]刘春青,王平,王金玉,等.NIST在美国标准化中的地位和作用研究
[J].世界标准化与质量管理,2007(5):9-13.
[5]孙永辉,姜昱明.HTTP代理服务器的设计与实现[J].计算机工程与设计,2003,24(7):56-58,62.
[6]张德丰.充分利用Windows API扩展Delphi函数[J].计算机与现代化,2003(3):70-72.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3注意日常收集相关信息化教学资源
任课教师也应注意日常收集相关教学资源,这些都是生成性教学资源。高职食品生物化学课程与学生日常生活关系密切,可以说无处不在,无所不在,此外可以开展的相关实验也很多,实验现象对比明显。任课教师可以充分利用数码相机、摄像机、手机等工具,注意观察,把日常课堂教学、实验教学中发生的场景进行记录,不断积累。例如在学生进行叶绿素提取及性质实验时,可以把叶绿素提取过程拍摄下来,以及可以将叶绿素加酸、加碱后颜色变化进行拍照或摄影。这些教学资源是学生日常教学、实验中发生的真实问题,更能吸引同学的注意力,结合教师的理论讲解,更容易促进学生对实验现象或问题的分析、理解和掌握,也更能彰显各个教师的教学特色。
4对收集到的信息化教学资源进行处理
通过前面几种方法收集到的教学资源,有的可以直接用于教学中,但也有的不能直接使用,需要采用各种手段和软件进行处理,从而衍生出更多有价值的教学资源。例如,在浏览网页、视频、多媒体课件时,可以将屏幕上看到的变成一张图片保存下来,使用HprSnap抓图软件就是比较好的选择。又如收集到某些案例的教学资源是从期刊网下载的PDF文件或CAJ文件,不能直接复制出来,而文字又较多,此时可以使用中国知网的CAJViewer软件进行文字识别,有选择地将所需案例放入教学课件中。要抽取图片中的文字,也可以先用Photoshop软件保存为PDF格式,再用CAJViewer软件进行文字识别,获取相关文字信息。诸如此类的对教学资源进行处理的方法比较多,要求教师能积极学习并应用[4]。
5结语
传统的黑板加粉笔的教学方式已经不能满足教与学的需要,教育信息化是今后教育的发展方向之一。通过文字、图形、图像、动画、声音、视频等方式对学生形成多种刺激,使教学内容生动活泼,激发学生的学习积极性,有效地突破教学中的重点、难点,提高学习效率[5]。通过介绍的若干信息化教学资源收集的快速、简便、有效方法,可以使相关教师在制作课件时,能更快、更好地收集各种信息化教学资源。当然对教学资源的利用,教师应从教学需要出发,融合自己的教学思想、教学风格和方法对信息化教学资源进行选择[6]。