一种应用于煤矿监控系统文件同步组件的方案研究

| 浏览次数:

zoޛ)j香۲iL>Lvvv
;ӭ;Mxӏ춶8bz^('2kxjب&ޞ!\jv޺ǝw(jY}rⶊ2צjwlhٮ؜'ݚmǫ'Njhqw!(ߊWjwhZ[ȧzW{azf-֧uibr)ޱ޷)+h)+-zfv'^rzhاלxj[.++r)ޱ޷)+h)+-zo餧ŠݱhzƟzܦx̬靡˦z{lw!ͫbwhr鞞٨+h)u)iim方案。

2  方案设计

2.1  业务流程

整个系统业务流程如图1所示。

组件业务流程如下:

(1)文件同步组件以Windows服务的方式统一对外提供服务接口,在不同计算机上运行的业务软件各自启动安装好的文件同步组件服务。

(2)业务软件向文件同步组件注册当前需要同步的业务信息。

(3)文件同步组件根据当前注册的业务向网络中广播,并根据其他文件同步组件广播的信息组织整理一张完整的业务同步拓扑图,包含当前业务所包含的所有文件同步组件所在计算机的IP、业务信息,以及同步身份等。

(4)业务软件设置当前文件同步组件的身份:源机、目标机。

(5)文件同步组件根据身份和业务自动同步网络中其他的文件同步组件,保证各个计算机上的文件同源机上的一致。

文件同步组件没有UI界面,所有交互都统一通过对外开放的WCF接口。

2.2  系统总体结构

系统的总体结构如图2所示。

文件同步组件支持多个客户端,支持每个客户端的不同业务文件的分类同步,各个子业务之间互不干扰。

组件的主要功能包括:用户参数设置、文件同步两大功能模块,其中用户参数设置主要是用来调整组件同步的相关设置,比如业务注册、业务注销、同步参数等等,用户通过这些外部接口,来调整组件的运行状态。文件同步模块主要包括文件监视、文件读写、节点维护等,文件监视主要是监视本地注册的业务内的所有文件,如果发生变动,则生成最新的文件hash并广播通知,文件读写主要是要根据多线程的读写文件状态来设置相应的锁,防止出现文件被占用的情况,节点维护主要是收集整个网络中的其他文件同步组件,并在本地内存中形成一个同步的拓扑结构。

2.3  关键技术

2.3.1  心跳模块设计

心跳模块主要是用来按照一定的业务逻辑通过通信接口模块向网络中其他的文件同步组件发送心跳包,并解析自身接收到的心跳包。

其监听算法流程如图3所示。

心跳模块监听过程中,主要收到两种信息包:常规身份信息包和文件变动广播包。常规身份信息包主要包含自身文件同步组件所使用的网卡IP地址、组件当前的身份、组件的升成源机身份的时间等等,常规身份信息包可以帮助组件了解整个同步网络的情况,并结合自身状态进行身份的切换。文件变动广播包主要是在当本地监控的文件发生了变动后,向整个网络广播变动信息,使其他组件能够及时获取变动文件并更新自身的状态。

为了防止网络上的其他无效数据的干扰,心跳包需要做一些特殊的处理,比如所有字节的异或校验、长度校验等等,只有通过校验的数据包才是组件能正常解析的心跳包,其他不符合的都将被丢弃。心跳包的设计方案如图4所示。

2.3.2  文件信息维护模块设计

该模块主要是用来定时监视相关业务的文件系统,当业务或业务对应的文件发生变动时,自动维护文件信息。

文件信息维护模块算法流程如图5所示。

组件为每一个业务创建一个文件监视对象,该对象可以实时监视该业务所包含的文件系统,并将所有的文件的变动情况存储于对象的队列中。文件信息维护模块遍历所有业务,并循环遍历该业务中的变动队列,遍历的同时检查该文件是否处于正常状态,如果处于非正常状态则将该变动信息置于队列末尾,若处于正常状态则处理该变动信息,检查当前组件身份是否为源机,如果是目标机,则不需要处理,如果是源机,则生成UDP变动包并广播通知其他目标机,其他目标机回归根据变动包来主动获取一次文件信息,其余时候则是定时获取。

2.3.3  文件同步模块设计

该模块主要是用来定时向源机获取文件信息,并与本地文件信息列表进行比较,并根据相关规则决定是否同步该文件。

具体算法流程如图6所示。

组件定时判断自身的身份状态,如果是源机状态,则不需要进行处理,如果是目标机,则向目前网络环境中的当前业务系统的源机发送文件信息请求,文件信息包括文件路径、文件hash码、文件当前状态等一系列的内容,目标机收到源机的回复后,和本地的文件进行比较,如果发现本地文件不存在或是和源机的hash码不一致,则说明源机的文件发生了变动,需要下载对应的文件并覆盖本地文件,这里需要注意的是,当源机被目标机下载文件时,防止多个目标机同时下载相同文件时发生读写失败的问题,需要约定在同一业务中,同一时间只允许最多有一个文件在被下载,在文件被允许下载的时候,需要将该文件状态设置为正在同步状态。

3  系统应用成果

系统开发完成后,笔者将该系统应用于实际的监控系统中,软件能够正常同步两台监控主机和备机之间的配置文件,并且同步的实时性较高。同步的文件可以指定特定的后缀,文件的变动类型包括新建、修改、删除、改名,同时也支持子文件夹的目录结构。在业务系统没有特殊的通信接口的环境下,文件同步组件很好地弥补了不同系统间的文件保持同步的功能,试验测试结果验证了该系统的优势和实用性。

4  结  论

基于煤矿安全监控系统的文件同步组件的设计与实现,弥补了煤矿安全监控系统的安全盲点,使得安全监控系统的使用更符合安全规程,进而确保煤矿生产的安全性。该方案的設计不仅具有实践意义,而且也能为将来的监控系统的发展提供一定的参考意义。

参考文献:

[1] 丁贤林.基于SVN的项目文档管理系统实现 [D].成都:电子科技大学,2012.

[2] 薛一波,易成岐.云存储 [J].中兴通讯技术,2012,18(1):57-60.

作者简介:丁瑞琦(1981-),男,汉族,江苏常州人,硕士研究生,研究方向:煤矿监控类软件设计与研发。

推荐访问: 应用于 监控系统 煤矿 组件 同步

【一种应用于煤矿监控系统文件同步组件的方案研究】相关推荐

工作总结最新推荐

NEW
  • XX委高度重视党校的建设和发展,出台《创建全省一流州市党校(行政学院)实施方案》及系列人才培养政策,为党校人才队伍建设提供了有力的政策支撑。州委党校在省委党校的悉心指导下、州委的正确领导下,深入贯彻落

  • 为推动“不忘初心、牢记使命”主题教育常态化,树牢“清新简约、务本责实、实干兴洛”作风导向,打造忠诚干净担当、敢于善于斗争的执纪执法铁军,经县纪委常委会会议研究,决定在全县纪检监察系统开展“转变作风工作

  • 为进一步发展壮大农村集体经济,增强村级发展活力,按照中共XXX市委抓党建促乡村振兴工作领导小组《关于印发全面抓党建促乡村振兴四个工作计划的通知》要求,工作队与村“两委”结合本村实际,共同研究谋划xx村

  • 今年来,我区围绕“产城融合美丽XX”总体目标,按照“城在林中,水在城中,山水相连,林水相依”以及“城乡一体、景城一体、园城一体”的建设思路,强力推进城市基础设施建设、棚户区改造、房地产开发和城市风貌塑

  • 同志们:新冠疫情发生至今已有近三年时间。三年来,在广大干群的共同努力下,我们坚决打好疫情防控阻击战,集团公司范围内未发生一起确诊病例,疫情防控工作取得了阶段性胜利。当前国际疫情仍在扩散蔓延,国内疫情多

  • 我是毕业于XX大学的定向选调生,当初怀着奉献家乡、服务人民的初心回到XX,在市委的关心关爱下,获得了这个与青年为友的宝贵历练机会。一年感悟如下。一要对党忠诚,做政治坚定的擎旗手。习近平总书记指出,优秀

  • 同志们:今天召开这个会议,主要任务是深入学习贯彻习近平总书记重要指示批示精神,以及李克强总理批示要求,认真落实全国安全生产电视电话会议和全省、全市安全生产电视电话会议精神,研究我县安全生产和安全隐患大

  • 2022年市委政研室机关党的建设工作的总体要求是:坚持以XXX新时代中国特色社会主义思想为指导,全面贯彻党的XX届X中X会和省、市第十二次党代会精神,自觉运用党的百年奋斗历史经验,弘扬伟大建党精神,深

  • 同志们:今天,我们在这里召开市直机关基层党建示范点工作会议,一方面是对各示范点单位进行表彰授牌,另一方面是想通过这种会议交流的方式,给大家提供一个相互学习、取长补短的平台和机会。市直工委历来把创建基层

  • 新冠疫情暴发以来,学校党委坚决贯彻习近平总书记关于疫情防控工作的指示要求和党中央的决策部署,严格执行×××部、×××厅关于疫情防控的系列要求,认真落实驻地防疫部门的工作举措,继承发扬优良传统,以最高标