气象水文到报监测实时性设计

气象水文到报监测实时性设计

ID:8255115

大小:34.50 KB

页数:12页

时间:2018-03-13

气象水文到报监测实时性设计_第1页
气象水文到报监测实时性设计_第2页
气象水文到报监测实时性设计_第3页
气象水文到报监测实时性设计_第4页
气象水文到报监测实时性设计_第5页
资源描述:

《气象水文到报监测实时性设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、气象水文到报监测实时性设计  作者简介:张志杰(1973—),男,山东成武人,高级工程师,研究方向:软件工程(E-mail:codedajie@126.com);刘金胜(1980—),男,山东高密人,工程师,硕士,研究方向:计算机软件技术。摘要:到报监测是气象水文数据传输、处理等的重要环节,其实时性是关键设计目标。通过分析文件目录扫描方法和消息通知机制的应用特点,结合气象水文资料传输、处理规程及应用模式,重点阐述了结合实时性和可靠性要求的到报监测方法,并给出一种重构性强、应用灵活的到报监测模块的设计方案。关键词:气象水文资料到报监测;实时性;FileSystemWatcher;目录扫描;软件设

2、计中图分类号:P4文献标识码:A1引言到报监测旨在获取最新到达的资料信息,既是资料传输业务监控管理的主要内容,也是资料处理应用系统的重要组成部分。气象水文资料应用实时性要求高,及时响应资料到达状态,提高到报监测的实时性,是资料实时处理的前提。12有别于计算机数据库系统,气象水文资料在生成、处理和转储等应用过程中,多以磁盘文件的形式存储,效存储在计算机系统中的一般文件,其特点主要表现为种类多,到报量、到报时间粒度、数据大小差异性大,数据文件按照类别存储在不同的目录,文件名称中多含有与时间或者类别相关的信息;其信息服务应用特点是时效性强、更新快,操作系统多样,数据访问复杂等。因此气象水文资料到报监

3、测的实时性设计难度大。常规获取资料到报的方法是进行两次目录扫描,对比前后扫描结果,提取资料更新信息。该方法对于目录内文件较多时,获取的周期就会过长,且频繁的扫描影响系统效率。另一种方法是基于Windows消息机制的文件系统监视,实时响应资料更新,但是该机制由于缓存溢出等多种原因而时常失效。本文结合目录扫描方法和消息通知机制,利用气象水文资料及其使用要求的特点,通过优化变更信息获取方法,设计了基于队列管理的多任务到报监测方法,能够有效提高相关应用的实时性和可靠性,并采用面向接口的软件设计思想,给出了易于维护的软件设计[2]。2监测方法2.1定时轮询12定时轮询方法是按照一定时间间隔扫描整个被监视

4、目录及其子目录中的文件,记录每个文件的属性(例如:文件最后修改时间、HASH值、CRC校验码等),比较前后两次扫描获得的信息,筛选出变化的资料,是一种可靠的方法。但是,这种方法的缺点也很明显:首先,扫描一遍目录需要花费一段时间,如果目录中文件或子目录数量过多、目录层次过深,扫描花费的时间可能会更长,对于实时性要求高的应用来说,是不允许的;其次,频繁的文件扫描需要对文件进行操作,如果这时恰好也有其它程序对该文件进行操作,就会产生资源占用冲突;第三,由于文件越大,计算其HASH或者CRC值的时间就越长,也会影响信息获取的实时性。2.2实时通知Windows系统是一个消息(message)驱动的操作

5、系统,即系统维护一个或多个消息队列,所有产生的消息都会被放入到消息队列中。系统根据消息的接收句柄而将该消息发送给拥有该句柄程序的消息循环。实时通知是利用Windows操作系统内核提供的文件系统监视(FileSystemWatcher)消息机制。应用程序通过建立一个被监视文件或者目录的句柄,将其注册到操作系统文监视消息通知中,就可以收到来自操作系统的文件或者目录的变更通知。由于消息是由Windows操作系统内核发出的,可以近似认为是与文件系统的更新是同步的,也就可以说,采用这种模式获得的文件更新事件,是在文件或目录发生改变的瞬间获得的,可以认为是实时的。12在具体实现方面,Windows操作系统

6、对目录和文件的监控提供了两个消息驱动的API函数[5]:FindFirstChangeNotification和ReadDirectoryChangesW。调用它们就可以获取Windows为文件系统记录的消息队列。在.NETFramework2.0以上的版本中,提供了FileSystemWatcher类侦听文件系统更改通知,在目录或文件发生更改时引发事件,是对上述API进行的封装,简化了文件监控方法的实现。尽管实时通知已经很好地保证了Windows操作系统中文件监测的实时性,利用FileSystemWatcher类实现也较为简单,但是,实际应用中却有如下问题:1)一次文件变化,可能引发多个消息

7、,从而造成多次重复操作。例如:在一次资料内容变化时,除了内容变化之外,还有文件其他属性(例如:文件最后修改日期、文件大小)也变化了;2)文件系统监视通过向Windows系统注册来接收来自系统的文件或者目录的变更消息,一旦发生操作失误,注册就会断开,造成文件系统监视永久失效。这种情况主要发生在:一次变化的文件数量过多,或者文件的名字过长、目录层次过深,而造成缓冲溢出;对于存储在远程共享目录、网络驱动

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。