单位文秘网 2022-02-19 08:10:53 点击: 次
组织整理一张完整的业务同步拓扑图,包含当前业务所包含的所有文件同步组件所在计算机的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-),男,汉族,江苏常州人,硕士研究生,研究方向:煤矿监控类软件设计与研发。
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-235-100054-1.html
上一篇:试验数据管理系统的应用
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用